@fastybird/smart-panel-admin 1.1.0-alpha.65 → 1.1.0-alpha.66
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.
- package/dist/assets/{components-CKVFjqFL.js → components-BFDsCQkg.js} +1 -1
- package/dist/assets/{components-B-hsdZRB.js → components-BJ3MRhfv.js} +1 -1
- package/dist/assets/{components-DeVRIc-a.js → components-BjAo0Wtv.js} +1 -1
- package/dist/assets/{devices-Id44EDCB.js → devices-BEzn7YNW.js} +2 -2
- package/dist/assets/{index-BH_S-Ibi.js → index-C8N5LONp.js} +4 -4
- package/dist/assets/{system-79rvuFsE.js → system-BiamsEK0.js} +2 -2
- package/dist/assets/{view-channel-C3NGmwqj.js → view-channel-Dg95xGo_.js} +1 -1
- package/dist/assets/{view-channel-add-mFc_Z5uu.js → view-channel-add-DNYBaUhB.js} +1 -1
- package/dist/assets/{view-channel-edit-DxGvIum2.js → view-channel-edit-NF60Grsl.js} +1 -1
- package/dist/assets/{view-channel-property-add-D1m7T7OC.js → view-channel-property-add-CMeVopNE.js} +1 -1
- package/dist/assets/{view-channel-property-edit-DZPU_3he.js → view-channel-property-edit-DyKw3GMp.js} +1 -1
- package/dist/assets/{view-channels-BuBP9OyR.js → view-channels-FAoM8X8-.js} +1 -1
- package/dist/assets/{view-device-D2uINp2H.js → view-device-D0fn8k9V.js} +1 -1
- package/dist/assets/{view-device-add-SVR78XVz.js → view-device-add-sbG_2iOW.js} +1 -1
- package/dist/assets/{view-device-control-DjTtRcVc.js → view-device-control-CHXdj_pM.js} +1 -1
- package/dist/assets/{view-device-edit-Das0ELu7.js → view-device-edit-C1qd8QCI.js} +1 -1
- package/dist/assets/{view-devices-ES4YZ9Mx.js → view-devices-BwwIOBNp.js} +1 -1
- package/dist/assets/{view-devices-wizard-DA74IFeX.js → view-devices-wizard-DbtbPwFA.js} +1 -1
- package/dist/assets/{view-extension-detail-bg9LM7Qj.js → view-extension-detail-B08IOTSx.js} +1 -1
- package/dist/assets/{view-extensions-xLhnoWiR.js → view-extensions-CP3sAvrS.js} +1 -1
- package/dist/assets/{view-light-group-wizard-C9jkTOTk.js → view-light-group-wizard-D5kN3Oqc.js} +1 -1
- package/dist/assets/{view-simulator-device-wizard-DSAJrqIl.js → view-simulator-device-wizard-BCDtH8zG.js} +1 -1
- package/dist/assets/{view-stats-Dy4hI8ZC.js → view-stats-BQhfbNNf.js} +1 -1
- package/dist/assets/{view-system-backups-DZPXeohl.js → view-system-backups-B03om7N1.js} +1 -1
- package/dist/assets/{view-system-info-CquwwTkw.js → view-system-info-Bul1Th4e.js} +1 -1
- package/dist/assets/{view-system-log-detail-CJPA0zbJ.js → view-system-log-detail-BBZjxcZz.js} +1 -1
- package/dist/assets/{view-system-logs-DXgQ14GN.js → view-system-logs-Ma8IWL5R.js} +1 -1
- package/dist/assets/{view-virtual-device-wizard-FIcP5kB2.js → view-virtual-device-wizard-C1-MwexV.js} +1 -1
- package/dist/assets/{view-virtual-measurement-wizard-BH4k8pUm.js → view-virtual-measurement-wizard-CGeym9DG.js} +1 -1
- package/dist/assets/{view-virtual-thermostat-wizard-BBIb-taG.js → view-virtual-thermostat-wizard-CkPEPuoV.js} +1 -1
- package/dist/assets/{weather-CMRkX4kS.js → weather-C6B6lUio.js} +1 -1
- package/dist/index.html +6 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Ci as t,D as n,Dr as r,Er as i,Fr as a,Kr as o,Mr as s,Nr as c,Or as l,Pi as u,T as d,Ti as f,Xi as p,ei as m,jr as ee,k as h,kr as g,ni as _,pi as v,r as y,x as te,xr as b}from"./icon-with-child-C0yuv0oQ.js";import{t as ne}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as re,Di as ie,Gr as ae,Hr as oe,Qr as se,Ti as ce,Wr as le,_ as ue,bi as de,ei as fe,h as pe,m as x,mr as S,r as C,x as w}from"./common-Cq0z9nNV.js";import{n as T,t as me}from"./descriptions-CK3XrcY5.js";import{n as E,t as D}from"./table-CFRJXsHQ.js";import{n as O,t as he}from"./form-CoKeb4n7.js";import{t as k}from"./alert-C46gt4gd.js";import{t as A}from"./input-number-LzEdwV5R.js";import{r as j,t as M}from"./select-BZCtBPAN.js";import{t as ge}from"./card-CfYeWlyn.js";import{t as N}from"./checkbox-DTPMEXAL.js";import{n as _e,t as P}from"./steps-CFlcEz-i.js";import{t as ve}from"./dist-DJgPCOr0.js";import{g as ye,n as be}from"./keys-bvwxU-Nn.js";import{o as F}from"./keys-DMEIfK2a.js";import{o as I}from"./devices.constants-cxt4nI1j.js";import"./devices-Id44EDCB.js";import{i as L,t as xe}from"./simulator.constants-CaAdgiGs.js";var R=20,z=3,B=(e,t)=>e instanceof Error?e.message:t,Se=()=>{let e=x(),t=ue(),n=w().getStore(F),r=f([]),i=f(!1),a=f(null),o=f([]),s=f(!1),c=f(null),l=!1,u=null,d=async()=>{if(!l)return u===null?(i.value=!0,a.value=null,u=(async()=>{try{let{data:t,error:n}=await e.client.GET(`/${y}/${L}/simulator/categories`,{});if(t===void 0){let e=`Failed to load simulator device categories`;throw Error(n?C(n,e):e)}r.value=t.data.map(e=>({category:e.category,name:e.name,description:e.description})),l=!0}catch(e){throw a.value=B(e,`Failed to load simulator device categories`),e}finally{i.value=!1,u=null}})(),u):u},p=e=>{if(!Number.isInteger(e.count)||e.count<1||e.count>R)throw RangeError(`Device count must be an integer between 1 and ${R}`);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:d,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=B(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(`/${y}/${L}/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?C(a,e):e};continue}l[t]={name:n,success:!0,deviceId:i.data.id}}catch(e){l[t]={name:n,success:!1,error:B(e,`Failed to generate ${n}`)}}}};try{if(await Promise.all(Array.from({length:Math.min(z,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:B(e,`Unknown device store refresh error`)})}}finally{s.value=!1}},reset:()=>{o.value=[],c.value=null}}},Ce={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`},we={class:`p-4`},Te={key:0,class:`space-y-4`,"data-test-id":`wizard-configure`},Ee={class:`grid grid-cols-1 md:grid-cols-2 gap-x-4`},De={class:`flex flex-col gap-2`},Oe={key:0},ke={key:1,class:`space-y-4`,"data-test-id":`wizard-review`},Ae={key:2,class:`space-y-4`,"data-test-id":`wizard-results`},je={key:1},Me={key:2,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},V=a({name:`ViewSimulatorDeviceWizard`,__name:`view-simulator-device-wizard`,setup(a,{expose:y}){let{t:x}=d(),C=te(),F=ue(),{isMDDevice:L,isLGDevice:R}=ae(),z=w().getStore(be);ne({title:x(`simulatorPlugin.wizard.title`)});let{categories:B,loadingCategories:V,categoriesError:H,results:U,generating:W,generationError:G,fetchCategories:Ne,generate:Pe,reset:Fe}=Se(),K=f(0),q=f(!1),J=f(null),Y=t({category:null,count:1,namePrefix:``,roomId:null,requiredChannelsOnly:!1,requiredPropertiesOnly:!1,autoSimulate:!1,simulateInterval:5e3,behaviorMode:S.default}),Ie=i(()=>ve(z.findAll().filter(e=>e.type===ye.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),Le=i(()=>B.value.find(e=>e.category===Y.category)),Re=i(()=>Ie.value.find(e=>e.value===Y.roomId)?.label??x(`simulatorPlugin.wizard.review.noRoom`)),ze=i(()=>Array.from({length:Y.count},(e,t)=>Y.count===1?Y.namePrefix.trim():`${Y.namePrefix.trim()} ${t+1}`)),X=i(()=>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=i(()=>U.value.filter(e=>e.success).length),Be=i(()=>U.value.length-Z.value),Ve=i(()=>[{label:x(`devicesModule.breadcrumbs.devices.list`),route:C.resolve({name:I.DEVICES})},{label:x(`simulatorPlugin.wizard.breadcrumb`),route:C.resolve({name:xe.WIZARD})}]);oe(()=>!W.value);let Q=()=>{if(W.value)return;let e={name:I.DEVICES};R.value?C.replace(e):C.push(e)},He=async()=>{if(!(!X.value||W.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=()=>{Ne().catch(e=>F.error(`Failed to load simulator categories`,e))},Ge=async()=>{q.value=!0,J.value=null;try{await z.fetch()}catch(e){J.value=x(`simulatorPlugin.wizard.errors.roomsLoadFailed`),F.error(`Failed to load rooms`,e)}finally{q.value=!1}},Ke=()=>{Ge()},$=e=>{let t={name:I.DEVICE,params:{id:e}};R.value?C.replace(t):C.push(t)};return o(()=>{Ne().catch(e=>F.error(`Failed to load simulator categories`,e)),Ge()}),y({activeStep:K,form:Y,previewNames:ze,onRetryCategories:We,onRetryRooms:Ke,onViewDevice:$}),(t,i)=>(m(),e(b,null,[u(L)?g(``,!0):(m(),l(u(se),{key:0,teleport:``},{icon:v(()=>[c(u(n),{icon:`mdi:test-tube`})]),title:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.title`)),1)]),subtitle:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.subtitle`)),1)]),_:1})),u(L)?g(``,!0):(m(),l(u(re),{key:1,align:u(fe).LEFT,teleport:``,small:``,onClick:Q},{icon:v(()=>[c(u(n),{icon:`mdi:chevron-left`})]),_:1},8,[`align`])),c(u(le),{items:Ve.value},null,8,[`items`]),c(u(pe),{heading:u(x)(`simulatorPlugin.wizard.title`),"sub-heading":u(x)(`simulatorPlugin.wizard.subtitle`),icon:`mdi:test-tube`},ee({_:2},[u(L)?{name:`extra`,fn:v(()=>[c(u(h),{disabled:u(W),"data-test-id":`wizard-cancel`,onClick:Q},{default:v(()=>[s(p(u(x)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===1?(m(),l(u(h),{key:0,disabled:u(W),"data-test-id":`wizard-back`,onClick:i[0]||=e=>K.value=0},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),K.value===0?(m(),l(u(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:i[1]||=e=>K.value=1},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(m(),l(u(h),{key:2,type:`primary`,loading:u(W),"data-test-id":`wizard-generate`,onClick:He},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(m(),l(u(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),r(`div`,Ce,[c(u(ge),{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:v(()=>[c(u(_e),{active:K.value,"finish-status":`success`,"align-center":``},{default:v(()=>[c(u(P),{title:u(x)(`simulatorPlugin.wizard.steps.configure`)},null,8,[`title`]),c(u(P),{title:u(x)(`simulatorPlugin.wizard.steps.review`)},null,8,[`title`]),c(u(P),{title:u(x)(`simulatorPlugin.wizard.steps.results`)},null,8,[`title`])]),_:1},8,[`active`])]),default:v(()=>[c(u(ce),{class:`flex-1 overflow-hidden h-full`},{default:v(()=>[r(`div`,we,[K.value===0?(m(),e(`div`,Te,[u(H)?(m(),l(u(k),{key:0,type:`error`,title:u(H),closable:!1,"show-icon":``},{default:v(()=>[c(u(h),{size:`small`,loading:u(V),"data-test-id":`wizard-retry-categories`,onClick:We},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.retryCategories`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),J.value?(m(),l(u(k),{key:1,type:`error`,title:J.value,closable:!1,"show-icon":``,"data-test-id":`wizard-rooms-error`},{default:v(()=>[c(u(h),{size:`small`,loading:q.value,"data-test-id":`wizard-retry-rooms`,onClick:Ke},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.retryRooms`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),c(u(he),{"label-position":`top`},{default:v(()=>[c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.category`),required:``},{default:v(()=>[c(u(j),{modelValue:Y.category,"onUpdate:modelValue":i[2]||=e=>Y.category=e,loading:u(V),filterable:``,class:`w-full`,"data-test-id":`wizard-category`},{default:v(()=>[(m(!0),e(b,null,_(u(B),e=>(m(),l(u(M),{key:e.category,label:e.name,value:e.category},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),r(`div`,Ee,[c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.namePrefix`),required:``},{default:v(()=>[c(u(ie),{modelValue:Y.namePrefix,"onUpdate:modelValue":i[3]||=e=>Y.namePrefix=e,"data-test-id":`wizard-name-prefix`},null,8,[`modelValue`])]),_:1},8,[`label`]),c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.count`)},{default:v(()=>[c(u(A),{modelValue:Y.count,"onUpdate:modelValue":i[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`])]),c(u(O),{label:u(x)(`devicesModule.fields.devices.room.title`)},{default:v(()=>[c(u(j),{modelValue:Y.roomId,"onUpdate:modelValue":i[5]||=e=>Y.roomId=e,loading:q.value,filterable:``,clearable:``,class:`w-full`,"data-test-id":`wizard-room`},{default:v(()=>[(m(!0),e(b,null,_(Ie.value,e=>(m(),l(u(M),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.structure`)},{default:v(()=>[r(`div`,De,[c(u(N),{modelValue:Y.requiredChannelsOnly,"onUpdate:modelValue":i[6]||=e=>Y.requiredChannelsOnly=e},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.fields.requiredChannelsOnly`)),1)]),_:1},8,[`modelValue`]),c(u(N),{modelValue:Y.requiredPropertiesOnly,"onUpdate:modelValue":i[7]||=e=>Y.requiredPropertiesOnly=e},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.fields.requiredPropertiesOnly`)),1)]),_:1},8,[`modelValue`])])]),_:1},8,[`label`]),c(u(O),null,{default:v(()=>[c(u(N),{modelValue:Y.autoSimulate,"onUpdate:modelValue":i[8]||=e=>Y.autoSimulate=e},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.fields.autoSimulate`)),1)]),_:1},8,[`modelValue`])]),_:1}),Y.autoSimulate?(m(),e(`div`,Oe,[c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.simulateInterval`)},{default:v(()=>[c(u(A),{modelValue:Y.simulateInterval,"onUpdate:modelValue":i[9]||=e=>Y.simulateInterval=e,min:1e3,max:6e4,step:1e3,class:`w-full`},null,8,[`modelValue`])]),_:1},8,[`label`])])):g(``,!0),c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.behaviorMode`)},{default:v(()=>[c(u(j),{modelValue:Y.behaviorMode,"onUpdate:modelValue":i[10]||=e=>Y.behaviorMode=e,class:`w-full`,"data-test-id":`wizard-behavior-mode`},{default:v(()=>[c(u(M),{label:u(x)(`simulatorPlugin.wizard.behaviorModes.default`),value:u(S).default},null,8,[`label`,`value`]),c(u(M),{label:u(x)(`simulatorPlugin.wizard.behaviorModes.realistic`),value:u(S).realistic},null,8,[`label`,`value`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])]),_:1})])):K.value===1?(m(),e(`div`,ke,[u(G)?(m(),l(u(k),{key:0,type:`error`,title:u(G),closable:!1,"show-icon":``},null,8,[`title`])):g(``,!0),c(u(k),{type:`info`,title:u(x)(`simulatorPlugin.wizard.review.title`,{count:Y.count}),description:u(x)(`simulatorPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),c(u(me),{column:1,border:``},{default:v(()=>[c(u(T),{label:u(x)(`simulatorPlugin.wizard.fields.category`)},{default:v(()=>[s(p(Le.value?.name),1)]),_:1},8,[`label`]),c(u(T),{label:u(x)(`devicesModule.fields.devices.room.title`)},{default:v(()=>[s(p(Re.value),1)]),_:1},8,[`label`])]),_:1}),c(u(D),{data:ze.value,"max-height":`360`,"data-test-id":`wizard-preview-names`},{default:v(()=>[c(u(E),{type:`index`,width:`70`}),c(u(E),{label:u(x)(`simulatorPlugin.wizard.fields.deviceName`)},{default:v(({row:e})=>[s(p(e),1)]),_:1},8,[`label`])]),_:1},8,[`data`])])):(m(),e(`div`,Ae,[c(u(k),{type:Be.value===0?`success`:Z.value===0?`error`:`warning`,title:u(x)(`simulatorPlugin.wizard.results.summary`,{succeeded:Z.value,failed:Be.value}),closable:!1,"show-icon":``},null,8,[`type`,`title`]),c(u(D),{data:u(U)},{default:v(()=>[c(u(E),{prop:`name`,label:u(x)(`simulatorPlugin.wizard.fields.deviceName`)},null,8,[`label`]),c(u(E),{label:u(x)(`simulatorPlugin.wizard.results.status`)},{default:v(({row:e})=>[c(u(de),{type:e.success?`success`:`danger`},{default:v(()=>[s(p(u(x)(e.success?`simulatorPlugin.wizard.results.created`:`simulatorPlugin.wizard.results.failed`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),c(u(E),{label:u(x)(`simulatorPlugin.wizard.results.details`)},{default:v(({row:t})=>[t.success&&t.deviceId?(m(),l(u(h),{key:0,link:``,type:`primary`,"data-test-id":`wizard-view-device-${t.deviceId}`,onClick:e=>$(t.deviceId)},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.viewDevice`)),1)]),_:1},8,[`data-test-id`,`onClick`])):(m(),e(`span`,je,p(t.error),1))]),_:1},8,[`label`])]),_:1},8,[`data`])]))])]),_:1})]),_:1})]),u(L)?g(``,!0):(m(),e(`div`,Me,[K.value===1?(m(),l(u(h),{key:0,disabled:u(W),"data-test-id":`wizard-back`,onClick:i[11]||=e=>K.value=0},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),c(u(h),{disabled:u(W),"data-test-id":`wizard-cancel`,onClick:Q},{default:v(()=>[s(p(u(x)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===0?(m(),l(u(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:i[12]||=e=>K.value=1},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(m(),l(u(h),{key:2,type:`primary`,loading:u(W),"data-test-id":`wizard-generate`,onClick:He},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(m(),l(u(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]))],64))}});export{V as default};
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Ci as t,D as n,Dr as r,Er as i,Fr as a,Kr as o,Mr as s,Nr as c,Or as l,Pi as u,T as d,Ti as f,Xi as p,ei as m,jr as ee,k as h,kr as g,ni as _,pi as v,r as y,x as te,xr as b}from"./icon-with-child-C0yuv0oQ.js";import{t as ne}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as re,Di as ie,Gr as ae,Hr as oe,Qr as se,Ti as ce,Wr as le,_ as ue,bi as de,ei as fe,h as pe,m as x,mr as S,r as C,x as w}from"./common-Cq0z9nNV.js";import{n as T,t as me}from"./descriptions-CK3XrcY5.js";import{n as E,t as D}from"./table-CFRJXsHQ.js";import{n as O,t as he}from"./form-CoKeb4n7.js";import{t as k}from"./alert-C46gt4gd.js";import{t as A}from"./input-number-LzEdwV5R.js";import{r as j,t as M}from"./select-BZCtBPAN.js";import{t as ge}from"./card-CfYeWlyn.js";import{t as N}from"./checkbox-DTPMEXAL.js";import{n as _e,t as P}from"./steps-CFlcEz-i.js";import{t as ve}from"./dist-DJgPCOr0.js";import{g as ye,n as be}from"./keys-bvwxU-Nn.js";import{o as F}from"./keys-DMEIfK2a.js";import{o as I}from"./devices.constants-cxt4nI1j.js";import"./devices-BEzn7YNW.js";import{i as L,t as xe}from"./simulator.constants-CaAdgiGs.js";var R=20,z=3,B=(e,t)=>e instanceof Error?e.message:t,Se=()=>{let e=x(),t=ue(),n=w().getStore(F),r=f([]),i=f(!1),a=f(null),o=f([]),s=f(!1),c=f(null),l=!1,u=null,d=async()=>{if(!l)return u===null?(i.value=!0,a.value=null,u=(async()=>{try{let{data:t,error:n}=await e.client.GET(`/${y}/${L}/simulator/categories`,{});if(t===void 0){let e=`Failed to load simulator device categories`;throw Error(n?C(n,e):e)}r.value=t.data.map(e=>({category:e.category,name:e.name,description:e.description})),l=!0}catch(e){throw a.value=B(e,`Failed to load simulator device categories`),e}finally{i.value=!1,u=null}})(),u):u},p=e=>{if(!Number.isInteger(e.count)||e.count<1||e.count>R)throw RangeError(`Device count must be an integer between 1 and ${R}`);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:d,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=B(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(`/${y}/${L}/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?C(a,e):e};continue}l[t]={name:n,success:!0,deviceId:i.data.id}}catch(e){l[t]={name:n,success:!1,error:B(e,`Failed to generate ${n}`)}}}};try{if(await Promise.all(Array.from({length:Math.min(z,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:B(e,`Unknown device store refresh error`)})}}finally{s.value=!1}},reset:()=>{o.value=[],c.value=null}}},Ce={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`},we={class:`p-4`},Te={key:0,class:`space-y-4`,"data-test-id":`wizard-configure`},Ee={class:`grid grid-cols-1 md:grid-cols-2 gap-x-4`},De={class:`flex flex-col gap-2`},Oe={key:0},ke={key:1,class:`space-y-4`,"data-test-id":`wizard-review`},Ae={key:2,class:`space-y-4`,"data-test-id":`wizard-results`},je={key:1},Me={key:2,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},V=a({name:`ViewSimulatorDeviceWizard`,__name:`view-simulator-device-wizard`,setup(a,{expose:y}){let{t:x}=d(),C=te(),F=ue(),{isMDDevice:L,isLGDevice:R}=ae(),z=w().getStore(be);ne({title:x(`simulatorPlugin.wizard.title`)});let{categories:B,loadingCategories:V,categoriesError:H,results:U,generating:W,generationError:G,fetchCategories:Ne,generate:Pe,reset:Fe}=Se(),K=f(0),q=f(!1),J=f(null),Y=t({category:null,count:1,namePrefix:``,roomId:null,requiredChannelsOnly:!1,requiredPropertiesOnly:!1,autoSimulate:!1,simulateInterval:5e3,behaviorMode:S.default}),Ie=i(()=>ve(z.findAll().filter(e=>e.type===ye.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),Le=i(()=>B.value.find(e=>e.category===Y.category)),Re=i(()=>Ie.value.find(e=>e.value===Y.roomId)?.label??x(`simulatorPlugin.wizard.review.noRoom`)),ze=i(()=>Array.from({length:Y.count},(e,t)=>Y.count===1?Y.namePrefix.trim():`${Y.namePrefix.trim()} ${t+1}`)),X=i(()=>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=i(()=>U.value.filter(e=>e.success).length),Be=i(()=>U.value.length-Z.value),Ve=i(()=>[{label:x(`devicesModule.breadcrumbs.devices.list`),route:C.resolve({name:I.DEVICES})},{label:x(`simulatorPlugin.wizard.breadcrumb`),route:C.resolve({name:xe.WIZARD})}]);oe(()=>!W.value);let Q=()=>{if(W.value)return;let e={name:I.DEVICES};R.value?C.replace(e):C.push(e)},He=async()=>{if(!(!X.value||W.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=()=>{Ne().catch(e=>F.error(`Failed to load simulator categories`,e))},Ge=async()=>{q.value=!0,J.value=null;try{await z.fetch()}catch(e){J.value=x(`simulatorPlugin.wizard.errors.roomsLoadFailed`),F.error(`Failed to load rooms`,e)}finally{q.value=!1}},Ke=()=>{Ge()},$=e=>{let t={name:I.DEVICE,params:{id:e}};R.value?C.replace(t):C.push(t)};return o(()=>{Ne().catch(e=>F.error(`Failed to load simulator categories`,e)),Ge()}),y({activeStep:K,form:Y,previewNames:ze,onRetryCategories:We,onRetryRooms:Ke,onViewDevice:$}),(t,i)=>(m(),e(b,null,[u(L)?g(``,!0):(m(),l(u(se),{key:0,teleport:``},{icon:v(()=>[c(u(n),{icon:`mdi:test-tube`})]),title:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.title`)),1)]),subtitle:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.subtitle`)),1)]),_:1})),u(L)?g(``,!0):(m(),l(u(re),{key:1,align:u(fe).LEFT,teleport:``,small:``,onClick:Q},{icon:v(()=>[c(u(n),{icon:`mdi:chevron-left`})]),_:1},8,[`align`])),c(u(le),{items:Ve.value},null,8,[`items`]),c(u(pe),{heading:u(x)(`simulatorPlugin.wizard.title`),"sub-heading":u(x)(`simulatorPlugin.wizard.subtitle`),icon:`mdi:test-tube`},ee({_:2},[u(L)?{name:`extra`,fn:v(()=>[c(u(h),{disabled:u(W),"data-test-id":`wizard-cancel`,onClick:Q},{default:v(()=>[s(p(u(x)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===1?(m(),l(u(h),{key:0,disabled:u(W),"data-test-id":`wizard-back`,onClick:i[0]||=e=>K.value=0},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),K.value===0?(m(),l(u(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:i[1]||=e=>K.value=1},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(m(),l(u(h),{key:2,type:`primary`,loading:u(W),"data-test-id":`wizard-generate`,onClick:He},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(m(),l(u(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),r(`div`,Ce,[c(u(ge),{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:v(()=>[c(u(_e),{active:K.value,"finish-status":`success`,"align-center":``},{default:v(()=>[c(u(P),{title:u(x)(`simulatorPlugin.wizard.steps.configure`)},null,8,[`title`]),c(u(P),{title:u(x)(`simulatorPlugin.wizard.steps.review`)},null,8,[`title`]),c(u(P),{title:u(x)(`simulatorPlugin.wizard.steps.results`)},null,8,[`title`])]),_:1},8,[`active`])]),default:v(()=>[c(u(ce),{class:`flex-1 overflow-hidden h-full`},{default:v(()=>[r(`div`,we,[K.value===0?(m(),e(`div`,Te,[u(H)?(m(),l(u(k),{key:0,type:`error`,title:u(H),closable:!1,"show-icon":``},{default:v(()=>[c(u(h),{size:`small`,loading:u(V),"data-test-id":`wizard-retry-categories`,onClick:We},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.retryCategories`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),J.value?(m(),l(u(k),{key:1,type:`error`,title:J.value,closable:!1,"show-icon":``,"data-test-id":`wizard-rooms-error`},{default:v(()=>[c(u(h),{size:`small`,loading:q.value,"data-test-id":`wizard-retry-rooms`,onClick:Ke},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.retryRooms`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),c(u(he),{"label-position":`top`},{default:v(()=>[c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.category`),required:``},{default:v(()=>[c(u(j),{modelValue:Y.category,"onUpdate:modelValue":i[2]||=e=>Y.category=e,loading:u(V),filterable:``,class:`w-full`,"data-test-id":`wizard-category`},{default:v(()=>[(m(!0),e(b,null,_(u(B),e=>(m(),l(u(M),{key:e.category,label:e.name,value:e.category},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),r(`div`,Ee,[c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.namePrefix`),required:``},{default:v(()=>[c(u(ie),{modelValue:Y.namePrefix,"onUpdate:modelValue":i[3]||=e=>Y.namePrefix=e,"data-test-id":`wizard-name-prefix`},null,8,[`modelValue`])]),_:1},8,[`label`]),c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.count`)},{default:v(()=>[c(u(A),{modelValue:Y.count,"onUpdate:modelValue":i[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`])]),c(u(O),{label:u(x)(`devicesModule.fields.devices.room.title`)},{default:v(()=>[c(u(j),{modelValue:Y.roomId,"onUpdate:modelValue":i[5]||=e=>Y.roomId=e,loading:q.value,filterable:``,clearable:``,class:`w-full`,"data-test-id":`wizard-room`},{default:v(()=>[(m(!0),e(b,null,_(Ie.value,e=>(m(),l(u(M),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.structure`)},{default:v(()=>[r(`div`,De,[c(u(N),{modelValue:Y.requiredChannelsOnly,"onUpdate:modelValue":i[6]||=e=>Y.requiredChannelsOnly=e},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.fields.requiredChannelsOnly`)),1)]),_:1},8,[`modelValue`]),c(u(N),{modelValue:Y.requiredPropertiesOnly,"onUpdate:modelValue":i[7]||=e=>Y.requiredPropertiesOnly=e},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.fields.requiredPropertiesOnly`)),1)]),_:1},8,[`modelValue`])])]),_:1},8,[`label`]),c(u(O),null,{default:v(()=>[c(u(N),{modelValue:Y.autoSimulate,"onUpdate:modelValue":i[8]||=e=>Y.autoSimulate=e},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.fields.autoSimulate`)),1)]),_:1},8,[`modelValue`])]),_:1}),Y.autoSimulate?(m(),e(`div`,Oe,[c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.simulateInterval`)},{default:v(()=>[c(u(A),{modelValue:Y.simulateInterval,"onUpdate:modelValue":i[9]||=e=>Y.simulateInterval=e,min:1e3,max:6e4,step:1e3,class:`w-full`},null,8,[`modelValue`])]),_:1},8,[`label`])])):g(``,!0),c(u(O),{label:u(x)(`simulatorPlugin.wizard.fields.behaviorMode`)},{default:v(()=>[c(u(j),{modelValue:Y.behaviorMode,"onUpdate:modelValue":i[10]||=e=>Y.behaviorMode=e,class:`w-full`,"data-test-id":`wizard-behavior-mode`},{default:v(()=>[c(u(M),{label:u(x)(`simulatorPlugin.wizard.behaviorModes.default`),value:u(S).default},null,8,[`label`,`value`]),c(u(M),{label:u(x)(`simulatorPlugin.wizard.behaviorModes.realistic`),value:u(S).realistic},null,8,[`label`,`value`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])]),_:1})])):K.value===1?(m(),e(`div`,ke,[u(G)?(m(),l(u(k),{key:0,type:`error`,title:u(G),closable:!1,"show-icon":``},null,8,[`title`])):g(``,!0),c(u(k),{type:`info`,title:u(x)(`simulatorPlugin.wizard.review.title`,{count:Y.count}),description:u(x)(`simulatorPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),c(u(me),{column:1,border:``},{default:v(()=>[c(u(T),{label:u(x)(`simulatorPlugin.wizard.fields.category`)},{default:v(()=>[s(p(Le.value?.name),1)]),_:1},8,[`label`]),c(u(T),{label:u(x)(`devicesModule.fields.devices.room.title`)},{default:v(()=>[s(p(Re.value),1)]),_:1},8,[`label`])]),_:1}),c(u(D),{data:ze.value,"max-height":`360`,"data-test-id":`wizard-preview-names`},{default:v(()=>[c(u(E),{type:`index`,width:`70`}),c(u(E),{label:u(x)(`simulatorPlugin.wizard.fields.deviceName`)},{default:v(({row:e})=>[s(p(e),1)]),_:1},8,[`label`])]),_:1},8,[`data`])])):(m(),e(`div`,Ae,[c(u(k),{type:Be.value===0?`success`:Z.value===0?`error`:`warning`,title:u(x)(`simulatorPlugin.wizard.results.summary`,{succeeded:Z.value,failed:Be.value}),closable:!1,"show-icon":``},null,8,[`type`,`title`]),c(u(D),{data:u(U)},{default:v(()=>[c(u(E),{prop:`name`,label:u(x)(`simulatorPlugin.wizard.fields.deviceName`)},null,8,[`label`]),c(u(E),{label:u(x)(`simulatorPlugin.wizard.results.status`)},{default:v(({row:e})=>[c(u(de),{type:e.success?`success`:`danger`},{default:v(()=>[s(p(u(x)(e.success?`simulatorPlugin.wizard.results.created`:`simulatorPlugin.wizard.results.failed`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),c(u(E),{label:u(x)(`simulatorPlugin.wizard.results.details`)},{default:v(({row:t})=>[t.success&&t.deviceId?(m(),l(u(h),{key:0,link:``,type:`primary`,"data-test-id":`wizard-view-device-${t.deviceId}`,onClick:e=>$(t.deviceId)},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.viewDevice`)),1)]),_:1},8,[`data-test-id`,`onClick`])):(m(),e(`span`,je,p(t.error),1))]),_:1},8,[`label`])]),_:1},8,[`data`])]))])]),_:1})]),_:1})]),u(L)?g(``,!0):(m(),e(`div`,Me,[K.value===1?(m(),l(u(h),{key:0,disabled:u(W),"data-test-id":`wizard-back`,onClick:i[11]||=e=>K.value=0},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),c(u(h),{disabled:u(W),"data-test-id":`wizard-cancel`,onClick:Q},{default:v(()=>[s(p(u(x)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===0?(m(),l(u(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:i[12]||=e=>K.value=1},{default:v(()=>[s(p(u(x)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(m(),l(u(h),{key:2,type:`primary`,loading:u(W),"data-test-id":`wizard-generate`,onClick:He},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(m(),l(u(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:v(()=>[s(p(u(x)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]))],64))}});export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Dr as t,Er as n,Fr as r,Kr as i,Nr as a,Pi as o,T as ee,bi as te,ei as s,pi as c,x as ne,xr as l}from"./icon-with-child-C0yuv0oQ.js";import{t as u}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{Wr as d,h as f}from"./common-Cq0z9nNV.js";import{t as p}from"./card-CfYeWlyn.js";import{n as m,t as h}from"./col-DlQWLFQs.js";import{l as re,s as g}from"./components-
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Dr as t,Er as n,Fr as r,Kr as i,Nr as a,Pi as o,T as ee,bi as te,ei as s,pi as c,x as ne,xr as l}from"./icon-with-child-C0yuv0oQ.js";import{t as u}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{Wr as d,h as f}from"./common-Cq0z9nNV.js";import{t as p}from"./card-CfYeWlyn.js";import{n as m,t as h}from"./col-DlQWLFQs.js";import{l as re,s as g}from"./components-BJ3MRhfv.js";import{o as _}from"./config-COwev7fh.js";import{i as v}from"./system.constants-BvSIFqdm.js";import"./system-BiamsEK0.js";import{S as y,a as b,c as x,d as S,f as C,g as w,h as T,i as E,l as D,m as O,o as k,p as A,s as j,u as M,v as N}from"./weather-C6B6lUio.js";var P={class:`p-4`},F={class:`grid gap-2`},I=r({__name:`view-stats`,setup(r){let I=ne(),{t:L}=ee(),{stats:R,fetchStats:z,isLoading:B}=b(),{systemInfo:V,fetchSystemInfo:H,isLoading:U}=re(),{configApp:W,fetchConfigApp:G,isLoading:K}=_(),{systemLogs:q,fetchSystemLogs:J,areLoading:Y,refreshSystemLogs:X,resetFilter:ie,filters:Z,filtersActive:ae}=g({syncQuery:!1}),oe=n(()=>R.value?.[`api-module`]),se=n(()=>R.value?.[`websocket-module`]),Q=n(()=>R.value?.[`system-module`]),ce=n(()=>R.value?.[`dashboard-module`]),$=n(()=>R.value?.[`devices-module`]),le=()=>{I.push({name:v.SYSTEM_LOGS})},ue=n(()=>[{label:L(`statsModule.breadcrumbs.stats`),route:I.resolve({name:y.STATS})}]);return i(async()=>{z().catch(e=>{throw new N(`Something went wrong`,e)}),H().catch(e=>{throw new N(`Something went wrong`,e)}),G().catch(e=>{throw new N(`Something went wrong`,e)}),J().catch(e=>{throw new N(`Something went wrong`,e)})}),u({title:L(`statsModule.meta.stats.title`)}),(n,r)=>(s(),e(l,null,[a(o(d),{items:ue.value},null,8,[`items`]),a(o(f),{heading:o(L)(`statsModule.headings.stats`),"sub-heading":o(L)(`statsModule.subHeadings.stats`),icon:`mdi:monitor-dashboard`},null,8,[`heading`,`sub-heading`]),t(`div`,P,[a(o(m),{gutter:20},{default:c(()=>[a(o(h),{span:9},{default:c(()=>[t(`div`,F,[a(o(A),{"system-info":o(V),"config-app":o(W),loading:o(U)||o(K)},null,8,[`system-info`,`config-app`,`loading`]),a(o(E)),a(o(O))])]),_:1}),a(o(h),{span:15},{default:c(()=>[a(o(T),{"api-module-section":oe.value,"websocket-module-section":se.value,loading:o(B)},null,8,[`api-module-section`,`websocket-module-section`,`loading`]),a(o(m),{class:`mt-2 mb-2`,gutter:10},{default:c(()=>[a(o(h),{span:8},{default:c(()=>[a(o(C),{"system-module-section":Q.value,"system-info":o(V),loading:o(B)||o(U),class:`h-full`},null,8,[`system-module-section`,`system-info`,`loading`])]),_:1}),a(o(h),{span:8},{default:c(()=>[a(o(x),{"system-module-section":Q.value,"system-info":o(V),loading:o(B)||o(U),class:`h-full`},null,8,[`system-module-section`,`system-info`,`loading`])]),_:1}),a(o(h),{span:8},{default:c(()=>[a(o(k),{"system-module-section":Q.value,loading:o(B),class:`h-full`},null,8,[`system-module-section`,`loading`])]),_:1})]),_:1}),a(o(p),{shadow:`never`,class:`mb-2`},{default:c(()=>[a(o(m),{gutter:16},{default:c(()=>[a(o(h),{xs:24,sm:12,md:6},{default:c(()=>[a(o(j),{loading:o(B)},null,8,[`loading`])]),_:1}),a(o(h),{xs:24,sm:12,md:6},{default:c(()=>[a(o(S),{"dashboard-module-section":ce.value,loading:o(B)},null,8,[`dashboard-module-section`,`loading`])]),_:1}),a(o(h),{xs:24,sm:12,md:6},{default:c(()=>[a(o(M),{"devices-module-section":$.value,loading:o(B)},null,8,[`devices-module-section`,`loading`])]),_:1}),a(o(h),{xs:24,sm:12,md:6},{default:c(()=>[a(o(D),{"devices-module-section":$.value,loading:o(B)},null,8,[`devices-module-section`,`loading`])]),_:1})]),_:1})]),_:1}),a(o(w),{filters:o(Z),"onUpdate:filters":r[0]||=e=>te(Z)?Z.value=e:null,"system-logs":o(q),"filters-active":o(ae),loading:o(Y),onRefresh:o(X),onReset:o(ie),onDetail:le},null,8,[`filters`,`system-logs`,`filters-active`,`loading`,`onRefresh`,`onReset`])]),_:1})]),_:1})])],64))}});export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ai as e,Ar as t,Bi as n,Br as r,D as i,Dr as a,Er as o,Fi as s,Fr as c,H as l,Hi as u,Ki as d,Mr as f,Mt as p,Nr as m,Nt as h,Oi as g,Or as _,Pi as v,R as y,T as b,Ti as x,Ur as S,Wi as C,Wr as w,Xi as T,Yi as ee,an as te,bn as E,bt as ne,cn as D,ct as re,di as O,dr as ie,ei as k,et as ae,it as oe,jr as A,k as j,kr as M,ln as N,ni as se,on as P,pi as F,qi as I,qr as ce,ri as L,st as le,ti as ue,tt as de,un as fe,vr as R,x as pe,xn as me,xr as z,yr as B,yt as he}from"./icon-with-child-C0yuv0oQ.js";import{t as ge}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{Gr as _e,Qr as ve,Wr as ye,h as be,ki as V,ma as xe,wa as H}from"./common-Cq0z9nNV.js";import{r as U}from"./form-CoKeb4n7.js";import{n as Se,x as Ce}from"./components-B-hsdZRB.js";import{i as W}from"./system.constants-BvSIFqdm.js";var we=`ElUpload`,Te=class extends Error{constructor(e,t,n,r){super(e),this.name=`UploadAjaxError`,this.status=t,this.method=n,this.url=r}};function G(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 Te(r,n.status,t.method,e)}function Ee(e){let t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}var K=e=>{typeof XMLHttpRequest>`u`&&P(we,`XMLHttpRequest is undefined`);let t=new XMLHttpRequest,r=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 i=new FormData;if(e.data)for(let[t,r]of Object.entries(e.data))n(r)?r.length===2&&r[0]instanceof Blob&&d(r[1])?i.append(t,r[0],r[1]):r.forEach(e=>{i.append(t,e)}):i.append(t,r);i.append(e.filename,e.file,e.file.name),t.addEventListener(`error`,()=>{e.onError(G(r,e,t))}),t.addEventListener(`load`,()=>{if(t.status<200||t.status>=300)return e.onError(G(r,e,t));e.onSuccess(Ee(t))}),t.open(e.method,r,!0),e.withCredentials&&`withCredentials`in t&&(t.withCredentials=!0);let a=e.headers||{};if(a instanceof Headers)a.forEach((e,n)=>t.setRequestHeader(n,e));else for(let[e,n]of Object.entries(a))E(n)||t.setRequestHeader(e,String(n));return t.send(i),t},q=[`text`,`picture`,`picture-card`],De=1,J=()=>Date.now()+De++,Y=D({action:{type:String,default:`#`},headers:{type:N(Object)},method:{type:String,default:`post`},data:{type:N([Object,Function,Promise]),default:()=>V({})},multiple:Boolean,name:{type:String,default:`file`},drag:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:``},fileList:{type:N(Array),default:()=>V([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:q,default:`text`},httpRequest:{type:N(Function),default:K},disabled:{type:Boolean,default:void 0},limit:Number,directory:Boolean}),Oe=D({...Y,beforeUpload:{type:N(Function),default:s},beforeRemove:{type:N(Function)},onRemove:{type:N(Function),default:s},onChange:{type:N(Function),default:s},onPreview:{type:N(Function),default:s},onSuccess:{type:N(Function),default:s},onProgress:{type:N(Function),default:s},onError:{type:N(Function),default:s},onExceed:{type:N(Function),default:s},crossorigin:{type:N(String)}}),X={action:`#`,method:`post`,data:()=>V({}),name:`file`,showFileList:!0,accept:``,fileList:()=>V([]),autoUpload:!0,listType:`text`,httpRequest:K,disabled:void 0};({...X});var Z=Symbol(`uploadContextKey`),ke=D({files:{type:N(Array),default:()=>V([])},disabled:{type:Boolean,default:void 0},handlePreview:{type:N(Function),default:s},listType:{type:String,values:q,default:`text`},crossorigin:{type:N(String)}}),Ae={remove:e=>!!e},je=D({...Y,beforeUpload:{type:N(Function),default:s},onRemove:{type:N(Function),default:s},onStart:{type:N(Function),default:s},onSuccess:{type:N(Function),default:s},onProgress:{type:N(Function),default:s},onError:{type:N(Function),default:s},onExceed:{type:N(Function),default:s}});({...X});var Me=D({disabled:{type:Boolean,default:void 0},directory:Boolean}),Ne={file:e=>n(e)},Pe=[`tabindex`,`aria-disabled`,`onKeydown`],Fe=[`src`,`crossorigin`],Ie=[`onClick`],Le=[`title`],Re=[`onClick`],ze=[`onClick`],Q=c({name:`ElUploadList`,__name:`upload-list`,props:ke,emits:Ae,setup(e,{emit:n}){let r=e,i=n,{t:s}=h(),c=p(`upload`),u=p(`icon`),d=p(`list`),f=y(),g=x(!1),b=o(()=>[c.b(`list`),c.bm(`list`,r.listType),c.is(`disabled`,f.value)]),S=e=>{i(`remove`,e)};return(n,r)=>(k(),_(ie,{tag:`ul`,class:I(b.value),name:v(d).b()},{default:F(()=>[(k(!0),t(z,null,se(e.files,(i,o)=>(k(),t(`li`,{key:i.uid||i.name,class:I([v(c).be(`list`,`item`),v(c).is(i.status),{focusing:g.value}]),tabindex:v(f)?void 0:0,"aria-disabled":v(f),role:`button`,onKeydown:R(e=>!v(f)&&S(i),[`delete`]),onFocus:r[0]||=e=>g.value=!0,onBlur:r[1]||=e=>g.value=!1,onClick:r[2]||=e=>g.value=!1},[L(n.$slots,`default`,{file:i,index:o},()=>[e.listType===`picture`||i.status!==`uploading`&&e.listType===`picture-card`?(k(),t(`img`,{key:0,class:I(v(c).be(`list`,`item-thumbnail`)),src:i.url,crossorigin:e.crossorigin,alt:``},null,10,Fe)):M(`v-if`,!0),i.status===`uploading`||e.listType!==`picture-card`?(k(),t(`div`,{key:1,class:I(v(c).be(`list`,`item-info`))},[a(`a`,{class:I(v(c).be(`list`,`item-name`)),onClick:B(t=>e.handlePreview(i),[`prevent`])},[m(v(l),{class:I(v(u).m(`document`))},{default:F(()=>[m(v(re))]),_:1},8,[`class`]),a(`span`,{class:I(v(c).be(`list`,`item-file-name`)),title:i.name},T(i.name),11,Le)],10,Ie),i.status===`uploading`?(k(),_(v(Ce),{key:0,type:e.listType===`picture-card`?`circle`:`line`,"stroke-width":e.listType===`picture-card`?6:2,percentage:Number(i.percentage),style:ee(e.listType===`picture-card`?``:`margin-top: 0.5rem`)},null,8,[`type`,`stroke-width`,`percentage`,`style`])):M(`v-if`,!0)],2)):M(`v-if`,!0),a(`label`,{class:I(v(c).be(`list`,`item-status-label`))},[e.listType===`text`?(k(),_(v(l),{key:0,class:I([v(u).m(`upload-success`),v(u).m(`circle-check`)])},{default:F(()=>[m(v(de))]),_:1},8,[`class`])):[`picture-card`,`picture`].includes(e.listType)?(k(),_(v(l),{key:1,class:I([v(u).m(`upload-success`),v(u).m(`check`)])},{default:F(()=>[m(v(ae))]),_:1},8,[`class`])):M(`v-if`,!0)],2),v(f)?M(`v-if`,!0):(k(),_(v(l),{key:2,class:I(v(u).m(`close`)),"aria-label":v(s)(`el.upload.delete`),role:`button`,tabindex:`0`,onClick:e=>S(i),onKeydown:R(B(e=>S(i),[`prevent`]),[`enter`,`space`])},{default:F(()=>[m(v(oe))]),_:1},8,[`class`,`aria-label`,`onClick`,`onKeydown`])),v(f)?M(`v-if`,!0):(k(),t(`i`,{key:3,class:I(v(u).m(`close-tip`))},T(v(s)(`el.upload.deleteTip`)),3)),e.listType===`picture-card`?(k(),t(`span`,{key:4,class:I(v(c).be(`list`,`item-actions`))},[a(`span`,{class:I(v(c).be(`list`,`item-preview`)),onClick:t=>e.handlePreview(i)},[m(v(l),{class:I(v(u).m(`zoom-in`))},{default:F(()=>[m(v(he))]),_:1},8,[`class`])],10,Re),v(f)?M(`v-if`,!0):(k(),t(`span`,{key:0,class:I(v(c).be(`list`,`item-delete`)),onClick:e=>S(i)},[m(v(l),{class:I(v(u).m(`delete`))},{default:F(()=>[m(v(le))]),_:1},8,[`class`])],10,ze))],2)):M(`v-if`,!0)])],42,Pe))),128)),L(n.$slots,`append`)]),_:3},8,[`class`,`name`]))}}),$=`ElUploadDrag`,Be=c({name:$,__name:`upload-dragger`,props:Me,emits:Ne,setup(e,{emit:n}){let i=e,a=n;r(Z)||P($,`usage: <el-upload><el-upload-dragger /></el-upload>`);let o=p(`upload`),s=x(!1),c=y(),l=e=>new Promise((t,n)=>e.file(t,n)),u=async e=>{try{if(e.isFile){let t=await l(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=>u(e).catch(()=>[]));return H(await Promise.all(a))}}catch{return[]}return[]},d=async e=>{if(c.value)return;s.value=!1,e.stopPropagation();let t=Array.from(e.dataTransfer.files),n=e.dataTransfer.items||[];if(i.directory){let e=Array.from(n).map(e=>e?.webkitGetAsEntry?.()).filter(e=>e);a(`file`,H(await Promise.all(e.map(u))));return}t.forEach((e,t)=>{let r=n[t]?.webkitGetAsEntry?.();r&&(e.isDirectory=r.isDirectory)}),a(`file`,t)},f=()=>{c.value||(s.value=!0)},m=e=>{e.currentTarget.contains(e.relatedTarget)||(s.value=!1)};return(e,n)=>(k(),t(`div`,{class:I([v(o).b(`dragger`),v(o).is(`dragover`,s.value)]),onDrop:B(d,[`prevent`]),onDragover:B(f,[`prevent`]),onDragleave:B(m,[`prevent`])},[L(e.$slots,`default`)],34))}}),Ve=[`tabindex`,`aria-disabled`,`onKeydown`],He=[`name`,`disabled`,`multiple`,`accept`,`webkitdirectory`],Ue=c({name:`ElUploadContent`,inheritAttrs:!1,__name:`upload-content`,props:je,setup(e,{expose:n}){let r=e,i=p(`upload`),o=y(),s=g({}),c=g(),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=J(),o(e),t&&d(e)}},d=async e=>{if(c.value.value=``,!r.beforeUpload)return m(e);let t,n={};try{let i=r.data,a=r.beforeUpload(e);n=C(r.data)?U(r.data):r.data,t=await a,C(r.data)&&me(i,n)&&(n=U(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})),m(Object.assign(i,{uid:e.uid}),n)},f=async(e,t)=>u(e)?e(t):e,m=async(e,t)=>{let{headers:n,data:i,method:a,withCredentials:o,name:c,action:l,onProgress:u,onSuccess:d,onError:p,httpRequest:m}=r;try{t=await f(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=>{d(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)},h=e=>{let t=e.target.files;t&&l(Array.from(t))},b=()=>{o.value||(c.value.value=``,c.value.click())},x=()=>{b()};return n({abort:e=>{fe(s.value).filter(e?([t])=>String(e.uid)===t:()=>!0).forEach(([e,t])=>{t instanceof XMLHttpRequest&&t.abort(),delete s.value[e]})},upload:d}),(n,r)=>(k(),t(`div`,{class:I([v(i).b(),v(i).m(e.listType),v(i).is(`drag`,e.drag),v(i).is(`disabled`,v(o))]),tabindex:v(o)?void 0:0,"aria-disabled":v(o),role:`button`,onClick:b,onKeydown:R(B(x,[`self`]),[`enter`,`space`])},[e.drag?(k(),_(Be,{key:0,disabled:v(o),directory:e.directory,onFile:l},{default:F(()=>[L(n.$slots,`default`)]),_:3},8,[`disabled`,`directory`])):L(n.$slots,`default`,{key:1}),a(`input`,{ref_key:`inputRef`,ref:c,class:I(v(i).e(`input`)),name:e.name,disabled:v(o),multiple:e.multiple,accept:e.accept,webkitdirectory:e.directory||void 0,type:`file`,onChange:h,onClick:r[0]||=B(()=>{},[`stop`])},null,42,He)],42,Ve))}}),We=`ElUpload`,Ge=e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)},Ke=(e,t)=>{let n=xe(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=>{w(()=>e.onChange(t,n.value))},c=(t,i)=>{let a=r(i);a&&(console.error(t),a.status=`fail`,o(a),e.onError(t,a,n.value),s(a))},l=(t,i)=>{let a=r(i);a&&(e.onProgress(t,a,n.value),a.status=`uploading`,a.percentage=Math.round(t.percent))},u=(t,i)=>{let a=r(i);a&&(a.status=`success`,a.response=t,e.onSuccess(t,a,n.value),s(a))},d=t=>{E(t.uid)&&(t.uid=J());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){te(We,t.message),e.onError(t,r,n.value)}n.value=[...n.value,r],s(r)},f=async t=>{let a=t instanceof File?r(t):t;a||P(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 p(){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||=J(),t.status||=`success`},{immediate:!0,deep:!0}),{uploadFiles:n,abort:i,clearFiles:a,handleError:c,handleProgress:l,handleStart:d,handleSuccess:u,handleRemove:f,submit:p,revokeFileObjectURL:Ge}},qe=ne(c({name:`ElUpload`,__name:`upload`,props:Oe,setup(n,{expose:r}){let i=n,a=y(),s=g(),{abort:c,submit:l,clearFiles:u,uploadFiles:d,handleStart:f,handleError:p,handleRemove:h,handleSuccess:b,handleProgress:x,revokeFileObjectURL:C}=Ke(i,s),w=o(()=>i.listType===`picture-card`),T=o(()=>({...i,fileList:d.value,onStart:f,onProgress:x,onSuccess:b,onError:p,onRemove:h}));return ce(()=>{d.value.forEach(C)}),ue(Z,{accept:e(i,`accept`)}),r({abort:c,submit:l,clearFiles:u,handleStart:f,handleRemove:h}),(e,r)=>(k(),t(`div`,null,[w.value&&n.showFileList?(k(),_(Q,{key:0,disabled:v(a),"list-type":n.listType,files:v(d),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:v(h)},A({append:F(()=>[m(Ue,S({ref_key:`uploadRef`,ref:s},T.value),{default:F(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):M(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):M(`v-if`,!0)]),_:3},16)]),_:2},[e.$slots.file?{name:`default`,fn:F(({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`])):M(`v-if`,!0),!w.value||w.value&&!n.showFileList?(k(),_(Ue,S({key:1,ref_key:`uploadRef`,ref:s},T.value),{default:F(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):M(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):M(`v-if`,!0)]),_:3},16)):M(`v-if`,!0),e.$slots.trigger?L(e.$slots,`default`,{key:2}):M(`v-if`,!0),L(e.$slots,`tip`),!w.value&&n.showFileList?(k(),_(Q,{key:3,disabled:v(a),"list-type":n.listType,files:v(d),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:v(h)},A({_:2},[e.$slots.file?{name:`default`,fn:F(({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`])):M(`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=c({name:`ViewSystemBackups`,__name:`view-system-backups`,setup(e){let n=pe(),{t:r}=b(),{isMDDevice:s}=_e(),c=x(null),l=e=>c.value?.onUploadBackup(e)??Promise.resolve(),u=o(()=>[{label:r(`systemModule.breadcrumbs.system.system`),route:n.resolve({name:W.SYSTEM})},{label:r(`systemModule.breadcrumbs.systemBackups.list`),route:n.resolve({name:W.SYSTEM_BACKUPS})}]);return ge({title:r(`systemModule.meta.systemBackups.list.title`)}),(e,n)=>(k(),t(z,null,[m(v(ye),{items:u.value},null,8,[`items`]),v(s)?M(``,!0):(k(),_(v(ve),{key:0,teleport:``},{icon:F(()=>[m(v(i),{icon:`mdi:backup-restore`,class:`w[20px] h[20px]`})]),title:F(()=>[f(T(v(r)(`systemModule.headings.systemBackups.list`)),1)]),subtitle:F(()=>[f(T(v(r)(`systemModule.subHeadings.systemBackups.list`)),1)]),_:1})),m(v(be),{heading:v(r)(`systemModule.headings.systemBackups.list`),"sub-heading":v(r)(`systemModule.subHeadings.systemBackups.list`),icon:`mdi:backup-restore`},{extra:F(()=>[a(`div`,Je,[m(v(qe),{"auto-upload":!0,"show-file-list":!1,accept:`.tar.gz,.gz`,"http-request":l},{default:F(()=>[m(v(j),{plain:``},{icon:F(()=>[m(v(i),{icon:`mdi:upload`})]),default:F(()=>[f(` `+T(v(r)(`systemModule.backups.buttons.upload`)),1)]),_:1})]),_:1}),m(v(j),{type:`primary`,plain:``,onClick:n[0]||=e=>c.value?.openCreateDialog()},{icon:F(()=>[m(v(i),{icon:`mdi:plus`})]),default:F(()=>[f(` `+T(v(r)(`systemModule.backups.buttons.create`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),a(`div`,Ye,[m(v(Se),{ref_key:`backupsList`,ref:c},null,512)])],64))}});export{Xe as default};
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ai as e,Ar as t,Bi as n,Br as r,D as i,Dr as a,Er as o,Fi as s,Fr as c,H as l,Hi as u,Ki as d,Mr as f,Mt as p,Nr as m,Nt as h,Oi as g,Or as _,Pi as v,R as y,T as b,Ti as x,Ur as S,Wi as C,Wr as w,Xi as T,Yi as ee,an as te,bn as E,bt as ne,cn as D,ct as re,di as O,dr as ie,ei as k,et as ae,it as oe,jr as A,k as j,kr as M,ln as N,ni as se,on as P,pi as F,qi as I,qr as ce,ri as L,st as le,ti as ue,tt as de,un as fe,vr as R,x as pe,xn as me,xr as z,yr as B,yt as he}from"./icon-with-child-C0yuv0oQ.js";import{t as ge}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{Gr as _e,Qr as ve,Wr as ye,h as be,ki as V,ma as xe,wa as H}from"./common-Cq0z9nNV.js";import{r as U}from"./form-CoKeb4n7.js";import{n as Se,x as Ce}from"./components-BJ3MRhfv.js";import{i as W}from"./system.constants-BvSIFqdm.js";var we=`ElUpload`,Te=class extends Error{constructor(e,t,n,r){super(e),this.name=`UploadAjaxError`,this.status=t,this.method=n,this.url=r}};function G(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 Te(r,n.status,t.method,e)}function Ee(e){let t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}var K=e=>{typeof XMLHttpRequest>`u`&&P(we,`XMLHttpRequest is undefined`);let t=new XMLHttpRequest,r=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 i=new FormData;if(e.data)for(let[t,r]of Object.entries(e.data))n(r)?r.length===2&&r[0]instanceof Blob&&d(r[1])?i.append(t,r[0],r[1]):r.forEach(e=>{i.append(t,e)}):i.append(t,r);i.append(e.filename,e.file,e.file.name),t.addEventListener(`error`,()=>{e.onError(G(r,e,t))}),t.addEventListener(`load`,()=>{if(t.status<200||t.status>=300)return e.onError(G(r,e,t));e.onSuccess(Ee(t))}),t.open(e.method,r,!0),e.withCredentials&&`withCredentials`in t&&(t.withCredentials=!0);let a=e.headers||{};if(a instanceof Headers)a.forEach((e,n)=>t.setRequestHeader(n,e));else for(let[e,n]of Object.entries(a))E(n)||t.setRequestHeader(e,String(n));return t.send(i),t},q=[`text`,`picture`,`picture-card`],De=1,J=()=>Date.now()+De++,Y=D({action:{type:String,default:`#`},headers:{type:N(Object)},method:{type:String,default:`post`},data:{type:N([Object,Function,Promise]),default:()=>V({})},multiple:Boolean,name:{type:String,default:`file`},drag:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:``},fileList:{type:N(Array),default:()=>V([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:q,default:`text`},httpRequest:{type:N(Function),default:K},disabled:{type:Boolean,default:void 0},limit:Number,directory:Boolean}),Oe=D({...Y,beforeUpload:{type:N(Function),default:s},beforeRemove:{type:N(Function)},onRemove:{type:N(Function),default:s},onChange:{type:N(Function),default:s},onPreview:{type:N(Function),default:s},onSuccess:{type:N(Function),default:s},onProgress:{type:N(Function),default:s},onError:{type:N(Function),default:s},onExceed:{type:N(Function),default:s},crossorigin:{type:N(String)}}),X={action:`#`,method:`post`,data:()=>V({}),name:`file`,showFileList:!0,accept:``,fileList:()=>V([]),autoUpload:!0,listType:`text`,httpRequest:K,disabled:void 0};({...X});var Z=Symbol(`uploadContextKey`),ke=D({files:{type:N(Array),default:()=>V([])},disabled:{type:Boolean,default:void 0},handlePreview:{type:N(Function),default:s},listType:{type:String,values:q,default:`text`},crossorigin:{type:N(String)}}),Ae={remove:e=>!!e},je=D({...Y,beforeUpload:{type:N(Function),default:s},onRemove:{type:N(Function),default:s},onStart:{type:N(Function),default:s},onSuccess:{type:N(Function),default:s},onProgress:{type:N(Function),default:s},onError:{type:N(Function),default:s},onExceed:{type:N(Function),default:s}});({...X});var Me=D({disabled:{type:Boolean,default:void 0},directory:Boolean}),Ne={file:e=>n(e)},Pe=[`tabindex`,`aria-disabled`,`onKeydown`],Fe=[`src`,`crossorigin`],Ie=[`onClick`],Le=[`title`],Re=[`onClick`],ze=[`onClick`],Q=c({name:`ElUploadList`,__name:`upload-list`,props:ke,emits:Ae,setup(e,{emit:n}){let r=e,i=n,{t:s}=h(),c=p(`upload`),u=p(`icon`),d=p(`list`),f=y(),g=x(!1),b=o(()=>[c.b(`list`),c.bm(`list`,r.listType),c.is(`disabled`,f.value)]),S=e=>{i(`remove`,e)};return(n,r)=>(k(),_(ie,{tag:`ul`,class:I(b.value),name:v(d).b()},{default:F(()=>[(k(!0),t(z,null,se(e.files,(i,o)=>(k(),t(`li`,{key:i.uid||i.name,class:I([v(c).be(`list`,`item`),v(c).is(i.status),{focusing:g.value}]),tabindex:v(f)?void 0:0,"aria-disabled":v(f),role:`button`,onKeydown:R(e=>!v(f)&&S(i),[`delete`]),onFocus:r[0]||=e=>g.value=!0,onBlur:r[1]||=e=>g.value=!1,onClick:r[2]||=e=>g.value=!1},[L(n.$slots,`default`,{file:i,index:o},()=>[e.listType===`picture`||i.status!==`uploading`&&e.listType===`picture-card`?(k(),t(`img`,{key:0,class:I(v(c).be(`list`,`item-thumbnail`)),src:i.url,crossorigin:e.crossorigin,alt:``},null,10,Fe)):M(`v-if`,!0),i.status===`uploading`||e.listType!==`picture-card`?(k(),t(`div`,{key:1,class:I(v(c).be(`list`,`item-info`))},[a(`a`,{class:I(v(c).be(`list`,`item-name`)),onClick:B(t=>e.handlePreview(i),[`prevent`])},[m(v(l),{class:I(v(u).m(`document`))},{default:F(()=>[m(v(re))]),_:1},8,[`class`]),a(`span`,{class:I(v(c).be(`list`,`item-file-name`)),title:i.name},T(i.name),11,Le)],10,Ie),i.status===`uploading`?(k(),_(v(Ce),{key:0,type:e.listType===`picture-card`?`circle`:`line`,"stroke-width":e.listType===`picture-card`?6:2,percentage:Number(i.percentage),style:ee(e.listType===`picture-card`?``:`margin-top: 0.5rem`)},null,8,[`type`,`stroke-width`,`percentage`,`style`])):M(`v-if`,!0)],2)):M(`v-if`,!0),a(`label`,{class:I(v(c).be(`list`,`item-status-label`))},[e.listType===`text`?(k(),_(v(l),{key:0,class:I([v(u).m(`upload-success`),v(u).m(`circle-check`)])},{default:F(()=>[m(v(de))]),_:1},8,[`class`])):[`picture-card`,`picture`].includes(e.listType)?(k(),_(v(l),{key:1,class:I([v(u).m(`upload-success`),v(u).m(`check`)])},{default:F(()=>[m(v(ae))]),_:1},8,[`class`])):M(`v-if`,!0)],2),v(f)?M(`v-if`,!0):(k(),_(v(l),{key:2,class:I(v(u).m(`close`)),"aria-label":v(s)(`el.upload.delete`),role:`button`,tabindex:`0`,onClick:e=>S(i),onKeydown:R(B(e=>S(i),[`prevent`]),[`enter`,`space`])},{default:F(()=>[m(v(oe))]),_:1},8,[`class`,`aria-label`,`onClick`,`onKeydown`])),v(f)?M(`v-if`,!0):(k(),t(`i`,{key:3,class:I(v(u).m(`close-tip`))},T(v(s)(`el.upload.deleteTip`)),3)),e.listType===`picture-card`?(k(),t(`span`,{key:4,class:I(v(c).be(`list`,`item-actions`))},[a(`span`,{class:I(v(c).be(`list`,`item-preview`)),onClick:t=>e.handlePreview(i)},[m(v(l),{class:I(v(u).m(`zoom-in`))},{default:F(()=>[m(v(he))]),_:1},8,[`class`])],10,Re),v(f)?M(`v-if`,!0):(k(),t(`span`,{key:0,class:I(v(c).be(`list`,`item-delete`)),onClick:e=>S(i)},[m(v(l),{class:I(v(u).m(`delete`))},{default:F(()=>[m(v(le))]),_:1},8,[`class`])],10,ze))],2)):M(`v-if`,!0)])],42,Pe))),128)),L(n.$slots,`append`)]),_:3},8,[`class`,`name`]))}}),$=`ElUploadDrag`,Be=c({name:$,__name:`upload-dragger`,props:Me,emits:Ne,setup(e,{emit:n}){let i=e,a=n;r(Z)||P($,`usage: <el-upload><el-upload-dragger /></el-upload>`);let o=p(`upload`),s=x(!1),c=y(),l=e=>new Promise((t,n)=>e.file(t,n)),u=async e=>{try{if(e.isFile){let t=await l(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=>u(e).catch(()=>[]));return H(await Promise.all(a))}}catch{return[]}return[]},d=async e=>{if(c.value)return;s.value=!1,e.stopPropagation();let t=Array.from(e.dataTransfer.files),n=e.dataTransfer.items||[];if(i.directory){let e=Array.from(n).map(e=>e?.webkitGetAsEntry?.()).filter(e=>e);a(`file`,H(await Promise.all(e.map(u))));return}t.forEach((e,t)=>{let r=n[t]?.webkitGetAsEntry?.();r&&(e.isDirectory=r.isDirectory)}),a(`file`,t)},f=()=>{c.value||(s.value=!0)},m=e=>{e.currentTarget.contains(e.relatedTarget)||(s.value=!1)};return(e,n)=>(k(),t(`div`,{class:I([v(o).b(`dragger`),v(o).is(`dragover`,s.value)]),onDrop:B(d,[`prevent`]),onDragover:B(f,[`prevent`]),onDragleave:B(m,[`prevent`])},[L(e.$slots,`default`)],34))}}),Ve=[`tabindex`,`aria-disabled`,`onKeydown`],He=[`name`,`disabled`,`multiple`,`accept`,`webkitdirectory`],Ue=c({name:`ElUploadContent`,inheritAttrs:!1,__name:`upload-content`,props:je,setup(e,{expose:n}){let r=e,i=p(`upload`),o=y(),s=g({}),c=g(),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=J(),o(e),t&&d(e)}},d=async e=>{if(c.value.value=``,!r.beforeUpload)return m(e);let t,n={};try{let i=r.data,a=r.beforeUpload(e);n=C(r.data)?U(r.data):r.data,t=await a,C(r.data)&&me(i,n)&&(n=U(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})),m(Object.assign(i,{uid:e.uid}),n)},f=async(e,t)=>u(e)?e(t):e,m=async(e,t)=>{let{headers:n,data:i,method:a,withCredentials:o,name:c,action:l,onProgress:u,onSuccess:d,onError:p,httpRequest:m}=r;try{t=await f(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=>{d(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)},h=e=>{let t=e.target.files;t&&l(Array.from(t))},b=()=>{o.value||(c.value.value=``,c.value.click())},x=()=>{b()};return n({abort:e=>{fe(s.value).filter(e?([t])=>String(e.uid)===t:()=>!0).forEach(([e,t])=>{t instanceof XMLHttpRequest&&t.abort(),delete s.value[e]})},upload:d}),(n,r)=>(k(),t(`div`,{class:I([v(i).b(),v(i).m(e.listType),v(i).is(`drag`,e.drag),v(i).is(`disabled`,v(o))]),tabindex:v(o)?void 0:0,"aria-disabled":v(o),role:`button`,onClick:b,onKeydown:R(B(x,[`self`]),[`enter`,`space`])},[e.drag?(k(),_(Be,{key:0,disabled:v(o),directory:e.directory,onFile:l},{default:F(()=>[L(n.$slots,`default`)]),_:3},8,[`disabled`,`directory`])):L(n.$slots,`default`,{key:1}),a(`input`,{ref_key:`inputRef`,ref:c,class:I(v(i).e(`input`)),name:e.name,disabled:v(o),multiple:e.multiple,accept:e.accept,webkitdirectory:e.directory||void 0,type:`file`,onChange:h,onClick:r[0]||=B(()=>{},[`stop`])},null,42,He)],42,Ve))}}),We=`ElUpload`,Ge=e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)},Ke=(e,t)=>{let n=xe(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=>{w(()=>e.onChange(t,n.value))},c=(t,i)=>{let a=r(i);a&&(console.error(t),a.status=`fail`,o(a),e.onError(t,a,n.value),s(a))},l=(t,i)=>{let a=r(i);a&&(e.onProgress(t,a,n.value),a.status=`uploading`,a.percentage=Math.round(t.percent))},u=(t,i)=>{let a=r(i);a&&(a.status=`success`,a.response=t,e.onSuccess(t,a,n.value),s(a))},d=t=>{E(t.uid)&&(t.uid=J());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){te(We,t.message),e.onError(t,r,n.value)}n.value=[...n.value,r],s(r)},f=async t=>{let a=t instanceof File?r(t):t;a||P(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 p(){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||=J(),t.status||=`success`},{immediate:!0,deep:!0}),{uploadFiles:n,abort:i,clearFiles:a,handleError:c,handleProgress:l,handleStart:d,handleSuccess:u,handleRemove:f,submit:p,revokeFileObjectURL:Ge}},qe=ne(c({name:`ElUpload`,__name:`upload`,props:Oe,setup(n,{expose:r}){let i=n,a=y(),s=g(),{abort:c,submit:l,clearFiles:u,uploadFiles:d,handleStart:f,handleError:p,handleRemove:h,handleSuccess:b,handleProgress:x,revokeFileObjectURL:C}=Ke(i,s),w=o(()=>i.listType===`picture-card`),T=o(()=>({...i,fileList:d.value,onStart:f,onProgress:x,onSuccess:b,onError:p,onRemove:h}));return ce(()=>{d.value.forEach(C)}),ue(Z,{accept:e(i,`accept`)}),r({abort:c,submit:l,clearFiles:u,handleStart:f,handleRemove:h}),(e,r)=>(k(),t(`div`,null,[w.value&&n.showFileList?(k(),_(Q,{key:0,disabled:v(a),"list-type":n.listType,files:v(d),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:v(h)},A({append:F(()=>[m(Ue,S({ref_key:`uploadRef`,ref:s},T.value),{default:F(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):M(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):M(`v-if`,!0)]),_:3},16)]),_:2},[e.$slots.file?{name:`default`,fn:F(({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`])):M(`v-if`,!0),!w.value||w.value&&!n.showFileList?(k(),_(Ue,S({key:1,ref_key:`uploadRef`,ref:s},T.value),{default:F(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):M(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):M(`v-if`,!0)]),_:3},16)):M(`v-if`,!0),e.$slots.trigger?L(e.$slots,`default`,{key:2}):M(`v-if`,!0),L(e.$slots,`tip`),!w.value&&n.showFileList?(k(),_(Q,{key:3,disabled:v(a),"list-type":n.listType,files:v(d),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:v(h)},A({_:2},[e.$slots.file?{name:`default`,fn:F(({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`])):M(`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=c({name:`ViewSystemBackups`,__name:`view-system-backups`,setup(e){let n=pe(),{t:r}=b(),{isMDDevice:s}=_e(),c=x(null),l=e=>c.value?.onUploadBackup(e)??Promise.resolve(),u=o(()=>[{label:r(`systemModule.breadcrumbs.system.system`),route:n.resolve({name:W.SYSTEM})},{label:r(`systemModule.breadcrumbs.systemBackups.list`),route:n.resolve({name:W.SYSTEM_BACKUPS})}]);return ge({title:r(`systemModule.meta.systemBackups.list.title`)}),(e,n)=>(k(),t(z,null,[m(v(ye),{items:u.value},null,8,[`items`]),v(s)?M(``,!0):(k(),_(v(ve),{key:0,teleport:``},{icon:F(()=>[m(v(i),{icon:`mdi:backup-restore`,class:`w[20px] h[20px]`})]),title:F(()=>[f(T(v(r)(`systemModule.headings.systemBackups.list`)),1)]),subtitle:F(()=>[f(T(v(r)(`systemModule.subHeadings.systemBackups.list`)),1)]),_:1})),m(v(be),{heading:v(r)(`systemModule.headings.systemBackups.list`),"sub-heading":v(r)(`systemModule.subHeadings.systemBackups.list`),icon:`mdi:backup-restore`},{extra:F(()=>[a(`div`,Je,[m(v(qe),{"auto-upload":!0,"show-file-list":!1,accept:`.tar.gz,.gz`,"http-request":l},{default:F(()=>[m(v(j),{plain:``},{icon:F(()=>[m(v(i),{icon:`mdi:upload`})]),default:F(()=>[f(` `+T(v(r)(`systemModule.backups.buttons.upload`)),1)]),_:1})]),_:1}),m(v(j),{type:`primary`,plain:``,onClick:n[0]||=e=>c.value?.openCreateDialog()},{icon:F(()=>[m(v(i),{icon:`mdi:plus`})]),default:F(()=>[f(` `+T(v(r)(`systemModule.backups.buttons.create`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),a(`div`,Ye,[m(v(Se),{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,Fr as i,Kr as a,Mr as o,Nr as s,Or as c,Pi as l,T as u,Ti as d,Xi as f,di as p,ei as m,k as h,kr as g,mi as _,pi as v,x as y,xr as b}from"./icon-with-child-C0yuv0oQ.js";import{t as x}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{Gr as S,Qr as C,Wr as w,h as T}from"./common-Cq0z9nNV.js";import{t as E}from"./dialog-C_c6nIiU.js";import{h as D,i as O,l as k,o as A,r as j}from"./components-
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,Fr as i,Kr as a,Mr as o,Nr as s,Or as c,Pi as l,T as u,Ti as d,Xi as f,di as p,ei as m,k as h,kr as g,mi as _,pi as v,x as y,xr as b}from"./icon-with-child-C0yuv0oQ.js";import{t as x}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{Gr as S,Qr as C,Wr as w,h as T}from"./common-Cq0z9nNV.js";import{t as E}from"./dialog-C_c6nIiU.js";import{h as D,i as O,l as k,o as A,r as j}from"./components-BJ3MRhfv.js";import{t as M}from"./directive-CBwN801q.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=i({name:`ViewSystemInfo`,__name:`view-system-info`,setup(i){let L=y(),{t:R}=u(),{isMDDevice:z}=S(),{systemInfo:B,fetchSystemInfo:V,isLoading:H}=k(),{throttleStatus:U,fetchThrottleStatus:W,isLoading:G}=A(),K=d(!1),q=d(!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 a(async()=>{V().catch(e=>{throw new P(`Something went wrong`,e)}),W().catch(e=>{throw new P(`Something went wrong`,e)})}),p(()=>H.value,e=>{if(!e&&B.value===null)throw new P(`Something went wrong`)}),x({title:R(`systemModule.meta.system.systemInfo.title`)}),(r,i)=>(m(),e(b,null,[s(l(w),{items:J.value},null,8,[`items`]),l(z)?g(``,!0):(m(),c(l(C),{key:0,teleport:``},{icon:v(()=>[s(l(t),{icon:`mdi:hammer`,class:`w[20px] h[20px]`})]),title:v(()=>[o(f(l(R)(`systemModule.headings.system.system`)),1)]),subtitle:v(()=>[o(f(l(R)(`systemModule.subHeadings.system`)),1)]),_:1})),s(l(T),{heading:l(R)(`systemModule.headings.system.system`),"sub-heading":l(R)(`systemModule.subHeadings.system`),icon:`mdi:hammer`},{extra:v(()=>[n(`div`,F,[s(l(h),{plain:``,class:`px-4! ml-2!`,onClick:Y},{icon:v(()=>[s(l(t),{icon:`mdi:about`})]),default:v(()=>[o(` `+f(l(R)(`systemModule.buttons.about.title`)),1)]),_:1}),s(l(h),{type:`danger`,plain:``,class:`px-4! ml-2!`,onClick:X},{icon:v(()=>[s(l(t),{icon:`mdi:volume-control`})]),default:v(()=>[o(` `+f(l(R)(`systemModule.buttons.manage.title`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),_((m(),e(`div`,{"element-loading-text":l(R)(`systemModule.texts.system.loadingSystemInfo`)},[s(l(j),{"system-info":l(B),"throttle-status":l(U)},null,8,[`system-info`,`throttle-status`])],8,I)),[[l(M),l(H)||l(G)||l(B)===null]]),s(l(E),{modelValue:K.value,"onUpdate:modelValue":i[1]||=e=>K.value=e,title:l(R)(`systemModule.headings.system.about`)},{footer:v(()=>[s(l(h),{link:``,onClick:i[0]||=e=>K.value=!1},{default:v(()=>[o(f(l(R)(`usersModule.buttons.close.title`)),1)]),_:1})]),default:v(()=>[s(l(D))]),_:1},8,[`modelValue`,`title`]),s(l(E),{modelValue:q.value,"onUpdate:modelValue":i[4]||=e=>q.value=e,title:l(R)(`systemModule.headings.manage.manageSystem`)},{footer:v(()=>[s(l(h),{link:``,onClick:i[3]||=e=>q.value=!1},{default:v(()=>[o(f(l(R)(`usersModule.buttons.close.title`)),1)]),_:1})]),default:v(()=>[s(l(O),{onClose:i[2]||=e=>q.value=!1})]),_:1},8,[`modelValue`,`title`])],64))}});export{L as default};
|
package/dist/assets/{view-system-log-detail-CJPA0zbJ.js → view-system-log-detail-BBZjxcZz.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Er as n,Fr as r,H as i,Mr as a,Nr as o,Or as s,Pi as c,T as l,Ti as u,Xi as d,Zr as f,di as p,ei as m,kr as h,mi as g,pi as _,x as v,xr as y}from"./icon-with-child-C0yuv0oQ.js";import{t as b}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as x,Gr as S,Qr as C,Ti as w,Wr as T,ei as E}from"./common-Cq0z9nNV.js";import{c as D,g as O}from"./components-
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Er as n,Fr as r,H as i,Mr as a,Nr as o,Or as s,Pi as c,T as l,Ti as u,Xi as d,Zr as f,di as p,ei as m,kr as h,mi as g,pi as _,x as v,xr as y}from"./icon-with-child-C0yuv0oQ.js";import{t as b}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as x,Gr as S,Qr as C,Ti as w,Wr as T,ei as E}from"./common-Cq0z9nNV.js";import{c as D,g as O}from"./components-BJ3MRhfv.js";import{t as k}from"./directive-CBwN801q.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=r({name:`ViewSystemLogDetail`,__name:`view-system-log-detail`,props:{id:{}},setup(r){let N=r,P=v(),{t:F}=l(),{isMDDevice:I,isLGDevice:L}=S(),{systemLog:R,isLoading:z}=D({id:N.id}),B=u(!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 f(()=>{B.value=!0}),p(()=>z.value,e=>{if(!e&&R.value===null)throw new j(`System log not found`)}),p(()=>R.value,e=>{if(!z.value&&e===null)throw new j(`System log not found`)}),b({title:F(`systemModule.meta.systemLogs.detail.title`)}),(n,r)=>(m(),e(y,null,[o(c(C),{teleport:``},{icon:_(()=>[o(c(t),{icon:`mdi:note-text-outline`,class:`w[20px] h[20px]`})]),title:_(()=>[a(d(c(F)(`systemModule.headings.systemLogs.detail`)),1)]),subtitle:_(()=>[a(d(c(F)(`systemModule.subHeadings.systemLogs.detail`)),1)]),_:1}),c(I)?h(``,!0):(m(),s(c(x),{key:0,align:c(E).LEFT,teleport:``,small:``,onClick:H},{icon:_(()=>[o(c(i),{size:24},{default:_(()=>[o(c(t),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),o(c(T),{items:V.value},null,8,[`items`]),g((m(),e(`div`,{"element-loading-text":c(F)(`systemModule.texts.systemLogs.loadingLogs`),class:`flex flex-col overflow-hidden h-full`},[c(R)===null?h(``,!0):(m(),s(c(w),{key:0,class:`grow-1 p-2 md:px-4`},{default:_(()=>[o(c(O),{"system-log":c(R)},null,8,[`system-log`])]),_:1}))],8,M)),[[c(k),c(z)||c(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,Fr as i,H as ee,Kr as a,Mr as o,Nr as s,Or as c,Pi as l,Sr as u,T as d,Ti as f,Xi as p,Zr as m,b as h,bi as g,di as _,ei as v,ii as y,kr as b,oi as x,pi as S,x as te,xr as C}from"./icon-with-child-C0yuv0oQ.js";import{t as w}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as T,Gr as E,Qr as D,Wr as ne,ei as O,g as re,h as ie,ti as ae}from"./common-Cq0z9nNV.js";import{t as oe}from"./drawer-BDUl_ooz.js";import{_ as k,s as A,v as j}from"./components-
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,Fr as i,H as ee,Kr as a,Mr as o,Nr as s,Or as c,Pi as l,Sr as u,T as d,Ti as f,Xi as p,Zr as m,b as h,bi as g,di as _,ei as v,ii as y,kr as b,oi as x,pi as S,x as te,xr as C}from"./icon-with-child-C0yuv0oQ.js";import{t as w}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as T,Gr as E,Qr as D,Wr as ne,ei as O,g as re,h as ie,ti as ae}from"./common-Cq0z9nNV.js";import{t as oe}from"./drawer-BDUl_ooz.js";import{_ as k,s as A,v as j}from"./components-BJ3MRhfv.js";import{i as M}from"./system.constants-BvSIFqdm.js";import{n as N}from"./system.exceptions-BOq4IhGI.js";var P={key:1,class:`grow-1 flex flex-col lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden`},F={class:`flex flex-col h-full`},I=i({name:`ViewSystemLogs`,__name:`view-system-logs`,props:{id:{}},setup(i){let I=i,L=h(),R=te(),{t:z}=d(),{isMDDevice:B,isLGDevice:V}=E(),{fetchSystemLogs:H,loadMoreSystemLogs:U,systemLogs:W,hasMore:G,filters:K,live:q,filtersActive:J,areLoading:Y,resetFilter:se,refreshSystemLogs:ce}=A(),le=f(!1),X=f(!1),Z=f(!1),ue=r(()=>L.name===M.SYSTEM_LOGS),de=r(()=>[{label:z(`systemModule.breadcrumbs.system.system`),route:R.resolve({name:M.SYSTEM})},{label:z(`systemModule.breadcrumbs.systemLogs.list`),route:R.resolve({name:M.SYSTEM_LOGS})}]),Q=e=>{Z.value?(X.value=!1,Z.value=!1,e?.()):(V.value?R.replace({name:M.SYSTEM_LOGS}):R.push({name:M.SYSTEM_LOGS}),e?.())},fe=e=>{V.value?R.replace({name:M.SYSTEM_LOG_DETAIL,params:{id:e}}):R.push({name:M.SYSTEM_LOG_DETAIL,params:{id:e}})},$=()=>{se()},pe=()=>{U().catch(e=>{throw new N(`Something went wrong`,e)})},me=()=>{ce().catch(e=>{throw new N(`Something went wrong`,e)})},he=()=>{},ge=()=>{X.value=!0,Z.value=!0};return a(()=>{H().catch(e=>{throw new N(`Something went wrong`,e)}),X.value=L.matched.find(e=>e.name===M.SYSTEM_LOG_DETAIL)!==void 0}),m(()=>{le.value=!0}),_(()=>Y.value,e=>{if(!e&&W.value===null)throw new N(`Something went wrong`)}),_(()=>L.path,()=>{X.value=L.matched.find(e=>e.name===M.SYSTEM_LOG_DETAIL)!==void 0}),w({title:z(`systemModule.meta.systemLogs.list.title`)}),(r,i)=>{let a=y(`router-view`);return v(),e(C,null,[s(l(ne),{items:de.value},null,8,[`items`]),l(B)?b(``,!0):(v(),c(l(D),{key:0,teleport:``},{icon:S(()=>[s(l(t),{icon:`mdi:hammer`,class:`w[20px] h[20px]`})]),title:S(()=>[o(p(l(z)(`systemModule.headings.systemLogs.list`)),1)]),subtitle:S(()=>[o(p(l(z)(`systemModule.subHeadings.systemLogs.list`)),1)]),_:1})),s(l(ie),{heading:l(z)(`systemModule.headings.systemLogs.list`),"sub-heading":l(z)(`systemModule.subHeadings.systemLogs.list`),icon:`mdi:console`},null,8,[`heading`,`sub-heading`]),ue.value||l(V)?(v(),e(`div`,P,[s(l(j),{filters:l(K),"onUpdate:filters":i[0]||=e=>g(K)?K.value=e:null,live:l(q),"onUpdate:live":i[1]||=e=>g(q)?q.value=e:null,items:l(W),loading:l(Y),"filters-active":l(J),"has-more":l(G),onDetail:fe,onAdjustList:ge,onResetFilters:$,onLoadMore:pe,onRefresh:me,onClear:he},null,8,[`filters`,`live`,`items`,`loading`,`filters-active`,`has-more`])])):(v(),c(a,{key:I.id},{default:S(({Component:e})=>[(v(),c(x(e)))]),_:1})),l(V)?(v(),c(l(oe),{key:3,modelValue:X.value,"onUpdate:modelValue":i[4]||=e=>X.value=e,"show-close":!1,size:Z.value?`300px`:`40%`,"with-header":!1,"before-close":Q},{default:S(()=>[n(`div`,F,[s(l(ae),{"menu-button-hidden":``},{"button-right":S(()=>[s(l(T),{align:l(O).RIGHT,class:`mr-2`,onClick:i[2]||=()=>Q()},{icon:S(()=>[s(l(ee),null,{default:S(()=>[s(l(t),{icon:`mdi:close`})]),_:1})]),_:1},8,[`align`])]),_:1}),X.value?(v(),e(C,{key:0},[Z.value?(v(),c(l(k),{key:0,filters:l(K),"onUpdate:filters":i[3]||=e=>g(K)?K.value=e:null,"filters-active":l(J),onResetFilters:$},null,8,[`filters`,`filters-active`])):(v(),c(l(re),{key:1},{icon:S(()=>[s(l(t),{icon:`mdi:console`})]),message:S(()=>[o(p(l(z)(`systemModule.messages.misc.requestError`)),1)]),default:S(()=>[(v(),c(u,null,{default:S(()=>[(v(),c(a,{key:I.id},{default:S(({Component:e})=>[(v(),c(x(e)))]),_:1}))]),_:1}))]),_:1}))],64)):b(``,!0)])]),_:1},8,[`modelValue`,`size`])):b(``,!0)],64)}}});export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Ci as t,D as n,Dr as r,Er as i,Fr as a,H as o,Kr as s,Mr as c,Nr as l,Or as u,Pi as d,T as ee,Ti as f,Xi as p,di as m,ei as h,jr as g,k as _,kr as v,n as y,ni as b,pi as x,r as S,x as te,xr as C}from"./icon-with-child-C0yuv0oQ.js";import{t as w}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as T,Di as E,Gr as D,Hr as O,Kn as k,Qr as A,Ti as j,Wr as M,_ as N,_n as P,ai as F,bi as I,ei as L,h as R,m as z,p as B,r as V,rn as H,sn as ne,vn as U,x as re}from"./common-Cq0z9nNV.js";import{n as W,t as G}from"./descriptions-CK3XrcY5.js";import{n as ie,t as ae}from"./table-CFRJXsHQ.js";import{n as K,t as q}from"./form-CoKeb4n7.js";import{t as J}from"./alert-C46gt4gd.js";import{r as Y,t as X}from"./select-BZCtBPAN.js";import{t as oe}from"./card-CfYeWlyn.js";import{t as Z}from"./checkbox-DTPMEXAL.js";import{n as Q,r as se}from"./radio-Ccjyja5p.js";import{x as ce}from"./components-B-hsdZRB.js";import{n as le,t as $}from"./steps-CFlcEz-i.js";import{t as ue}from"./dist-DJgPCOr0.js";import{C as de,g as fe,n as pe}from"./keys-bvwxU-Nn.js";import{i as me,o as he,r as ge}from"./keys-DMEIfK2a.js";import{o as _e,r as ve}from"./devices.constants-cxt4nI1j.js";import"./devices-Id44EDCB.js";import{A as ye,F as be,M as xe,N as Se,P as Ce,j as we}from"./composables-CQU3fAXU.js";import{a as Te,i as Ee,n as De,o as Oe,r as ke}from"./devices-virtual.constants-BxQtZ-rg.js";import{n as Ae,t as je}from"./source-candidates.utils-Cb9r1JWA.js";var Me={class:`space-y-4`},Ne={key:0,"data-test-id":`blocked-categories`},Pe={class:`text-sm text-gray-500 mb-2`},Fe={class:`flex flex-wrap gap-2`},Ie=a({name:`VirtualWizardCategoryStep`,__name:`virtual-wizard-category-step`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{expose:n,emit:a}){let o=a,{t:s}=ee(),f=i(()=>Oe.map(e=>({value:e,label:s(`devicesModule.categories.devices.${e}`)}))),m=i(()=>Te.map(e=>({value:e,label:s(`devicesModule.categories.devices.${e}`),reason:s(`devicesVirtualPlugin.wizard.category.blockedReason`)}))),g=e=>{o(`update:modelValue`,e)};return n({categories:f,blockedCategories:m}),(n,i)=>(h(),e(`div`,Me,[l(d(J),{type:`info`,title:d(s)(`devicesVirtualPlugin.wizard.category.heading`),description:d(s)(`devicesVirtualPlugin.wizard.category.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),l(d(q),{"label-position":`top`},{default:x(()=>[l(d(K),{label:d(s)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:x(()=>[l(d(Y),{"model-value":t.modelValue,placeholder:d(s)(`devicesVirtualPlugin.fields.devices.category.placeholder`),name:`category`,filterable:``,class:`w-full`,"onUpdate:modelValue":g},{default:x(()=>[(h(!0),e(C,null,b(f.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`])]),_:1},8,[`label`])]),_:1}),m.value.length>0?(h(),e(`div`,Ne,[r(`p`,Pe,p(d(s)(`devicesVirtualPlugin.wizard.category.blockedHeading`)),1),r(`div`,Fe,[(h(!0),e(C,null,b(m.value,e=>(h(),u(d(I),{key:e.value,type:`info`,title:e.reason,class:`opacity-60! cursor-not-allowed!`},{default:x(()=>[c(p(e.label),1)]),_:2},1032,[`title`]))),128))])])):v(``,!0)]))}}),Le={class:`space-y-4`},Re={class:`text-xs text-gray-500 mt-1`},ze={class:`text-xs text-gray-500 mt-1`},Be=a({name:`VirtualWizardDetailsStep`,__name:`virtual-wizard-details-step`,props:{category:{},name:{},roomId:{},zoneIds:{}},emits:[`update:name`,`update:roomId`,`update:zoneIds`],setup(t,{expose:n,emit:a}){let o=t,c=a,{t:g}=ee(),_=N(),v=re().getStore(pe),y=i(()=>o.name),S=i(()=>o.roomId),te=i(()=>o.zoneIds),w=i(()=>ue(v.findAll().filter(e=>e.type===fe.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),T=i(()=>ue(v.findAll().filter(e=>e.type===fe.ZONE&&!de(e.category)),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),D=i(()=>{if(o.category===null)return``;let e=g(`devicesModule.categories.devices.${o.category}`);if(o.roomId===null)return e;let t=v.findById(o.roomId);return t?`${e} — ${t.name}`:e}),O=f(o.name===``||o.name===D.value?o.name:null);m(D,e=>{o.name===O.value&&e!==o.name&&(O.value=e,c(`update:name`,e))},{immediate:!0});let k=e=>{c(`update:name`,e)},A=e=>{c(`update:roomId`,e)},j=e=>{c(`update:zoneIds`,e)};return s(()=>{v.fetch().catch(e=>_.error(`Failed to load rooms and zones`,e))}),n({roomOptions:w,zoneOptions:T,generatedName:D}),(t,n)=>(h(),e(`div`,Le,[l(d(J),{type:`info`,title:d(g)(`devicesVirtualPlugin.wizard.details.heading`),description:d(g)(`devicesVirtualPlugin.wizard.details.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),l(d(q),{"label-position":`top`},{default:x(()=>[l(d(K),{label:d(g)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:x(()=>[l(d(E),{"model-value":y.value,placeholder:d(g)(`devicesVirtualPlugin.fields.devices.name.placeholder`),name:`name`,"onUpdate:modelValue":k},null,8,[`model-value`,`placeholder`])]),_:1},8,[`label`]),l(d(K),{label:d(g)(`devicesModule.fields.devices.room.title`)},{default:x(()=>[l(d(Y),{"model-value":S.value,placeholder:d(g)(`devicesModule.fields.devices.room.placeholder`),name:`room`,filterable:``,clearable:``,class:`w-full`,"onUpdate:modelValue":A},{default:x(()=>[(h(!0),e(C,null,b(w.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),r(`div`,Re,p(d(g)(`devicesModule.fields.devices.room.hint`)),1)]),_:1},8,[`label`]),l(d(K),{label:d(g)(`devicesModule.fields.devices.zones.title`)},{default:x(()=>[l(d(Y),{"model-value":te.value,placeholder:d(g)(`devicesModule.fields.devices.zones.placeholder`),name:`zones`,filterable:``,clearable:``,multiple:``,class:`w-full`,"onUpdate:modelValue":j},{default:x(()=>[(h(!0),e(C,null,b(T.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),r(`div`,ze,p(d(g)(`devicesModule.fields.devices.zones.hint`)),1)]),_:1},8,[`label`])]),_:1})]))}}),Ve={class:`space-y-4`},He={class:`flex items-center gap-3`,"data-test-id":`mapping-progress`},Ue=[`data-test-id`],We={class:`flex items-center gap-2 flex-wrap`},Ge={class:`flex flex-wrap items-center gap-2`},Ke=[`data-test-id`],qe={class:`flex items-center gap-2 flex-wrap`},Je={class:`text-sm font-medium`},Ye={class:`flex flex-wrap items-center gap-2`},Xe=a({name:`VirtualWizardMappingStep`,__name:`virtual-wizard-mapping-step`,props:{category:{},modelValue:{}},emits:[`update:modelValue`,`update:valid`],setup(n,{expose:a,emit:o}){let f=n,g=o,{t:y}=ee(),te=z(),w=N(),T=B(),E=re(),D=E.getStore(he),O=E.getStore(me),A=E.getStore(ge),j=t({}),M=t({}),P=t({}),L=t({}),R=t({}),U=t({}),W=0,G=new Map,ie=e=>be[e]?.constraints??{},ae=e=>Ce[e]?.constraints??{},K=i(()=>{if(f.category===null)return[];let e=we[f.category];if(!e)return[];let t=(xe[f.category]??[...e.required,...e.optional]).filter(e=>e!==H.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=ye[t]??{required:[],optional:[]};return{specChannel:t,required:n,slots:[...r.required,...r.optional].map(e=>{let i=Se(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}})}})}),q=i(()=>K.value.flatMap(e=>e.slots)),oe=i(()=>q.value.map(e=>({specChannel:e.specChannel,specProperty:e.specProperty,sourceProperty:j[e.key]??null}))),Z=i(()=>{let e=new Set(q.value.filter(e=>typeof j[e.key]==`string`).map(e=>e.specChannel)),t=q.value.filter(t=>t.required||t.propertyRequired&&e.has(t.specChannel)),n=t.filter(e=>typeof j[e.key]!=`string`);return{requiredTotal:t.length,requiredFilled:t.length-n.length,remaining:n}}),Q=i(()=>Object.keys(j).length>0),se=i(()=>Q.value&&Z.value.remaining.length===0),le=i(()=>Z.value.requiredTotal===0?Q.value?100:0:Math.round(Z.value.requiredFilled/Z.value.requiredTotal*100)),$=i(()=>{let e=[],t=K.value.filter(e=>e.slots.some(e=>typeof j[e.key]==`string`)).map(e=>e.specChannel);if(f.category!==null&&t.length>0){let n=ae(f.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 j[e.key]==`string`).map(e=>e.specProperty);if(n.length===0)continue;let r=ie(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}),de=i(()=>Object.values(P).some(e=>e)),fe=i(()=>f.category!==null&&se.value&&Object.keys(M).length===0&&$.value.length===0&&!de.value),pe=i(()=>ue(D.findAll().filter(e=>!e.draft&&(!e.hidden||e.hiddenBy===ne.system)&&je(e)),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),_e=e=>e===null?[]:ue(O.findForDevice(e),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name})),ve=e=>e===null?[]:ue(A.findForChannel(e).filter(t=>{let n=O.findById(e);return Ae(n?D.findById(n.device):null,n,t)}),[e=>e.name??y(`devicesModule.categories.channelsProperties.${e.category}`)],[`asc`]).map(e=>({value:e.id,label:e.name??y(`devicesModule.categories.channelsProperties.${e.category}`)})),Te=e=>[e.dataType,e.unit,e.permissions.join(`/`)].filter(e=>typeof e==`string`&&e.length>0).join(` · `),Ee=(e,t)=>t.required||U[e.specChannel]===!0||typeof j[t.key]==`string`||typeof M[t.key]==`string`,Oe=e=>e.slots.filter(t=>Ee(e,t)),ke=e=>e.slots.length-Oe(e).length,Me=async e=>{try{return await O.fetch({deviceId:e})}catch(t){return w.error(`Failed to load source channels`,t),O.findForDevice(e)}},Ne=async e=>{try{await A.fetch({channelId:e})}catch(e){w.error(`Failed to load source properties`,e)}return A.findForChannel(e)},Pe=(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},Fe=async e=>{if(f.category===null||e.length===0)return;let t=++W;for(let n of e)G.set(n.slot.key,t),P[n.slot.key]=!0,delete M[n.slot.key];let n=(e,n)=>{G.get(e)===t&&(delete P[e],n===null?delete M[e]:M[e]=n)};try{let{data:t,error:r}=await te.client.POST(`/${S}/${De}/devices/compatibility`,{body:{data:{category:f.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?V(r,y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`)):y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`);for(let r of e)n(r.slot.key,t);T.error(t);return}e.forEach((e,t)=>{let r=Pe(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){w.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);T.error(r)}},Ie=async(e,t)=>{let n=q.value.find(t=>t.key===e);if(n){if(G.set(e,++W),delete M[e],delete P[e],t===null){delete j[e];return}j[e]=t,await Fe([{slot:n,sourceProperty:t}])}},Le=async(e,t)=>{let n=K.value.find(t=>t.specChannel===e);if(!n||t===null)return;let r=++W;for(let e of n.slots)G.set(e.key,r),delete P[e.key];let i=await Ne(t);if(n.slots.some(e=>G.get(e.key)!==r))return;let a=O.findById(t),o=[];for(let e of n.slots){let n=i.find(t=>t.category===e.specProperty);if(!n){let t=j[e.key];t&&o.push({slot:e,sourceProperty:t});continue}delete M[e.key],j[e.key]=n.id,L[e.key]={device:a?.device??null,channel:t},o.push({slot:e,sourceProperty:n.id})}if(o.length===0){T.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.nothingApplied`));return}U[e]=!0,T.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.applied`,{filled:o.length,total:n.slots.length})),await Fe(o)},Re=(e,t)=>{L[e]={device:t,channel:null},Ie(e,null).catch(e=>w.error(`Failed to clear source property`,e)),t!==null&&Me(t).catch(e=>w.error(`Failed to load source channels`,e))},ze=(e,t)=>{L[e]={device:L[e]?.device??null,channel:t},Ie(e,null).catch(e=>w.error(`Failed to clear source property`,e)),t!==null&&Ne(t).catch(e=>w.error(`Failed to load source properties`,e))},Be=(e,t)=>{Ie(e,t).catch(e=>w.error(`Failed to select source property`,e))},Xe=(e,t)=>{R[e]={device:t,channel:null},t!==null&&Me(t).catch(e=>w.error(`Failed to load source channels`,e))},Ze=(e,t)=>{R[e]={device:R[e]?.device??null,channel:t},t!==null&&Ne(t).catch(e=>w.error(`Failed to load source properties`,e))},Qe=e=>{Le(e,R[e]?.channel??null).catch(e=>w.error(`Failed to apply source channel`,e))},$e=e=>e.filter(e=>e.sourceProperty!==null).map(e=>`${e.specChannel}.${e.specProperty}=${e.sourceProperty}`).sort().join(`|`),et=()=>{for(let[e,t]of Object.entries(j)){if(L[e]?.channel)continue;let n=A.findById(t),r=n?O.findById(n.channel):null;L[e]={device:r?.device??null,channel:r?.id??null}}};return m(()=>f.modelValue,e=>{if($e(e)!==$e(oe.value)){for(let e of Object.keys(j))delete j[e];for(let e of Object.keys(M))delete M[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(L))delete L[e];G.clear();for(let t of e)t.sourceProperty!==null&&(j[`${t.specChannel}.${t.specProperty}`]=t.sourceProperty);et()}},{deep:!0,immediate:!0}),m(()=>f.category,(e,t)=>{if(!(t==null||t===e)){for(let e of Object.keys(j))delete j[e];for(let e of Object.keys(M))delete M[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(L))delete L[e];for(let e of Object.keys(R))delete R[e];G.clear(),W++}}),m(oe,e=>g(`update:modelValue`,e),{deep:!0,immediate:!0}),m(fe,e=>g(`update:valid`,e),{immediate:!0}),s(()=>{D.fetch({hidden:k.all}).catch(e=>w.error(`Failed to load source devices`,e))}),a({slots:q,groups:K,errors:M,checking:P,pickers:L,progress:Z,constraintViolations:$,isValid:fe,sourceDevicesOptions:pe,selectSource:Ie,applyChannel:Le}),(t,i)=>(h(),e(`div`,Ve,[l(d(J),{type:`info`,title:d(y)(`devicesVirtualPlugin.wizard.mapping.heading`),description:d(y)(`devicesVirtualPlugin.wizard.mapping.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),n.category===null?(h(),u(d(J),{key:0,type:`warning`,title:d(y)(`devicesVirtualPlugin.wizard.mapping.noCategory`),closable:!1,"show-icon":``},null,8,[`title`])):(h(),e(C,{key:1},[r(`div`,He,[l(d(ce),{percentage:le.value,status:se.value?`success`:void 0,class:`grow`},null,8,[`percentage`,`status`]),Z.value.requiredTotal>0?(h(),u(d(F),{key:0,size:`small`,class:`whitespace-nowrap`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.progress`,{filled:Z.value.requiredFilled,total:Z.value.requiredTotal})),1)]),_:1})):Q.value?v(``,!0):(h(),u(d(F),{key:1,size:`small`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.noRequired`)),1)]),_:1}))]),(h(!0),e(C,null,b($.value,e=>(h(),u(d(J),{key:`${e.specChannel}-${e.message}`,type:`error`,closable:!1,"show-icon":``,class:`mt-2`,"data-test-id":`constraint-violation`},{default:x(()=>[r(`strong`,null,p(d(y)(`devicesModule.categories.channels.${e.specChannel}`)),1),c(` `+p(e.message),1)]),_:2},1024))),128)),(h(!0),e(C,null,b(K.value,t=>(h(),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}`},[r(`div`,We,[r(`strong`,null,p(d(y)(`devicesModule.categories.channels.${t.specChannel}`)),1),l(d(I),{type:t.required?`danger`:`info`,size:`small`},{default:x(()=>[c(p(t.required?d(y)(`devicesVirtualPlugin.wizard.mapping.channelRequired`):d(y)(`devicesVirtualPlugin.wizard.mapping.channelOptional`)),1)]),_:2},1032,[`type`])]),r(`div`,Ge,[l(d(F),{size:`small`,class:`basis-full`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.description`)),1)]),_:1}),l(d(Y),{"model-value":R[t.specChannel]?.device??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`shortcut-device-${t.specChannel}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Xe(t.specChannel,e)},{default:x(()=>[(h(!0),e(C,null,b(pe.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),l(d(Y),{"model-value":R[t.specChannel]?.channel??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`shortcut-channel-${t.specChannel}`,disabled:!R[t.specChannel]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ze(t.specChannel,e)},{default:x(()=>[(h(!0),e(C,null,b(_e(R[t.specChannel]?.device??null),e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),l(d(_),{disabled:!R[t.specChannel]?.channel,plain:``,onClick:e=>Qe(t.specChannel)},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.apply`)),1)]),_:1},8,[`disabled`,`onClick`])]),(h(!0),e(C,null,b(Oe(t),t=>(h(),e(`div`,{key:t.key,class:`space-y-1`,"data-test-id":`slot-${t.key}`},[r(`div`,qe,[r(`span`,Je,p(d(y)(`devicesModule.categories.channelsProperties.${t.specProperty}`)),1),t.required?(h(),u(d(I),{key:0,type:`danger`,size:`small`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.propertyRequired`)),1)]),_:1})):v(``,!0),l(d(F),{size:`small`,type:`info`},{default:x(()=>[c(p(Te(t)),1)]),_:2},1024)]),r(`div`,Ye,[l(d(Y),{"model-value":L[t.key]?.device??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`device-${t.key}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Re(t.key,e)},{default:x(()=>[(h(!0),e(C,null,b(pe.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),l(d(Y),{"model-value":L[t.key]?.channel??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`channel-${t.key}`,disabled:!L[t.key]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>ze(t.key,e)},{default:x(()=>[(h(!0),e(C,null,b(_e(L[t.key]?.device??null),e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),l(d(Y),{"model-value":j[t.key]??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.propertyPlaceholder`),name:`property-${t.key}`,disabled:!L[t.key]?.channel,loading:P[t.key]===!0,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Be(t.key,e)},{default:x(()=>[(h(!0),e(C,null,b(ve(L[t.key]?.channel??null),e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`loading`,`onUpdate:modelValue`])]),M[t.key]?(h(),u(d(F),{key:0,size:`small`,type:`danger`,class:`block`,"data-test-id":`slot-error-${t.key}`},{default:x(()=>[c(p(M[t.key]),1)]),_:2},1032,[`data-test-id`])):v(``,!0)],8,Ke))),128)),U[t.specChannel]||ke(t)>0?(h(),u(d(_),{key:0,link:``,type:`primary`,"data-test-id":`optional-slots-${t.specChannel}`,onClick:e=>U[t.specChannel]=!U[t.specChannel]},{default:x(()=>[c(p(U[t.specChannel]?d(y)(`devicesVirtualPlugin.wizard.mapping.hideOptional`):d(y)(`devicesVirtualPlugin.wizard.mapping.showOptional`,{count:ke(t)})),1)]),_:2},1032,[`data-test-id`,`onClick`])):v(``,!0)],8,Ue))),128))],64))]))}}),Ze={class:`space-y-4`},Qe={class:`text-xs text-gray-500`},$e=a({name:`VirtualWizardReviewStep`,__name:`virtual-wizard-review-step`,props:{category:{},mappings:{},name:{},roomId:{},zoneIds:{},showCreateAction:{type:Boolean,default:!0}},emits:[`created`,`submitting`],setup(t,{expose:n,emit:a}){let o=t,s=a,{t:m}=ee(),g=z(),b=N(),S=B(),te=re(),w=te.getStore(he),T=te.getStore(me),E=te.getStore(ge),D=te.getStore(pe),O=f(`idle`),k=f(null),A=f(!1),j=f(`idle`),M=f(null),F=f(0),I=i(()=>o.mappings.filter(e=>e.sourceProperty!==null)),L=()=>m(`devicesVirtualPlugin.wizard.review.unknownSource`),R=e=>{let t=E.findById(e),n=t?T.findById(t.channel):null,r=n?w.findById(n.device):null;return{deviceId:n?.device??null,deviceName:r?.name??L(),channelName:n?.name??L(),propertyName:t?t.name??m(`devicesModule.categories.channelsProperties.${t.category}`):L()}},H=i(()=>I.value.map(e=>R(e.sourceProperty))),U=i(()=>I.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=i(()=>{let e=H.value.map(e=>e.deviceId);return e.length===0||e.some(e=>e===null)?!1:new Set(e).size===1}),q=i(()=>{if(!K.value)return null;let e=H.value[0]?.deviceId??null;return e===null?null:w.findById(e)}),Y=i(()=>o.category===null?``:m(`devicesModule.categories.devices.${o.category}`)),X=i(()=>{if(o.roomId===null)return m(`devicesVirtualPlugin.wizard.review.noRoom`);let e=D.findById(o.roomId);return e?e.name:L()}),oe=i(()=>o.zoneIds.length===0?m(`devicesVirtualPlugin.wizard.review.noZones`):o.zoneIds.map(e=>{let t=D.findById(e);return t?t.name:L()}).join(`, `)),Q=i(()=>O.value!==`submitting`&&O.value!==`created`&&o.category!==null&&o.name.trim().length>0&&U.value.length>0),se=(e,t)=>{let n=E.findById(e.sourceProperty)?.dataType??null,r=be[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=Se(e.specChannel,e.specProperty);if(!t)return b.error(`No specification found for ${e.specChannel}.${e.specProperty}; leaving it out of the create payload`),null;let n=se(e,{data_type:t.data_type,format:t.format??void 0,step:t.step??void 0});return{type:ke,category:e.specProperty,identifier:e.specProperty,name:null,permissions:t.permissions,data_type:n.data_type,format:n.format??null,invalid:E.findById(e.sourceProperty)?.invalid??t.invalid??null,step:n.step??null,value:null,value_origin:P.source,source_property:e.sourceProperty}},le=i(()=>{let e=new Map;for(let t of I.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:ke,category:e,identifier:e,name:m(`devicesModule.categories.channels.${e}`),properties:t}))}),$=async e=>{F.value=0;for(let t of o.zoneIds)try{await w.addZone({id:e,zoneId:t})}catch(n){b.error(`Failed to assign the created device id=${e} to zone id=${t}`,n),F.value+=1}F.value>0&&S.warning(m(`devicesVirtualPlugin.wizard.review.errors.zonesFailed`,{count:F.value}))},ue=async()=>{let e=q.value;if(e){j.value=`hiding`,M.value=null;try{await w.edit({id:e.id,data:{type:e.type,hidden:!0,hiddenBy:ne.system}}),j.value=`hidden`}catch(t){b.error(`Failed to hide the source device id=${e.id}`,t),j.value=`failed`,M.value=t instanceof Error?t.message:m(`devicesVirtualPlugin.wizard.review.errors.hideFailed`),S.error(m(`devicesVirtualPlugin.wizard.review.errors.hideFailedFlash`,{device:e.name}))}}},de=()=>{ue().catch(e=>b.error(`Failed to retry hiding the source device`,e))},fe=async()=>{if(!Q.value)return;let e=o.category,t=o.name.trim(),n=o.roomId,r=o.zoneIds,i=le.value;if(e===null)return;O.value=`submitting`,s(`submitting`,!0),k.value=null;let a={type:ke,category:e,name:t,room_id:n,channels:i};try{let{data:e,error:t}=await g.client.POST(`/${y}/${ve}/devices`,{body:{data:a}});if(!e){k.value=t?V(t,m(`devicesVirtualPlugin.wizard.review.errors.createFailed`)):m(`devicesVirtualPlugin.wizard.review.errors.createFailed`),O.value=`error`,s(`submitting`,!1),S.error(k.value);return}let n=e.data;O.value=`created`;try{await w.get({id:n.id})}catch(e){b.error(`Failed to refresh the created device`,e)}r.length>0&&await $(n.id),A.value&&K.value&&await ue(),s(`submitting`,!1),s(`created`,{id:n.id,name:n.name})}catch(e){b.error(`Failed to create the virtual device`,e),k.value=m(`devicesVirtualPlugin.wizard.review.errors.createFailed`),O.value=`error`,s(`submitting`,!1),S.error(k.value)}};return n({rows:U,canHideSource:K,sourceDevice:q,submitState:O,hideState:j,hideError:M,createError:k,canCreate:Q,onCreate:fe,onRetryHide:de}),(n,i)=>(h(),e(`div`,Ze,[l(d(J),{type:`info`,title:d(m)(`devicesVirtualPlugin.wizard.review.heading`),description:d(m)(`devicesVirtualPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),l(d(G),{column:1,border:``,"data-test-id":`review-summary`},{default:x(()=>[l(d(W),{label:d(m)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:x(()=>[c(p(Y.value),1)]),_:1},8,[`label`]),l(d(W),{label:d(m)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:x(()=>[c(p(t.name),1)]),_:1},8,[`label`]),l(d(W),{label:d(m)(`devicesModule.fields.devices.room.title`)},{default:x(()=>[c(p(X.value),1)]),_:1},8,[`label`]),l(d(W),{label:d(m)(`devicesModule.fields.devices.zones.title`)},{default:x(()=>[c(p(oe.value),1)]),_:1},8,[`label`])]),_:1}),U.value.length===0?(h(),u(d(J),{key:0,type:`warning`,title:d(m)(`devicesVirtualPlugin.wizard.review.noMappings`),closable:!1,"show-icon":``,"data-test-id":`review-no-mappings`},null,8,[`title`])):(h(),u(d(ae),{key:1,data:U.value,"data-test-id":`review-rows`},{default:x(()=>[l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.property`)},{default:x(({row:e})=>[r(`strong`,null,p(d(m)(`devicesModule.categories.channels.${e.specChannel}`)),1),c(` · `+p(d(m)(`devicesModule.categories.channelsProperties.${e.specProperty}`)),1)]),_:1},8,[`label`]),l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.sourceDevice`),prop:`sourceDevice`},null,8,[`label`]),l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.sourceChannel`),prop:`sourceChannel`},null,8,[`label`]),l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.sourceProperty`),prop:`sourceProperty`},null,8,[`label`])]),_:1},8,[`data`])),K.value&&O.value!==`created`?(h(),e(C,{key:2},[l(d(Z),{modelValue:A.value,"onUpdate:modelValue":i[0]||=e=>A.value=e,"data-test-id":`hide-source-checkbox`},{default:x(()=>[c(p(d(m)(`devicesVirtualPlugin.wizard.review.hideSource.label`,{device:q.value?.name??``})),1)]),_:1},8,[`modelValue`]),r(`div`,Qe,p(d(m)(`devicesVirtualPlugin.wizard.review.hideSource.hint`)),1)],64)):v(``,!0),O.value===`error`?(h(),u(d(J),{key:3,type:`error`,title:k.value??``,closable:!1,"show-icon":``,"data-test-id":`create-error`},null,8,[`title`])):v(``,!0),O.value===`created`?(h(),e(C,{key:4},[l(d(J),{type:`success`,title:d(m)(`devicesVirtualPlugin.wizard.review.created`,{name:t.name}),closable:!1,"show-icon":``,"data-test-id":`create-success`},null,8,[`title`]),j.value===`failed`?(h(),u(d(J),{key:0,type:`warning`,title:M.value??``,closable:!1,"show-icon":``,"data-test-id":`hide-error`},{default:x(()=>[l(d(_),{size:`small`,"data-test-id":`retry-hide`,onClick:de},{default:x(()=>[c(p(d(m)(`devicesVirtualPlugin.wizard.review.hideSource.retry`)),1)]),_:1})]),_:1},8,[`title`])):j.value===`hidden`?(h(),u(d(J),{key:1,type:`success`,title:d(m)(`devicesVirtualPlugin.wizard.review.hideSource.success`,{device:q.value?.name??``}),closable:!1,"show-icon":``,"data-test-id":`hide-success`},null,8,[`title`])):v(``,!0)],64)):o.showCreateAction===!1?v(``,!0):(h(),u(d(_),{key:5,type:`primary`,disabled:!Q.value,loading:O.value===`submitting`,"data-test-id":`create-device`,onClick:fe},{default:x(()=>[c(p(d(m)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`]))]))}}),et={key:2,class:`mx-4 my-2`},tt={class:`flex items-center`},nt={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`},rt={class:`p-4`},it={key:3,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},at=4,ot=a({name:`ViewVirtualDeviceWizard`,__name:`view-virtual-device-wizard`,setup(a,{expose:s}){let{t:y}=ee(),b=te(),S=e=>{e===U.actuator_group?b.push({name:Ee.LIGHT_GROUP_WIZARD}):e===U.climate_controller?b.push({name:Ee.THERMOSTAT_WIZARD}):(e===U.sensor_aggregate||e===U.sensor_transform)&&b.push({name:Ee.MEASUREMENT_WIZARD,query:{mode:e}})},{isMDDevice:E,isLGDevice:k}=D();w({title:y(`devicesVirtualPlugin.wizard.title`)});let N=t({category:null,mappings:[],name:``,roomId:null,zoneIds:[]}),P=f(0),F=f(!1),I=f(null),z=f(null),B=f(!1),V=i(()=>P.value===at-1),H=i(()=>P.value===0?N.category!==null:P.value===1?F.value:P.value===2&&N.name.trim().length>0),ne=i(()=>[{label:y(`devicesModule.breadcrumbs.devices.list`),route:b.resolve({name:_e.DEVICES})},{label:y(`devicesVirtualPlugin.wizard.breadcrumb`),route:b.resolve({name:Ee.WIZARD})}]);O(()=>!B.value);let re=()=>{B.value||(k.value?b.replace({name:_e.DEVICES}):b.push({name:_e.DEVICES}))},W=()=>{B.value||P.value!==0&&--P.value},G=()=>{!H.value||V.value||(P.value+=1)},ie=e=>{F.value=e},ae=e=>{I.value=e},K=()=>{if(I.value===null)return;let e={name:_e.DEVICE,params:{id:I.value.id}};k.value?b.replace(e):b.push(e)};return m(()=>N.category,(e,t)=>{t==null||t===e||(N.mappings=[],F.value=!1)}),s({activeStep:P,canAdvance:H,createdDevice:I}),(t,i)=>(h(),e(C,null,[d(E)?v(``,!0):(h(),u(d(A),{key:0,teleport:``},{icon:x(()=>[l(d(n),{icon:`mdi:wizard-hat`,class:`w[20px] h[20px]`})]),title:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.title`)),1)]),subtitle:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.subtitle`)),1)]),_:1})),d(E)?v(``,!0):(h(),u(d(T),{key:1,align:d(L).LEFT,teleport:``,small:``,onClick:re},{icon:x(()=>[l(d(o),{size:24},{default:x(()=>[l(d(n),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),l(d(M),{items:ne.value},null,8,[`items`]),P.value===0?(h(),e(`div`,et,[l(d(se),{"model-value":d(U).projection,"aria-label":d(y)(`devicesVirtualPlugin.measurement.mode`),onChange:S},{default:x(()=>[l(d(Q),{value:d(U).projection},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.projection`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).sensor_aggregate},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.aggregate`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).sensor_transform},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.transform`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).actuator_group},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.group`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).climate_controller},{default:x(()=>[...i[6]||=[c(`Thermostat controller`,-1)]]),_:1},8,[`value`])]),_:1},8,[`model-value`,`aria-label`])])):v(``,!0),l(d(R),{heading:d(y)(`devicesVirtualPlugin.wizard.title`),"sub-heading":d(y)(`devicesVirtualPlugin.wizard.subtitle`),icon:`mdi:wizard-hat`},g({_:2},[d(E)?{name:`extra`,fn:x(()=>[r(`div`,tt,[I.value===null&&P.value>0?(h(),u(d(_),{key:0,disabled:B.value,"data-test-id":`wizard-back`,onClick:W},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(h(),u(d(_),{key:1,link:``,class:`ml-2!`,disabled:B.value,"data-test-id":`wizard-cancel`,onClick:re},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(h(),u(d(_),{key:2,type:`primary`,"data-test-id":`wizard-view-device`,onClick:K},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&V.value?(h(),u(d(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!z.value?.canCreate,loading:B.value,"data-test-id":`create-device`,onClick:z.value?.onCreate},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!V.value?(h(),u(d(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!H.value,"data-test-id":`wizard-next`,onClick:G},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)])]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),r(`div`,nt,[l(d(oe),{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:x(()=>[l(d(le),{active:P.value,"finish-status":`success`,"align-center":``},{default:x(()=>[l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.category`)},null,8,[`title`]),l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.mapping`)},null,8,[`title`]),l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.details`)},null,8,[`title`]),l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.review`)},null,8,[`title`])]),_:1},8,[`active`])]),default:x(()=>[l(d(j),{class:`flex-1 overflow-hidden h-full`},{default:x(()=>[r(`div`,rt,[P.value===0?(h(),u(Ie,{key:0,modelValue:N.category,"onUpdate:modelValue":i[0]||=e=>N.category=e},null,8,[`modelValue`])):P.value===1?(h(),u(Xe,{key:1,modelValue:N.mappings,"onUpdate:modelValue":i[1]||=e=>N.mappings=e,category:N.category,"onUpdate:valid":ie},null,8,[`modelValue`,`category`])):P.value===2?(h(),u(Be,{key:2,name:N.name,"onUpdate:name":i[2]||=e=>N.name=e,"room-id":N.roomId,"onUpdate:roomId":i[3]||=e=>N.roomId=e,"zone-ids":N.zoneIds,"onUpdate:zoneIds":i[4]||=e=>N.zoneIds=e,category:N.category},null,8,[`name`,`room-id`,`zone-ids`,`category`])):(h(),u($e,{key:3,ref_key:`reviewStep`,ref:z,category:N.category,mappings:N.mappings,name:N.name,"room-id":N.roomId,"zone-ids":N.zoneIds,"show-create-action":!1,onCreated:ae,onSubmitting:i[5]||=e=>B.value=e},null,8,[`category`,`mappings`,`name`,`room-id`,`zone-ids`]))])]),_:1})]),_:1})]),d(E)?v(``,!0):(h(),e(`div`,it,[I.value===null&&P.value>0?(h(),u(d(_),{key:0,disabled:B.value,"data-test-id":`wizard-back`,onClick:W},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(h(),u(d(_),{key:1,link:``,class:`ml-2!`,disabled:B.value,"data-test-id":`wizard-cancel`,onClick:re},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(h(),u(d(_),{key:2,type:`primary`,class:`ml-2!`,"data-test-id":`wizard-view-device`,onClick:K},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&V.value?(h(),u(d(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!z.value?.canCreate,loading:B.value,"data-test-id":`create-device`,onClick:z.value?.onCreate},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!V.value?(h(),u(d(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!H.value,"data-test-id":`wizard-next`,onClick:G},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)]))],64))}});export{ot as default};
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Ci as t,D as n,Dr as r,Er as i,Fr as a,H as o,Kr as s,Mr as c,Nr as l,Or as u,Pi as d,T as ee,Ti as f,Xi as p,di as m,ei as h,jr as g,k as _,kr as v,n as y,ni as b,pi as x,r as S,x as te,xr as C}from"./icon-with-child-C0yuv0oQ.js";import{t as w}from"./vue-meta.esm-browser.min-K07OTZFQ.js";import{$r as T,Di as E,Gr as D,Hr as O,Kn as k,Qr as A,Ti as j,Wr as M,_ as N,_n as P,ai as F,bi as I,ei as L,h as R,m as z,p as B,r as V,rn as H,sn as ne,vn as U,x as re}from"./common-Cq0z9nNV.js";import{n as W,t as G}from"./descriptions-CK3XrcY5.js";import{n as ie,t as ae}from"./table-CFRJXsHQ.js";import{n as K,t as q}from"./form-CoKeb4n7.js";import{t as J}from"./alert-C46gt4gd.js";import{r as Y,t as X}from"./select-BZCtBPAN.js";import{t as oe}from"./card-CfYeWlyn.js";import{t as Z}from"./checkbox-DTPMEXAL.js";import{n as Q,r as se}from"./radio-Ccjyja5p.js";import{x as ce}from"./components-BJ3MRhfv.js";import{n as le,t as $}from"./steps-CFlcEz-i.js";import{t as ue}from"./dist-DJgPCOr0.js";import{C as de,g as fe,n as pe}from"./keys-bvwxU-Nn.js";import{i as me,o as he,r as ge}from"./keys-DMEIfK2a.js";import{o as _e,r as ve}from"./devices.constants-cxt4nI1j.js";import"./devices-BEzn7YNW.js";import{A as ye,F as be,M as xe,N as Se,P as Ce,j as we}from"./composables-CQU3fAXU.js";import{a as Te,i as Ee,n as De,o as Oe,r as ke}from"./devices-virtual.constants-BxQtZ-rg.js";import{n as Ae,t as je}from"./source-candidates.utils-Cb9r1JWA.js";var Me={class:`space-y-4`},Ne={key:0,"data-test-id":`blocked-categories`},Pe={class:`text-sm text-gray-500 mb-2`},Fe={class:`flex flex-wrap gap-2`},Ie=a({name:`VirtualWizardCategoryStep`,__name:`virtual-wizard-category-step`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{expose:n,emit:a}){let o=a,{t:s}=ee(),f=i(()=>Oe.map(e=>({value:e,label:s(`devicesModule.categories.devices.${e}`)}))),m=i(()=>Te.map(e=>({value:e,label:s(`devicesModule.categories.devices.${e}`),reason:s(`devicesVirtualPlugin.wizard.category.blockedReason`)}))),g=e=>{o(`update:modelValue`,e)};return n({categories:f,blockedCategories:m}),(n,i)=>(h(),e(`div`,Me,[l(d(J),{type:`info`,title:d(s)(`devicesVirtualPlugin.wizard.category.heading`),description:d(s)(`devicesVirtualPlugin.wizard.category.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),l(d(q),{"label-position":`top`},{default:x(()=>[l(d(K),{label:d(s)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:x(()=>[l(d(Y),{"model-value":t.modelValue,placeholder:d(s)(`devicesVirtualPlugin.fields.devices.category.placeholder`),name:`category`,filterable:``,class:`w-full`,"onUpdate:modelValue":g},{default:x(()=>[(h(!0),e(C,null,b(f.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`])]),_:1},8,[`label`])]),_:1}),m.value.length>0?(h(),e(`div`,Ne,[r(`p`,Pe,p(d(s)(`devicesVirtualPlugin.wizard.category.blockedHeading`)),1),r(`div`,Fe,[(h(!0),e(C,null,b(m.value,e=>(h(),u(d(I),{key:e.value,type:`info`,title:e.reason,class:`opacity-60! cursor-not-allowed!`},{default:x(()=>[c(p(e.label),1)]),_:2},1032,[`title`]))),128))])])):v(``,!0)]))}}),Le={class:`space-y-4`},Re={class:`text-xs text-gray-500 mt-1`},ze={class:`text-xs text-gray-500 mt-1`},Be=a({name:`VirtualWizardDetailsStep`,__name:`virtual-wizard-details-step`,props:{category:{},name:{},roomId:{},zoneIds:{}},emits:[`update:name`,`update:roomId`,`update:zoneIds`],setup(t,{expose:n,emit:a}){let o=t,c=a,{t:g}=ee(),_=N(),v=re().getStore(pe),y=i(()=>o.name),S=i(()=>o.roomId),te=i(()=>o.zoneIds),w=i(()=>ue(v.findAll().filter(e=>e.type===fe.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),T=i(()=>ue(v.findAll().filter(e=>e.type===fe.ZONE&&!de(e.category)),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),D=i(()=>{if(o.category===null)return``;let e=g(`devicesModule.categories.devices.${o.category}`);if(o.roomId===null)return e;let t=v.findById(o.roomId);return t?`${e} — ${t.name}`:e}),O=f(o.name===``||o.name===D.value?o.name:null);m(D,e=>{o.name===O.value&&e!==o.name&&(O.value=e,c(`update:name`,e))},{immediate:!0});let k=e=>{c(`update:name`,e)},A=e=>{c(`update:roomId`,e)},j=e=>{c(`update:zoneIds`,e)};return s(()=>{v.fetch().catch(e=>_.error(`Failed to load rooms and zones`,e))}),n({roomOptions:w,zoneOptions:T,generatedName:D}),(t,n)=>(h(),e(`div`,Le,[l(d(J),{type:`info`,title:d(g)(`devicesVirtualPlugin.wizard.details.heading`),description:d(g)(`devicesVirtualPlugin.wizard.details.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),l(d(q),{"label-position":`top`},{default:x(()=>[l(d(K),{label:d(g)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:x(()=>[l(d(E),{"model-value":y.value,placeholder:d(g)(`devicesVirtualPlugin.fields.devices.name.placeholder`),name:`name`,"onUpdate:modelValue":k},null,8,[`model-value`,`placeholder`])]),_:1},8,[`label`]),l(d(K),{label:d(g)(`devicesModule.fields.devices.room.title`)},{default:x(()=>[l(d(Y),{"model-value":S.value,placeholder:d(g)(`devicesModule.fields.devices.room.placeholder`),name:`room`,filterable:``,clearable:``,class:`w-full`,"onUpdate:modelValue":A},{default:x(()=>[(h(!0),e(C,null,b(w.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),r(`div`,Re,p(d(g)(`devicesModule.fields.devices.room.hint`)),1)]),_:1},8,[`label`]),l(d(K),{label:d(g)(`devicesModule.fields.devices.zones.title`)},{default:x(()=>[l(d(Y),{"model-value":te.value,placeholder:d(g)(`devicesModule.fields.devices.zones.placeholder`),name:`zones`,filterable:``,clearable:``,multiple:``,class:`w-full`,"onUpdate:modelValue":j},{default:x(()=>[(h(!0),e(C,null,b(T.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),r(`div`,ze,p(d(g)(`devicesModule.fields.devices.zones.hint`)),1)]),_:1},8,[`label`])]),_:1})]))}}),Ve={class:`space-y-4`},He={class:`flex items-center gap-3`,"data-test-id":`mapping-progress`},Ue=[`data-test-id`],We={class:`flex items-center gap-2 flex-wrap`},Ge={class:`flex flex-wrap items-center gap-2`},Ke=[`data-test-id`],qe={class:`flex items-center gap-2 flex-wrap`},Je={class:`text-sm font-medium`},Ye={class:`flex flex-wrap items-center gap-2`},Xe=a({name:`VirtualWizardMappingStep`,__name:`virtual-wizard-mapping-step`,props:{category:{},modelValue:{}},emits:[`update:modelValue`,`update:valid`],setup(n,{expose:a,emit:o}){let f=n,g=o,{t:y}=ee(),te=z(),w=N(),T=B(),E=re(),D=E.getStore(he),O=E.getStore(me),A=E.getStore(ge),j=t({}),M=t({}),P=t({}),L=t({}),R=t({}),U=t({}),W=0,G=new Map,ie=e=>be[e]?.constraints??{},ae=e=>Ce[e]?.constraints??{},K=i(()=>{if(f.category===null)return[];let e=we[f.category];if(!e)return[];let t=(xe[f.category]??[...e.required,...e.optional]).filter(e=>e!==H.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=ye[t]??{required:[],optional:[]};return{specChannel:t,required:n,slots:[...r.required,...r.optional].map(e=>{let i=Se(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}})}})}),q=i(()=>K.value.flatMap(e=>e.slots)),oe=i(()=>q.value.map(e=>({specChannel:e.specChannel,specProperty:e.specProperty,sourceProperty:j[e.key]??null}))),Z=i(()=>{let e=new Set(q.value.filter(e=>typeof j[e.key]==`string`).map(e=>e.specChannel)),t=q.value.filter(t=>t.required||t.propertyRequired&&e.has(t.specChannel)),n=t.filter(e=>typeof j[e.key]!=`string`);return{requiredTotal:t.length,requiredFilled:t.length-n.length,remaining:n}}),Q=i(()=>Object.keys(j).length>0),se=i(()=>Q.value&&Z.value.remaining.length===0),le=i(()=>Z.value.requiredTotal===0?Q.value?100:0:Math.round(Z.value.requiredFilled/Z.value.requiredTotal*100)),$=i(()=>{let e=[],t=K.value.filter(e=>e.slots.some(e=>typeof j[e.key]==`string`)).map(e=>e.specChannel);if(f.category!==null&&t.length>0){let n=ae(f.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 j[e.key]==`string`).map(e=>e.specProperty);if(n.length===0)continue;let r=ie(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}),de=i(()=>Object.values(P).some(e=>e)),fe=i(()=>f.category!==null&&se.value&&Object.keys(M).length===0&&$.value.length===0&&!de.value),pe=i(()=>ue(D.findAll().filter(e=>!e.draft&&(!e.hidden||e.hiddenBy===ne.system)&&je(e)),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),_e=e=>e===null?[]:ue(O.findForDevice(e),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name})),ve=e=>e===null?[]:ue(A.findForChannel(e).filter(t=>{let n=O.findById(e);return Ae(n?D.findById(n.device):null,n,t)}),[e=>e.name??y(`devicesModule.categories.channelsProperties.${e.category}`)],[`asc`]).map(e=>({value:e.id,label:e.name??y(`devicesModule.categories.channelsProperties.${e.category}`)})),Te=e=>[e.dataType,e.unit,e.permissions.join(`/`)].filter(e=>typeof e==`string`&&e.length>0).join(` · `),Ee=(e,t)=>t.required||U[e.specChannel]===!0||typeof j[t.key]==`string`||typeof M[t.key]==`string`,Oe=e=>e.slots.filter(t=>Ee(e,t)),ke=e=>e.slots.length-Oe(e).length,Me=async e=>{try{return await O.fetch({deviceId:e})}catch(t){return w.error(`Failed to load source channels`,t),O.findForDevice(e)}},Ne=async e=>{try{await A.fetch({channelId:e})}catch(e){w.error(`Failed to load source properties`,e)}return A.findForChannel(e)},Pe=(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},Fe=async e=>{if(f.category===null||e.length===0)return;let t=++W;for(let n of e)G.set(n.slot.key,t),P[n.slot.key]=!0,delete M[n.slot.key];let n=(e,n)=>{G.get(e)===t&&(delete P[e],n===null?delete M[e]:M[e]=n)};try{let{data:t,error:r}=await te.client.POST(`/${S}/${De}/devices/compatibility`,{body:{data:{category:f.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?V(r,y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`)):y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`);for(let r of e)n(r.slot.key,t);T.error(t);return}e.forEach((e,t)=>{let r=Pe(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){w.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);T.error(r)}},Ie=async(e,t)=>{let n=q.value.find(t=>t.key===e);if(n){if(G.set(e,++W),delete M[e],delete P[e],t===null){delete j[e];return}j[e]=t,await Fe([{slot:n,sourceProperty:t}])}},Le=async(e,t)=>{let n=K.value.find(t=>t.specChannel===e);if(!n||t===null)return;let r=++W;for(let e of n.slots)G.set(e.key,r),delete P[e.key];let i=await Ne(t);if(n.slots.some(e=>G.get(e.key)!==r))return;let a=O.findById(t),o=[];for(let e of n.slots){let n=i.find(t=>t.category===e.specProperty);if(!n){let t=j[e.key];t&&o.push({slot:e,sourceProperty:t});continue}delete M[e.key],j[e.key]=n.id,L[e.key]={device:a?.device??null,channel:t},o.push({slot:e,sourceProperty:n.id})}if(o.length===0){T.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.nothingApplied`));return}U[e]=!0,T.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.applied`,{filled:o.length,total:n.slots.length})),await Fe(o)},Re=(e,t)=>{L[e]={device:t,channel:null},Ie(e,null).catch(e=>w.error(`Failed to clear source property`,e)),t!==null&&Me(t).catch(e=>w.error(`Failed to load source channels`,e))},ze=(e,t)=>{L[e]={device:L[e]?.device??null,channel:t},Ie(e,null).catch(e=>w.error(`Failed to clear source property`,e)),t!==null&&Ne(t).catch(e=>w.error(`Failed to load source properties`,e))},Be=(e,t)=>{Ie(e,t).catch(e=>w.error(`Failed to select source property`,e))},Xe=(e,t)=>{R[e]={device:t,channel:null},t!==null&&Me(t).catch(e=>w.error(`Failed to load source channels`,e))},Ze=(e,t)=>{R[e]={device:R[e]?.device??null,channel:t},t!==null&&Ne(t).catch(e=>w.error(`Failed to load source properties`,e))},Qe=e=>{Le(e,R[e]?.channel??null).catch(e=>w.error(`Failed to apply source channel`,e))},$e=e=>e.filter(e=>e.sourceProperty!==null).map(e=>`${e.specChannel}.${e.specProperty}=${e.sourceProperty}`).sort().join(`|`),et=()=>{for(let[e,t]of Object.entries(j)){if(L[e]?.channel)continue;let n=A.findById(t),r=n?O.findById(n.channel):null;L[e]={device:r?.device??null,channel:r?.id??null}}};return m(()=>f.modelValue,e=>{if($e(e)!==$e(oe.value)){for(let e of Object.keys(j))delete j[e];for(let e of Object.keys(M))delete M[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(L))delete L[e];G.clear();for(let t of e)t.sourceProperty!==null&&(j[`${t.specChannel}.${t.specProperty}`]=t.sourceProperty);et()}},{deep:!0,immediate:!0}),m(()=>f.category,(e,t)=>{if(!(t==null||t===e)){for(let e of Object.keys(j))delete j[e];for(let e of Object.keys(M))delete M[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(L))delete L[e];for(let e of Object.keys(R))delete R[e];G.clear(),W++}}),m(oe,e=>g(`update:modelValue`,e),{deep:!0,immediate:!0}),m(fe,e=>g(`update:valid`,e),{immediate:!0}),s(()=>{D.fetch({hidden:k.all}).catch(e=>w.error(`Failed to load source devices`,e))}),a({slots:q,groups:K,errors:M,checking:P,pickers:L,progress:Z,constraintViolations:$,isValid:fe,sourceDevicesOptions:pe,selectSource:Ie,applyChannel:Le}),(t,i)=>(h(),e(`div`,Ve,[l(d(J),{type:`info`,title:d(y)(`devicesVirtualPlugin.wizard.mapping.heading`),description:d(y)(`devicesVirtualPlugin.wizard.mapping.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),n.category===null?(h(),u(d(J),{key:0,type:`warning`,title:d(y)(`devicesVirtualPlugin.wizard.mapping.noCategory`),closable:!1,"show-icon":``},null,8,[`title`])):(h(),e(C,{key:1},[r(`div`,He,[l(d(ce),{percentage:le.value,status:se.value?`success`:void 0,class:`grow`},null,8,[`percentage`,`status`]),Z.value.requiredTotal>0?(h(),u(d(F),{key:0,size:`small`,class:`whitespace-nowrap`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.progress`,{filled:Z.value.requiredFilled,total:Z.value.requiredTotal})),1)]),_:1})):Q.value?v(``,!0):(h(),u(d(F),{key:1,size:`small`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.noRequired`)),1)]),_:1}))]),(h(!0),e(C,null,b($.value,e=>(h(),u(d(J),{key:`${e.specChannel}-${e.message}`,type:`error`,closable:!1,"show-icon":``,class:`mt-2`,"data-test-id":`constraint-violation`},{default:x(()=>[r(`strong`,null,p(d(y)(`devicesModule.categories.channels.${e.specChannel}`)),1),c(` `+p(e.message),1)]),_:2},1024))),128)),(h(!0),e(C,null,b(K.value,t=>(h(),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}`},[r(`div`,We,[r(`strong`,null,p(d(y)(`devicesModule.categories.channels.${t.specChannel}`)),1),l(d(I),{type:t.required?`danger`:`info`,size:`small`},{default:x(()=>[c(p(t.required?d(y)(`devicesVirtualPlugin.wizard.mapping.channelRequired`):d(y)(`devicesVirtualPlugin.wizard.mapping.channelOptional`)),1)]),_:2},1032,[`type`])]),r(`div`,Ge,[l(d(F),{size:`small`,class:`basis-full`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.description`)),1)]),_:1}),l(d(Y),{"model-value":R[t.specChannel]?.device??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`shortcut-device-${t.specChannel}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Xe(t.specChannel,e)},{default:x(()=>[(h(!0),e(C,null,b(pe.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),l(d(Y),{"model-value":R[t.specChannel]?.channel??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`shortcut-channel-${t.specChannel}`,disabled:!R[t.specChannel]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ze(t.specChannel,e)},{default:x(()=>[(h(!0),e(C,null,b(_e(R[t.specChannel]?.device??null),e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),l(d(_),{disabled:!R[t.specChannel]?.channel,plain:``,onClick:e=>Qe(t.specChannel)},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.apply`)),1)]),_:1},8,[`disabled`,`onClick`])]),(h(!0),e(C,null,b(Oe(t),t=>(h(),e(`div`,{key:t.key,class:`space-y-1`,"data-test-id":`slot-${t.key}`},[r(`div`,qe,[r(`span`,Je,p(d(y)(`devicesModule.categories.channelsProperties.${t.specProperty}`)),1),t.required?(h(),u(d(I),{key:0,type:`danger`,size:`small`},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.mapping.propertyRequired`)),1)]),_:1})):v(``,!0),l(d(F),{size:`small`,type:`info`},{default:x(()=>[c(p(Te(t)),1)]),_:2},1024)]),r(`div`,Ye,[l(d(Y),{"model-value":L[t.key]?.device??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`device-${t.key}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Re(t.key,e)},{default:x(()=>[(h(!0),e(C,null,b(pe.value,e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),l(d(Y),{"model-value":L[t.key]?.channel??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`channel-${t.key}`,disabled:!L[t.key]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>ze(t.key,e)},{default:x(()=>[(h(!0),e(C,null,b(_e(L[t.key]?.device??null),e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),l(d(Y),{"model-value":j[t.key]??null,placeholder:d(y)(`devicesVirtualPlugin.wizard.mapping.source.propertyPlaceholder`),name:`property-${t.key}`,disabled:!L[t.key]?.channel,loading:P[t.key]===!0,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Be(t.key,e)},{default:x(()=>[(h(!0),e(C,null,b(ve(L[t.key]?.channel??null),e=>(h(),u(d(X),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`loading`,`onUpdate:modelValue`])]),M[t.key]?(h(),u(d(F),{key:0,size:`small`,type:`danger`,class:`block`,"data-test-id":`slot-error-${t.key}`},{default:x(()=>[c(p(M[t.key]),1)]),_:2},1032,[`data-test-id`])):v(``,!0)],8,Ke))),128)),U[t.specChannel]||ke(t)>0?(h(),u(d(_),{key:0,link:``,type:`primary`,"data-test-id":`optional-slots-${t.specChannel}`,onClick:e=>U[t.specChannel]=!U[t.specChannel]},{default:x(()=>[c(p(U[t.specChannel]?d(y)(`devicesVirtualPlugin.wizard.mapping.hideOptional`):d(y)(`devicesVirtualPlugin.wizard.mapping.showOptional`,{count:ke(t)})),1)]),_:2},1032,[`data-test-id`,`onClick`])):v(``,!0)],8,Ue))),128))],64))]))}}),Ze={class:`space-y-4`},Qe={class:`text-xs text-gray-500`},$e=a({name:`VirtualWizardReviewStep`,__name:`virtual-wizard-review-step`,props:{category:{},mappings:{},name:{},roomId:{},zoneIds:{},showCreateAction:{type:Boolean,default:!0}},emits:[`created`,`submitting`],setup(t,{expose:n,emit:a}){let o=t,s=a,{t:m}=ee(),g=z(),b=N(),S=B(),te=re(),w=te.getStore(he),T=te.getStore(me),E=te.getStore(ge),D=te.getStore(pe),O=f(`idle`),k=f(null),A=f(!1),j=f(`idle`),M=f(null),F=f(0),I=i(()=>o.mappings.filter(e=>e.sourceProperty!==null)),L=()=>m(`devicesVirtualPlugin.wizard.review.unknownSource`),R=e=>{let t=E.findById(e),n=t?T.findById(t.channel):null,r=n?w.findById(n.device):null;return{deviceId:n?.device??null,deviceName:r?.name??L(),channelName:n?.name??L(),propertyName:t?t.name??m(`devicesModule.categories.channelsProperties.${t.category}`):L()}},H=i(()=>I.value.map(e=>R(e.sourceProperty))),U=i(()=>I.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=i(()=>{let e=H.value.map(e=>e.deviceId);return e.length===0||e.some(e=>e===null)?!1:new Set(e).size===1}),q=i(()=>{if(!K.value)return null;let e=H.value[0]?.deviceId??null;return e===null?null:w.findById(e)}),Y=i(()=>o.category===null?``:m(`devicesModule.categories.devices.${o.category}`)),X=i(()=>{if(o.roomId===null)return m(`devicesVirtualPlugin.wizard.review.noRoom`);let e=D.findById(o.roomId);return e?e.name:L()}),oe=i(()=>o.zoneIds.length===0?m(`devicesVirtualPlugin.wizard.review.noZones`):o.zoneIds.map(e=>{let t=D.findById(e);return t?t.name:L()}).join(`, `)),Q=i(()=>O.value!==`submitting`&&O.value!==`created`&&o.category!==null&&o.name.trim().length>0&&U.value.length>0),se=(e,t)=>{let n=E.findById(e.sourceProperty)?.dataType??null,r=be[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=Se(e.specChannel,e.specProperty);if(!t)return b.error(`No specification found for ${e.specChannel}.${e.specProperty}; leaving it out of the create payload`),null;let n=se(e,{data_type:t.data_type,format:t.format??void 0,step:t.step??void 0});return{type:ke,category:e.specProperty,identifier:e.specProperty,name:null,permissions:t.permissions,data_type:n.data_type,format:n.format??null,invalid:E.findById(e.sourceProperty)?.invalid??t.invalid??null,step:n.step??null,value:null,value_origin:P.source,source_property:e.sourceProperty}},le=i(()=>{let e=new Map;for(let t of I.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:ke,category:e,identifier:e,name:m(`devicesModule.categories.channels.${e}`),properties:t}))}),$=async e=>{F.value=0;for(let t of o.zoneIds)try{await w.addZone({id:e,zoneId:t})}catch(n){b.error(`Failed to assign the created device id=${e} to zone id=${t}`,n),F.value+=1}F.value>0&&S.warning(m(`devicesVirtualPlugin.wizard.review.errors.zonesFailed`,{count:F.value}))},ue=async()=>{let e=q.value;if(e){j.value=`hiding`,M.value=null;try{await w.edit({id:e.id,data:{type:e.type,hidden:!0,hiddenBy:ne.system}}),j.value=`hidden`}catch(t){b.error(`Failed to hide the source device id=${e.id}`,t),j.value=`failed`,M.value=t instanceof Error?t.message:m(`devicesVirtualPlugin.wizard.review.errors.hideFailed`),S.error(m(`devicesVirtualPlugin.wizard.review.errors.hideFailedFlash`,{device:e.name}))}}},de=()=>{ue().catch(e=>b.error(`Failed to retry hiding the source device`,e))},fe=async()=>{if(!Q.value)return;let e=o.category,t=o.name.trim(),n=o.roomId,r=o.zoneIds,i=le.value;if(e===null)return;O.value=`submitting`,s(`submitting`,!0),k.value=null;let a={type:ke,category:e,name:t,room_id:n,channels:i};try{let{data:e,error:t}=await g.client.POST(`/${y}/${ve}/devices`,{body:{data:a}});if(!e){k.value=t?V(t,m(`devicesVirtualPlugin.wizard.review.errors.createFailed`)):m(`devicesVirtualPlugin.wizard.review.errors.createFailed`),O.value=`error`,s(`submitting`,!1),S.error(k.value);return}let n=e.data;O.value=`created`;try{await w.get({id:n.id})}catch(e){b.error(`Failed to refresh the created device`,e)}r.length>0&&await $(n.id),A.value&&K.value&&await ue(),s(`submitting`,!1),s(`created`,{id:n.id,name:n.name})}catch(e){b.error(`Failed to create the virtual device`,e),k.value=m(`devicesVirtualPlugin.wizard.review.errors.createFailed`),O.value=`error`,s(`submitting`,!1),S.error(k.value)}};return n({rows:U,canHideSource:K,sourceDevice:q,submitState:O,hideState:j,hideError:M,createError:k,canCreate:Q,onCreate:fe,onRetryHide:de}),(n,i)=>(h(),e(`div`,Ze,[l(d(J),{type:`info`,title:d(m)(`devicesVirtualPlugin.wizard.review.heading`),description:d(m)(`devicesVirtualPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),l(d(G),{column:1,border:``,"data-test-id":`review-summary`},{default:x(()=>[l(d(W),{label:d(m)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:x(()=>[c(p(Y.value),1)]),_:1},8,[`label`]),l(d(W),{label:d(m)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:x(()=>[c(p(t.name),1)]),_:1},8,[`label`]),l(d(W),{label:d(m)(`devicesModule.fields.devices.room.title`)},{default:x(()=>[c(p(X.value),1)]),_:1},8,[`label`]),l(d(W),{label:d(m)(`devicesModule.fields.devices.zones.title`)},{default:x(()=>[c(p(oe.value),1)]),_:1},8,[`label`])]),_:1}),U.value.length===0?(h(),u(d(J),{key:0,type:`warning`,title:d(m)(`devicesVirtualPlugin.wizard.review.noMappings`),closable:!1,"show-icon":``,"data-test-id":`review-no-mappings`},null,8,[`title`])):(h(),u(d(ae),{key:1,data:U.value,"data-test-id":`review-rows`},{default:x(()=>[l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.property`)},{default:x(({row:e})=>[r(`strong`,null,p(d(m)(`devicesModule.categories.channels.${e.specChannel}`)),1),c(` · `+p(d(m)(`devicesModule.categories.channelsProperties.${e.specProperty}`)),1)]),_:1},8,[`label`]),l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.sourceDevice`),prop:`sourceDevice`},null,8,[`label`]),l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.sourceChannel`),prop:`sourceChannel`},null,8,[`label`]),l(d(ie),{label:d(m)(`devicesVirtualPlugin.wizard.review.columns.sourceProperty`),prop:`sourceProperty`},null,8,[`label`])]),_:1},8,[`data`])),K.value&&O.value!==`created`?(h(),e(C,{key:2},[l(d(Z),{modelValue:A.value,"onUpdate:modelValue":i[0]||=e=>A.value=e,"data-test-id":`hide-source-checkbox`},{default:x(()=>[c(p(d(m)(`devicesVirtualPlugin.wizard.review.hideSource.label`,{device:q.value?.name??``})),1)]),_:1},8,[`modelValue`]),r(`div`,Qe,p(d(m)(`devicesVirtualPlugin.wizard.review.hideSource.hint`)),1)],64)):v(``,!0),O.value===`error`?(h(),u(d(J),{key:3,type:`error`,title:k.value??``,closable:!1,"show-icon":``,"data-test-id":`create-error`},null,8,[`title`])):v(``,!0),O.value===`created`?(h(),e(C,{key:4},[l(d(J),{type:`success`,title:d(m)(`devicesVirtualPlugin.wizard.review.created`,{name:t.name}),closable:!1,"show-icon":``,"data-test-id":`create-success`},null,8,[`title`]),j.value===`failed`?(h(),u(d(J),{key:0,type:`warning`,title:M.value??``,closable:!1,"show-icon":``,"data-test-id":`hide-error`},{default:x(()=>[l(d(_),{size:`small`,"data-test-id":`retry-hide`,onClick:de},{default:x(()=>[c(p(d(m)(`devicesVirtualPlugin.wizard.review.hideSource.retry`)),1)]),_:1})]),_:1},8,[`title`])):j.value===`hidden`?(h(),u(d(J),{key:1,type:`success`,title:d(m)(`devicesVirtualPlugin.wizard.review.hideSource.success`,{device:q.value?.name??``}),closable:!1,"show-icon":``,"data-test-id":`hide-success`},null,8,[`title`])):v(``,!0)],64)):o.showCreateAction===!1?v(``,!0):(h(),u(d(_),{key:5,type:`primary`,disabled:!Q.value,loading:O.value===`submitting`,"data-test-id":`create-device`,onClick:fe},{default:x(()=>[c(p(d(m)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`]))]))}}),et={key:2,class:`mx-4 my-2`},tt={class:`flex items-center`},nt={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`},rt={class:`p-4`},it={key:3,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},at=4,ot=a({name:`ViewVirtualDeviceWizard`,__name:`view-virtual-device-wizard`,setup(a,{expose:s}){let{t:y}=ee(),b=te(),S=e=>{e===U.actuator_group?b.push({name:Ee.LIGHT_GROUP_WIZARD}):e===U.climate_controller?b.push({name:Ee.THERMOSTAT_WIZARD}):(e===U.sensor_aggregate||e===U.sensor_transform)&&b.push({name:Ee.MEASUREMENT_WIZARD,query:{mode:e}})},{isMDDevice:E,isLGDevice:k}=D();w({title:y(`devicesVirtualPlugin.wizard.title`)});let N=t({category:null,mappings:[],name:``,roomId:null,zoneIds:[]}),P=f(0),F=f(!1),I=f(null),z=f(null),B=f(!1),V=i(()=>P.value===at-1),H=i(()=>P.value===0?N.category!==null:P.value===1?F.value:P.value===2&&N.name.trim().length>0),ne=i(()=>[{label:y(`devicesModule.breadcrumbs.devices.list`),route:b.resolve({name:_e.DEVICES})},{label:y(`devicesVirtualPlugin.wizard.breadcrumb`),route:b.resolve({name:Ee.WIZARD})}]);O(()=>!B.value);let re=()=>{B.value||(k.value?b.replace({name:_e.DEVICES}):b.push({name:_e.DEVICES}))},W=()=>{B.value||P.value!==0&&--P.value},G=()=>{!H.value||V.value||(P.value+=1)},ie=e=>{F.value=e},ae=e=>{I.value=e},K=()=>{if(I.value===null)return;let e={name:_e.DEVICE,params:{id:I.value.id}};k.value?b.replace(e):b.push(e)};return m(()=>N.category,(e,t)=>{t==null||t===e||(N.mappings=[],F.value=!1)}),s({activeStep:P,canAdvance:H,createdDevice:I}),(t,i)=>(h(),e(C,null,[d(E)?v(``,!0):(h(),u(d(A),{key:0,teleport:``},{icon:x(()=>[l(d(n),{icon:`mdi:wizard-hat`,class:`w[20px] h[20px]`})]),title:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.title`)),1)]),subtitle:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.subtitle`)),1)]),_:1})),d(E)?v(``,!0):(h(),u(d(T),{key:1,align:d(L).LEFT,teleport:``,small:``,onClick:re},{icon:x(()=>[l(d(o),{size:24},{default:x(()=>[l(d(n),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),l(d(M),{items:ne.value},null,8,[`items`]),P.value===0?(h(),e(`div`,et,[l(d(se),{"model-value":d(U).projection,"aria-label":d(y)(`devicesVirtualPlugin.measurement.mode`),onChange:S},{default:x(()=>[l(d(Q),{value:d(U).projection},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.projection`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).sensor_aggregate},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.aggregate`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).sensor_transform},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.transform`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).actuator_group},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.measurement.group`)),1)]),_:1},8,[`value`]),l(d(Q),{value:d(U).climate_controller},{default:x(()=>[...i[6]||=[c(`Thermostat controller`,-1)]]),_:1},8,[`value`])]),_:1},8,[`model-value`,`aria-label`])])):v(``,!0),l(d(R),{heading:d(y)(`devicesVirtualPlugin.wizard.title`),"sub-heading":d(y)(`devicesVirtualPlugin.wizard.subtitle`),icon:`mdi:wizard-hat`},g({_:2},[d(E)?{name:`extra`,fn:x(()=>[r(`div`,tt,[I.value===null&&P.value>0?(h(),u(d(_),{key:0,disabled:B.value,"data-test-id":`wizard-back`,onClick:W},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(h(),u(d(_),{key:1,link:``,class:`ml-2!`,disabled:B.value,"data-test-id":`wizard-cancel`,onClick:re},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(h(),u(d(_),{key:2,type:`primary`,"data-test-id":`wizard-view-device`,onClick:K},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&V.value?(h(),u(d(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!z.value?.canCreate,loading:B.value,"data-test-id":`create-device`,onClick:z.value?.onCreate},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!V.value?(h(),u(d(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!H.value,"data-test-id":`wizard-next`,onClick:G},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)])]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),r(`div`,nt,[l(d(oe),{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:x(()=>[l(d(le),{active:P.value,"finish-status":`success`,"align-center":``},{default:x(()=>[l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.category`)},null,8,[`title`]),l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.mapping`)},null,8,[`title`]),l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.details`)},null,8,[`title`]),l(d($),{title:d(y)(`devicesVirtualPlugin.wizard.steps.review`)},null,8,[`title`])]),_:1},8,[`active`])]),default:x(()=>[l(d(j),{class:`flex-1 overflow-hidden h-full`},{default:x(()=>[r(`div`,rt,[P.value===0?(h(),u(Ie,{key:0,modelValue:N.category,"onUpdate:modelValue":i[0]||=e=>N.category=e},null,8,[`modelValue`])):P.value===1?(h(),u(Xe,{key:1,modelValue:N.mappings,"onUpdate:modelValue":i[1]||=e=>N.mappings=e,category:N.category,"onUpdate:valid":ie},null,8,[`modelValue`,`category`])):P.value===2?(h(),u(Be,{key:2,name:N.name,"onUpdate:name":i[2]||=e=>N.name=e,"room-id":N.roomId,"onUpdate:roomId":i[3]||=e=>N.roomId=e,"zone-ids":N.zoneIds,"onUpdate:zoneIds":i[4]||=e=>N.zoneIds=e,category:N.category},null,8,[`name`,`room-id`,`zone-ids`,`category`])):(h(),u($e,{key:3,ref_key:`reviewStep`,ref:z,category:N.category,mappings:N.mappings,name:N.name,"room-id":N.roomId,"zone-ids":N.zoneIds,"show-create-action":!1,onCreated:ae,onSubmitting:i[5]||=e=>B.value=e},null,8,[`category`,`mappings`,`name`,`room-id`,`zone-ids`]))])]),_:1})]),_:1})]),d(E)?v(``,!0):(h(),e(`div`,it,[I.value===null&&P.value>0?(h(),u(d(_),{key:0,disabled:B.value,"data-test-id":`wizard-back`,onClick:W},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(h(),u(d(_),{key:1,link:``,class:`ml-2!`,disabled:B.value,"data-test-id":`wizard-cancel`,onClick:re},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(h(),u(d(_),{key:2,type:`primary`,class:`ml-2!`,"data-test-id":`wizard-view-device`,onClick:K},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&V.value?(h(),u(d(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!z.value?.canCreate,loading:B.value,"data-test-id":`create-device`,onClick:z.value?.onCreate},{default:x(()=>[c(p(d(y)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!V.value?(h(),u(d(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!H.value,"data-test-id":`wizard-next`,onClick:G},{default:x(()=>[c(p(d(y)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)]))],64))}});export{ot as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Er as t,Fr as n,Mr as r,Nr as i,Pi as a,T as o,Ti as s,Xi as c,b as l,ei as u,k as d,pi as f,x as p}from"./icon-with-child-C0yuv0oQ.js";import{vn as m}from"./common-Cq0z9nNV.js";import{o as h}from"./devices.constants-cxt4nI1j.js";import"./devices-
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Er as t,Fr as n,Mr as r,Nr as i,Pi as a,T as o,Ti as s,Xi as c,b as l,ei as u,k as d,pi as f,x as p}from"./icon-with-child-C0yuv0oQ.js";import{vn as m}from"./common-Cq0z9nNV.js";import{o as h}from"./devices.constants-cxt4nI1j.js";import"./devices-BEzn7YNW.js";import{i as g}from"./devices-virtual.constants-BxQtZ-rg.js";import{t as _}from"./virtual-measurement-editor-CkDduLTw.js";var v={class:`p-4 overflow-auto`},y=n({__name:`view-virtual-measurement-wizard`,setup(n){let{t:y}=o(),b=p(),x=l(),S=s(!1),C=t(()=>x.query.mode===m.sensor_transform?m.sensor_transform:m.sensor_aggregate),w=e=>b.push({name:h.DEVICE,params:{id:e}});return(t,n)=>(u(),e(`div`,v,[i(a(d),{class:`mb-3`,disabled:S.value,onClick:n[0]||=e=>a(b).push({name:a(g).WIZARD})},{default:f(()=>[r(c(a(y)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`]),i(_,{mode:C.value,onCreated:w,onBusy:n[1]||=e=>S.value=e},null,8,[`mode`])]))}});export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Fr as t,Mr as n,Nr as r,Pi as i,T as a,Ti as o,Xi as s,_r as c,ei as l,k as u,mi as d,pi as f,x as p}from"./icon-with-child-C0yuv0oQ.js";import{n as m,r as h}from"./radio-Ccjyja5p.js";import{o as g}from"./devices.constants-cxt4nI1j.js";import"./devices-
|
|
1
|
+
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Fr as t,Mr as n,Nr as r,Pi as i,T as a,Ti as o,Xi as s,_r as c,ei as l,k as u,mi as d,pi as f,x as p}from"./icon-with-child-C0yuv0oQ.js";import{n as m,r as h}from"./radio-Ccjyja5p.js";import{o as g}from"./devices.constants-cxt4nI1j.js";import"./devices-BEzn7YNW.js";import{i as _}from"./devices-virtual.constants-BxQtZ-rg.js";import{n as v,t as y}from"./virtual-thermostat-editor-CRGPh71P.js";var b={class:`p-4 overflow-auto`},x=t({__name:`view-virtual-thermostat-wizard`,setup(t){let x=p(),{t:S}=a(),C=o(`guarded_branches`),w=e=>x.push({name:g.DEVICE,params:{id:e}});return(t,a)=>(l(),e(`div`,b,[r(i(u),{class:`mb-3`,onClick:a[0]||=e=>i(x).push({name:i(_).WIZARD})},{default:f(()=>[...a[2]||=[n(` Back `,-1)]]),_:1}),r(i(h),{modelValue:C.value,"onUpdate:modelValue":a[1]||=e=>C.value=e,class:`mb-3`,"aria-label":i(S)(`devicesVirtualPlugin.nativeThermostat.strategy`)},{default:f(()=>[r(i(m),{value:`guarded_branches`},{default:f(()=>[n(s(i(S)(`devicesVirtualPlugin.nativeThermostat.guarded`)),1)]),_:1}),r(i(m),{value:`native_unit`},{default:f(()=>[n(s(i(S)(`devicesVirtualPlugin.nativeThermostat.title`)),1)]),_:1})]),_:1},8,[`modelValue`,`aria-label`]),d(r(y,{create:``,onCreated:w},null,512),[[c,C.value===`guarded_branches`]]),d(r(v,{create:``,onCreated:w},null,512),[[c,C.value===`native_unit`]])]))}});export{x as default};
|