@pepperdash/mobile-control-react-app-core 1.23.1-feat-essentials-v3.2 → 1.24.0-feat-essentials-v3.1
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.
|
@@ -473,7 +473,11 @@ const g3 = {}, O1 = v1({
|
|
|
473
473
|
a(W.setShowReconnect(!0)), a(U.setWebsocketIsConnected(!1)), a(m1.clearDevices()), a(p1.clearRooms()), a(W.clearAllModals()), a(W.clearSyncState());
|
|
474
474
|
}, v = (a, Z) => {
|
|
475
475
|
var H;
|
|
476
|
-
const j = a(), S = Z ?? j.runtimeConfig.roomData.roomKey, { clientId: C } = j.runtimeConfig.roomData, x = j.runtimeConfig.websocket.isConnected, k = (H = j.runtimeConfig.roomData.config) == null ? void 0 : H.runtimeInfo.essentialsVersion
|
|
476
|
+
const j = a(), S = Z ?? j.runtimeConfig.roomData.roomKey, { clientId: C } = j.runtimeConfig.roomData, x = j.runtimeConfig.websocket.isConnected, k = (H = j.runtimeConfig.roomData.config) == null ? void 0 : H.runtimeInfo.essentialsVersion;
|
|
477
|
+
console.log("WebSocket middleware: Essentials version", {
|
|
478
|
+
essentialsVersion: k
|
|
479
|
+
});
|
|
480
|
+
const o1 = k == null ? void 0 : k.startsWith("3.");
|
|
477
481
|
if (!Z || !x || !C) {
|
|
478
482
|
console.log("WebSocket middleware: Cannot request room status", {
|
|
479
483
|
hasRoomKey: !!Z,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(o,$){typeof exports=="object"&&typeof module<"u"?$(exports,require("axios"),require("react-redux"),require("@reduxjs/toolkit"),require("react"),require("react-router-dom"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","axios","react-redux","@reduxjs/toolkit","react","react-router-dom","lodash"],$):(o=typeof globalThis<"u"?globalThis:o||self,$(o["pepperdash/mobile-control-react-app-core"]={},o.axios,o.reactRedux,o.toolkit,o.React,o.reactRouterDom,o._))})(this,(function(o,$,N,f,y,b1,Ze){"use strict";var lt=Object.defineProperty;var it=(o,$,N)=>$ in o?lt(o,$,{enumerable:!0,configurable:!0,writable:!0,value:N}):o[$]=N;var X=(o,$,N)=>it(o,typeof $!="symbol"?$+"":$,N);function Ce(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const c in e)if(c!=="default"){const r=Object.getOwnPropertyDescriptor(e,c);Object.defineProperty(t,c,r.get?r:{enumerable:!0,get:()=>e[c]})}}return t.default=e,Object.freeze(t)}const c3=Ce(Ze),m1=N.useDispatch.withTypes(),S=N.useSelector.withTypes(),w1=e=>e.appConfig,o3=f.createSelector(w1,e=>e.config),s3=f.createSelector(w1,e=>e.config.apiPath),r3=f.createSelector(w1,e=>e.config.logoPath),l3=f.createSelector(w1,e=>e.config.partnerMetadata),je=()=>S(o3),xe=()=>S(s3),Ie=()=>S(r3),be=()=>S(l3),i3=e=>e.devices,y1=f.createSelector(i3,e=>e),a3=e=>f.createSelector(i3,t=>t[e]?t[e]:void 0),ye=()=>S(y1);function A(e){return S(a3(e))}const O=e=>e.rooms,u3=e=>f.createSelector(O,t=>t[e]?t[e].configuration:void 0),d3=f.createSelector(O,e=>e),v3=e=>f.createSelector(O,t=>t[e]?t[e]:void 0),h3=e=>f.createSelector(O,t=>t[e]?t[e].name:void 0),g3=(e,t)=>f.createSelector(O,c=>c[e]?c[e].volumes[t]:void 0),f3=e=>f.createSelector(O,t=>t[e]?t[e]:void 0),m3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.sourceList:void 0}),w3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.audioControlPointList:void 0}),M3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.destinations:void 0}),S3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.destinationList:void 0}),p3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.environmentalDevices:void 0}),Z3=e=>f.createSelector(O,t=>{var c,r,l,i,h,w,g,M;return(r=(c=t[e])==null?void 0:c.configuration)!=null&&r.destinationList.programAudio?(h=(i=(l=t[e])==null?void 0:l.configuration)==null?void 0:i.destinationList.programAudio)==null?void 0:h.sinkKey:((M=(g=(w=t[e])==null?void 0:w.configuration)==null?void 0:g.destinationList.defaultDisplay)==null?void 0:M.sinkKey)||""}),C3=e=>f.createSelector(O,t=>{var c,r,l;return t[e]?(l=(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.destinationList.codecContent)==null?void 0:l.sinkKey:void 0}),j3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isInCall:void 0}),x3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isWarmingUp:void 0}),I3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isCoolingDown:void 0}),b3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isOn:void 0}),y3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.advancedSharingActive:void 0}),R3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.share:void 0}),E3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.zoomRoomControllerKey:void 0}),D3=f.createSelector([(e,t)=>t,()=>y1,(e,t)=>{var c,r;return(r=(c=e.rooms[t])==null?void 0:c.configuration)==null?void 0:r.destinations}],(e,t,c)=>{if(console.log("roomKey",e),console.log("devices",t),console.log("destinations",c),!c)return;const r=Object.entries(c).filter(([i])=>i!=="programAudio"&&i!=="codecContent").map(([,i])=>i);return Object.values(t).filter(i=>Object.values(r).includes(i.key))});function Re(e){return S(u3(e))}function Ee(){return S(d3)}function s1(e){return S(v3(e))}const De=s1,Te=e=>S(h3(e)),T3=(e,t)=>S(g3(e,t)),P3=e=>S(f3(e))||void 0,Pe=e=>S(m3(e)),Ae=e=>S(w3(e)),_e=e=>S(M3(e)),Le=e=>S(S3(e)),Be=e=>S(p3(e)),Oe=e=>S(Z3(e)),We=e=>S(C3(e)),Ve=e=>S(j3(e)),ke=e=>S(x3(e)),$e=e=>S(I3(e)),Ue=e=>S(b3(e)),He=e=>S(y3(e)),Fe=e=>S(R3(e)),Ke=e=>S(t=>D3(t,e)),Ge=e=>S(E3(e)),J=e=>e.runtimeConfig,A3=f.createSelector(J,e=>e.websocket.isConnected),_3=f.createSelector(J,e=>e.currentRoomKey),L3=f.createSelector(J,e=>e.roomData.clientId),B3=f.createSelector(J,e=>e.roomData.systemUuid),O3=f.createSelector(J,e=>e.roomData.userCode),W3=f.createSelector(J,e=>e.serverIsRunningOnProcessorHardware),V3=f.createSelector(J,e=>{var t;return(t=e.roomData.config)==null?void 0:t.runtimeInfo}),k3=f.createSelector(J,e=>e.touchpanelKey),$3=f.createSelector(J,e=>e.touchpanelKey!==""),R1=f.createSelector(J,e=>e.roomData.deviceInterfaceSupport),E1=e=>f.createSelector(R1,t=>{var c;return((c=t==null?void 0:t[e])==null?void 0:c.interfaces)??[]}),U3=(e,t)=>f.createSelector(E1(e),c=>c.includes(t)),D1=()=>S(A3),Ye=()=>S(_3),ze=()=>S(L3),Je=()=>S(B3),Xe=()=>S(O3),Ne=()=>S(W3),qe=()=>S(V3),Qe=()=>S(k3),e8=()=>S($3),t8=()=>S(R1),n8=e=>S(E1(e)),c8=(e,t)=>S(U3(e,t)),e1=e=>e.ui,M1=e=>f.createSelector(e1,t=>t.modalVisibility[e]),H3=e=>f.createSelector(e1,t=>{const c=t.popoverVisibility[e];if(c)return Object.keys(c).find(r=>c[r])}),F3=(e,t)=>f.createSelector(e1,c=>{var r;return((r=c.popoverVisibility[e])==null?void 0:r[t])??!1}),K3=f.createSelector(e1,e=>e.error),G3=f.createSelector(e1,e=>e.showReconnect),Y3=f.createSelector(e1,e=>e.theme),z3=e=>f.createSelector(e1,t=>t.syncState.includes(e)),o8=()=>S(M1("showShutdownModal")),s8=()=>S(M1("showIncomingCallModal")),r8=e=>S(M1(e)),l8=e=>S(H3(e)),i8=(e,t)=>S(F3(e,t)),J3=()=>S(K3),X3=()=>S(G3),a8=()=>S(Y3),N3=e=>S(z3(e)),u8={showReconnect:!1,error:"",modalVisibility:{showShutdownModal:!1,showIncomingCallModal:!1},popoverVisibility:{},syncState:[]},q3=f.createSlice({name:"ui",initialState:u8,reducers:{clearAllModals(e){Object.entries(e.modalVisibility).forEach(([t])=>{e.modalVisibility[t]=!1})},setModalState(e,t){e.modalVisibility[t.payload.modalType]=t.payload.value},setShowShutdownModal(e,t){e.modalVisibility.showShutdownModal=t.payload},setIncomingCallModal(e,t){e.modalVisibility.showIncomingCallModal=t.payload},setPopoverState(e,t){e.popoverVisibility[t.payload.popoverGroup]||(e.popoverVisibility[t.payload.popoverGroup]={}),Object.entries(e.popoverVisibility[t.payload.popoverGroup]).forEach(([c])=>{e.popoverVisibility[t.payload.popoverGroup][c]=!1}),e.popoverVisibility[t.payload.popoverGroup][t.payload.popoverId]=t.payload.value},setErrorMessage(e,t){e.error=t.payload},setShowReconnect(e,t){e.showReconnect=t.payload},setTheme(e,t){e.theme=t.payload},addSyncState(e,t){e.syncState.includes(t.payload)||e.syncState.push(t.payload)},removeSyncState(e,t){e.syncState=e.syncState.filter(c=>c!==t.payload)},clearSyncState(e){e.syncState=[]}}}),k=q3.actions,Q3=q3.reducer,d8={config:{enableDev:!1,apiPath:"",gatewayAppPath:"",logoPath:"",iconSet:"GOOGLE",loginMode:"",modes:{}}},e2=f.createSlice({name:"appConfig",initialState:d8,reducers:{setAppConfig(e,t){e.config=t.payload}}}),T1=e2.actions,v8=e2.reducer,t2={},P1=f.createSlice({name:"devices",initialState:t2,reducers:{setDeviceState(e,t){const c=t.payload.type,r=c.slice(c.lastIndexOf("/")+1);if(!r)return;const l=t.payload.content,i=e[r]??{},h=c3.mergeWith({},i,l,(w,g)=>{if(Array.isArray(g))return g.slice()});e[r]=h},clearDevices(){return t2}}}),r1={setDeviceState:P1.actions.setDeviceState,clearDevices:P1.actions.clearDevices},h8=P1.reducer;class g8{constructor(){X(this,"uuid","current-uuid");X(this,"roomKey","current-room-key");X(this,"code","current-code");X(this,"expiry","current-uuid-expires")}}const n2=new g8;function f8(e){return sessionStorage.getItem(e)||""}function m8(e,t){sessionStorage.setItem(e,t)}const c2={},A1=f.createSlice({name:"rooms",initialState:c2,reducers:{setRoomState(e,t){const c=t.payload.type,r=c.slice(c.lastIndexOf("/")+1);if(!r)return;const l=t.payload.content,i=e[r]??{},h=c3.mergeWith({},i,l,(w,g)=>{if(Array.isArray(g))return g});e[r]=h},clearRooms(){return c2}}}),l1={setRoomState:A1.actions.setRoomState,clearRooms:A1.actions.clearRooms},w8=A1.reducer,M8={apiVersion:"",serverIsRunningOnProcessorHardware:!1,websocket:{isConnected:void 0},pluginVersion:"",disconnectionMessage:"",token:"",currentRoomKey:"",touchpanelKey:"",roomData:{clientId:"",roomKey:"",systemUuid:"",roomUuid:"",userAppUrl:"",config:{runtimeInfo:{pluginVersion:"",essentialsVersion:"",pepperDashCoreVersion:"",essentialsPlugins:[]},rooms:[],devices:[]},deviceInterfaceSupport:{},userCode:"",qrUrl:""}},o2=f.createSlice({name:"runtimeConfig",initialState:M8,reducers:{setRuntimeConfig(e,t){e.apiVersion=t.payload.apiVersion,e.serverIsRunningOnProcessorHardware=t.payload.serverIsRunningOnProcessorHardware},setToken(e,t){e.token=t.payload},setWebsocketIsConnected(e,t){e.websocket.isConnected=t.payload},setPluginVersion(e,t){e.pluginVersion=t.payload},setRoomData(e,t){e.roomData=t.payload},setDeviceInterfaces(e,t){e.roomData.deviceInterfaceSupport={...e.roomData.deviceInterfaceSupport,...t.payload}},setCurrentRoomKey(e,t){e.currentRoomKey=t.payload},setUserCode(e,t){e.roomData.userCode=t.payload.userCode,e.roomData.qrUrl=t.payload.qrUrl},setTouchpanelKey(e,t){e.touchpanelKey=t.payload}}}),U=o2.actions,S8=o2.reducer,_1=$.create(),L1="websocket/connect",B1="websocket/disconnect",O1="websocket/sendMessage",W1="websocket/addEventHandler",V1="websocket/removeEventHandler",k1="websocket/reconnect",$1=()=>({type:L1}),p8=()=>({type:B1}),s2=(e,t)=>({type:O1,payload:{messageType:e,content:t}}),r2=(e,t,c)=>({type:W1,payload:{eventType:e,key:t,callback:c}}),l2=(e,t)=>({type:V1,payload:{eventType:e,key:t}}),i2=()=>({type:k1}),a2=()=>{const e={client:null,token:null,waitingToReconnect:!1,reconnectTimer:null,eventHandlers:{}},t=async u=>{try{const C=location.pathname.split("/").filter(I=>I.length>0);C.length>=5?C.length=5:C.length=2;const x=`/${C.join("/")}`,j=await _1.get("/_local-config/_config.local.json",{baseURL:x});if(j.status===200&&j.data){const I=j.data.apiPath;u(T1.setAppConfig(j.data));const Z=await _1.get(`${I}/version`);Z.status===200&&Z.data&&u(U.setRuntimeConfig(Z.data))}}catch(C){console.error("Error getting config",C)}return!0},c=async(u,C,x)=>{try{const j=await _1.get(`${u}/ui/joinroom?token=${C}`);return j.status===200&&j.data?(x(U.setRoomData(j.data)),j.data):null}catch(j){return console.log(j),j instanceof $.AxiosError&&j.response&&j.response.status===498?(console.error("Invalid token. Unable to join room"),x(k.setErrorMessage(`Token ${C} is invalid. Unable to join room`)),null):(console.error("Error getting room data",j),j instanceof Error?x(k.setErrorMessage(j.message)):x(k.setErrorMessage("Error getting room data")),null)}},r=u=>{e.reconnectTimer&&(clearTimeout(e.reconnectTimer),e.reconnectTimer=null),console.log("WebSocket middleware: Starting reconnection loop..."),e.reconnectTimer=setTimeout(()=>{e.waitingToReconnect=!1,e.reconnectTimer=null,console.log("WebSocket middleware: Attempting automatic reconnection..."),u($1())},5e3)},l=()=>{e.reconnectTimer&&(console.log("WebSocket middleware: Stopping reconnection loop"),clearTimeout(e.reconnectTimer),e.reconnectTimer=null)},i=u=>{u(k.setShowReconnect(!0)),u(U.setWebsocketIsConnected(!1)),u(r1.clearDevices()),u(l1.clearRooms()),u(k.clearAllModals()),u(k.clearSyncState())},h=(u,C)=>{var Y;const x=u(),j=C??x.runtimeConfig.roomData.roomKey,{clientId:I}=x.runtimeConfig.roomData,Z=x.runtimeConfig.websocket.isConnected,V=(Y=x.runtimeConfig.roomData.config)==null?void 0:Y.runtimeInfo.essentialsVersion,v1=V==null?void 0:V.startsWith("3.");if(!C||!Z||!I){console.log("WebSocket middleware: Cannot request room status",{hasRoomKey:!!C,isConnected:Z,hasClientId:!!I});return}console.log("WebSocket middleware: Requesting status from room:",C),e.client&&Z&&(v1?(console.log("WebSocket middleware: Essentials V3 detected, requesting additional status..."),e.client.send(JSON.stringify({type:`/room/${j}/fullStatus`,clientId:I,content:null}))):e.client.send(JSON.stringify({type:`/room/${j}/status`,clientId:I,content:null})))},w=async(u,C)=>{console.log("WebSocket middleware: Attempting to connect...");const x=C(),{apiPath:j}=x.appConfig.config,{serverIsRunningOnProcessorHardware:I}=x.runtimeConfig;if(!j||!e.token){console.log("WebSocket middleware: Cannot connect - missing requirements",{hasApiPath:!!j,hasToken:!!e.token});return}if(e.client||e.waitingToReconnect){console.log("WebSocket middleware: Already connected/connecting, skipping",{hasClient:!!e.client,waitingToReconnect:e.waitingToReconnect});return}e.waitingToReconnect=!0;try{const Z=await c(j,e.token,u);if(!Z){console.log("WebSocket middleware: Failed to get room data, will retry..."),r(u);return}console.log("WebSocket middleware: Connecting to websocket");const v1=`${j.replace("http","ws")}/ui/join/${e.token}?clientId=${Z.clientId}`,Y=new WebSocket(v1);e.client=Y,Y.onopen=H=>{console.log("WebSocket middleware: Connected",H.type,H.target),e.waitingToReconnect=!1,l(),setTimeout(()=>{e.client===Y&&Y.readyState===WebSocket.OPEN&&u(U.setWebsocketIsConnected(!0))},100)},Y.onerror=H=>{console.error("WebSocket middleware: Error",H),i(u)},Y.onclose=H=>{var _;if(console.log("WebSocket middleware: Disconnected",H.reason,H.code),H.code===4100){console.log("WebSocket middleware: Closed by client (cleanup)"),l(),i(u);return}if(e.waitingToReconnect=!0,H.code===4e3){console.log("WebSocket middleware: User code changed"),l(),u(U.setUserCode({userCode:"",qrUrl:""})),u(k.setErrorMessage("User code changed. Click reconnect to enter the new code")),i(u);return}if(H.code===4002){console.log("WebSocket middleware: Room combination changed"),l(),u(k.setErrorMessage("Room combination changed. Click Reconnect to re-join the room")),i(u);return}if(H.code===4001)if(!!((_=C().runtimeConfig)!=null&&_.touchpanelKey))console.log("WebSocket middleware: Code 4001 received with touchpanel key present, will auto-reconnect");else if(I)console.log("WebSocket middleware: Code 4001 on processor hardware (no touchpanel key), will auto-reconnect");else{console.log("WebSocket middleware: Processor disconnected (no touchpanel key, not on processor hardware)"),l(),u(k.setErrorMessage("Processor has disconnected. Click Reconnect to continue.")),i(u);return}if(e.client)console.log("WebSocket middleware: Closed by server, will auto-reconnect");else{console.log("WebSocket middleware: Closed by client");return}e.client=null,console.log("WebSocket middleware: Clearing state on disconnect"),u(k.setErrorMessage("Connection lost. Attempting to reconnect...")),u(U.setWebsocketIsConnected(!1)),u(r1.clearDevices()),u(l1.clearRooms()),u(k.clearAllModals()),u(k.clearSyncState()),r(u)},Y.onmessage=H=>{try{const _=JSON.parse(H.data);if(_.type==="close"){Y.close(4001,_.content);return}if(_.type.startsWith("/system/"))switch(_.type){case"/system/touchpanelKey":u(U.setTouchpanelKey(_.content));break;case"/system/roomKey":u(l1.clearRooms()),u(r1.clearDevices()),u(k.clearSyncState()),u(U.setCurrentRoomKey(_.content));break;case"/system/userCodeChanged":u(U.setUserCode(_.content));break;case"/system/roomCombinationChanged":window.location.reload();break;case"/system/deviceInterfaces":{const q=_.content;u(U.setDeviceInterfaces(q.deviceInterfaces));break}default:console.log("WebSocket middleware: Unhandled system message",_);break}else if(_.type.startsWith("/event/")){const q=e.eventHandlers[_.type];q||console.log("WebSocket middleware: No handlers found for event type",_.type),q&&Object.values(q).forEach(h1=>{try{h1(_)}catch(z1){console.error("WebSocket middleware: Event handler error",z1)}})}else _.type.startsWith("/room/")?u(l1.setRoomState(_)):_.type.startsWith("/device/")&&u(r1.setDeviceState(_))}catch(_){console.error("WebSocket middleware: Message handling error",_)}},e.waitingToReconnect=!1}catch(Z){console.error("WebSocket middleware: Connection error",Z),e.waitingToReconnect=!1,e.client=null}},g=()=>{e.client&&(console.log("WebSocket middleware: Disconnecting"),l(),e.client.close(4100,"Client requested disconnect"),e.client=null)},M=(u,C,x)=>{const j=x(),I=j.runtimeConfig.websocket.isConnected,Z=j.runtimeConfig.roomData.clientId;e.client&&I?e.client.send(JSON.stringify({type:u,clientId:Z,content:C})):console.warn("WebSocket middleware: Cannot send message - not connected")},d=(u,C,x)=>{e.eventHandlers[u]||(e.eventHandlers[u]={}),e.eventHandlers[u][C]=x,console.log("WebSocket middleware: Event handler added",u,C)},L=(u,C)=>{e.eventHandlers[u]&&(delete e.eventHandlers[u][C],console.log("WebSocket middleware: Event handler removed",u,C))},G=u=>{const C=u(),{gatewayAppPath:x}=C.appConfig.config,j=C.runtimeConfig.roomData.roomKey,I=C.runtimeConfig.roomData.systemUuid,Z=C.runtimeConfig.roomData.userCode,V=`${x}?uuid=${I}&roomKey=${j}`;window.location.href=Z?`${V}&Code=${Z}`:V};return u=>C=>x=>{const j=C(x);if(!x||typeof x!="object"||!("type"in x))return j;const I=x;return(async()=>{switch(I.type){case L1:{let V=new URLSearchParams(window.location.search).get("token");V?(console.log("WebSocket middleware: Saving token"),m8(n2.uuid,V)):(V=f8(n2.uuid),console.log("WebSocket middleware: Loading token")),e.token=V,await t(u.dispatch),await w(u.dispatch,u.getState);break}case B1:g();break;case O1:M(I.payload.messageType,I.payload.content,u.getState);break;case W1:d(I.payload.eventType,I.payload.key,I.payload.callback);break;case V1:L(I.payload.eventType,I.payload.key);break;case k1:G(u.getState);break;default:if(x.type===U.setWebsocketIsConnected.type)x.payload===!0&&(console.log("[WebSocket Middleware] Connection established, requesting room status..."),setTimeout(()=>h(u.getState),100));else if(x.type===U.setRoomData.type){const Z=u.getState(),V=x.payload;Z.runtimeConfig.websocket.isConnected&&(V!=null&&V.clientId)&&(console.log("[WebSocket Middleware] Room data received, requesting room status..."),setTimeout(()=>h(u.getState),100))}else if(x.type===U.setCurrentRoomKey.type){const Z=x.payload;Z&&(console.log("[WebSocket Middleware] Room changed to:",Z,", requesting room status..."),setTimeout(()=>h(u.getState,Z),100))}break}})().catch(Z=>{console.error("WebSocket middleware: Error handling action",Z)}),j}},Z8=f.combineReducers({appConfig:v8,runtimeConfig:S8,rooms:w8,devices:h8,ui:Q3}),u2=f.configureStore({reducer:Z8,middleware:e=>e({serializableCheck:{ignoredActions:["websocket/addEventHandler"]}}).concat(a2())}),U1=$.create();function C8(){const e=m1();return async()=>{try{const t=location.pathname.split("/").filter(l=>l.length>0);t.length>=5?t.length=5:t.length=2;const c=`/${t.join("/")}`,r=await U1.get("/_local-config/_config.local.json",{baseURL:c});if(r.status==200&&r.data){const l=r.data.apiPath;e(T1.setAppConfig(r.data));const i=await U1.get(`${l}/version`);i.status==200&&i.data&&e(U.setRuntimeConfig(i.data))}}catch(t){console.error("Error getting config",t)}return!0}}var S1={exports:{}},i1={};/**
|
|
1
|
+
(function(o,$){typeof exports=="object"&&typeof module<"u"?$(exports,require("axios"),require("react-redux"),require("@reduxjs/toolkit"),require("react"),require("react-router-dom"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","axios","react-redux","@reduxjs/toolkit","react","react-router-dom","lodash"],$):(o=typeof globalThis<"u"?globalThis:o||self,$(o["pepperdash/mobile-control-react-app-core"]={},o.axios,o.reactRedux,o.toolkit,o.React,o.reactRouterDom,o._))})(this,(function(o,$,N,f,y,b1,Ze){"use strict";var lt=Object.defineProperty;var it=(o,$,N)=>$ in o?lt(o,$,{enumerable:!0,configurable:!0,writable:!0,value:N}):o[$]=N;var X=(o,$,N)=>it(o,typeof $!="symbol"?$+"":$,N);function Ce(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const c in e)if(c!=="default"){const r=Object.getOwnPropertyDescriptor(e,c);Object.defineProperty(t,c,r.get?r:{enumerable:!0,get:()=>e[c]})}}return t.default=e,Object.freeze(t)}const c3=Ce(Ze),m1=N.useDispatch.withTypes(),S=N.useSelector.withTypes(),w1=e=>e.appConfig,o3=f.createSelector(w1,e=>e.config),s3=f.createSelector(w1,e=>e.config.apiPath),r3=f.createSelector(w1,e=>e.config.logoPath),l3=f.createSelector(w1,e=>e.config.partnerMetadata),je=()=>S(o3),xe=()=>S(s3),Ie=()=>S(r3),be=()=>S(l3),i3=e=>e.devices,y1=f.createSelector(i3,e=>e),a3=e=>f.createSelector(i3,t=>t[e]?t[e]:void 0),ye=()=>S(y1);function A(e){return S(a3(e))}const O=e=>e.rooms,u3=e=>f.createSelector(O,t=>t[e]?t[e].configuration:void 0),d3=f.createSelector(O,e=>e),v3=e=>f.createSelector(O,t=>t[e]?t[e]:void 0),h3=e=>f.createSelector(O,t=>t[e]?t[e].name:void 0),g3=(e,t)=>f.createSelector(O,c=>c[e]?c[e].volumes[t]:void 0),f3=e=>f.createSelector(O,t=>t[e]?t[e]:void 0),m3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.sourceList:void 0}),w3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.audioControlPointList:void 0}),M3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.destinations:void 0}),S3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.destinationList:void 0}),p3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.environmentalDevices:void 0}),Z3=e=>f.createSelector(O,t=>{var c,r,l,i,h,w,g,M;return(r=(c=t[e])==null?void 0:c.configuration)!=null&&r.destinationList.programAudio?(h=(i=(l=t[e])==null?void 0:l.configuration)==null?void 0:i.destinationList.programAudio)==null?void 0:h.sinkKey:((M=(g=(w=t[e])==null?void 0:w.configuration)==null?void 0:g.destinationList.defaultDisplay)==null?void 0:M.sinkKey)||""}),C3=e=>f.createSelector(O,t=>{var c,r,l;return t[e]?(l=(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.destinationList.codecContent)==null?void 0:l.sinkKey:void 0}),j3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isInCall:void 0}),x3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isWarmingUp:void 0}),I3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isCoolingDown:void 0}),b3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.isOn:void 0}),y3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.advancedSharingActive:void 0}),R3=e=>f.createSelector(O,t=>{var c;return t[e]?(c=t[e])==null?void 0:c.share:void 0}),E3=e=>f.createSelector(O,t=>{var c,r;return t[e]?(r=(c=t[e])==null?void 0:c.configuration)==null?void 0:r.zoomRoomControllerKey:void 0}),D3=f.createSelector([(e,t)=>t,()=>y1,(e,t)=>{var c,r;return(r=(c=e.rooms[t])==null?void 0:c.configuration)==null?void 0:r.destinations}],(e,t,c)=>{if(console.log("roomKey",e),console.log("devices",t),console.log("destinations",c),!c)return;const r=Object.entries(c).filter(([i])=>i!=="programAudio"&&i!=="codecContent").map(([,i])=>i);return Object.values(t).filter(i=>Object.values(r).includes(i.key))});function Re(e){return S(u3(e))}function Ee(){return S(d3)}function s1(e){return S(v3(e))}const De=s1,Te=e=>S(h3(e)),T3=(e,t)=>S(g3(e,t)),P3=e=>S(f3(e))||void 0,Pe=e=>S(m3(e)),Ae=e=>S(w3(e)),_e=e=>S(M3(e)),Le=e=>S(S3(e)),Be=e=>S(p3(e)),Oe=e=>S(Z3(e)),We=e=>S(C3(e)),Ve=e=>S(j3(e)),ke=e=>S(x3(e)),$e=e=>S(I3(e)),Ue=e=>S(b3(e)),He=e=>S(y3(e)),Fe=e=>S(R3(e)),Ke=e=>S(t=>D3(t,e)),Ge=e=>S(E3(e)),J=e=>e.runtimeConfig,A3=f.createSelector(J,e=>e.websocket.isConnected),_3=f.createSelector(J,e=>e.currentRoomKey),L3=f.createSelector(J,e=>e.roomData.clientId),B3=f.createSelector(J,e=>e.roomData.systemUuid),O3=f.createSelector(J,e=>e.roomData.userCode),W3=f.createSelector(J,e=>e.serverIsRunningOnProcessorHardware),V3=f.createSelector(J,e=>{var t;return(t=e.roomData.config)==null?void 0:t.runtimeInfo}),k3=f.createSelector(J,e=>e.touchpanelKey),$3=f.createSelector(J,e=>e.touchpanelKey!==""),R1=f.createSelector(J,e=>e.roomData.deviceInterfaceSupport),E1=e=>f.createSelector(R1,t=>{var c;return((c=t==null?void 0:t[e])==null?void 0:c.interfaces)??[]}),U3=(e,t)=>f.createSelector(E1(e),c=>c.includes(t)),D1=()=>S(A3),Ye=()=>S(_3),ze=()=>S(L3),Je=()=>S(B3),Xe=()=>S(O3),Ne=()=>S(W3),qe=()=>S(V3),Qe=()=>S(k3),e8=()=>S($3),t8=()=>S(R1),n8=e=>S(E1(e)),c8=(e,t)=>S(U3(e,t)),e1=e=>e.ui,M1=e=>f.createSelector(e1,t=>t.modalVisibility[e]),H3=e=>f.createSelector(e1,t=>{const c=t.popoverVisibility[e];if(c)return Object.keys(c).find(r=>c[r])}),F3=(e,t)=>f.createSelector(e1,c=>{var r;return((r=c.popoverVisibility[e])==null?void 0:r[t])??!1}),K3=f.createSelector(e1,e=>e.error),G3=f.createSelector(e1,e=>e.showReconnect),Y3=f.createSelector(e1,e=>e.theme),z3=e=>f.createSelector(e1,t=>t.syncState.includes(e)),o8=()=>S(M1("showShutdownModal")),s8=()=>S(M1("showIncomingCallModal")),r8=e=>S(M1(e)),l8=e=>S(H3(e)),i8=(e,t)=>S(F3(e,t)),J3=()=>S(K3),X3=()=>S(G3),a8=()=>S(Y3),N3=e=>S(z3(e)),u8={showReconnect:!1,error:"",modalVisibility:{showShutdownModal:!1,showIncomingCallModal:!1},popoverVisibility:{},syncState:[]},q3=f.createSlice({name:"ui",initialState:u8,reducers:{clearAllModals(e){Object.entries(e.modalVisibility).forEach(([t])=>{e.modalVisibility[t]=!1})},setModalState(e,t){e.modalVisibility[t.payload.modalType]=t.payload.value},setShowShutdownModal(e,t){e.modalVisibility.showShutdownModal=t.payload},setIncomingCallModal(e,t){e.modalVisibility.showIncomingCallModal=t.payload},setPopoverState(e,t){e.popoverVisibility[t.payload.popoverGroup]||(e.popoverVisibility[t.payload.popoverGroup]={}),Object.entries(e.popoverVisibility[t.payload.popoverGroup]).forEach(([c])=>{e.popoverVisibility[t.payload.popoverGroup][c]=!1}),e.popoverVisibility[t.payload.popoverGroup][t.payload.popoverId]=t.payload.value},setErrorMessage(e,t){e.error=t.payload},setShowReconnect(e,t){e.showReconnect=t.payload},setTheme(e,t){e.theme=t.payload},addSyncState(e,t){e.syncState.includes(t.payload)||e.syncState.push(t.payload)},removeSyncState(e,t){e.syncState=e.syncState.filter(c=>c!==t.payload)},clearSyncState(e){e.syncState=[]}}}),k=q3.actions,Q3=q3.reducer,d8={config:{enableDev:!1,apiPath:"",gatewayAppPath:"",logoPath:"",iconSet:"GOOGLE",loginMode:"",modes:{}}},e2=f.createSlice({name:"appConfig",initialState:d8,reducers:{setAppConfig(e,t){e.config=t.payload}}}),T1=e2.actions,v8=e2.reducer,t2={},P1=f.createSlice({name:"devices",initialState:t2,reducers:{setDeviceState(e,t){const c=t.payload.type,r=c.slice(c.lastIndexOf("/")+1);if(!r)return;const l=t.payload.content,i=e[r]??{},h=c3.mergeWith({},i,l,(w,g)=>{if(Array.isArray(g))return g.slice()});e[r]=h},clearDevices(){return t2}}}),r1={setDeviceState:P1.actions.setDeviceState,clearDevices:P1.actions.clearDevices},h8=P1.reducer;class g8{constructor(){X(this,"uuid","current-uuid");X(this,"roomKey","current-room-key");X(this,"code","current-code");X(this,"expiry","current-uuid-expires")}}const n2=new g8;function f8(e){return sessionStorage.getItem(e)||""}function m8(e,t){sessionStorage.setItem(e,t)}const c2={},A1=f.createSlice({name:"rooms",initialState:c2,reducers:{setRoomState(e,t){const c=t.payload.type,r=c.slice(c.lastIndexOf("/")+1);if(!r)return;const l=t.payload.content,i=e[r]??{},h=c3.mergeWith({},i,l,(w,g)=>{if(Array.isArray(g))return g});e[r]=h},clearRooms(){return c2}}}),l1={setRoomState:A1.actions.setRoomState,clearRooms:A1.actions.clearRooms},w8=A1.reducer,M8={apiVersion:"",serverIsRunningOnProcessorHardware:!1,websocket:{isConnected:void 0},pluginVersion:"",disconnectionMessage:"",token:"",currentRoomKey:"",touchpanelKey:"",roomData:{clientId:"",roomKey:"",systemUuid:"",roomUuid:"",userAppUrl:"",config:{runtimeInfo:{pluginVersion:"",essentialsVersion:"",pepperDashCoreVersion:"",essentialsPlugins:[]},rooms:[],devices:[]},deviceInterfaceSupport:{},userCode:"",qrUrl:""}},o2=f.createSlice({name:"runtimeConfig",initialState:M8,reducers:{setRuntimeConfig(e,t){e.apiVersion=t.payload.apiVersion,e.serverIsRunningOnProcessorHardware=t.payload.serverIsRunningOnProcessorHardware},setToken(e,t){e.token=t.payload},setWebsocketIsConnected(e,t){e.websocket.isConnected=t.payload},setPluginVersion(e,t){e.pluginVersion=t.payload},setRoomData(e,t){e.roomData=t.payload},setDeviceInterfaces(e,t){e.roomData.deviceInterfaceSupport={...e.roomData.deviceInterfaceSupport,...t.payload}},setCurrentRoomKey(e,t){e.currentRoomKey=t.payload},setUserCode(e,t){e.roomData.userCode=t.payload.userCode,e.roomData.qrUrl=t.payload.qrUrl},setTouchpanelKey(e,t){e.touchpanelKey=t.payload}}}),U=o2.actions,S8=o2.reducer,_1=$.create(),L1="websocket/connect",B1="websocket/disconnect",O1="websocket/sendMessage",W1="websocket/addEventHandler",V1="websocket/removeEventHandler",k1="websocket/reconnect",$1=()=>({type:L1}),p8=()=>({type:B1}),s2=(e,t)=>({type:O1,payload:{messageType:e,content:t}}),r2=(e,t,c)=>({type:W1,payload:{eventType:e,key:t,callback:c}}),l2=(e,t)=>({type:V1,payload:{eventType:e,key:t}}),i2=()=>({type:k1}),a2=()=>{const e={client:null,token:null,waitingToReconnect:!1,reconnectTimer:null,eventHandlers:{}},t=async u=>{try{const C=location.pathname.split("/").filter(I=>I.length>0);C.length>=5?C.length=5:C.length=2;const x=`/${C.join("/")}`,j=await _1.get("/_local-config/_config.local.json",{baseURL:x});if(j.status===200&&j.data){const I=j.data.apiPath;u(T1.setAppConfig(j.data));const Z=await _1.get(`${I}/version`);Z.status===200&&Z.data&&u(U.setRuntimeConfig(Z.data))}}catch(C){console.error("Error getting config",C)}return!0},c=async(u,C,x)=>{try{const j=await _1.get(`${u}/ui/joinroom?token=${C}`);return j.status===200&&j.data?(x(U.setRoomData(j.data)),j.data):null}catch(j){return console.log(j),j instanceof $.AxiosError&&j.response&&j.response.status===498?(console.error("Invalid token. Unable to join room"),x(k.setErrorMessage(`Token ${C} is invalid. Unable to join room`)),null):(console.error("Error getting room data",j),j instanceof Error?x(k.setErrorMessage(j.message)):x(k.setErrorMessage("Error getting room data")),null)}},r=u=>{e.reconnectTimer&&(clearTimeout(e.reconnectTimer),e.reconnectTimer=null),console.log("WebSocket middleware: Starting reconnection loop..."),e.reconnectTimer=setTimeout(()=>{e.waitingToReconnect=!1,e.reconnectTimer=null,console.log("WebSocket middleware: Attempting automatic reconnection..."),u($1())},5e3)},l=()=>{e.reconnectTimer&&(console.log("WebSocket middleware: Stopping reconnection loop"),clearTimeout(e.reconnectTimer),e.reconnectTimer=null)},i=u=>{u(k.setShowReconnect(!0)),u(U.setWebsocketIsConnected(!1)),u(r1.clearDevices()),u(l1.clearRooms()),u(k.clearAllModals()),u(k.clearSyncState())},h=(u,C)=>{var Y;const x=u(),j=C??x.runtimeConfig.roomData.roomKey,{clientId:I}=x.runtimeConfig.roomData,Z=x.runtimeConfig.websocket.isConnected,V=(Y=x.runtimeConfig.roomData.config)==null?void 0:Y.runtimeInfo.essentialsVersion;console.log("WebSocket middleware: Essentials version",{essentialsVersion:V});const v1=V==null?void 0:V.startsWith("3.");if(!C||!Z||!I){console.log("WebSocket middleware: Cannot request room status",{hasRoomKey:!!C,isConnected:Z,hasClientId:!!I});return}console.log("WebSocket middleware: Requesting status from room:",C),e.client&&Z&&(v1?(console.log("WebSocket middleware: Essentials V3 detected, requesting additional status..."),e.client.send(JSON.stringify({type:`/room/${j}/fullStatus`,clientId:I,content:null}))):e.client.send(JSON.stringify({type:`/room/${j}/status`,clientId:I,content:null})))},w=async(u,C)=>{console.log("WebSocket middleware: Attempting to connect...");const x=C(),{apiPath:j}=x.appConfig.config,{serverIsRunningOnProcessorHardware:I}=x.runtimeConfig;if(!j||!e.token){console.log("WebSocket middleware: Cannot connect - missing requirements",{hasApiPath:!!j,hasToken:!!e.token});return}if(e.client||e.waitingToReconnect){console.log("WebSocket middleware: Already connected/connecting, skipping",{hasClient:!!e.client,waitingToReconnect:e.waitingToReconnect});return}e.waitingToReconnect=!0;try{const Z=await c(j,e.token,u);if(!Z){console.log("WebSocket middleware: Failed to get room data, will retry..."),r(u);return}console.log("WebSocket middleware: Connecting to websocket");const v1=`${j.replace("http","ws")}/ui/join/${e.token}?clientId=${Z.clientId}`,Y=new WebSocket(v1);e.client=Y,Y.onopen=H=>{console.log("WebSocket middleware: Connected",H.type,H.target),e.waitingToReconnect=!1,l(),setTimeout(()=>{e.client===Y&&Y.readyState===WebSocket.OPEN&&u(U.setWebsocketIsConnected(!0))},100)},Y.onerror=H=>{console.error("WebSocket middleware: Error",H),i(u)},Y.onclose=H=>{var _;if(console.log("WebSocket middleware: Disconnected",H.reason,H.code),H.code===4100){console.log("WebSocket middleware: Closed by client (cleanup)"),l(),i(u);return}if(e.waitingToReconnect=!0,H.code===4e3){console.log("WebSocket middleware: User code changed"),l(),u(U.setUserCode({userCode:"",qrUrl:""})),u(k.setErrorMessage("User code changed. Click reconnect to enter the new code")),i(u);return}if(H.code===4002){console.log("WebSocket middleware: Room combination changed"),l(),u(k.setErrorMessage("Room combination changed. Click Reconnect to re-join the room")),i(u);return}if(H.code===4001)if(!!((_=C().runtimeConfig)!=null&&_.touchpanelKey))console.log("WebSocket middleware: Code 4001 received with touchpanel key present, will auto-reconnect");else if(I)console.log("WebSocket middleware: Code 4001 on processor hardware (no touchpanel key), will auto-reconnect");else{console.log("WebSocket middleware: Processor disconnected (no touchpanel key, not on processor hardware)"),l(),u(k.setErrorMessage("Processor has disconnected. Click Reconnect to continue.")),i(u);return}if(e.client)console.log("WebSocket middleware: Closed by server, will auto-reconnect");else{console.log("WebSocket middleware: Closed by client");return}e.client=null,console.log("WebSocket middleware: Clearing state on disconnect"),u(k.setErrorMessage("Connection lost. Attempting to reconnect...")),u(U.setWebsocketIsConnected(!1)),u(r1.clearDevices()),u(l1.clearRooms()),u(k.clearAllModals()),u(k.clearSyncState()),r(u)},Y.onmessage=H=>{try{const _=JSON.parse(H.data);if(_.type==="close"){Y.close(4001,_.content);return}if(_.type.startsWith("/system/"))switch(_.type){case"/system/touchpanelKey":u(U.setTouchpanelKey(_.content));break;case"/system/roomKey":u(l1.clearRooms()),u(r1.clearDevices()),u(k.clearSyncState()),u(U.setCurrentRoomKey(_.content));break;case"/system/userCodeChanged":u(U.setUserCode(_.content));break;case"/system/roomCombinationChanged":window.location.reload();break;case"/system/deviceInterfaces":{const q=_.content;u(U.setDeviceInterfaces(q.deviceInterfaces));break}default:console.log("WebSocket middleware: Unhandled system message",_);break}else if(_.type.startsWith("/event/")){const q=e.eventHandlers[_.type];q||console.log("WebSocket middleware: No handlers found for event type",_.type),q&&Object.values(q).forEach(h1=>{try{h1(_)}catch(z1){console.error("WebSocket middleware: Event handler error",z1)}})}else _.type.startsWith("/room/")?u(l1.setRoomState(_)):_.type.startsWith("/device/")&&u(r1.setDeviceState(_))}catch(_){console.error("WebSocket middleware: Message handling error",_)}},e.waitingToReconnect=!1}catch(Z){console.error("WebSocket middleware: Connection error",Z),e.waitingToReconnect=!1,e.client=null}},g=()=>{e.client&&(console.log("WebSocket middleware: Disconnecting"),l(),e.client.close(4100,"Client requested disconnect"),e.client=null)},M=(u,C,x)=>{const j=x(),I=j.runtimeConfig.websocket.isConnected,Z=j.runtimeConfig.roomData.clientId;e.client&&I?e.client.send(JSON.stringify({type:u,clientId:Z,content:C})):console.warn("WebSocket middleware: Cannot send message - not connected")},d=(u,C,x)=>{e.eventHandlers[u]||(e.eventHandlers[u]={}),e.eventHandlers[u][C]=x,console.log("WebSocket middleware: Event handler added",u,C)},L=(u,C)=>{e.eventHandlers[u]&&(delete e.eventHandlers[u][C],console.log("WebSocket middleware: Event handler removed",u,C))},G=u=>{const C=u(),{gatewayAppPath:x}=C.appConfig.config,j=C.runtimeConfig.roomData.roomKey,I=C.runtimeConfig.roomData.systemUuid,Z=C.runtimeConfig.roomData.userCode,V=`${x}?uuid=${I}&roomKey=${j}`;window.location.href=Z?`${V}&Code=${Z}`:V};return u=>C=>x=>{const j=C(x);if(!x||typeof x!="object"||!("type"in x))return j;const I=x;return(async()=>{switch(I.type){case L1:{let V=new URLSearchParams(window.location.search).get("token");V?(console.log("WebSocket middleware: Saving token"),m8(n2.uuid,V)):(V=f8(n2.uuid),console.log("WebSocket middleware: Loading token")),e.token=V,await t(u.dispatch),await w(u.dispatch,u.getState);break}case B1:g();break;case O1:M(I.payload.messageType,I.payload.content,u.getState);break;case W1:d(I.payload.eventType,I.payload.key,I.payload.callback);break;case V1:L(I.payload.eventType,I.payload.key);break;case k1:G(u.getState);break;default:if(x.type===U.setWebsocketIsConnected.type)x.payload===!0&&(console.log("[WebSocket Middleware] Connection established, requesting room status..."),setTimeout(()=>h(u.getState),100));else if(x.type===U.setRoomData.type){const Z=u.getState(),V=x.payload;Z.runtimeConfig.websocket.isConnected&&(V!=null&&V.clientId)&&(console.log("[WebSocket Middleware] Room data received, requesting room status..."),setTimeout(()=>h(u.getState),100))}else if(x.type===U.setCurrentRoomKey.type){const Z=x.payload;Z&&(console.log("[WebSocket Middleware] Room changed to:",Z,", requesting room status..."),setTimeout(()=>h(u.getState,Z),100))}break}})().catch(Z=>{console.error("WebSocket middleware: Error handling action",Z)}),j}},Z8=f.combineReducers({appConfig:v8,runtimeConfig:S8,rooms:w8,devices:h8,ui:Q3}),u2=f.configureStore({reducer:Z8,middleware:e=>e({serializableCheck:{ignoredActions:["websocket/addEventHandler"]}}).concat(a2())}),U1=$.create();function C8(){const e=m1();return async()=>{try{const t=location.pathname.split("/").filter(l=>l.length>0);t.length>=5?t.length=5:t.length=2;const c=`/${t.join("/")}`,r=await U1.get("/_local-config/_config.local.json",{baseURL:c});if(r.status==200&&r.data){const l=r.data.apiPath;e(T1.setAppConfig(r.data));const i=await U1.get(`${l}/version`);i.status==200&&i.data&&e(U.setRuntimeConfig(i.data))}}catch(t){console.error("Error getting config",t)}return!0}}var S1={exports:{}},i1={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocketMiddleware.d.ts","sourceRoot":"","sources":["../../../src/lib/store/middleware/websocketMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAkC,OAAO,EAAY,MAAM,aAAa,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAoB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGhF,OAAO,EAEL,kBAAkB,EAEnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK1D,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,kBAAkB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,EAAE,EAAE,aAAa,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,aAAa,yBAAyB,CAAC;AACpD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,SAAS;;CAA+B,CAAC;AACtD,eAAO,MAAM,YAAY;;CAAkC,CAAC;AAC5D,eAAO,MAAM,aAAa,GAAI,aAAa,MAAM,EAAE,SAAS,OAAO;;;;;;CAGjE,CAAC;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,UAAU,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;;;;;yBAAhB,OAAO,KAAK,IAAI;;CAIjC,CAAC;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,EAAE,KAAK,MAAM;;;;;;CAGjE,CAAC;AACH,eAAO,MAAM,WAAW;;CAAiC,CAAC;AAa1D;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAO,UAAU,CACrD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,cAAc,
|
|
1
|
+
{"version":3,"file":"websocketMiddleware.d.ts","sourceRoot":"","sources":["../../../src/lib/store/middleware/websocketMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAkC,OAAO,EAAY,MAAM,aAAa,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAoB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGhF,OAAO,EAEL,kBAAkB,EAEnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK1D,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,kBAAkB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,EAAE,EAAE,aAAa,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,aAAa,yBAAyB,CAAC;AACpD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,SAAS;;CAA+B,CAAC;AACtD,eAAO,MAAM,YAAY;;CAAkC,CAAC;AAC5D,eAAO,MAAM,aAAa,GAAI,aAAa,MAAM,EAAE,SAAS,OAAO;;;;;;CAGjE,CAAC;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,UAAU,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;;;;;yBAAhB,OAAO,KAAK,IAAI;;CAIjC,CAAC;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,EAAE,KAAK,MAAM;;;;;;CAGjE,CAAC;AACH,eAAO,MAAM,WAAW;;CAAiC,CAAC;AAa1D;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAO,UAAU,CACrD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,cAAc,CA8qBf,CAAC"}
|