@luxonis/visualizer-protobuf 1.9.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/apps/depthai-visualizer/src/components/Panel.d.ts.map +1 -1
  2. package/dist/apps/depthai-visualizer/src/components/Panel.js +7 -6
  3. package/dist/apps/depthai-visualizer/src/components/Panel.js.map +1 -1
  4. package/dist/apps/depthai-visualizer/src/components/PanelToolbar.d.ts.map +1 -1
  5. package/dist/apps/depthai-visualizer/src/components/PanelToolbar.js +5 -5
  6. package/dist/apps/depthai-visualizer/src/components/PanelToolbar.js.map +1 -1
  7. package/dist/apps/depthai-visualizer/src/connection/{ws/Adapter.d.ts → adapter.d.ts} +13 -12
  8. package/dist/apps/depthai-visualizer/src/connection/adapter.d.ts.map +1 -0
  9. package/dist/apps/depthai-visualizer/src/connection/{ws/Adapter.js → adapter.js} +19 -15
  10. package/dist/apps/depthai-visualizer/src/connection/adapter.js.map +1 -0
  11. package/dist/apps/depthai-visualizer/src/connection/communicator.d.ts +84 -0
  12. package/dist/apps/depthai-visualizer/src/connection/communicator.d.ts.map +1 -0
  13. package/dist/apps/depthai-visualizer/src/connection/communicator.js +110 -0
  14. package/dist/apps/depthai-visualizer/src/connection/communicator.js.map +1 -0
  15. package/dist/apps/depthai-visualizer/src/connection/connection.d.ts +43 -0
  16. package/dist/apps/depthai-visualizer/src/connection/connection.d.ts.map +1 -0
  17. package/dist/apps/depthai-visualizer/src/connection/connection.js +64 -0
  18. package/dist/apps/depthai-visualizer/src/connection/connection.js.map +1 -0
  19. package/dist/apps/depthai-visualizer/src/connection/{BaseConnection.d.ts → foxglove-connection.d.ts} +4 -29
  20. package/dist/apps/depthai-visualizer/src/connection/foxglove-connection.d.ts.map +1 -0
  21. package/dist/apps/depthai-visualizer/src/connection/{BaseConnection.js → foxglove-connection.js} +2 -4
  22. package/dist/apps/depthai-visualizer/src/connection/foxglove-connection.js.map +1 -0
  23. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.d.ts +8 -0
  24. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.d.ts.map +1 -0
  25. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.js +136 -0
  26. package/dist/apps/depthai-visualizer/src/connection/webrtc/bridge.js.map +1 -0
  27. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.d.ts +50 -0
  28. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.d.ts.map +1 -0
  29. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.js +81 -0
  30. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker-utils.js.map +1 -0
  31. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker.d.ts +2 -0
  32. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker.d.ts.map +1 -0
  33. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker.js +17 -0
  34. package/dist/apps/depthai-visualizer/src/connection/webrtc/worker.js.map +1 -0
  35. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.d.ts +11 -76
  36. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.d.ts.map +1 -1
  37. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.js +32 -113
  38. package/dist/apps/depthai-visualizer/src/connection/ws/worker-utils.js.map +1 -1
  39. package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.d.ts +3 -3
  40. package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.d.ts.map +1 -1
  41. package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.js +3 -0
  42. package/dist/apps/depthai-visualizer/src/context/ConnectionsProvider.js.map +1 -1
  43. package/dist/apps/depthai-visualizer/src/context/VisualizerContext.d.ts +2 -2
  44. package/dist/apps/depthai-visualizer/src/context/VisualizerContext.d.ts.map +1 -1
  45. package/dist/apps/depthai-visualizer/src/context/VisualizerContext.js +1 -1
  46. package/dist/apps/depthai-visualizer/src/context/VisualizerContext.js.map +1 -1
  47. package/dist/apps/depthai-visualizer/src/context/VisualizerFlatContext.d.ts +3 -3
  48. package/dist/apps/depthai-visualizer/src/context/VisualizerFlatContext.d.ts.map +1 -1
  49. package/dist/apps/depthai-visualizer/src/context/VisualizerFlatContext.js.map +1 -1
  50. package/dist/apps/depthai-visualizer/src/index.d.ts +3 -3
  51. package/dist/apps/depthai-visualizer/src/index.d.ts.map +1 -1
  52. package/dist/apps/depthai-visualizer/src/index.js +1 -1
  53. package/dist/apps/depthai-visualizer/src/index.js.map +1 -1
  54. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/constants.d.ts.map +1 -1
  55. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/constants.js +3 -0
  56. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/constants.js.map +1 -1
  57. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/custom.d.ts +1 -1
  58. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/custom.d.ts.map +1 -1
  59. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/custom.js +40 -20
  60. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/custom.js.map +1 -1
  61. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/detection.d.ts.map +1 -1
  62. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/detection.js +2 -2
  63. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/detection.js.map +1 -1
  64. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/utils.d.ts.map +1 -1
  65. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/utils.js +3 -0
  66. package/dist/apps/depthai-visualizer/src/messaging/deserialization/detections/utils.js.map +1 -1
  67. package/dist/apps/depthai-visualizer/src/messaging/deserialization/imu/imu.d.ts +1 -1
  68. package/dist/apps/depthai-visualizer/src/messaging/deserialization/imu/imu.d.ts.map +1 -1
  69. package/dist/apps/depthai-visualizer/src/messaging/deserialization/pointcloud/point-cloud.d.ts.map +1 -1
  70. package/dist/apps/depthai-visualizer/src/messaging/deserialization/pointcloud/point-cloud.js +5 -1
  71. package/dist/apps/depthai-visualizer/src/messaging/deserialization/pointcloud/point-cloud.js.map +1 -1
  72. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/color.d.ts.map +1 -1
  73. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/color.js +1 -1
  74. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/color.js.map +1 -1
  75. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/depth.d.ts.map +1 -1
  76. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/depth.js +1 -1
  77. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/depth.js.map +1 -1
  78. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/h264.d.ts.map +1 -1
  79. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/h264.js +1 -1
  80. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/h264.js.map +1 -1
  81. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/mjpeg.d.ts.map +1 -1
  82. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/mjpeg.js +1 -1
  83. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/mjpeg.js.map +1 -1
  84. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/mono.d.ts.map +1 -1
  85. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/mono.js +1 -1
  86. package/dist/apps/depthai-visualizer/src/messaging/deserialization/video/mono.js.map +1 -1
  87. package/dist/apps/depthai-visualizer/src/messaging/deserialization.d.ts +2 -2
  88. package/dist/apps/depthai-visualizer/src/messaging/deserialization.d.ts.map +1 -1
  89. package/dist/apps/depthai-visualizer/src/messaging/deserialization.js +3 -3
  90. package/dist/apps/depthai-visualizer/src/messaging/deserialization.js.map +1 -1
  91. package/dist/apps/depthai-visualizer/src/messaging/message-handler.d.ts +2 -2
  92. package/dist/apps/depthai-visualizer/src/messaging/message-handler.d.ts.map +1 -1
  93. package/dist/apps/depthai-visualizer/src/messaging/protobuf.d.ts +2 -2
  94. package/dist/apps/depthai-visualizer/src/messaging/protobuf.d.ts.map +1 -1
  95. package/dist/apps/depthai-visualizer/src/messaging/protobuf.js +5 -2
  96. package/dist/apps/depthai-visualizer/src/messaging/protobuf.js.map +1 -1
  97. package/dist/apps/depthai-visualizer/src/panels/PointCloudPanel.d.ts.map +1 -1
  98. package/dist/apps/depthai-visualizer/src/panels/PointCloudPanel.js.map +1 -1
  99. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.d.ts +2 -1
  100. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.d.ts.map +1 -1
  101. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.js +22 -2
  102. package/dist/apps/depthai-visualizer/src/protobuf.generated/EncodedFrame.js.map +1 -1
  103. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImageAnnotations.d.ts.map +1 -1
  104. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImageAnnotations.js +3 -0
  105. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImageAnnotations.js.map +1 -1
  106. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.d.ts +2 -1
  107. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.d.ts.map +1 -1
  108. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.js +21 -2
  109. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgDetections.js.map +1 -1
  110. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.d.ts +2 -2
  111. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.d.ts.map +1 -1
  112. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.js +13 -10
  113. package/dist/apps/depthai-visualizer/src/protobuf.generated/ImgFrame.js.map +1 -1
  114. package/dist/apps/depthai-visualizer/src/protobuf.generated/PointCloudData.d.ts.map +1 -1
  115. package/dist/apps/depthai-visualizer/src/protobuf.generated/PointCloudData.js +3 -0
  116. package/dist/apps/depthai-visualizer/src/protobuf.generated/PointCloudData.js.map +1 -1
  117. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.d.ts +2 -1
  118. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.d.ts.map +1 -1
  119. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.js +21 -2
  120. package/dist/apps/depthai-visualizer/src/protobuf.generated/SpatialImgDetections.js.map +1 -1
  121. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.d.ts +14 -36
  122. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.d.ts.map +1 -1
  123. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.js +103 -280
  124. package/dist/apps/depthai-visualizer/src/protobuf.generated/common.js.map +1 -1
  125. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.d.ts +6 -0
  126. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.d.ts.map +1 -0
  127. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.js +16 -0
  128. package/dist/apps/depthai-visualizer/src/utils/artificial-worker.js.map +1 -0
  129. package/dist/apps/depthai-visualizer/src/utils/callback-manager.d.ts.map +1 -1
  130. package/dist/apps/depthai-visualizer/src/utils/callback-manager.js +3 -0
  131. package/dist/apps/depthai-visualizer/src/utils/callback-manager.js.map +1 -1
  132. package/dist/apps/depthai-visualizer/src/utils/compatibility.d.ts.map +1 -1
  133. package/dist/apps/depthai-visualizer/src/utils/compatibility.js +3 -0
  134. package/dist/apps/depthai-visualizer/src/utils/compatibility.js.map +1 -1
  135. package/dist/apps/depthai-visualizer/src/utils/encoding.d.ts.map +1 -1
  136. package/dist/apps/depthai-visualizer/src/utils/encoding.js +3 -0
  137. package/dist/apps/depthai-visualizer/src/utils/encoding.js.map +1 -1
  138. package/dist/apps/depthai-visualizer/src/utils/metrics-manager.d.ts.map +1 -1
  139. package/dist/apps/depthai-visualizer/src/utils/metrics-manager.js +3 -0
  140. package/dist/apps/depthai-visualizer/src/utils/metrics-manager.js.map +1 -1
  141. package/dist/{worker-utils-Jii8lIsy.js → communicator-DgLGCQSf.js} +1997 -3432
  142. package/dist/{index-2SFix7KY.js → index-B2MkEOI4.js} +3 -2
  143. package/dist/{index-BvNZUlo_.js → index-B87UUXCH.js} +3 -2
  144. package/dist/{index-DSLjhjen.js → index-BdouEs9u.js} +3 -2
  145. package/dist/{index-DKfQ_S8i.js → index-BjH4XfIl.js} +3 -2
  146. package/dist/{index-B8FQDMoh.js → index-BrQv_AiM.js} +3 -2
  147. package/dist/{index-ChQWCJEj.js → index-C3ZNlxlw.js} +3 -2
  148. package/dist/{index-otpYhpPx.js → index-CGeW-0k7.js} +3 -2
  149. package/dist/{index-B8Cado6g.js → index-CNUN2zja.js} +3 -2
  150. package/dist/{index-Cp3omW6p.js → index-D2coYWoA.js} +4 -3
  151. package/dist/{index-txFQeh8N.js → index-DRTtwocb.js} +3 -2
  152. package/dist/{index-GbwWdY6w.js → index-DTdRI7_c.js} +3 -2
  153. package/dist/{index-Bay9MnxH.js → index-DbK2elHW.js} +3 -2
  154. package/dist/{index-BkQgkjmO.js → index-DdoU22pT.js} +3 -2
  155. package/dist/{index-B8t-Gi4x.js → index-WsLy6WgG.js} +3 -2
  156. package/dist/{index-BEcWpcB1.js → index-YeBvcQ1n.js} +11 -6
  157. package/dist/{index-Bk6p8-al.js → index-aNtIoK9f.js} +3 -2
  158. package/dist/{index-CNWGMhCW.js → index-bn5rOf_P.js} +274 -180
  159. package/dist/{index-7n6fnp2B.js → index-dWg1V1OC.js} +3 -2
  160. package/dist/{index-Dn-E1-20.js → index-tlh8GrAK.js} +3 -2
  161. package/dist/index.js +4 -3
  162. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/RenderableLineAnnotation.js +3 -3
  163. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/RenderableLineAnnotation.js.map +1 -1
  164. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/normalizeAnnotations.d.ts +8 -0
  165. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/normalizeAnnotations.d.ts.map +1 -1
  166. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/normalizeAnnotations.js +2 -0
  167. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/normalizeAnnotations.js.map +1 -1
  168. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/types.d.ts +2 -0
  169. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/annotations/types.d.ts.map +1 -1
  170. package/dist/worker-Bm-XMTrA.js +102 -0
  171. package/dist/{worker-D2k1TTky.js → worker-Cu4hHmBC.js} +2 -1
  172. package/dist/worker-utils-C5uhht5r.js +1332 -0
  173. package/package.json +3 -2
  174. package/dist/apps/depthai-visualizer/src/connection/BaseConnection.d.ts.map +0 -1
  175. package/dist/apps/depthai-visualizer/src/connection/BaseConnection.js.map +0 -1
  176. package/dist/apps/depthai-visualizer/src/connection/webrtc/Connection.d.ts +0 -12
  177. package/dist/apps/depthai-visualizer/src/connection/webrtc/Connection.d.ts.map +0 -1
  178. package/dist/apps/depthai-visualizer/src/connection/webrtc/Connection.js +0 -79
  179. package/dist/apps/depthai-visualizer/src/connection/webrtc/Connection.js.map +0 -1
  180. package/dist/apps/depthai-visualizer/src/connection/ws/Adapter.d.ts.map +0 -1
  181. package/dist/apps/depthai-visualizer/src/connection/ws/Adapter.js.map +0 -1
  182. package/dist/apps/depthai-visualizer/src/connection/ws/Connection.d.ts +0 -11
  183. package/dist/apps/depthai-visualizer/src/connection/ws/Connection.d.ts.map +0 -1
  184. package/dist/apps/depthai-visualizer/src/connection/ws/Connection.js +0 -45
  185. package/dist/apps/depthai-visualizer/src/connection/ws/Connection.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import { c as commonjsGlobal, g as getAugmentedNamespace, a as getDefaultExportFromCjs, T as Type$1, P as PointsAnnotationType$2, b as Profile, p as protobufsBySchema } from './worker-utils-Jii8lIsy.js';
