@camstack/addon-admin-ui 1.2.475 → 1.2.477
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/{AddonAssetIcon-BNfqkJPr.js → AddonAssetIcon-B_-30Ezl.js} +1 -1
- package/dist/assets/Addons-CbHidHOJ.js +5 -0
- package/dist/assets/{AdminPage-UX2_-EVb.js → AdminPage-3JxWocN3.js} +1 -1
- package/dist/assets/{AdminSectionedPage-CJhCo7eS.js → AdminSectionedPage-DtiHBXGC.js} +1 -1
- package/dist/assets/AiProfiles-7FToWDqj.js +3 -0
- package/dist/assets/{BrokerForm-B1b0ZQq_.js → BrokerForm-D5-q8F_8.js} +1 -1
- package/dist/assets/Build-DwW5kYsa.js +40 -0
- package/dist/assets/{Calendars-CPP5G4iE.js → Calendars-BhMRY6EV.js} +1 -1
- package/dist/assets/{Cluster-DxeRVsUO.js → Cluster-z11q6anB.js} +1 -1
- package/dist/assets/CompositionBlockEditor-CElNVsCR.js +1 -0
- package/dist/assets/CompositionEditorPage-NzgZB76B.js +1 -0
- package/dist/assets/Data-D_U-HkwO.js +2 -0
- package/dist/assets/{DeviceDetail-DKGhhLVK.js → DeviceDetail-D89wXQHP.js} +2 -2
- package/dist/assets/{DeviceDoActionFields-CVBUVXjq.js → DeviceDoActionFields-Bj4gX0r-.js} +1 -1
- package/dist/assets/{Devices-D9OmxxCE.js → Devices-BnhDZU3y.js} +1 -1
- package/dist/assets/{EmbedPlayerPage-u5jZuoCz.js → EmbedPlayerPage-Ccf5hGui.js} +1 -1
- package/dist/assets/{HelperWizard-Dape3GuD.js → HelperWizard-CrXHYd19.js} +2 -2
- package/dist/assets/History-BsJBR2zt.js +1 -0
- package/dist/assets/Identity-B_6I_sCY.js +1 -0
- package/dist/assets/IntegrationDetail-B9L7AfYy.js +1 -0
- package/dist/assets/IntegrationHub-CSaA690G.js +1 -0
- package/dist/assets/Integrations-B-KtSB_m.js +1 -0
- package/dist/assets/Integrations-CMW4LOX-.js +1 -0
- package/dist/assets/{Library-DUWYOPjU.js → Library-3dGkOQB5.js} +1 -1
- package/dist/assets/Locations-Bh5GRDCv.js +3 -0
- package/dist/assets/{Logs-CPgxOarw.js → Logs-diqSxXEc.js} +1 -1
- package/dist/assets/{MaskShapeCanvas-Cmq6IidK.js → MaskShapeCanvas-UFmJUhUS.js} +1 -1
- package/dist/assets/{MotionZonesSettings-CnZg9FTF.js → MotionZonesSettings-BTxe4DbF.js} +1 -1
- package/dist/assets/{MyAccess-BKLOlMok.js → MyAccess-BqulMSGv.js} +1 -1
- package/dist/assets/{Network-BT4UeK8H.js → Network-C8Gpb2Vn.js} +1 -1
- package/dist/assets/{NodeAddonsSettingsPanel-75hJ0AJM.js → NodeAddonsSettingsPanel-Dq6sGWkR.js} +1 -1
- package/dist/assets/Notifications-C5w5t75z.js +1 -0
- package/dist/assets/Pipeline-CjumfHMc.js +1 -0
- package/dist/assets/{PrivacyMaskSettings-BFWSAVsy.js → PrivacyMaskSettings-D6kokNvH.js} +1 -1
- package/dist/assets/Recordings-DE76fgEt.js +1 -0
- package/dist/assets/{ScanNetworkModal-hCwvBDMd.js → ScanNetworkModal-DXzDOpxk.js} +1 -1
- package/dist/assets/{SceneMonitorEditor-BVdAyhJk.js → SceneMonitorEditor-CrDKfkgT.js} +1 -1
- package/dist/assets/SessionsList-Ca-zN1Fi.js +2 -0
- package/dist/assets/{Showroom-DlUMfmmX.js → Showroom-B9HZ38O5.js} +1 -1
- package/dist/assets/{System-xDNpG66Z.js → System-CHEbMPI_.js} +1 -1
- package/dist/assets/{Terminal-BKTT8qvq.js → Terminal-CWFZuQLg.js} +3 -3
- package/dist/assets/{Viewer-Cu8oX6VE.js → Viewer-DwNVIy-u.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-20B8V9NZ.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-QiJARN9B.js} +1 -1
- package/dist/assets/{addon-icons-context-BuuVE9Wr.js → addon-icons-context-lrP_33gc.js} +1 -1
- package/dist/assets/{archive-CfJx72Ya.js → archive-Brq5E-qM.js} +1 -1
- package/dist/assets/{assignment-candidates-B51c4fCG.js → assignment-candidates-BcnFMc1B.js} +1 -1
- package/dist/assets/{authed-media-iyqNF0CO.js → authed-media-CnaIhiH3.js} +1 -1
- package/dist/assets/{bell-off-D1QNHdBJ.js → bell-off-CDjOfT8K.js} +1 -1
- package/dist/assets/{board-model-4EY3kgfH.js → board-model-gmvqxkjB.js} +1 -1
- package/dist/assets/{boxes-DomeSuUE.js → boxes-0ut2NdHU.js} +1 -1
- package/dist/assets/circle-slash-CaxGVwz5.js +1 -0
- package/dist/assets/client-DvJxGh2F.js +358 -0
- package/dist/assets/{cloud-upload-J0OXIjbZ.js → cloud-upload-M9JxZe_d.js} +1 -1
- package/dist/assets/crop-eK4NEtXI.js +1 -0
- package/dist/assets/{device-integration-icon-BQEjbsKG.js → device-integration-icon-0oWIIjcP.js} +1 -1
- package/dist/assets/device-picker-model-CUPf26ML.js +1 -0
- package/dist/assets/{dist-DcarhQ77.js → dist-B9cEBPZ1.js} +1 -1
- package/dist/assets/{eraser-DdaeWuQ6.js → eraser-Bs0PJaPY.js} +1 -1
- package/dist/assets/{format-Bq6kzos8.js → format-CIO4xeN9.js} +1 -1
- package/dist/assets/{hard-drive-download-YerwrGPA.js → hard-drive-download-iRJR_Xj9.js} +1 -1
- package/dist/assets/{hostInit-B6UQXYd9.js → hostInit-DB6u6qxU.js} +1 -1
- package/dist/assets/i18n-xhwARoF0.js +1 -0
- package/dist/assets/icons-apbWMCU4.js +1 -0
- package/dist/assets/index-C3uCLHv0.js +4 -0
- package/dist/assets/index-D4ZlWCxy.css +2 -0
- package/dist/assets/{key-CunS-V0Z.js → key-Crd8m-SP.js} +1 -1
- package/dist/assets/{key-round-DcVl91E5.js → key-round-DG341WFZ.js} +1 -1
- package/dist/assets/{layers-BC3a28BZ.js → layers-BnsQ5ORI.js} +1 -1
- package/dist/assets/{linked-devices-model-CWqnVKj5.js → linked-devices-model-BoOq02QT.js} +1 -1
- package/dist/assets/{list-ordered-B_2hLh_-.js → list-ordered-BIo7AnFy.js} +1 -1
- package/dist/assets/{location-owned-usage-C3ukxAgd.js → location-owned-usage-IF2k-L3A.js} +1 -1
- package/dist/assets/{log-in-IPEzbjqk.js → log-in-D1BPSCDn.js} +1 -1
- package/dist/assets/{memory-stick-CUBeuzQu.js → memory-stick-CjPBCMfd.js} +1 -1
- package/dist/assets/{message-square-plus-DHiayOOs.js → message-square-plus-C4N5hy0x.js} +1 -1
- package/dist/assets/{mf-entry-bootstrap-0-976d3c1a.js → mf-entry-bootstrap-0-f45a46c2.js} +2 -2
- package/dist/assets/{mic-off-DX_Buyxi.js → mic-off-CgPfA49W.js} +1 -1
- package/dist/assets/{monitor-off-Czk3uiUL.js → monitor-off-Ib2v0VDF.js} +1 -1
- package/dist/assets/{monitor-smartphone-DhnI06Vd.js → monitor-smartphone-6w2T5Ht_.js} +1 -1
- package/dist/assets/mount-CUPf26ML.js +1 -0
- package/dist/assets/{player-overlays-DfIXPXfC.js → player-overlays-Dbv95cvz.js} +1 -1
- package/dist/assets/{recycle-CIxCuRlw.js → recycle-DcScXiTi.js} +1 -1
- package/dist/assets/remoteEntry-CVuKB7K_.js +1 -0
- package/dist/assets/{scan-eye-CNch-kOQ.js → scan-eye-CWOvobjP.js} +1 -1
- package/dist/assets/{scissors-DAqmNijF.js → scissors-NpyrGUBV.js} +1 -1
- package/dist/assets/{search-x-Bam8bduF.js → search-x-CKQw--aU.js} +1 -1
- package/dist/assets/{send-DTxEr1U2.js → send-402PlgqT.js} +1 -1
- package/dist/assets/{settings-2-Gykf_Jj2.js → settings-2-BbwQVFbm.js} +1 -1
- package/dist/assets/{speaker-vU_58Q4N.js → speaker-DCHkSyjS.js} +1 -1
- package/dist/assets/src-DntJrWmU.js +67 -0
- package/dist/assets/{step-inspector-model-COSP18Eo.js → step-inspector-model-CyqFN-LU.js} +1 -1
- package/dist/assets/table-2-CTZnEliG.js +1 -0
- package/dist/assets/{timer-reset-BfVqeFHK.js → timer-reset-DZ3bTFWu.js} +1 -1
- package/dist/assets/{ungroup-BzhYEwYi.js → ungroup-3fOR8xo7.js} +1 -1
- package/dist/assets/{unlink-DcrSLSGi.js → unlink-vu-wpZmU.js} +1 -1
- package/dist/assets/{usb-CCxf9eVL.js → usb-CGOBq5r2.js} +1 -1
- package/dist/assets/{use-scenes-feed-CCy-Tx5-.js → use-scenes-feed-D80maECB.js} +1 -1
- package/dist/assets/{use-stationary-objects-rfvEUY5Q.js → use-stationary-objects-DBEa50KS.js} +1 -1
- package/dist/assets/useEventInvalidation-CUPf26ML.js +1 -0
- package/dist/assets/{useNodeUrlSelection-BDqOR0oD.js → useNodeUrlSelection-DGV2ltbG.js} +1 -1
- package/dist/assets/user-round-CmncOV9r.js +1 -0
- package/dist/assets/{user-x-DNQnP84p.js → user-x-CjUfhy0O.js} +1 -1
- package/dist/assets/{video-FHJCba2c.js → video-D7jv0spx.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-BBtNcF2c.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-CglCXJMd.js} +2 -2
- package/dist/index.html +10 -10
- package/dist/server/addon.js +1 -1
- package/package.json +1 -1
- package/dist/assets/Addons-BQclhgQv.js +0 -5
- package/dist/assets/AiProfiles-zhlwR2_B.js +0 -3
- package/dist/assets/Build-DMVYWc57.js +0 -40
- package/dist/assets/CompositionCreateForm-ZntjBNdS.js +0 -1
- package/dist/assets/CompositionEditorPage-CpvZY109.js +0 -1
- package/dist/assets/Data-NzOvsB8O.js +0 -2
- package/dist/assets/History-D-T-XA80.js +0 -1
- package/dist/assets/Identity-DmBhBZsL.js +0 -1
- package/dist/assets/IntegrationDetail-0C2a7iSq.js +0 -1
- package/dist/assets/IntegrationHub-DdxMGRIt.js +0 -1
- package/dist/assets/Integrations-aOO9hE39.js +0 -1
- package/dist/assets/Integrations-eKDwugCV.js +0 -1
- package/dist/assets/Locations-D4YphIdu.js +0 -3
- package/dist/assets/Notifications-B7JOfwPI.js +0 -1
- package/dist/assets/Pipeline-DKfkLPEM.js +0 -1
- package/dist/assets/Recordings-OmewxCzq.js +0 -1
- package/dist/assets/SessionsList-CTsz8qck.js +0 -2
- package/dist/assets/circle-slash-CPzLe6ak.js +0 -1
- package/dist/assets/client-fa7ANI4X.js +0 -358
- package/dist/assets/crop-4oyysRxn.js +0 -1
- package/dist/assets/device-picker-model-CsITnnp7.js +0 -1
- package/dist/assets/i18n-l_m6iBJW.js +0 -1
- package/dist/assets/icons-BBOyPCCy.js +0 -1
- package/dist/assets/index-B4dcSKZt.css +0 -2
- package/dist/assets/index-Ctkts88E.js +0 -4
- package/dist/assets/mount-CsITnnp7.js +0 -1
- package/dist/assets/remoteEntry-isS_YRZd.js +0 -1
- package/dist/assets/src-Cy_bal4g.js +0 -67
- package/dist/assets/useEventInvalidation-CsITnnp7.js +0 -1
- package/dist/assets/user-round-D6lnAuWE.js +0 -1
package/dist/assets/{NodeAddonsSettingsPanel-75hJ0AJM.js → NodeAddonsSettingsPanel-Dq6sGWkR.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,J as t,K as n,R as r,S as i,V as a,W as o,Y as s,et as c,i as l,j as u,o as d,p as f,t as p}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CEyXHAdg.js";import{ot as m}from"./player-overlays-DfIXPXfC.js";import{ya as h}from"./client-fa7ANI4X.js";import{Hi as g,Ma as _,_t as v,di as y,ui as ee,xi as te}from"./src-Cy_bal4g.js";import{t as ne}from"./useTranslation-BJr-n0es.js";import{M as re,N as ie,P as b,Qn as x}from"./index-Ctkts88E.js";c();var S=u(function({addonId:e,schema:s,serverValues:c,onImmediateSave:l,onStateChange:u,onAction:d,disabled:f},p){let m=x({schema:s,serverValues:c,onImmediateSave:r(t=>l(e,t),[e,l]),onDeferredSave:r(()=>{},[])});o(p,()=>({flush:()=>{let e={};for(let t of m.pendingKeys)e[t]=m.values[t];return m.handleDiscard(m.pendingKeys),e},discard:()=>m.resetAll()}),[m]);let h=m.pendingKeys,g=h.join(`|`),_=n(()=>h.map(e=>`${e}=${JSON.stringify(m.values[e])}`).join(`,`),[h,m.values]),v=t(u);a(()=>{v.current=u},[u]),a(()=>{let t={};for(let e of h)t[e]=m.values[e];v.current({addonId:e,pendingKeys:h,pendingValues:t})},[e,g,_]);let y=n(()=>{if(d)return(t,n,r)=>d(e,t,n,r)},[e,d]);return i(b,{schema:s,values:m.values,onChange:m.handleChange,disabled:f,onAction:y})});function C(e){return`perNode`in e&&e.perNode===!0}function w(e,t){if(e.type===`group`){let n=T(e.fields,t);return n.length>0?{...e,fields:n}:null}if(e.type===`sub-tabs`){let n=e.tabs.map(e=>({...e,fields:T(e.fields,t)})).filter(e=>e.fields.length>0);return n.length>0?{...e,tabs:n}:null}return C(e)===(t===`perNode`)?e:null}function T(e,t){let n=[];for(let r of e){let e=w(r,t);e!==null&&n.push(e)}return n}function ae(e,t){let n=[];for(let r of e.sections){let e=T(r.fields,t);e.length!==0&&n.push({...r,fields:e})}return{...e,sections:n}}function oe(e,t){let n=e??`general`;return t?.[n]??n}function E(e){return typeof e!=`object`||!e||!(`key`in e)?null:typeof e.key==`string`?e.key:null}function se(e,t){let n=t.fieldKeys===void 0?null:new Set(t.fieldKeys),r=[];for(let i of e){let e=n===null?i.fields:i.fields.filter(e=>{let t=E(e);return t!==null&&n.has(t)});e.length!==0&&r.push({...i,fields:e,...t.tabAliases===void 0?{}:{tab:oe(i.tab,t.tabAliases)},...t.hideSectionChrome===!0?{title:``,description:void 0}:{}})}return r}c();function D(e,t){if(e.type===`separator`||e.type===`info`||e.type===`button`)return e;if(e.type===`group`){let n=e.fields.map(e=>D(e,t));return{...e,fields:n}}let n=e;t[e.key]=n.value;let{value:r,...i}=n;return i}function O(e,t){return{...e,fields:e.fields.map(e=>D(e,t))}}function ce(e){let t={};return{schema:{...e.tabs?{tabs:e.tabs}:{},sections:e.sections.map(e=>O(e,t))},values:t}}function k({nodeId:a,addonIds:o,level:c,deviceId:u,capability:b,sectionIds:x,omitSectionIds:S,fieldKeys:C,hideSectionChrome:w,tabAliases:T,tabLabelOverrides:E,sectionTab:D,fieldScope:O,surface:k,emptyMessage:ue,extraTabs:A,schemaTabExtras:j,title:M,description:N,selfTabbed:de,activeTab:P,onActiveTabChange:fe}){let{t:F}=ne(),I=d(),L=m().trpcClient,R=y(),z=ee(),pe=_(),me=g(),B=de===!0||!!(A&&A.length>0),[he,ge]=s(null);if(c===`device`&&!u)throw Error(`NodeAddonsSettingsPanel: deviceId is required when level === "device"`);if(k!==void 0){if(c!==`global`||u!==void 0)throw Error(`NodeAddonsSettingsPanel: integration-level settings are addon-wide — they cannot be mounted at device level or with a deviceId. A second page, never a second scope.`);if(a!==null)throw Error(`NodeAddonsSettingsPanel: an integration has no node behind it — pass nodeId={null}. Received ${JSON.stringify(a)}.`);if(O!==void 0)throw Error("NodeAddonsSettingsPanel: integration-level settings arrive already cluster-scoped from core — remove `fieldScope` rather than restating it.")}let V=a??`hub`,H=l({queries:o.map(e=>({queryKey:[[`addonSettings`,k===void 0?c===`global`?`getGlobalSettings`:`getDeviceSettings`:`getIntegrationSettings`],{addonId:e,nodeId:V,deviceId:u??null,cap:b??null,scope:O??null}],queryFn:async()=>{let t=e=>e!==null&&O!==void 0?ae(e,O):e;return k===void 0?c===`global`?{addonId:e,result:t(await L.addonSettings.getGlobalSettings.query({addonId:e,nodeId:V,...b?{cap:b}:{}}))}:{addonId:e,result:t(await L.addonSettings.getDeviceSettings.query({addonId:e,deviceId:u,nodeId:V}))}:{addonId:e,result:await L.addonSettings.getIntegrationSettings.query({addonId:e,nodeId:V})}},placeholderData:f}))}),_e=H.some(e=>e.isLoading),ve=H.map(e=>{if(!e.data)return`-`;if(e.data.result===null)return`${e.data.addonId}:n`;let t=[];for(let n of e.data.result.sections){t.push(`s:${n.id}:${n.tab??`general`}`);for(let e of n.fields){if(!(`key`in e))continue;let n=`options`in e&&Array.isArray(e.options)?e.options.map(e=>e.value).join(`,`):``,r=e.value,i=r===void 0?``:typeof r==`string`?r:JSON.stringify(r);t.push(`f:${e.key}:${n}:${i}`)}}return`${e.data.addonId}:${t.join(`|`)}`}).join(`||`),U=n(()=>{let e=new Set;for(let t of H){let n=t.data?.result?.sections;if(n)for(let t of n)e.add(oe(t.tab,T))}return[...e]},[T,ve+`::`+H.map(e=>(e.data?.result?.sections??[]).map(e=>e.tab??`general`).join(`,`)).join(`::`)]),W=n(()=>new Map((A??[]).map(e=>[e.id,e])),[A]),G=n(()=>{if(!B)return[];let e=[...new Set([...U,...(A??[]).map(e=>e.id),...(j??[]).map(e=>e.tabId)])],t=e=>{let t=W.get(e);if(t?.order!==void 0)return t.order;let n=h[e];return n?n.order:50};return e.toSorted((e,n)=>{let r=t(e),i=t(n);return r===i?e.localeCompare(n):r-i})},[B,U,A,W,j]),ye=n(()=>{let e=new Map,t=e=>h[e]?.label??e.charAt(0).toUpperCase()+e.slice(1);for(let n of U)e.set(n,t(n));for(let n of j??[])e.has(n.tabId)||e.set(n.tabId,t(n.tabId));for(let t of A??[])e.set(t.id,t.label);for(let[t,n]of Object.entries(E??{}))e.set(t,n);return e},[U,A,j,E]),K=P===void 0?he:P,q=B?K&&G.includes(K)?K:G[0]??null:null,be=e=>{ge(e),fe?.(e)},xe=q!==null&&W.has(q),J=B?q&&!xe?q:void 0:D,{data:Se}=te(void 0),Ce=n(()=>{let e=new Map;for(let t of Se??[]){let n=t.manifest?.id;if(!n)continue;let r=t.manifest?.name??t.manifest?.packageDisplayName??n;e.set(n,r)}return e},[Se]),we=t(new Map),Y=n(()=>{let e=x?new Set(x):null,t=S?new Set(S):null,n=n=>!(e!==null&&!e.has(n)||t!==null&&t.has(n)),r=[];for(let e of H){if(!e.data)continue;let t=e.data.result??we.current.get(e.data.addonId)??null;if(e.data.result!==null&&we.current.set(e.data.addonId,e.data.result),t===null)continue;let{schema:i,values:a}=ce(t),o={...C===void 0?{}:{fieldKeys:C},...w===void 0?{}:{hideSectionChrome:w},...T===void 0?{}:{tabAliases:T}},s=se(i.sections.filter(e=>n(e.id)),o);if(s.length===0)continue;let c={...t,sections:se(t.sections.filter(e=>n(e.id)),o)},l={...i,sections:s};r.push({addonId:e.data.addonId,schemaWithValues:c,schema:l,serverValues:a})}return r},[ve,x,S,C,w,T]),[X,Te]=s(new Map),Ee=r(e=>{Te(t=>{let n=new Map(t);return n.set(e.addonId,e),n})},[]),Z=t(new Map),De=r(e=>t=>{t?Z.current.set(e,t):Z.current.delete(e)},[]),Oe=r(async(e,t)=>{c===`global`?await R.mutateAsync({addonId:e,nodeId:V,patch:t}):await z.mutateAsync({addonId:e,deviceId:u,nodeId:V,patch:t}),I.invalidateQueries({queryKey:[[`addonSettings`]]})},[R,z,V,c,u,I]),ke=r(async(e,t,n,r)=>{let i=V;try{switch(t){case`reprobe-hwaccel`:await pe.mutateAsync({nodeId:i}),I.invalidateQueries({queryKey:[[`addonSettings`]]});return;case`reprobe-audio-engine`:await me.mutateAsync({nodeId:i}),I.invalidateQueries({queryKey:[[`addonSettings`]]});return;default:{let n=await L.addons.custom.mutate({addonId:e,action:t,input:r});return I.invalidateQueries({queryKey:[[`addonSettings`]]}),n}}}catch(n){throw console.error(`[NodeAddonsSettingsPanel] action failed`,{addonId:e,action:t,err:n}),n}},[pe,me,V,I,L]),Ae=r((e,t)=>{Oe(e,t)},[Oe]),Q=p({mutationFn:async()=>{let e=[];for(let t of Y){let n=X.get(t.addonId);!n||n.pendingKeys.length===0||e.push({addonId:t.addonId,patch:n.pendingValues})}return e.length===0?{saved:[]}:{saved:await Promise.all(e.map(async({addonId:e,patch:t})=>(c===`global`?await R.mutateAsync({addonId:e,nodeId:V,patch:t}):await z.mutateAsync({addonId:e,deviceId:u,nodeId:V,patch:t}),e)))}},onSuccess:({saved:e})=>{for(let t of e)Z.current.get(t)?.discard();I.invalidateQueries({queryKey:[[`addonSettings`]]})}}),je=r(()=>{for(let e of Z.current.values())e.discard()},[]),Me=n(()=>{let e=0;for(let t of Y){let n=X.get(t.addonId);n&&(e+=n.pendingKeys.length)}return e},[Y,X]),Ne=n(()=>{let e=new Map;for(let t of Y){let n=X.get(t.addonId);if(!n||n.pendingKeys.length===0)continue;let r=new Set(n.pendingKeys);for(let n of t.schema.sections){let t=n.tab??`general`;for(let i of n.fields)`key`in i&&r.has(i.key)&&e.set(t,(e.get(t)??0)+1)}}return e},[Y,X]);if(_e)return i(`div`,{className:`h-24 rounded-lg border border-border bg-surface animate-pulse`});let $=q&&xe?W.get(q):void 0;if(!B&&Y.length===0)return i(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:ue??F(`settings.nodeAddonsSettingsPanel.noAddonsIn`,{scope:o.length>0?`[${o.join(`, `)}]`:F(`settings.nodeAddonsSettingsPanel.theCurrentSelection`,`the current selection`),level:c})});let Pe=Q.isPending;return e(`div`,{className:`space-y-4`,children:[(M||N)&&e(`div`,{className:`border-b border-border pb-2`,children:[M&&i(`h2`,{className:`text-sm font-semibold text-foreground`,children:M}),N&&i(`p`,{className:`text-[11px] text-foreground-subtle mt-0.5`,children:N})]}),B&&i(re,{tabs:G.map(e=>({id:e,label:ye.get(e)??e})),activeId:q,onChange:be,pendingByTab:Ne}),Q.isError&&e(`div`,{className:`rounded-md border border-red-500/40 bg-red-500/10 px-3 py-2 text-[11px] text-red-400`,children:[F(`settings.nodeAddonsSettingsPanel.saveFailed`,`Save failed:`),` `,String(Q.error?.message??Q.error)]}),i(v,{tabKey:$?`extra:${q??``}`:`tab:${q??``}`,children:$?$.content:(()=>{let t=J?Y.reduce((e,t)=>e+t.schemaWithValues.sections.filter(e=>(e.tab??`general`)===J).length,0):0,n=!!J&&t<=1,r=Y.map(e=>({...e,renderedWithValues:{...e.schemaWithValues,sections:e.schemaWithValues.sections.filter(e=>J?(e.tab??`general`)===J:!0).map(e=>n?{...e,title:``,description:void 0}:e)}})).filter(e=>e.renderedWithValues.sections.length>0).toSorted((e,t)=>{let n=e=>{let t=1/0;for(let n of e)typeof n.order==`number`&&n.order<t&&(t=n.order);return t},r=n(e.renderedWithValues.sections),i=n(t.renderedWithValues.sections);return r===i?0:r-i}),a=(j??[]).filter(e=>e.tabId===J),o=a.filter(e=>(e.placement??`before`)===`before`),s=a.filter(e=>e.placement===`after`);return r.length===0&&a.length===0?i(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:ue??F(`settings.nodeAddonsSettingsPanel.nothingToConfigureHereFor`,`Nothing to configure here for this node.`)}):e(`div`,{className:`space-y-6`,children:[o.map((e,t)=>i(`div`,{children:e.content},`extra-before-${t}`)),r.length>0&&i(le,{entries:r,paneStates:X,displayNames:Ce,disabled:Pe,setPaneRef:De,onPaneStateChange:Ee,onImmediateSave:Ae,onAction:ke,inline:B||!!D}),s.map((e,t)=>i(`div`,{children:e.content},`extra-after-${t}`))]})})()}),!_e&&i(ie,{pendingCount:Me,onSave:()=>Q.mutate(),onDiscard:je,saving:Pe})]})}function le({entries:t,paneStates:r,displayNames:o,disabled:c,setPaneRef:l,onPaneStateChange:u,onImmediateSave:d,onAction:f,inline:p}){let m=n(()=>[...t].toSorted((e,t)=>{if(e.addonId===`system-config`)return-1;if(t.addonId===`system-config`)return 1;let n=o.get(e.addonId)??e.addonId,r=o.get(t.addonId)??t.addonId;return n.localeCompare(r)}),[t,o]),[h,g]=s(m[0]?.addonId??``);a(()=>{m.length!==0&&(m.find(e=>e.addonId===h)||g(m[0].addonId))},[m,h]);let _=m.find(e=>e.addonId===h)??m[0];if(!_)return null;let v=n(()=>f?(e,t,n,r)=>f(e,t,n,r):void 0,[f]),y=e=>i(S,{ref:l(e.addonId),addonId:e.addonId,schema:e.renderedWithValues,serverValues:e.serverValues,onImmediateSave:d,onStateChange:u,onAction:v,disabled:c},e.addonId);return m.length===1||p?i(`div`,{className:`flex flex-col gap-4`,children:m.map(y)}):e(`div`,{className:`flex flex-col gap-3`,children:[i(`div`,{className:`flex flex-wrap items-center gap-1 border-b border-border shrink-0`,children:m.map(t=>{let n=o.get(t.addonId)??t.addonId,a=t.addonId===_.addonId,s=(r.get(t.addonId)?.pendingKeys.length??0)>0;return e(`button`,{type:`button`,onClick:()=>g(t.addonId),className:`relative px-3 py-1.5 text-xs font-medium rounded-t-md transition-colors -mb-px border-b-2 whitespace-nowrap ${a?`text-primary border-primary bg-primary/5`:`text-foreground-subtle border-transparent hover:text-foreground hover:bg-surface-hover`}`,children:[n,s&&i(`span`,{className:`ml-1.5 inline-flex h-1.5 w-1.5 rounded-full bg-amber-400`})]},t.addonId)})}),i(`div`,{className:`space-y-2`,children:m.map(e=>i(`div`,{style:e.addonId===_.addonId?void 0:{display:`none`},children:y(e)},e.addonId))})]})}export{k as t};
|
|
1
|
+
import{C as e,J as t,K as n,R as r,S as i,V as a,W as o,Y as s,et as c,i as l,j as u,o as d,p as f,t as p}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CEyXHAdg.js";import{ot as m}from"./player-overlays-Dbv95cvz.js";import{ba as h}from"./client-DvJxGh2F.js";import{Na as g,Si as _,Ui as v,di as y,fi as ee,vt as te}from"./src-DntJrWmU.js";import{t as ne}from"./useTranslation-BJr-n0es.js";import{M as re,N as ie,P as b,Qn as x}from"./index-C3uCLHv0.js";c();var S=u(function({addonId:e,schema:s,serverValues:c,onImmediateSave:l,onStateChange:u,onAction:d,disabled:f},p){let m=x({schema:s,serverValues:c,onImmediateSave:r(t=>l(e,t),[e,l]),onDeferredSave:r(()=>{},[])});o(p,()=>({flush:()=>{let e={};for(let t of m.pendingKeys)e[t]=m.values[t];return m.handleDiscard(m.pendingKeys),e},discard:()=>m.resetAll()}),[m]);let h=m.pendingKeys,g=h.join(`|`),_=n(()=>h.map(e=>`${e}=${JSON.stringify(m.values[e])}`).join(`,`),[h,m.values]),v=t(u);a(()=>{v.current=u},[u]),a(()=>{let t={};for(let e of h)t[e]=m.values[e];v.current({addonId:e,pendingKeys:h,pendingValues:t})},[e,g,_]);let y=n(()=>{if(d)return(t,n,r)=>d(e,t,n,r)},[e,d]);return i(b,{schema:s,values:m.values,onChange:m.handleChange,disabled:f,onAction:y})});function C(e){return`perNode`in e&&e.perNode===!0}function w(e,t){if(e.type===`group`){let n=T(e.fields,t);return n.length>0?{...e,fields:n}:null}if(e.type===`sub-tabs`){let n=e.tabs.map(e=>({...e,fields:T(e.fields,t)})).filter(e=>e.fields.length>0);return n.length>0?{...e,tabs:n}:null}return C(e)===(t===`perNode`)?e:null}function T(e,t){let n=[];for(let r of e){let e=w(r,t);e!==null&&n.push(e)}return n}function ae(e,t){let n=[];for(let r of e.sections){let e=T(r.fields,t);e.length!==0&&n.push({...r,fields:e})}return{...e,sections:n}}function oe(e,t){let n=e??`general`;return t?.[n]??n}function E(e){return typeof e!=`object`||!e||!(`key`in e)?null:typeof e.key==`string`?e.key:null}function se(e,t){let n=t.fieldKeys===void 0?null:new Set(t.fieldKeys),r=[];for(let i of e){let e=n===null?i.fields:i.fields.filter(e=>{let t=E(e);return t!==null&&n.has(t)});e.length!==0&&r.push({...i,fields:e,...t.tabAliases===void 0?{}:{tab:oe(i.tab,t.tabAliases)},...t.hideSectionChrome===!0?{title:``,description:void 0}:{}})}return r}c();function D(e,t){if(e.type===`separator`||e.type===`info`||e.type===`button`)return e;if(e.type===`group`){let n=e.fields.map(e=>D(e,t));return{...e,fields:n}}let n=e;t[e.key]=n.value;let{value:r,...i}=n;return i}function O(e,t){return{...e,fields:e.fields.map(e=>D(e,t))}}function ce(e){let t={};return{schema:{...e.tabs?{tabs:e.tabs}:{},sections:e.sections.map(e=>O(e,t))},values:t}}function k({nodeId:a,addonIds:o,level:c,deviceId:u,capability:b,sectionIds:x,omitSectionIds:S,fieldKeys:C,hideSectionChrome:w,tabAliases:T,tabLabelOverrides:E,sectionTab:D,fieldScope:O,surface:k,emptyMessage:ue,extraTabs:A,schemaTabExtras:j,title:M,description:N,selfTabbed:de,activeTab:P,onActiveTabChange:fe}){let{t:F}=ne(),I=d(),L=m().trpcClient,R=ee(),z=y(),pe=g(),me=v(),B=de===!0||!!(A&&A.length>0),[he,ge]=s(null);if(c===`device`&&!u)throw Error(`NodeAddonsSettingsPanel: deviceId is required when level === "device"`);if(k!==void 0){if(c!==`global`||u!==void 0)throw Error(`NodeAddonsSettingsPanel: integration-level settings are addon-wide — they cannot be mounted at device level or with a deviceId. A second page, never a second scope.`);if(a!==null)throw Error(`NodeAddonsSettingsPanel: an integration has no node behind it — pass nodeId={null}. Received ${JSON.stringify(a)}.`);if(O!==void 0)throw Error("NodeAddonsSettingsPanel: integration-level settings arrive already cluster-scoped from core — remove `fieldScope` rather than restating it.")}let V=a??`hub`,H=l({queries:o.map(e=>({queryKey:[[`addonSettings`,k===void 0?c===`global`?`getGlobalSettings`:`getDeviceSettings`:`getIntegrationSettings`],{addonId:e,nodeId:V,deviceId:u??null,cap:b??null,scope:O??null}],queryFn:async()=>{let t=e=>e!==null&&O!==void 0?ae(e,O):e;return k===void 0?c===`global`?{addonId:e,result:t(await L.addonSettings.getGlobalSettings.query({addonId:e,nodeId:V,...b?{cap:b}:{}}))}:{addonId:e,result:t(await L.addonSettings.getDeviceSettings.query({addonId:e,deviceId:u,nodeId:V}))}:{addonId:e,result:await L.addonSettings.getIntegrationSettings.query({addonId:e,nodeId:V})}},placeholderData:f}))}),_e=H.some(e=>e.isLoading),ve=H.map(e=>{if(!e.data)return`-`;if(e.data.result===null)return`${e.data.addonId}:n`;let t=[];for(let n of e.data.result.sections){t.push(`s:${n.id}:${n.tab??`general`}`);for(let e of n.fields){if(!(`key`in e))continue;let n=`options`in e&&Array.isArray(e.options)?e.options.map(e=>e.value).join(`,`):``,r=e.value,i=r===void 0?``:typeof r==`string`?r:JSON.stringify(r);t.push(`f:${e.key}:${n}:${i}`)}}return`${e.data.addonId}:${t.join(`|`)}`}).join(`||`),U=n(()=>{let e=new Set;for(let t of H){let n=t.data?.result?.sections;if(n)for(let t of n)e.add(oe(t.tab,T))}return[...e]},[T,ve+`::`+H.map(e=>(e.data?.result?.sections??[]).map(e=>e.tab??`general`).join(`,`)).join(`::`)]),W=n(()=>new Map((A??[]).map(e=>[e.id,e])),[A]),G=n(()=>{if(!B)return[];let e=[...new Set([...U,...(A??[]).map(e=>e.id),...(j??[]).map(e=>e.tabId)])],t=e=>{let t=W.get(e);if(t?.order!==void 0)return t.order;let n=h[e];return n?n.order:50};return e.toSorted((e,n)=>{let r=t(e),i=t(n);return r===i?e.localeCompare(n):r-i})},[B,U,A,W,j]),ye=n(()=>{let e=new Map,t=e=>h[e]?.label??e.charAt(0).toUpperCase()+e.slice(1);for(let n of U)e.set(n,t(n));for(let n of j??[])e.has(n.tabId)||e.set(n.tabId,t(n.tabId));for(let t of A??[])e.set(t.id,t.label);for(let[t,n]of Object.entries(E??{}))e.set(t,n);return e},[U,A,j,E]),K=P===void 0?he:P,q=B?K&&G.includes(K)?K:G[0]??null:null,be=e=>{ge(e),fe?.(e)},xe=q!==null&&W.has(q),J=B?q&&!xe?q:void 0:D,{data:Se}=_(void 0),Ce=n(()=>{let e=new Map;for(let t of Se??[]){let n=t.manifest?.id;if(!n)continue;let r=t.manifest?.name??t.manifest?.packageDisplayName??n;e.set(n,r)}return e},[Se]),we=t(new Map),Y=n(()=>{let e=x?new Set(x):null,t=S?new Set(S):null,n=n=>!(e!==null&&!e.has(n)||t!==null&&t.has(n)),r=[];for(let e of H){if(!e.data)continue;let t=e.data.result??we.current.get(e.data.addonId)??null;if(e.data.result!==null&&we.current.set(e.data.addonId,e.data.result),t===null)continue;let{schema:i,values:a}=ce(t),o={...C===void 0?{}:{fieldKeys:C},...w===void 0?{}:{hideSectionChrome:w},...T===void 0?{}:{tabAliases:T}},s=se(i.sections.filter(e=>n(e.id)),o);if(s.length===0)continue;let c={...t,sections:se(t.sections.filter(e=>n(e.id)),o)},l={...i,sections:s};r.push({addonId:e.data.addonId,schemaWithValues:c,schema:l,serverValues:a})}return r},[ve,x,S,C,w,T]),[X,Te]=s(new Map),Ee=r(e=>{Te(t=>{let n=new Map(t);return n.set(e.addonId,e),n})},[]),Z=t(new Map),De=r(e=>t=>{t?Z.current.set(e,t):Z.current.delete(e)},[]),Oe=r(async(e,t)=>{c===`global`?await R.mutateAsync({addonId:e,nodeId:V,patch:t}):await z.mutateAsync({addonId:e,deviceId:u,nodeId:V,patch:t}),I.invalidateQueries({queryKey:[[`addonSettings`]]})},[R,z,V,c,u,I]),ke=r(async(e,t,n,r)=>{let i=V;try{switch(t){case`reprobe-hwaccel`:await pe.mutateAsync({nodeId:i}),I.invalidateQueries({queryKey:[[`addonSettings`]]});return;case`reprobe-audio-engine`:await me.mutateAsync({nodeId:i}),I.invalidateQueries({queryKey:[[`addonSettings`]]});return;default:{let n=await L.addons.custom.mutate({addonId:e,action:t,input:r});return I.invalidateQueries({queryKey:[[`addonSettings`]]}),n}}}catch(n){throw console.error(`[NodeAddonsSettingsPanel] action failed`,{addonId:e,action:t,err:n}),n}},[pe,me,V,I,L]),Ae=r((e,t)=>{Oe(e,t)},[Oe]),Q=p({mutationFn:async()=>{let e=[];for(let t of Y){let n=X.get(t.addonId);!n||n.pendingKeys.length===0||e.push({addonId:t.addonId,patch:n.pendingValues})}return e.length===0?{saved:[]}:{saved:await Promise.all(e.map(async({addonId:e,patch:t})=>(c===`global`?await R.mutateAsync({addonId:e,nodeId:V,patch:t}):await z.mutateAsync({addonId:e,deviceId:u,nodeId:V,patch:t}),e)))}},onSuccess:({saved:e})=>{for(let t of e)Z.current.get(t)?.discard();I.invalidateQueries({queryKey:[[`addonSettings`]]})}}),je=r(()=>{for(let e of Z.current.values())e.discard()},[]),Me=n(()=>{let e=0;for(let t of Y){let n=X.get(t.addonId);n&&(e+=n.pendingKeys.length)}return e},[Y,X]),Ne=n(()=>{let e=new Map;for(let t of Y){let n=X.get(t.addonId);if(!n||n.pendingKeys.length===0)continue;let r=new Set(n.pendingKeys);for(let n of t.schema.sections){let t=n.tab??`general`;for(let i of n.fields)`key`in i&&r.has(i.key)&&e.set(t,(e.get(t)??0)+1)}}return e},[Y,X]);if(_e)return i(`div`,{className:`h-24 rounded-lg border border-border bg-surface animate-pulse`});let $=q&&xe?W.get(q):void 0;if(!B&&Y.length===0)return i(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:ue??F(`settings.nodeAddonsSettingsPanel.noAddonsIn`,{scope:o.length>0?`[${o.join(`, `)}]`:F(`settings.nodeAddonsSettingsPanel.theCurrentSelection`,`the current selection`),level:c})});let Pe=Q.isPending;return e(`div`,{className:`space-y-4`,children:[(M||N)&&e(`div`,{className:`border-b border-border pb-2`,children:[M&&i(`h2`,{className:`text-sm font-semibold text-foreground`,children:M}),N&&i(`p`,{className:`text-[11px] text-foreground-subtle mt-0.5`,children:N})]}),B&&i(re,{tabs:G.map(e=>({id:e,label:ye.get(e)??e})),activeId:q,onChange:be,pendingByTab:Ne}),Q.isError&&e(`div`,{className:`rounded-md border border-red-500/40 bg-red-500/10 px-3 py-2 text-[11px] text-red-400`,children:[F(`settings.nodeAddonsSettingsPanel.saveFailed`,`Save failed:`),` `,String(Q.error?.message??Q.error)]}),i(te,{tabKey:$?`extra:${q??``}`:`tab:${q??``}`,children:$?$.content:(()=>{let t=J?Y.reduce((e,t)=>e+t.schemaWithValues.sections.filter(e=>(e.tab??`general`)===J).length,0):0,n=!!J&&t<=1,r=Y.map(e=>({...e,renderedWithValues:{...e.schemaWithValues,sections:e.schemaWithValues.sections.filter(e=>J?(e.tab??`general`)===J:!0).map(e=>n?{...e,title:``,description:void 0}:e)}})).filter(e=>e.renderedWithValues.sections.length>0).toSorted((e,t)=>{let n=e=>{let t=1/0;for(let n of e)typeof n.order==`number`&&n.order<t&&(t=n.order);return t},r=n(e.renderedWithValues.sections),i=n(t.renderedWithValues.sections);return r===i?0:r-i}),a=(j??[]).filter(e=>e.tabId===J),o=a.filter(e=>(e.placement??`before`)===`before`),s=a.filter(e=>e.placement===`after`);return r.length===0&&a.length===0?i(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:ue??F(`settings.nodeAddonsSettingsPanel.nothingToConfigureHereFor`,`Nothing to configure here for this node.`)}):e(`div`,{className:`space-y-6`,children:[o.map((e,t)=>i(`div`,{children:e.content},`extra-before-${t}`)),r.length>0&&i(le,{entries:r,paneStates:X,displayNames:Ce,disabled:Pe,setPaneRef:De,onPaneStateChange:Ee,onImmediateSave:Ae,onAction:ke,inline:B||!!D}),s.map((e,t)=>i(`div`,{children:e.content},`extra-after-${t}`))]})})()}),!_e&&i(ie,{pendingCount:Me,onSave:()=>Q.mutate(),onDiscard:je,saving:Pe})]})}function le({entries:t,paneStates:r,displayNames:o,disabled:c,setPaneRef:l,onPaneStateChange:u,onImmediateSave:d,onAction:f,inline:p}){let m=n(()=>[...t].toSorted((e,t)=>{if(e.addonId===`system-config`)return-1;if(t.addonId===`system-config`)return 1;let n=o.get(e.addonId)??e.addonId,r=o.get(t.addonId)??t.addonId;return n.localeCompare(r)}),[t,o]),[h,g]=s(m[0]?.addonId??``);a(()=>{m.length!==0&&(m.find(e=>e.addonId===h)||g(m[0].addonId))},[m,h]);let _=m.find(e=>e.addonId===h)??m[0];if(!_)return null;let v=n(()=>f?(e,t,n,r)=>f(e,t,n,r):void 0,[f]),y=e=>i(S,{ref:l(e.addonId),addonId:e.addonId,schema:e.renderedWithValues,serverValues:e.serverValues,onImmediateSave:d,onStateChange:u,onAction:v,disabled:c},e.addonId);return m.length===1||p?i(`div`,{className:`flex flex-col gap-4`,children:m.map(y)}):e(`div`,{className:`flex flex-col gap-3`,children:[i(`div`,{className:`flex flex-wrap items-center gap-1 border-b border-border shrink-0`,children:m.map(t=>{let n=o.get(t.addonId)??t.addonId,a=t.addonId===_.addonId,s=(r.get(t.addonId)?.pendingKeys.length??0)>0;return e(`button`,{type:`button`,onClick:()=>g(t.addonId),className:`relative px-3 py-1.5 text-xs font-medium rounded-t-md transition-colors -mb-px border-b-2 whitespace-nowrap ${a?`text-primary border-primary bg-primary/5`:`text-foreground-subtle border-transparent hover:text-foreground hover:bg-surface-hover`}`,children:[n,s&&i(`span`,{className:`ml-1.5 inline-flex h-1.5 w-1.5 rounded-full bg-amber-400`})]},t.addonId)})}),i(`div`,{className:`space-y-2`,children:m.map(e=>i(`div`,{style:e.addonId===_.addonId?void 0:{display:`none`},children:y(e)},e.addonId))})]})}export{k as t};
|