1
+ import { c as commonjsGlobal, g as getAugmentedNamespace, a as getDefaultExportFromCjs } from './worker-utils-C5uhht5r.js';
2
+ import { T as Type$1, P as PointsAnnotationType$2, a as Profile, p as protobufsBySchema } from './communicator-DgLGCQSf.js';
2
3
  import * as React$1 from 'react';
3
4
  import React__default, { useContext, useRef, useLayoutEffect, createContext, useReducer, useState, useCallback, useMemo, forwardRef, createElement, Component, useEffect, Children, isValidElement, cloneElement, Fragment, useImperativeHandle, Suspense } from 'react';
4
5
  import { createStore, useStore } from 'zustand';
@@ -90,9 +91,10 @@ const PlayerCapabilities = {
90
91
  // This Source Code Form is subject to the terms of the Mozilla Public
91
92
  // License, v2.0. If a copy of the MPL was not distributed with this
92
93
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
94
+ //
93
95
 
94
96
  const REQUEST_RESPONSE_TIMEOUT = 10_000;
95
- class Adapter extends EventTarget {
97
+ class FoxgloveWebSocketAdapter extends EventTarget {
96
98
  #worker;
97
99
  #connectionClosed = false;
98
100
  binaryType = "arraybuffer";
@@ -122,7 +124,9 @@ class Adapter extends EventTarget {
122
124
  this.#worker.postMessage(message, transferable);
123
125
  }
124
126
  #handleMessageEvents() {
125
- const onWorkerError = error => console.error(`WebWorker error:`, error);
127
+ const onWorkerError = error => {
128
+ console.error(`WebWorker error:`, error);
129
+ };
126
130
  this.#worker.addEventListener("error", onWorkerError);
127
131
  this.#worker.addEventListener("messageerror", onWorkerError);
128
132
  const onClose = () => {
@@ -175,22 +179,19 @@ class Adapter extends EventTarget {
175
179
  case 'custom':
176
180
  {
177
181
  this.dispatchEvent(new MessageEvent('custom', event.data));
182
+ break;
178
183
  }
179
184
  }
180
185
  });
181
186
  }
182
- constructor(wsUrl, worker) {
187
+ constructor(data, worker) {
183
188
  super();
184
- this.url = wsUrl;
185
- this.#worker = worker ?? new Worker(new URL("worker-D2k1TTky.js", import.meta.url), {
186
- type: "module"
187
- });
189
+ this.url = 'wsUrl' in data ? data.wsUrl : '';
190
+ this.#worker = worker;
188
191
  this.#handleMessageEvents();
189
192
  this.#sendToWorker({
190
193
  type: "open",
191
- data: {
192
- wsUrl
193
- }
194
+ data
194
195
  });
195
196
  }
196
197
  on = (name, listener) => {
@@ -204,7 +205,9 @@ class Adapter extends EventTarget {
204
205
  }
205
206
  }
206
207
  };
207
- off = (name, listener) => this.removeEventListener(name, listener);
208
+ off = (name, listener) => {
209
+ this.removeEventListener(name, listener);
210
+ };
208
211
  close() {
209
212
  if (!this.#connectionClosed) {
210
213
  this.#connectionClosed = true;
@@ -215,13 +218,13 @@ class Adapter extends EventTarget {
215
218
  this.dispatchEvent(new Event("close"));
216
219
  }
217
220
  }
218
- request({
221
+ async request({
219
222
  name,
220
223
  timeout = REQUEST_RESPONSE_TIMEOUT,
221
224
  ignoreResponse = false,
222
225
  body = {}
223
226
  }) {
224
- return new Promise(resolve => {
227
+ return await new Promise(resolve => {
225
228
  const serviceCallId = ++this.#serviceCallId;
226
229
  const listener = ({
227
230
  data: message
@@ -229,7 +232,7 @@ class Adapter extends EventTarget {
229
232
  if (message.type !== 'service_response') {
230
233
  return;
231
234
  }
232
- if (message.data && message.data.serviceCallId === serviceCallId) {
235
+ if (message.data.serviceCallId === serviceCallId) {
233
236
  clearTimeout(rejectionTimer);
234
237
  if (!message.data.ok) {
235
238
  console.error(`Service "${name}" response failed`, message.data.error);
@@ -261,10 +264,12 @@ class Adapter extends EventTarget {
261
264
  }
262
265
  });
263
266
  }
267
+
268
+ // @ts-expect-error TODO: WebRTC hack
264
269
  send(data) {
265
270
  this.#sendToWorker({
266
271
  type: "send",
267
- data
272
+ data: data
268
273
  });
269
274
  }
270
275
  }
@@ -1821,6 +1826,10 @@ var require$$44 = /*@__PURE__*/getAugmentedNamespace(Vector3);
1821
1826
 
1822
1827
  } (typescript$1));
1823
1828
 
1829
+ // This Source Code Form is subject to the terms of the Mozilla Public
1830
+ // License, v2.0. If a copy of the MPL was not distributed with this
1831
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
1832
+
1824
1833
  const glColor = (r, g, b, a) => ({
1825
1834
  r: r / 255,
1826
1835
  g: g / 255,
@@ -1840,9 +1849,9 @@ const DEFAULT_THICKNESS = 10;
1840
1849
  const getTextSize = (width, height) => interpolate(width, height, DEFAULT_SIZE);
1841
1850
  const getBorderThickness = (width, height) => interpolate(width, height, DEFAULT_THICKNESS);
1842
1851
 
1843
- // This Source Code Form Is Subject To The Terms Of The Mozilla Public
1844
- // License, V2.0. If A Copy Of The MPL Was Not Distributed With This
1845
- // File, You Can Obtain One At Http://mozilla.org/MPL/2.0/
1852
+ // This Source Code Form is subject to the terms of the Mozilla Public
1853
+ // License, v2.0. If a copy of the MPL was not distributed with this
1854
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
1846
1855
 
1847
1856
  const GROUP_COLORS = {
1848
1857
  entity: {
@@ -10976,6 +10985,92 @@ function parseMessage(message) {
10976
10985
  // License, v2.0. If a copy of the MPL was not distributed with this
10977
10986
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
10978
10987
 
10988
+ function deserializeImgDetectionsCustom({
10989
+ topic,
10990
+ message,
10991
+ callback,
10992
+ topicSizes
10993
+ }) {
10994
+ const {
10995
+ receiveTime
10996
+ } = parseMessage(message);
10997
+ const {
10998
+ width,
10999
+ height
11000
+ } = topicSizes.values().next().value ?? {
11001
+ width: DEFAULT_WIDTH,
11002
+ height: DEFAULT_HEIGHT
11003
+ };
11004
+ const xMultiplier = width >= height ? 1 : height / width;
11005
+ const yMultiplier = height >= width ? 1 : width / height;
11006
+ for (const annotations of message.annotations) {
11007
+ const points = [];
11008
+ const circles = [];
11009
+ for (const annotation of annotations.points) {
11010
+ if (annotation.type === PointsAnnotationType$2.POINTS) {
11011
+ circles.push(...annotation.points.map(point => ({
11012
+ timestamp: receiveTime,
11013
+ position: point,
11014
+ xMultiplier,
11015
+ yMultiplier,
11016
+ diameter: annotation.thickness / 200,
11017
+ thickness: annotation.thickness,
11018
+ fill_color: annotation.fillColor ?? DEFAULT_STYLE.fill,
11019
+ outline_color: annotation.outlineColor ?? DEFAULT_STYLE.fill
11020
+ })));
11021
+ } else {
11022
+ points.push({
11023
+ timestamp: receiveTime,
11024
+ type: annotation.type === PointsAnnotationType$2.UNRECOGNIZED ? typescript$1.PointsAnnotationType.UNKNOWN : Number(annotation.type),
11025
+ points: annotation.points,
11026
+ outline_color: annotation.outlineColor ?? DEFAULT_STYLE.outline,
11027
+ outline_colors: [],
11028
+ fill_color: annotation.fillColor ?? DEFAULT_STYLE.fill,
11029
+ thickness: annotation.thickness
11030
+ });
11031
+ }
11032
+ }
11033
+ const texts = annotations.texts.map(annotation => ({
11034
+ timestamp: receiveTime,
11035
+ position: annotation.position ?? {
11036
+ x: 0,
11037
+ y: 0
11038
+ },
11039
+ text: annotation.text,
11040
+ font_size: annotation.fontSize ?? getTextSize(width, height),
11041
+ text_color: annotation.textColor ?? DEFAULT_TEXT_COLOR,
11042
+ background_color: annotation.backgroundColor ?? DEFAULT_BACKGROUND_COLOR
11043
+ }));
11044
+ circles.push(...annotations.circles.map(annotation => ({
11045
+ timestamp: receiveTime,
11046
+ position: annotation.position ?? {
11047
+ x: 0,
11048
+ y: 0
11049
+ },
11050
+ diameter: annotation.diameter,
11051
+ thickness: annotation.thickness,
11052
+ fill_color: annotation.fillColor ?? DEFAULT_STYLE.fill,
11053
+ outline_color: annotation.outlineColor ?? DEFAULT_STYLE.outline
11054
+ })));
11055
+ const foxgloveMessage = {
11056
+ points,
11057
+ texts,
11058
+ circles
11059
+ };
11060
+ callback({
11061
+ topic,
11062
+ receiveTime,
11063
+ message: foxgloveMessage,
11064
+ sizeInBytes: estimateObjectSize(foxgloveMessage),
11065
+ schemaName: "foxglove.ImageAnnotations"
11066
+ });
11067
+ }
11068
+ }
11069
+
11070
+ // This Source Code Form is subject to the terms of the Mozilla Public
11071
+ // License, v2.0. If a copy of the MPL was not distributed with this
11072
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
11073
+
10979
11074
  function deserializeImgDetections({
10980
11075
  topic,
10981
11076
  message,
@@ -11141,6 +11236,73 @@ function deserializeImgDetections({
11141
11236
  // License, v2.0. If a copy of the MPL was not distributed with this
11142
11237
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
11143
11238
 
11239
+ function deserializePointCloudData({
11240
+ topic,
11241
+ message,
11242
+ callback
11243
+ }) {
11244
+ const receiveTime = fromMillis(Date.now());
11245
+ const foxgloveMessage = {
11246
+ timestamp: receiveTime,
11247
+ frame_id: `pointcloud-${topic}-frame`,
11248
+ point_stride: 12,
11249
+ pose: {
11250
+ position: {
11251
+ x: 0,
11252
+ y: 0,
11253
+ z: 0
11254
+ },
11255
+ orientation: {
11256
+ x: 0,
11257
+ y: 0,
11258
+ z: 1,
11259
+ w: 0
11260
+ }
11261
+ },
11262
+ fields: [{
11263
+ name: "x",
11264
+ offset: 0,
11265
+ type: typescript$1.NumericType.FLOAT32
11266
+ }, {
11267
+ name: "y",
11268
+ offset: 4,
11269
+ type: typescript$1.NumericType.FLOAT32
11270
+ }, {
11271
+ name: "z",
11272
+ offset: 8,
11273
+ type: typescript$1.NumericType.FLOAT32
11274
+ }],
11275
+ data: message.data
11276
+ };
11277
+ if (message.color) {
11278
+ foxgloveMessage.fields.push({
11279
+ name: "red",
11280
+ offset: 12,
11281
+ type: typescript$1.NumericType.UINT8
11282
+ }, {
11283
+ name: "green",
11284
+ offset: 13,
11285
+ type: typescript$1.NumericType.UINT8
11286
+ }, {
11287
+ name: "blue",
11288
+ offset: 14,
11289
+ type: typescript$1.NumericType.UINT8
11290
+ });
11291
+ foxgloveMessage.point_stride = 15;
11292
+ }
11293
+ callback({
11294
+ topic,
11295
+ receiveTime,
11296
+ message: foxgloveMessage,
11297
+ sizeInBytes: estimateObjectSize(foxgloveMessage),
11298
+ schemaName: "foxglove.PointCloud"
11299
+ });
11300
+ }
11301
+
11302
+ // This Source Code Form is subject to the terms of the Mozilla Public
11303
+ // License, v2.0. If a copy of the MPL was not distributed with this
11304
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
11305
+
11144
11306
  function deserializeColorFrame({
11145
11307
  topic,
11146
11308
  message,
@@ -11209,6 +11371,10 @@ function deserializeDepthFrame({
11209
11371
  });
11210
11372
  }
11211
11373
 
11374
+ // This Source Code Form is subject to the terms of the Mozilla Public
11375
+ // License, v2.0. If a copy of the MPL was not distributed with this
11376
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
11377
+
11212
11378
  function ensureWebCodecsSupported(target) {
11213
11379
  const supported = typeof target !== "undefined";
11214
11380
  if (!supported) {
@@ -11357,124 +11523,6 @@ async function deserializeMJPEGFrame({
11357
11523
  // License, v2.0. If a copy of the MPL was not distributed with this
11358
11524
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
11359
11525
 
11360
- function deserializePointCloudData({
11361
- topic,
11362
- message,
11363
- callback
11364
- }) {
11365
- const receiveTime = fromMillis(Date.now());
11366
- const foxgloveMessage = {
11367
- timestamp: receiveTime,
11368
- frame_id: `pointcloud-${topic}-frame`,
11369
- point_stride: 12,
11370
- pose: {
11371
- position: {
11372
- x: 0,
11373
- y: 0,
11374
- z: 0
11375
- },
11376
- orientation: {
11377
- x: 0,
11378
- y: 0,
11379
- z: 1,
11380
- w: 0
11381
- }
11382
- },
11383
- fields: [{
11384
- name: "x",
11385
- offset: 0,
11386
- type: typescript$1.NumericType.FLOAT32
11387
- }, {
11388
- name: "y",
11389
- offset: 4,
11390
- type: typescript$1.NumericType.FLOAT32
11391
- }, {
11392
- name: "z",
11393
- offset: 8,
11394
- type: typescript$1.NumericType.FLOAT32
11395
- }],
11396
- data: message.data
11397
- };
11398
- callback({
11399
- topic,
11400
- receiveTime,
11401
- message: foxgloveMessage,
11402
- sizeInBytes: estimateObjectSize(foxgloveMessage),
11403
- schemaName: "foxglove.PointCloud"
11404
- });
11405
- }
11406
-
11407
- // This Source Code Form is subject to the terms of the Mozilla Public
11408
- // License, v2.0. If a copy of the MPL was not distributed with this
11409
- // file, You can obtain one at http://mozilla.org/MPL/2.0/
11410
-
11411
- function deserializeImgDetectionsCustom({
11412
- topic,
11413
- message,
11414
- callback,
11415
- topicSizes
11416
- }) {
11417
- const {
11418
- receiveTime
11419
- } = parseMessage(message);
11420
- const {
11421
- width,
11422
- height
11423
- } = topicSizes.values().next().value ?? {
11424
- width: DEFAULT_WIDTH,
11425
- height: DEFAULT_HEIGHT
11426
- };
11427
- for (const annotation of message.annotations) {
11428
- const points = annotation.points.map(annotation => ({
11429
- timestamp: receiveTime,
11430
- type: annotation.type === PointsAnnotationType$2.UNRECOGNIZED ? typescript$1.PointsAnnotationType.UNKNOWN : Number(annotation.type),
11431
- points: annotation.points,
11432
- outline_color: annotation.outlineColor ?? DEFAULT_STYLE.outline,
11433
- outline_colors: [],
11434
- fill_color: annotation.fillColor ?? DEFAULT_STYLE.fill,
11435
- thickness: annotation.thickness
11436
- }));
11437
- const texts = annotation.texts.map(annotation => ({
11438
- timestamp: receiveTime,
11439
- position: annotation.position ?? {
11440
- x: 0,
11441
- y: 0
11442
- },
11443
- text: annotation.text,
11444
- font_size: annotation.fontSize ?? getTextSize(width, height),
11445
- text_color: annotation.textColor ?? DEFAULT_TEXT_COLOR,
11446
- background_color: annotation.backgroundColor ?? DEFAULT_BACKGROUND_COLOR
11447
- }));
11448
- const circles = annotation.circles.map(annotation => ({
11449
- timestamp: receiveTime,
11450
- position: annotation.position ?? {
11451
- x: 0,
11452
- y: 0
11453
- },
11454
- diameter: annotation.diameter,
11455
- thickness: annotation.thickness,
11456
- fill_color: annotation.fillColor ?? DEFAULT_STYLE.fill,
11457
- outline_color: annotation.outlineColor ?? DEFAULT_STYLE.outline
11458
- }));
11459
- const foxgloveMessage = {
11460
- points,
11461
- texts,
11462
- circles
11463
- };
11464
- callback({
11465
- topic,
11466
- receiveTime,
11467
- message: foxgloveMessage,
11468
- sizeInBytes: estimateObjectSize(foxgloveMessage),
11469
- schemaName: "foxglove.ImageAnnotations"
11470
- });
11471
- }
11472
- }
11473
-
11474
- // This Source Code Form is subject to the terms of the Mozilla Public
11475
- // License, v2.0. If a copy of the MPL was not distributed with this
11476
- // file, You can obtain one at http://mozilla.org/MPL/2.0/
11477
-
11478
11526
  async function deserializeDepthAiMessage(args) {
11479
11527
  const {
11480
11528
  topicDecoders,
@@ -11632,6 +11680,10 @@ function createMessageHandler(callback) {
11632
11680
  };
11633
11681
  }
11634
11682
 
11683
+ // This Source Code Form is subject to the terms of the Mozilla Public
11684
+ // License, v2.0. If a copy of the MPL was not distributed with this
11685
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
11686
+
11635
11687
  class MetricsManager {
11636
11688
  metrics = {};
11637
11689
  registerEvent(topic) {
@@ -11771,35 +11823,64 @@ class FoxgloveConnection {
11771
11823
  await this.listener(newPlayerState);
11772
11824
  });
11773
11825
  }
11774
- class BaseConnection extends FoxgloveConnection {}
11775
11826
 
11776
11827
  // This Source Code Form is subject to the terms of the Mozilla Public
11777
11828
  // License, v2.0. If a copy of the MPL was not distributed with this
11778
11829
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
11779
11830
 
11780
- class WebSocketConnection extends BaseConnection {
11781
- #url;
11831
+ class VisualizerConnection extends FoxgloveConnection {
11832
+ #url = null;
11833
+ #config = null;
11782
11834
  #adapter;
11783
- constructor(url, worker) {
11784
- super(url);
11785
- this.#url = url;
11786
- this.#open(worker);
11787
- }
11788
- on = (...args) => this.#adapter?.on(...args);
11789
- off = (...args) => this.#adapter?.off(...args);
11790
- request = async (...args) => (await this.#adapter?.request(...args)) ?? null;
11791
- close = () => this.#adapter?.close();
11835
+ constructor({
11836
+ type,
11837
+ data,
11838
+ worker
11839
+ }) {
11840
+ super(type === 'ws' ? data.connectionUrl : data.config.clientId);
11841
+ let finalWorker = worker;
11842
+ if (type === 'ws') {
11843
+ this.#url = data.connectionUrl;
11844
+ finalWorker ??= new Worker(new URL("worker-Cu4hHmBC.js", import.meta.url), {
11845
+ type: "module"
11846
+ });
11847
+ } else {
11848
+ this.#config = data.config;
11849
+ finalWorker ??= new Worker(new URL("worker-Bm-XMTrA.js", import.meta.url), {
11850
+ type: "module"
11851
+ });
11852
+ }
11853
+ this.#open(finalWorker);
11854
+ }
11855
+ close() {
11856
+ this.#adapter?.close();
11857
+ }
11858
+ on(name, listener) {
11859
+ this.#adapter?.on(name, listener);
11860
+ }
11861
+ off(name, listener) {
11862
+ this.#adapter?.off(name, listener);
11863
+ }
11864
+ async request(args) {
11865
+ const response = await this.#adapter?.request(args);
11866
+ return response ?? null;
11867
+ }
11868
+
11869
+ // eslint-disable-next-line no-restricted-syntax
11792
11870
  get connected() {
11793
11871
  return Boolean(this.#adapter?.readyState === WebSocket.OPEN);
11794
11872
  }
11795
11873
  #open = worker => {
11796
- this.#adapter = new Adapter(this.#url, worker);
11874
+ this.#adapter = new FoxgloveWebSocketAdapter({
11875
+ wsUrl: this.#url,
11876
+ config: this.#config
11877
+ }, worker);
11797
11878
  this.#adapter.addEventListener("open", this.#onOpen.bind(this));
11798
11879
  this.#adapter.addEventListener("message", event => {
11799
11880
  this.onMessagePacket.bind(this)(event);
11800
11881
  });
11801
11882
  this.#adapter.addEventListener("close", this.#onClose.bind(this));
11802
- this.#adapter.onerror = this.#onError.bind(this);
11883
+ this.#adapter.addEventListener("error", this.#onClose.bind(this));
11803
11884
  };
11804
11885
  #onOpen = () => {
11805
11886
  this.playerPresence = PlayerPresence.PRESENT;
@@ -19184,6 +19265,10 @@ function WorkspaceContextProvider(props) {
19184
19265
  }, children);
19185
19266
  }
19186
19267
 
19268
+ // This Source Code Form is subject to the terms of the Mozilla Public
19269
+ // License, v2.0. If a copy of the MPL was not distributed with this
19270
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
19271
+
19187
19272
  const Context$2 = React__default.createContext([]);
19188
19273
  const ConnectionsProvider = Context$2.Provider;
19189
19274
  const useConnections = () => React__default.useContext(Context$2);
@@ -82983,7 +83068,7 @@ function legacy(parser) {
82983
83068
  return new LanguageSupport(StreamLanguage.define(parser));
82984
83069
  }
82985
83070
  function sql$1(dialectName) {
82986
- return import('./index-Dn-E1-20.js').then(m => m.sql({ dialect: m[dialectName] }));
83071
+ return import('./index-tlh8GrAK.js').then(m => m.sql({ dialect: m[dialectName] }));
82987
83072
  }
82988
83073
  /**
82989
83074
  An array of language descriptions for known language packages.
@@ -82994,7 +83079,7 @@ const languages = [
82994
83079
  name: "C",
82995
83080
  extensions: ["c", "h", "ino"],
82996
83081
  load() {
82997
- return import('./index-Bay9MnxH.js').then(m => m.cpp());
83082
+ return import('./index-DbK2elHW.js').then(m => m.cpp());
82998
83083
  }
82999
83084
  }),
83000
83085
  /*@__PURE__*/LanguageDescription.of({
@@ -83002,7 +83087,7 @@ const languages = [
83002
83087
  alias: ["cpp"],
83003
83088
  extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
83004
83089
  load() {
83005
- return import('./index-Bay9MnxH.js').then(m => m.cpp());
83090
+ return import('./index-DbK2elHW.js').then(m => m.cpp());
83006
83091
  }
83007
83092
  }),
83008
83093
  /*@__PURE__*/LanguageDescription.of({
@@ -83022,7 +83107,7 @@ const languages = [
83022
83107
  name: "Go",
83023
83108
  extensions: ["go"],
83024
83109
  load() {
83025
- return import('./index-B8FQDMoh.js').then(m => m.go());
83110
+ return import('./index-BrQv_AiM.js').then(m => m.go());
83026
83111
  }
83027
83112
  }),
83028
83113
  /*@__PURE__*/LanguageDescription.of({
@@ -83037,7 +83122,7 @@ const languages = [
83037
83122
  name: "Java",
83038
83123
  extensions: ["java"],
83039
83124
  load() {
83040
- return import('./index-BvNZUlo_.js').then(m => m.java());
83125
+ return import('./index-B87UUXCH.js').then(m => m.java());
83041
83126
  }
83042
83127
  }),
83043
83128
  /*@__PURE__*/LanguageDescription.of({
@@ -83053,7 +83138,7 @@ const languages = [
83053
83138
  alias: ["json5"],
83054
83139
  extensions: ["json", "map"],
83055
83140
  load() {
83056
- return import('./index-otpYhpPx.js').then(m => m.json());
83141
+ return import('./index-CGeW-0k7.js').then(m => m.json());
83057
83142
  }
83058
83143
  }),
83059
83144
  /*@__PURE__*/LanguageDescription.of({
@@ -83067,14 +83152,14 @@ const languages = [
83067
83152
  name: "LESS",
83068
83153
  extensions: ["less"],
83069
83154
  load() {
83070
- return import('./index-GbwWdY6w.js').then(m => m.less());
83155
+ return import('./index-DTdRI7_c.js').then(m => m.less());
83071
83156
  }
83072
83157
  }),
83073
83158
  /*@__PURE__*/LanguageDescription.of({
83074
83159
  name: "Liquid",
83075
83160
  extensions: ["liquid"],
83076
83161
  load() {
83077
- return import('./index-2SFix7KY.js').then(m => m.liquid());
83162
+ return import('./index-B2MkEOI4.js').then(m => m.liquid());
83078
83163
  }
83079
83164
  }),
83080
83165
  /*@__PURE__*/LanguageDescription.of({
@@ -83100,7 +83185,7 @@ const languages = [
83100
83185
  name: "PHP",
83101
83186
  extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
83102
83187
  load() {
83103
- return import('./index-ChQWCJEj.js').then(m => m.php());
83188
+ return import('./index-C3ZNlxlw.js').then(m => m.php());
83104
83189
  }
83105
83190
  }),
83106
83191
  /*@__PURE__*/LanguageDescription.of({
@@ -83117,28 +83202,28 @@ const languages = [
83117
83202
  extensions: ["BUILD", "bzl", "py", "pyw"],
83118
83203
  filename: /^(BUCK|BUILD)$/,
83119
83204
  load() {
83120
- return import('./index-B8t-Gi4x.js').then(m => m.python());
83205
+ return import('./index-WsLy6WgG.js').then(m => m.python());
83121
83206
  }
83122
83207
  }),
83123
83208
  /*@__PURE__*/LanguageDescription.of({
83124
83209
  name: "Rust",
83125
83210
  extensions: ["rs"],
83126
83211
  load() {
83127
- return import('./index-DSLjhjen.js').then(m => m.rust());
83212
+ return import('./index-BdouEs9u.js').then(m => m.rust());
83128
83213
  }
83129
83214
  }),
83130
83215
  /*@__PURE__*/LanguageDescription.of({
83131
83216
  name: "Sass",
83132
83217
  extensions: ["sass"],
83133
83218
  load() {
83134
- return import('./index-txFQeh8N.js').then(m => m.sass({ indented: true }));
83219
+ return import('./index-DRTtwocb.js').then(m => m.sass({ indented: true }));
83135
83220
  }
83136
83221
  }),
83137
83222
  /*@__PURE__*/LanguageDescription.of({
83138
83223
  name: "SCSS",
83139
83224
  extensions: ["scss"],
83140
83225
  load() {
83141
- return import('./index-txFQeh8N.js').then(m => m.sass());
83226
+ return import('./index-DRTtwocb.js').then(m => m.sass());
83142
83227
  }
83143
83228
  }),
83144
83229
  /*@__PURE__*/LanguageDescription.of({
@@ -83169,7 +83254,7 @@ const languages = [
83169
83254
  name: "WebAssembly",
83170
83255
  extensions: ["wat", "wast"],
83171
83256
  load() {
83172
- return import('./index-Bk6p8-al.js').then(m => m.wast());
83257
+ return import('./index-aNtIoK9f.js').then(m => m.wast());
83173
83258
  }
83174
83259
  }),
83175
83260
  /*@__PURE__*/LanguageDescription.of({
@@ -83177,7 +83262,7 @@ const languages = [
83177
83262
  alias: ["rss", "wsdl", "xsd"],
83178
83263
  extensions: ["xml", "xsl", "xsd", "svg"],
83179
83264
  load() {
83180
- return import('./index-B8Cado6g.js').then(m => m.xml());
83265
+ return import('./index-CNUN2zja.js').then(m => m.xml());
83181
83266
  }
83182
83267
  }),
83183
83268
  /*@__PURE__*/LanguageDescription.of({
@@ -83185,7 +83270,7 @@ const languages = [
83185
83270
  alias: ["yml"],
83186
83271
  extensions: ["yaml", "yml"],
83187
83272
  load() {
83188
- return import('./index-BkQgkjmO.js').then(m => m.yaml());
83273
+ return import('./index-DdoU22pT.js').then(m => m.yaml());
83189
83274
  }
83190
83275
  }),
83191
83276
  // Legacy modes ported from CodeMirror 5
@@ -83981,13 +84066,13 @@ const languages = [
83981
84066
  name: "Vue",
83982
84067
  extensions: ["vue"],
83983
84068
  load() {
83984
- return import('./index-DKfQ_S8i.js').then(m => m.vue());
84069
+ return import('./index-BjH4XfIl.js').then(m => m.vue());
83985
84070
  }
83986
84071
  }),
83987
84072
  /*@__PURE__*/LanguageDescription.of({
83988
84073
  name: "Angular Template",
83989
84074
  load() {
83990
- return import('./index-7n6fnp2B.js').then(m => m.angular());
84075
+ return import('./index-dWg1V1OC.js').then(m => m.angular());
83991
84076
  }
83992
84077
  })
83993
84078
  ];
@@ -154056,7 +154141,9 @@ const PanelToolbar = ({
154056
154141
  const interval = setInterval(() => {
154057
154142
  setMetrics(connections[0]?.getTopicMetrics(topic));
154058
154143
  }, 500);
154059
- return () => clearInterval(interval);
154144
+ return () => {
154145
+ clearInterval(interval);
154146
+ };
154060
154147
  }, []);
154061
154148
  const [annotationsOpened, setAnnotationsOpened] = React__default.useState(false);
154062
154149
  const hasExtra = React__default.useMemo(() => detections.some(topic => topic.extra && !topic.enabled), [detections]);
@@ -154104,13 +154191,17 @@ const PanelToolbar = ({
154104
154191
  })), /*#__PURE__*/React__default.createElement(DropdownMenuContent, null, detections.map(topic => (!topic.extra || topic.enabled) && /*#__PURE__*/React__default.createElement(PanelAnnotationButton, {
154105
154192
  key: topic.name,
154106
154193
  topic: topic,
154107
- onClick: () => onToggleTopic(topic.name)
154194
+ onClick: () => {
154195
+ onToggleTopic(topic.name);
154196
+ }
154108
154197
  })), hasExtra && /*#__PURE__*/React__default.createElement(Button, {
154109
154198
  width: "full",
154110
154199
  paddingY: "xs",
154111
154200
  variant: "ghost",
154112
154201
  "aria-expanded": extraVisible ? "true" : undefined,
154113
- onClick: () => setExtraVisible(current => !current),
154202
+ onClick: () => {
154203
+ setExtraVisible(current => !current);
154204
+ },
154114
154205
  icon: extraVisible ? MdKeyboardArrowUp : MdKeyboardArrowDown,
154115
154206
  style: {
154116
154207
  borderRadius: 4
@@ -154118,7 +154209,9 @@ const PanelToolbar = ({
154118
154209
  }, extraVisible ? "Less" : "More"), extraVisible && detections.map(topic => topic.extra && !topic.enabled && /*#__PURE__*/React__default.createElement(PanelAnnotationButton, {
154119
154210
  key: topic.name,
154120
154211
  topic: topic,
154121
- onClick: () => onToggleTopic(topic.name)
154212
+ onClick: () => {
154213
+ onToggleTopic(topic.name);
154214
+ }
154122
154215
  })))), kind === 'pointCloud' && /*#__PURE__*/React__default.createElement(Tooltip, {
154123
154216
  content: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Label$3, {
154124
154217
  text: "To move camera:"
@@ -154144,12 +154237,12 @@ const DetectionContext = React__default.createContext({
154144
154237
  const useDetections = () => {
154145
154238
  return React__default.useContext(DetectionContext);
154146
154239
  };
154147
- const rawToAnnotations = (rawAnnotations, extra, current) => rawAnnotations.map(annotationTopic => ({
154240
+ const rawToAnnotations = (rawAnnotations, kind, current) => rawAnnotations.map(annotationTopic => ({
154148
154241
  name: annotationTopic,
154149
- extra,
154242
+ extra: kind === 'extra',
154150
154243
  enabled: current.find(({
154151
154244
  name
154152
- }) => name === annotationTopic)?.enabled ?? !extra
154245
+ }) => name === annotationTopic)?.enabled ?? kind === 'main'
154153
154246
  }));
154154
154247
  const Panel = ({
154155
154248
  children,
@@ -154162,8 +154255,9 @@ const Panel = ({
154162
154255
  const [detections, setDetections] = React__default.useState([]);
154163
154256
  React__default.useEffect(() => {
154164
154257
  if (!disableAnnotations) {
154165
- setDetections(current => [...rawToAnnotations(annotationTopics, false, current), ...rawToAnnotations(extraAnnotationTopics, true, current)]);
154258
+ setDetections(current => [...rawToAnnotations(annotationTopics, 'main', current), ...rawToAnnotations(extraAnnotationTopics, 'extra', current)]);
154166
154259
  }
154260
+ // eslint-disable-next-line react-hooks/exhaustive-deps
154167
154261
  }, [JSON.stringify(annotationTopics), JSON.stringify(extraAnnotationTopics)]);
154168
154262
  return /*#__PURE__*/React__default.createElement(RemountOnValueChange, {
154169
154263
  value: "internal-player"
@@ -154190,7 +154284,7 @@ const Panel = ({
154190
154284
  }, children))))));
154191
154285
  };
154192
154286
 
154193
- const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-Cp3omW6p.js'));
154287
+ const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-D2coYWoA.js'));
154194
154288
  const ImagePanelBody = ({
154195
154289
  topic
154196
154290
  }) => {
@@ -154225,7 +154319,7 @@ const ImagePanel = /*#__PURE__*/React__default.memo(function ImagePanel(props) {
154225
154319
  // License, v2.0. If a copy of the MPL was not distributed with this
154226
154320
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
154227
154321
 
154228
- const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-BEcWpcB1.js'));
154322
+ const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-YeBvcQ1n.js'));
154229
154323
  const PointCloudPanelBody = ({
154230
154324
  topic
154231
154325
  }) => {
@@ -154268,4 +154362,4 @@ const PointCloudPanel = /*#__PURE__*/React__default.memo(function PointCloudPane
154268
154362
  }));
154269
154363
  });
154270
154364
 
154271
- export { TAB_PANEL_TYPE as $, AnalyticsContext as A, useGuaranteedContext as B, useAnalytics as C, AppEvent as D, ErrorDisplay as E, LeftSidebarItemKeys as F, usePanelMosaicId as G, useTranslation as H, usePanelCatalog as I, EmptyState as J, isEmpty as K, Logger$1 as L, PanelContext as M, PanelCatalogContext as N, useSelectedPanels as O, PropTypes as P, usePanelStateStore as Q, RightSidebarItemKeys as R, Stack$1 as S, useDefaultPanelTitle as T, PANEL_TITLE_CONFIG_KEY as U, noop as V, WorkspaceContext as W, getPanelTypeFromId as X, useWorkspaceStore as Y, useShallowMemo as Z, _extends$5 as _, arrayPush as a, WorkspaceStoreSelectors as a0, difference as a1, filterMap as a2, dist$1 as a3, usePanelContext as a4, useMessagePipeline as a5, v4 as a6, useHoverValue as a7, useSetHoverValue as a8, useClearHoverValue as a9, delimitedIndent as aA, foldInside as aB, ContextTracker as aC, LocalTokenGroup as aD, snippetCompletion as aE, IterMode as aF, NodeWeakMap as aG, defineCSSCompletionSource as aH, EditorView as aI, EditorSelection as aJ, html$4 as aK, parseMixed as aL, bracketMatchingHandle as aM, javascriptLanguage as aN, WebSocketConnection as aO, VisualizerContext as aP, PanelLayout as aQ, ImagePanel as aR, PointCloudPanel as aS, useAppConfiguration as aa, useMessagePipelineGetter as ab, usePanelSettingsTreeUpdate as ac, PlayerCapabilities as ad, useValueChangedDebugLog as ae, assertNever as af, PlayerPresence as ag, typescript$1 as ah, isEqual as ai, isDesktopApp as aj, createTheme$1 as ak, propTypesExports as al, useJsonTreeTheme as am, indentNodeProp as an, continuedIndent as ao, foldNodeProp as ap, styleTags as aq, tags$1 as ar, LRLanguage as as, LanguageSupport as at, ExternalTokenizer as au, LRParser as av, ifNotIn as aw, completeFromList as ax, syntaxTree as ay, flatIndent as az, baseGetAllKeys as b, getTag as c, getAllKeys as d, createAggregator as e, baseGet as f, getSymbols as g, baseIteratee as h, isSymbol as i, castPath as j, keys$4 as k, toKey as l, flatRest as m, arrayMap as n, baseSet as o, baseUniq as p, baseFlatten as q, generateUtilityClass as r, stubArray as s, toString$5 as t, useMustNotChange as u, useCurrentLayoutActions as v, useCurrentLayoutSelector as w, reportError as x, AppError as y, makeStyles as z };
154365
+ export { TAB_PANEL_TYPE as $, AnalyticsContext as A, useGuaranteedContext as B, useAnalytics as C, AppEvent as D, ErrorDisplay as E, LeftSidebarItemKeys as F, usePanelMosaicId as G, useTranslation as H, usePanelCatalog as I, EmptyState as J, isEmpty as K, Logger$1 as L, PanelContext as M, PanelCatalogContext as N, useSelectedPanels as O, PropTypes as P, usePanelStateStore as Q, RightSidebarItemKeys as R, Stack$1 as S, useDefaultPanelTitle as T, PANEL_TITLE_CONFIG_KEY as U, noop as V, WorkspaceContext as W, getPanelTypeFromId as X, useWorkspaceStore as Y, useShallowMemo as Z, _extends$5 as _, arrayPush as a, WorkspaceStoreSelectors as a0, difference as a1, filterMap as a2, dist$1 as a3, usePanelContext as a4, useMessagePipeline as a5, v4 as a6, useHoverValue as a7, useSetHoverValue as a8, useClearHoverValue as a9, delimitedIndent as aA, foldInside as aB, ContextTracker as aC, LocalTokenGroup as aD, snippetCompletion as aE, IterMode as aF, NodeWeakMap as aG, defineCSSCompletionSource as aH, EditorView as aI, EditorSelection as aJ, html$4 as aK, parseMixed as aL, bracketMatchingHandle as aM, javascriptLanguage as aN, VisualizerConnection as aO, VisualizerContext as aP, PanelLayout as aQ, ImagePanel as aR, PointCloudPanel as aS, useAppConfiguration as aa, useMessagePipelineGetter as ab, usePanelSettingsTreeUpdate as ac, PlayerCapabilities as ad, useValueChangedDebugLog as ae, assertNever as af, PlayerPresence as ag, typescript$1 as ah, isEqual as ai, isDesktopApp as aj, createTheme$1 as ak, propTypesExports as al, useJsonTreeTheme as am, indentNodeProp as an, continuedIndent as ao, foldNodeProp as ap, styleTags as aq, tags$1 as ar, LRLanguage as as, LanguageSupport as at, ExternalTokenizer as au, LRParser as av, ifNotIn as aw, completeFromList as ax, syntaxTree as ay, flatIndent as az, baseGetAllKeys as b, getTag as c, getAllKeys as d, createAggregator as e, baseGet as f, getSymbols as g, baseIteratee as h, isSymbol as i, castPath as j, keys$4 as k, toKey as l, flatRest as m, arrayMap as n, baseSet as o, baseUniq as p, baseFlatten as q, generateUtilityClass as r, stubArray as s, toString$5 as t, useMustNotChange as u, useCurrentLayoutActions as v, useCurrentLayoutSelector as w, reportError as x, AppError as y, makeStyles as z };