@luxonis/visualizer-protobuf 2.54.1 → 2.55.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 (73) hide show
  1. package/dist/{tslib.es6-DRjIPBeG.js → depth-CJRDcPfJ.js} +606 -7
  2. package/dist/{deserialization.worker-Bpkjw7D9.js → deserialization.worker-CSrvuPJi.js} +3 -163
  3. package/dist/{index-uaYiziKD.js → index-B0IpMdax.js} +5 -5
  4. package/dist/{index-H4vyx-di.js → index-B1EWIlvs.js} +5 -5
  5. package/dist/{index-BrRPCz-o.js → index-BDHayiTI.js} +5 -5
  6. package/dist/{index-Cha3fcte.js → index-BSAMfz5u.js} +5 -5
  7. package/dist/{index-BZ8mYnjR.js → index-BqQBFD5u.js} +5 -5
  8. package/dist/{index-kutpugS9.js → index-BufdvuOr.js} +90 -32
  9. package/dist/{index-C5GitdWB.js → index-C1cjJ7ot.js} +5 -5
  10. package/dist/{index-DaLbB0Zv.js → index-C21bRml-.js} +5 -5
  11. package/dist/{index-CruHe06m.js → index-C4FZGmwk.js} +5 -5
  12. package/dist/{index-C1ITCVFJ.js → index-CCsyHqht.js} +5 -5
  13. package/dist/{index-Dtc-xG9B.js → index-CjDSWxpT.js} +5 -5
  14. package/dist/{index-oOaZlrsK.js → index-CjbUVJBU.js} +5 -5
  15. package/dist/{index-D-b31nsX.js → index-CuAv3dv7.js} +129 -13
  16. package/dist/{index-DvYSXyGY.js → index-Cvfc3u1v.js} +5 -5
  17. package/dist/{index-CqIIFZlL.js → index-DXSdCiF4.js} +5 -5
  18. package/dist/{index-H4PD4laM.js → index-DayMpcW2.js} +5 -5
  19. package/dist/{index-BTMFONaj.js → index-DtPRSZis.js} +5 -6
  20. package/dist/{index-DofCpnXh.js → index-VBr6opQ-.js} +5 -5
  21. package/dist/{index-COpm762p.js → index-bjF9nlAn.js} +5 -5
  22. package/dist/index.js +8 -8
  23. package/dist/lib/src/components/Panel.d.ts +3 -0
  24. package/dist/lib/src/components/Panel.d.ts.map +1 -1
  25. package/dist/lib/src/components/Panel.js.map +1 -1
  26. package/dist/lib/src/connection/foxglove-connection.d.ts +1 -1
  27. package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
  28. package/dist/lib/src/connection/foxglove-connection.js +9 -2
  29. package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
  30. package/dist/lib/src/index.d.ts +2 -0
  31. package/dist/lib/src/index.d.ts.map +1 -1
  32. package/dist/lib/src/index.js +3 -0
  33. package/dist/lib/src/index.js.map +1 -1
  34. package/dist/lib/src/messaging/deserialization/video/depth.d.ts +1 -0
  35. package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
  36. package/dist/lib/src/messaging/deserialization/video/depth.js +16 -0
  37. package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
  38. package/dist/lib/src/messaging/deserialization/video/h265.d.ts.map +1 -1
  39. package/dist/lib/src/messaging/deserialization/video/h265.js +0 -1
  40. package/dist/lib/src/messaging/deserialization/video/h265.js.map +1 -1
  41. package/dist/lib/src/panels/ImagePanel.d.ts +8 -0
  42. package/dist/lib/src/panels/ImagePanel.d.ts.map +1 -1
  43. package/dist/lib/src/panels/ImagePanel.js +5 -3
  44. package/dist/lib/src/panels/ImagePanel.js.map +1 -1
  45. package/dist/lib/src/panels/PointCloudPanel.d.ts +8 -0
  46. package/dist/lib/src/panels/PointCloudPanel.d.ts.map +1 -1
  47. package/dist/lib/src/panels/PointCloudPanel.js +7 -7
  48. package/dist/lib/src/panels/PointCloudPanel.js.map +1 -1
  49. package/dist/lib/src/utils/frame-store.d.ts +11 -0
  50. package/dist/lib/src/utils/frame-store.d.ts.map +1 -0
  51. package/dist/lib/src/utils/frame-store.js +22 -0
  52. package/dist/lib/src/utils/frame-store.js.map +1 -0
  53. package/dist/packages/studio-base/src/panels/ThreeDeeRender/IRenderer.d.ts +3 -0
  54. package/dist/packages/studio-base/src/panels/ThreeDeeRender/IRenderer.d.ts.map +1 -1
  55. package/dist/packages/studio-base/src/panels/ThreeDeeRender/IRenderer.js.map +1 -1
  56. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.d.ts +6 -0
  57. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.d.ts.map +1 -1
  58. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.js +57 -3
  59. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.js.map +1 -1
  60. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.d.ts +1 -0
  61. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.d.ts.map +1 -1
  62. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.js +11 -11
  63. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.js.map +1 -1
  64. package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.d.ts +9 -0
  65. package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.d.ts.map +1 -1
  66. package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.js +36 -3
  67. package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.js.map +1 -1
  68. package/dist/packages/studio-base/src/panels/ThreeDeeRender/index.d.ts +11 -2
  69. package/dist/packages/studio-base/src/panels/ThreeDeeRender/index.d.ts.map +1 -1
  70. package/dist/packages/studio-base/src/panels/ThreeDeeRender/index.js +7 -2
  71. package/dist/packages/studio-base/src/panels/ThreeDeeRender/index.js.map +1 -1
  72. package/package.json +1 -1
  73. package/dist/useMessageReducer-DdY2kZpp.js +0 -422
@@ -1,9 +1,8 @@
1
1
  import { e as expose } from './comlink-DHMAu6X7.js';
2
- import { t as typescript } from './useMessageReducer-DdY2kZpp.js';
3
- import { e as estimateObjectSize, d as dist } from './tslib.es6-DRjIPBeG.js';
4
- import { T as Type, P as PointsAnnotationType, p as protobufsBySchema, b as Profile } from './protobuf-B55JS-Px.js';
5
- import 'react';
2
+ import { U as parseMessage, V as typescript, e as estimateObjectSize, W as fromMillis, d as dist, X as parsePixelFormat, Y as deserializeDepthFrame } from './depth-CJRDcPfJ.js';
3
+ import { P as PointsAnnotationType, p as protobufsBySchema, T as Type, b as Profile } from './protobuf-B55JS-Px.js';
6
4
  import { i as isCapableOfEncodedStream } from './encoding-DqlhpFR2.js';
5
+ import 'react';
7
6
  import 'zustand';
8
7
  import 'react-mosaic-component';
9
8
  import '@mui/material';
@@ -315,91 +314,6 @@ const DEFAULT_BACKGROUND_COLOR = {
315
314
  a: 0
316
315
  };
317
316
 
318
- function fromMillis(value) {
319
- let sec = Math.trunc(value / 1000);
320
- let nsec = Math.round((value - sec * 1000) * 1e6);
321
- sec += Math.trunc(nsec / 1e9);
322
- nsec %= 1e9;
323
- return {
324
- sec,
325
- nsec
326
- };
327
- }
328
- function parsePixelFormat(format) {
329
- switch (format) {
330
- case "BGRA":
331
- return ["bgra8", 3];
332
- case "BGRX":
333
- return ["bgr8", 3];
334
- // Closest supported
335
- case "I420":
336
- case "I420A":
337
- return ['I420', 2];
338
- case "I422":
339
- case "I444":
340
- return ['yuv422', 2];
341
- case "RGBA":
342
- return ["rgba8", 1];
343
- case "RGBX":
344
- return ["rgb8", 1];
345
- // Closest supported
346
- case "NV12":
347
- return ["nv12", 1];
348
- default:
349
- // Unsupported
350
- return ["bgra8", 3];
351
- }
352
- }
353
- function parseMessageType(type) {
354
- switch (type) {
355
- case Type.YUV422i:
356
- case Type.YUV422p:
357
- return ["yuv422", 2];
358
- case Type.NV12:
359
- return ["nv12", 1];
360
- case Type.RGB888i:
361
- return ["rgb8", 3];
362
- case Type.RGB888p:
363
- return ["rgb8p", 1];
364
- case Type.RGBA8888:
365
- return ["rgba8", 1];
366
- case Type.BGR888i:
367
- return ["bgr8i", 3];
368
- case Type.BGR888p:
369
- return ["bgr8p", 3];
370
- case Type.RAW16:
371
- return ["mono16", 2];
372
- case Type.RAW8:
373
- return ["mono8", 2];
374
- default:
375
- throw new Error(`Unsupported encoding ${Type[type]}`);
376
- }
377
- }
378
- function parseMessage(message) {
379
- const width = Number(message.fb?.width ?? message.sourceFb?.width ?? 1920);
380
- const height = Number(message.fb?.height ?? message.sourceFb?.height ?? 1200);
381
- const stride = message.fb?.stride ?? message.sourceFb?.stride ?? null;
382
- const p2Offset = message.fb?.p2Offset ?? message.sourceFb?.p2Offset ?? null;
383
- const p1Offset = message.fb?.p1Offset ?? message.sourceFb?.p1Offset ?? null;
384
- let planeStride = p1Offset != null && p2Offset != null ? p2Offset - p1Offset : 0;
385
- if (planeStride <= 0) {
386
- planeStride = null;
387
- }
388
- const type = message.fb?.type ?? message.sourceFb?.type ?? Type.RGB888p;
389
- const [encoding, step] = parseMessageType(type);
390
- const receiveTime = message.ts ?? message.tsDevice ?? fromMillis(Date.now());
391
- return {
392
- encoding,
393
- step: stride ?? step,
394
- receiveTime,
395
- width,
396
- height,
397
- stride,
398
- planeStride,
399
- type
400
- };
401
- }
402
-
403
317
  // This Source Code Form is subject to the terms of the Mozilla Public
404
318
  // License, v2.0. If a copy of the MPL was not distributed with this
405
319
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
@@ -752,79 +666,6 @@ function deserializeColorFrame({
752
666
  // License, v2.0. If a copy of the MPL was not distributed with this
753
667
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
754
668
 
755
- async function deserializeDepthFrame({
756
- topic,
757
- message,
758
- callback
759
- }) {
760
- const {
761
- receiveTime,
762
- width,
763
- height
764
- } = parseMessage(message);
765
- const foxgloveMessage = {
766
- timestamp: message.tsDevice ?? receiveTime,
767
- frame_id: `pointcloud-${topic}-frame`,
768
- point_stride: 16,
769
- pose: {
770
- position: {
771
- x: 0,
772
- y: 0,
773
- z: 0
774
- },
775
- orientation: {
776
- x: 0,
777
- y: 0,
778
- z: 1,
779
- w: 0
780
- }
781
- },
782
- width,
783
- height,
784
- fields: [{
785
- name: "x",
786
- offset: 0,
787
- type: typescript.NumericType.FLOAT32
788
- }, {
789
- name: "y",
790
- offset: 4,
791
- type: typescript.NumericType.FLOAT32
792
- }, {
793
- name: "z",
794
- offset: 8,
795
- type: typescript.NumericType.FLOAT32
796
- }, {
797
- name: "red",
798
- offset: 12,
799
- type: typescript.NumericType.UINT8
800
- }, {
801
- name: "green",
802
- offset: 13,
803
- type: typescript.NumericType.UINT8
804
- }, {
805
- name: "blue",
806
- offset: 14,
807
- type: typescript.NumericType.UINT8
808
- }, {
809
- name: "alpha",
810
- offset: 15,
811
- type: typescript.NumericType.UINT8
812
- }],
813
- data: message.data
814
- };
815
- callback({
816
- topic,
817
- receiveTime,
818
- message: foxgloveMessage,
819
- sizeInBytes: estimateObjectSize(foxgloveMessage),
820
- schemaName: "foxglove.PointCloud"
821
- });
822
- }
823
-
824
- // This Source Code Form is subject to the terms of the Mozilla Public
825
- // License, v2.0. If a copy of the MPL was not distributed with this
826
- // file, You can obtain one at http://mozilla.org/MPL/2.0/
827
-
828
669
  function ensureWebCodecsSupported(target) {
829
670
  const supported = typeof target !== "undefined";
830
671
  if (!supported) {
@@ -979,7 +820,6 @@ async function deserializeEncodedFrameH265({
979
820
  callback,
980
821
  topicDecoders
981
822
  });
982
- console.log("creating decoder", "hev1.1.6.L93.B0");
983
823
  decoder.configure({
984
824
  codec: "hev1.1.6.L93.B0",
985
825
  optimizeForLatency: true
@@ -1,9 +1,10 @@
1
- import { a3 as ContextTracker, V as ExternalTokenizer, O as styleTags, Q as tags, X as LRParser, T as LRLanguage, K as indentNodeProp, a1 as delimitedIndent, N as foldNodeProp, a2 as foldInside, U as LanguageSupport, ac as parseMixed } from './index-kutpugS9.js';
2
- import './tslib.es6-DRjIPBeG.js';
3
- import 'react';
4
- import 'react-mosaic-component';
1
+ import { a3 as ContextTracker, V as ExternalTokenizer, O as styleTags, Q as tags, X as LRParser, T as LRLanguage, K as indentNodeProp, a1 as delimitedIndent, N as foldNodeProp, a2 as foldInside, U as LanguageSupport, ac as parseMixed } from './index-BufdvuOr.js';
2
+ import './depth-CJRDcPfJ.js';
5
3
  import './protobuf-B55JS-Px.js';
6
4
  import 'protobufjs/minimal';
5
+ import 'react';
6
+ import 'zustand';
7
+ import 'react-mosaic-component';
7
8
  import '@mui/material';
8
9
  import './isArrayLikeObject-Bytw9p-q.js';
9
10
  import './comlink-DHMAu6X7.js';
@@ -16,7 +17,6 @@ import 'react-dnd-html5-backend';
16
17
  import './i18next-IYI3-Nuv.js';
17
18
  import '@emotion/react';
18
19
  import 'object-assign';
19
- import 'zustand';
20
20
  import 'react/jsx-runtime';
21
21
  import 'react-dom';
22
22
  import 'react-syntax-highlighter/dist/esm/styles/prism';
@@ -1,9 +1,10 @@
1
- import { K as indentNodeProp, M as continuedIndent, N as foldNodeProp, O as styleTags, Q as tags, T as LRLanguage, U as LanguageSupport, V as ExternalTokenizer, X as LRParser, Y as ifNotIn, Z as completeFromList, $ as syntaxTree } from './index-kutpugS9.js';
2
- import './tslib.es6-DRjIPBeG.js';
3
- import 'react';
4
- import 'react-mosaic-component';
1
+ import { K as indentNodeProp, M as continuedIndent, N as foldNodeProp, O as styleTags, Q as tags, T as LRLanguage, U as LanguageSupport, V as ExternalTokenizer, X as LRParser, Y as ifNotIn, Z as completeFromList, $ as syntaxTree } from './index-BufdvuOr.js';
2
+ import './depth-CJRDcPfJ.js';
5
3
  import './protobuf-B55JS-Px.js';
6
4
  import 'protobufjs/minimal';
5
+ import 'react';
6
+ import 'zustand';
7
+ import 'react-mosaic-component';
7
8
  import '@mui/material';
8
9
  import './isArrayLikeObject-Bytw9p-q.js';
9
10
  import './comlink-DHMAu6X7.js';
@@ -16,7 +17,6 @@ import 'react-dnd-html5-backend';
16
17
  import './i18next-IYI3-Nuv.js';
17
18
  import '@emotion/react';
18
19
  import 'object-assign';
19
- import 'zustand';
20
20
  import 'react/jsx-runtime';
21
21
  import 'react-dom';
22
22
  import 'react-syntax-highlighter/dist/esm/styles/prism';
@@ -1,9 +1,10 @@
1
- import { O as styleTags, Q as tags, ae as javascriptLanguage, T as LRLanguage, U as LanguageSupport, X as LRParser, ab as html, ac as parseMixed, V as ExternalTokenizer } from './index-kutpugS9.js';
2
- import './tslib.es6-DRjIPBeG.js';
3
- import 'react';
4
- import 'react-mosaic-component';
1
+ import { O as styleTags, Q as tags, ae as javascriptLanguage, T as LRLanguage, U as LanguageSupport, X as LRParser, ab as html, ac as parseMixed, V as ExternalTokenizer } from './index-BufdvuOr.js';
2
+ import './depth-CJRDcPfJ.js';
5
3
  import './protobuf-B55JS-Px.js';
6
4
  import 'protobufjs/minimal';
5
+ import 'react';
6
+ import 'zustand';
7
+ import 'react-mosaic-component';
7
8
  import '@mui/material';
8
9
  import './isArrayLikeObject-Bytw9p-q.js';
9
10
  import './comlink-DHMAu6X7.js';
@@ -16,7 +17,6 @@ import 'react-dnd-html5-backend';
16
17
  import './i18next-IYI3-Nuv.js';
17
18
  import '@emotion/react';
18
19
  import 'object-assign';
19
- import 'zustand';
20
20
  import 'react/jsx-runtime';
21
21
  import 'react-dom';
22
22
  import 'react-syntax-highlighter/dist/esm/styles/prism';
@@ -1,9 +1,10 @@
1
- import { a3 as ContextTracker, V as ExternalTokenizer, O as styleTags, Q as tags, X as LRParser, T as LRLanguage, K as indentNodeProp, N as foldNodeProp, ad as bracketMatchingHandle, U as LanguageSupport, a9 as EditorView, $ as syntaxTree, aa as EditorSelection } from './index-kutpugS9.js';
2
- import './tslib.es6-DRjIPBeG.js';
3
- import 'react';
4
- import 'react-mosaic-component';
1
+ import { a3 as ContextTracker, V as ExternalTokenizer, O as styleTags, Q as tags, X as LRParser, T as LRLanguage, K as indentNodeProp, N as foldNodeProp, ad as bracketMatchingHandle, U as LanguageSupport, a9 as EditorView, $ as syntaxTree, aa as EditorSelection } from './index-BufdvuOr.js';
2
+ import './depth-CJRDcPfJ.js';
5
3
  import './protobuf-B55JS-Px.js';
6
4
  import 'protobufjs/minimal';
5
+ import 'react';
6
+ import 'zustand';
7
+ import 'react-mosaic-component';
7
8
  import '@mui/material';
8
9
  import './isArrayLikeObject-Bytw9p-q.js';
9
10
  import './comlink-DHMAu6X7.js';
@@ -16,7 +17,6 @@ import 'react-dnd-html5-backend';
16
17
  import './i18next-IYI3-Nuv.js';
17
18
  import '@emotion/react';
18
19
  import 'object-assign';
19
- import 'zustand';
20
20
  import 'react/jsx-runtime';
21
21
  import 'react-dom';
22
22
  import 'react-syntax-highlighter/dist/esm/styles/prism';
@@ -1,9 +1,10 @@
1
- import { O as styleTags, Q as tags, X as LRParser, T as LRLanguage, K as indentNodeProp, M as continuedIndent, a0 as flatIndent, a1 as delimitedIndent, N as foldNodeProp, a2 as foldInside, U as LanguageSupport } from './index-kutpugS9.js';
2
- import './tslib.es6-DRjIPBeG.js';
3
- import 'react';
4
- import 'react-mosaic-component';
1
+ import { O as styleTags, Q as tags, X as LRParser, T as LRLanguage, K as indentNodeProp, M as continuedIndent, a0 as flatIndent, a1 as delimitedIndent, N as foldNodeProp, a2 as foldInside, U as LanguageSupport } from './index-BufdvuOr.js';
2
+ import './depth-CJRDcPfJ.js';
5
3
  import './protobuf-B55JS-Px.js';
6
4
  import 'protobufjs/minimal';
5
+ import 'react';
6
+ import 'zustand';
7
+ import 'react-mosaic-component';
7
8
  import '@mui/material';
8
9
  import './isArrayLikeObject-Bytw9p-q.js';
9
10
  import './comlink-DHMAu6X7.js';
@@ -16,7 +17,6 @@ import 'react-dnd-html5-backend';
16
17
  import './i18next-IYI3-Nuv.js';
17
18
  import '@emotion/react';
18
19
  import 'object-assign';
19
- import 'zustand';
20
20
  import 'react/jsx-runtime';
21
21
  import 'react-dom';
22
22
  import 'react-syntax-highlighter/dist/esm/styles/prism';
@@ -1,4 +1,4 @@
1
- import { d as dist$1, e as estimateObjectSize, r as reportError, A as AppError, b as baseFlatten, a as baseEach, c as baseIteratee, f as baseDifference, g as getTag, h as baseKeys, i as baseIsEqual, j as castPath, t as toKey, k as baseGet, l as hasIn, s as sendNotification, m as shallowequal, u as useGuaranteedContext, n as getPanelIdsInsideTabPanels, o as getPanelTypeFromId, T as TAB_PANEL_TYPE, p as removePanelFromTabPanel, q as getPanelIdForType, v as getPathFromNode, w as updateTabPanelLayout, x as getSaveConfigsPayloadForAddedPanel, y as replaceAndRemovePanels, z as inlineTabPanelLayouts, B as getAllPanelIds, C as getConfigsForNestedPanelsInsideTab, D as reorderTabWithinTabPanel, E as moveTabBetweenTabPanels, F as isTabPanelConfig, G as DEFAULT_TAB_PANEL_CONFIG, H as addPanelToTab, I as createAddUpdates, J as filterMap, L as Logger, K as uniq$2, M as useShallowMemo, N as CurrentLayoutContext, O as MessageOrderTracker, P as AppConfigurationContext, _ as __assign$8, Q as __rest$5, R as __spreadArray$5 } from './tslib.es6-DRjIPBeG.js';
1
+ import { d as dist$1, e as estimateObjectSize, r as reportError, A as AppError, b as baseFlatten, a as baseEach, c as baseIteratee, f as baseDifference, g as getTag, h as baseKeys, i as baseIsEqual, j as castPath, t as toKey, k as baseGet, l as hasIn, s as sendNotification, m as shallowequal, u as useGuaranteedContext, n as getPanelIdsInsideTabPanels, o as getPanelTypeFromId, T as TAB_PANEL_TYPE, p as removePanelFromTabPanel, q as getPanelIdForType, v as getPathFromNode, w as updateTabPanelLayout, x as getSaveConfigsPayloadForAddedPanel, y as replaceAndRemovePanels, z as inlineTabPanelLayouts, B as getAllPanelIds, C as getConfigsForNestedPanelsInsideTab, D as reorderTabWithinTabPanel, E as moveTabBetweenTabPanels, F as isTabPanelConfig, G as DEFAULT_TAB_PANEL_CONFIG, H as addPanelToTab, I as createAddUpdates, J as filterMap, L as Logger, K as uniq$2, M as useShallowMemo, N as CurrentLayoutContext, O as MessageOrderTracker, P as AppConfigurationContext, _ as __assign$8, Q as __rest$5, R as __spreadArray$5 } from './depth-CJRDcPfJ.js';
2
2
  import { w as wrap$3, p as proxy } from './comlink-DHMAu6X7.js';
3
3
  import { u as uint8ArrayToUint16Array } from './utils-Hzt3wxhG.js';
4
4
  import { p as protobufsBySchema, a as protobufSchemaNameToType, g as getDefaultExportFromCjs, c as commonjsGlobal } from './protobuf-B55JS-Px.js';
@@ -790,7 +790,7 @@ class ConfigStore {
790
790
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
791
791
 
792
792
  function initWorker(callback) {
793
- const workerWrap = wrap$3(new Worker(new URL("deserialization.worker-Bpkjw7D9.js", import.meta.url), {
793
+ const workerWrap = wrap$3(new Worker(new URL("deserialization.worker-CSrvuPJi.js", import.meta.url), {
794
794
  type: "module",
795
795
  name: `message-decoder`
796
796
  }));
@@ -894,6 +894,29 @@ class RateLimiter {
894
894
  // License, v2.0. If a copy of the MPL was not distributed with this
895
895
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
896
896
 
897
+ // Singleton class which provides last rendered frame for each topic
898
+ class FrameStore {
899
+ static #instance = null;
900
+ #topicFrameMap = new Map();
901
+ constructor() {}
902
+ static getInstance() {
903
+ if (!FrameStore.#instance) {
904
+ FrameStore.#instance = new FrameStore();
905
+ }
906
+ return FrameStore.#instance;
907
+ }
908
+ registerFrame(topic, frame) {
909
+ this.#topicFrameMap.set(topic, frame);
910
+ }
911
+ getFrame(topic) {
912
+ return this.#topicFrameMap.get(topic);
913
+ }
914
+ }
915
+
916
+ // This Source Code Form is subject to the terms of the Mozilla Public
917
+ // License, v2.0. If a copy of the MPL was not distributed with this
918
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
919
+
897
920
  class PoitCloudSyncFramework {
898
921
  #binarySearch(arr, targetKey) {
899
922
  let left = 0;
@@ -1014,7 +1037,7 @@ class FoxgloveConnection {
1014
1037
  throughputMetrics = globalThroughputMetricsManager;
1015
1038
  PoitCloudSyncFramework = new PoitCloudSyncFramework();
1016
1039
  depthToPointcloudWorkerPool = new DepthToPointcloudWorkerPool((event, frame, message) => {
1017
- this.submitPoitcloudFrameCallback(event, frame, message);
1040
+ this.submitPointcloudFrameCallback(event, frame, message);
1018
1041
  });
1019
1042
  // message handler
1020
1043
 
@@ -1079,7 +1102,7 @@ class FoxgloveConnection {
1079
1102
  this.throughputMetrics.registerEvent(event.data.topic, event.data.buffer.byteLength);
1080
1103
  this.messageHandler.handle(event.data, errorCallback);
1081
1104
  }
1082
- submitPoitcloudFrameCallback(coloredEvent, poitcloudFrame, message) {
1105
+ submitPointcloudFrameCallback(coloredEvent, poitcloudFrame, message) {
1083
1106
  coloredEvent.topic = "Point Cloud";
1084
1107
  coloredEvent.schemaName = "foxglove.PointCloud";
1085
1108
  coloredEvent.message = poitcloudFrame;
@@ -1089,6 +1112,7 @@ class FoxgloveConnection {
1089
1112
  coloredEvent.message.data = message;
1090
1113
  const messageSize = estimateObjectSize(coloredEvent.message);
1091
1114
  coloredEvent.sizeInBytes = messageSize;
1115
+ FrameStore.getInstance().registerFrame("Point Cloud", coloredEvent);
1092
1116
  this.messageEvents.push(coloredEvent);
1093
1117
  this.emitState();
1094
1118
  }
@@ -1131,6 +1155,12 @@ class FoxgloveConnection {
1131
1155
  }
1132
1156
  handleParsedMessage(event) {
1133
1157
  this.decodeMetrics.registerEvent(event.topic);
1158
+
1159
+ // FIXME: This isn't pretty but PC frames are transformed inside submitPointcloudFrameCallback
1160
+ // FIXME: and we only want to register them to FrameStore when they are transformed.
1161
+ if (event.topic !== "Point Cloud") {
1162
+ FrameStore.getInstance().registerFrame(event.topic, event);
1163
+ }
1134
1164
  this.parseResolutionFromMessage(event.message, event.topic);
1135
1165
  if (event.schemaName === "foxglove.PointCloud") {
1136
1166
  this.PoitCloudSyncFramework.addFrame(event.message);
@@ -86748,7 +86778,7 @@ function legacy(parser) {
86748
86778
  return new LanguageSupport(StreamLanguage.define(parser));
86749
86779
  }
86750
86780
  function sql$1(dialectName) {
86751
- return import('./index-H4vyx-di.js').then(m => m.sql({ dialect: m[dialectName] }));
86781
+ return import('./index-B1EWIlvs.js').then(m => m.sql({ dialect: m[dialectName] }));
86752
86782
  }
86753
86783
  /**
86754
86784
  An array of language descriptions for known language packages.
@@ -86759,7 +86789,7 @@ const languages = [
86759
86789
  name: "C",
86760
86790
  extensions: ["c", "h", "ino"],
86761
86791
  load() {
86762
- return import('./index-CqIIFZlL.js').then(m => m.cpp());
86792
+ return import('./index-DXSdCiF4.js').then(m => m.cpp());
86763
86793
  }
86764
86794
  }),
86765
86795
  /*@__PURE__*/LanguageDescription.of({
@@ -86767,7 +86797,7 @@ const languages = [
86767
86797
  alias: ["cpp"],
86768
86798
  extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
86769
86799
  load() {
86770
- return import('./index-CqIIFZlL.js').then(m => m.cpp());
86800
+ return import('./index-DXSdCiF4.js').then(m => m.cpp());
86771
86801
  }
86772
86802
  }),
86773
86803
  /*@__PURE__*/LanguageDescription.of({
@@ -86787,7 +86817,7 @@ const languages = [
86787
86817
  name: "Go",
86788
86818
  extensions: ["go"],
86789
86819
  load() {
86790
- return import('./index-C5GitdWB.js').then(m => m.go());
86820
+ return import('./index-C1cjJ7ot.js').then(m => m.go());
86791
86821
  }
86792
86822
  }),
86793
86823
  /*@__PURE__*/LanguageDescription.of({
@@ -86802,7 +86832,7 @@ const languages = [
86802
86832
  name: "Java",
86803
86833
  extensions: ["java"],
86804
86834
  load() {
86805
- return import('./index-BZ8mYnjR.js').then(m => m.java());
86835
+ return import('./index-BqQBFD5u.js').then(m => m.java());
86806
86836
  }
86807
86837
  }),
86808
86838
  /*@__PURE__*/LanguageDescription.of({
@@ -86818,7 +86848,7 @@ const languages = [
86818
86848
  alias: ["json5"],
86819
86849
  extensions: ["json", "map"],
86820
86850
  load() {
86821
- return import('./index-DofCpnXh.js').then(m => m.json());
86851
+ return import('./index-VBr6opQ-.js').then(m => m.json());
86822
86852
  }
86823
86853
  }),
86824
86854
  /*@__PURE__*/LanguageDescription.of({
@@ -86832,14 +86862,14 @@ const languages = [
86832
86862
  name: "LESS",
86833
86863
  extensions: ["less"],
86834
86864
  load() {
86835
- return import('./index-CruHe06m.js').then(m => m.less());
86865
+ return import('./index-C4FZGmwk.js').then(m => m.less());
86836
86866
  }
86837
86867
  }),
86838
86868
  /*@__PURE__*/LanguageDescription.of({
86839
86869
  name: "Liquid",
86840
86870
  extensions: ["liquid"],
86841
86871
  load() {
86842
- return import('./index-C1ITCVFJ.js').then(m => m.liquid());
86872
+ return import('./index-CCsyHqht.js').then(m => m.liquid());
86843
86873
  }
86844
86874
  }),
86845
86875
  /*@__PURE__*/LanguageDescription.of({
@@ -86865,7 +86895,7 @@ const languages = [
86865
86895
  name: "PHP",
86866
86896
  extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
86867
86897
  load() {
86868
- return import('./index-oOaZlrsK.js').then(m => m.php());
86898
+ return import('./index-CjbUVJBU.js').then(m => m.php());
86869
86899
  }
86870
86900
  }),
86871
86901
  /*@__PURE__*/LanguageDescription.of({
@@ -86882,28 +86912,28 @@ const languages = [
86882
86912
  extensions: ["BUILD", "bzl", "py", "pyw"],
86883
86913
  filename: /^(BUCK|BUILD)$/,
86884
86914
  load() {
86885
- return import('./index-COpm762p.js').then(m => m.python());
86915
+ return import('./index-bjF9nlAn.js').then(m => m.python());
86886
86916
  }
86887
86917
  }),
86888
86918
  /*@__PURE__*/LanguageDescription.of({
86889
86919
  name: "Rust",
86890
86920
  extensions: ["rs"],
86891
86921
  load() {
86892
- return import('./index-H4PD4laM.js').then(m => m.rust());
86922
+ return import('./index-DayMpcW2.js').then(m => m.rust());
86893
86923
  }
86894
86924
  }),
86895
86925
  /*@__PURE__*/LanguageDescription.of({
86896
86926
  name: "Sass",
86897
86927
  extensions: ["sass"],
86898
86928
  load() {
86899
- return import('./index-DaLbB0Zv.js').then(m => m.sass({ indented: true }));
86929
+ return import('./index-C21bRml-.js').then(m => m.sass({ indented: true }));
86900
86930
  }
86901
86931
  }),
86902
86932
  /*@__PURE__*/LanguageDescription.of({
86903
86933
  name: "SCSS",
86904
86934
  extensions: ["scss"],
86905
86935
  load() {
86906
- return import('./index-DaLbB0Zv.js').then(m => m.sass());
86936
+ return import('./index-C21bRml-.js').then(m => m.sass());
86907
86937
  }
86908
86938
  }),
86909
86939
  /*@__PURE__*/LanguageDescription.of({
@@ -86934,7 +86964,7 @@ const languages = [
86934
86964
  name: "WebAssembly",
86935
86965
  extensions: ["wat", "wast"],
86936
86966
  load() {
86937
- return import('./index-DvYSXyGY.js').then(m => m.wast());
86967
+ return import('./index-Cvfc3u1v.js').then(m => m.wast());
86938
86968
  }
86939
86969
  }),
86940
86970
  /*@__PURE__*/LanguageDescription.of({
@@ -86942,7 +86972,7 @@ const languages = [
86942
86972
  alias: ["rss", "wsdl", "xsd"],
86943
86973
  extensions: ["xml", "xsl", "xsd", "svg"],
86944
86974
  load() {
86945
- return import('./index-Cha3fcte.js').then(m => m.xml());
86975
+ return import('./index-BSAMfz5u.js').then(m => m.xml());
86946
86976
  }
86947
86977
  }),
86948
86978
  /*@__PURE__*/LanguageDescription.of({
@@ -86950,7 +86980,7 @@ const languages = [
86950
86980
  alias: ["yml"],
86951
86981
  extensions: ["yaml", "yml"],
86952
86982
  load() {
86953
- return import('./index-uaYiziKD.js').then(m => m.yaml());
86983
+ return import('./index-B0IpMdax.js').then(m => m.yaml());
86954
86984
  }
86955
86985
  }),
86956
86986
  // Legacy modes ported from CodeMirror 5
@@ -87746,13 +87776,13 @@ const languages = [
87746
87776
  name: "Vue",
87747
87777
  extensions: ["vue"],
87748
87778
  load() {
87749
- return import('./index-Dtc-xG9B.js').then(m => m.vue());
87779
+ return import('./index-CjDSWxpT.js').then(m => m.vue());
87750
87780
  }
87751
87781
  }),
87752
87782
  /*@__PURE__*/LanguageDescription.of({
87753
87783
  name: "Angular Template",
87754
87784
  load() {
87755
- return import('./index-BrRPCz-o.js').then(m => m.angular());
87785
+ return import('./index-BDHayiTI.js').then(m => m.angular());
87756
87786
  }
87757
87787
  })
87758
87788
  ];
@@ -166432,11 +166462,15 @@ function createRenderDelaySampler() {
166432
166462
  };
166433
166463
  }
166434
166464
 
166435
- const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-BTMFONaj.js'));
166465
+ const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-DtPRSZis.js'));
166436
166466
  const ImagePanelBody = ({
166437
166467
  topic,
166438
166468
  frameRenderedEvent,
166439
- annotationReceivedEventHandler
166469
+ annotationReceivedEventHandler,
166470
+ handleOnClick,
166471
+ registerRendered,
166472
+ unregisterRendered,
166473
+ customOverlay
166440
166474
  }) => {
166441
166475
  const {
166442
166476
  detections
@@ -166456,7 +166490,11 @@ const ImagePanelBody = ({
166456
166490
  return /*#__PURE__*/React__default.createElement(ImagePanelComponent, {
166457
166491
  overrideConfig: defaultConfig,
166458
166492
  frameRenderedEvent: frameRenderedEvent,
166459
- annotationReceivedEventHandler: annotationReceivedEventHandler
166493
+ annotationReceivedEventHandler: annotationReceivedEventHandler,
166494
+ handleOnClick: handleOnClick,
166495
+ registerRendered: registerRendered,
166496
+ unregisterRendered: unregisterRendered,
166497
+ customOverlay: customOverlay
166460
166498
  });
166461
166499
  };
166462
166500
  const ImagePanel = /*#__PURE__*/React__default.memo(function ImagePanel(props) {
@@ -166486,7 +166524,11 @@ const ImagePanel = /*#__PURE__*/React__default.memo(function ImagePanel(props) {
166486
166524
  frameRenderedEvent: handleFrameRendered,
166487
166525
  annotationReceivedEventHandler: () => {
166488
166526
  globalRenderMetricsManager.registerEvent(annotationsMetricsKey);
166489
- }
166527
+ },
166528
+ handleOnClick: props.handleOnClick,
166529
+ registerRendered: props.registerRendered,
166530
+ unregisterRendered: props.unregisterRendered,
166531
+ customOverlay: props.customOverlay
166490
166532
  }));
166491
166533
  });
166492
166534
 
@@ -166511,10 +166553,14 @@ const DEFAULT_CAMERA_STATE = {
166511
166553
  // License, v2.0. If a copy of the MPL was not distributed with this
166512
166554
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
166513
166555
 
166514
- const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-D-b31nsX.js'));
166556
+ const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-CuAv3dv7.js'));
166515
166557
  const PointCloudPanelBody = ({
166516
166558
  topic,
166517
- frameRenderedEvent
166559
+ frameRenderedEvent,
166560
+ handleOnClick,
166561
+ registerRendered,
166562
+ unregisterRendered,
166563
+ customOverlay
166518
166564
  }) => {
166519
166565
  const neuralCameraIntrinsicsData = localStorage.getItem("neuralCameraIntrinsics");
166520
166566
  const getFovy = React__default.useCallback(() => {
@@ -166557,7 +166603,11 @@ const PointCloudPanelBody = ({
166557
166603
  }), [getFovy, topic]);
166558
166604
  return /*#__PURE__*/React__default.createElement(ThreeDeeRenderComponent, {
166559
166605
  overrideConfig: defaultConfig,
166560
- frameRenderedEvent: frameRenderedEvent
166606
+ frameRenderedEvent: frameRenderedEvent,
166607
+ handleOnClick: handleOnClick,
166608
+ registerRendered: registerRendered,
166609
+ unregisterRendered: unregisterRendered,
166610
+ customOverlay: customOverlay
166561
166611
  });
166562
166612
  };
166563
166613
  const PointCloudPanel = /*#__PURE__*/React__default.memo(function PointCloudPanel({
@@ -166569,7 +166619,11 @@ const PointCloudPanel = /*#__PURE__*/React__default.memo(function PointCloudPane
166569
166619
  canMoveUp,
166570
166620
  moveUp,
166571
166621
  canMoveDown,
166572
- moveDown
166622
+ moveDown,
166623
+ handleOnClick,
166624
+ registerRendered,
166625
+ unregisterRendered,
166626
+ customOverlay
166573
166627
  }) {
166574
166628
  const {
166575
166629
  averageFrameDelay,
@@ -166594,8 +166648,12 @@ const PointCloudPanel = /*#__PURE__*/React__default.memo(function PointCloudPane
166594
166648
  moveDown: moveDown
166595
166649
  }, /*#__PURE__*/React__default.createElement(PointCloudPanelBody, {
166596
166650
  topic: topic,
166597
- frameRenderedEvent: handleFrameRendered
166651
+ frameRenderedEvent: handleFrameRendered,
166652
+ handleOnClick: handleOnClick,
166653
+ registerRendered: registerRendered,
166654
+ unregisterRendered: unregisterRendered,
166655
+ customOverlay: customOverlay
166598
166656
  }));
166599
166657
  });
166600
166658
 
166601
- export { syntaxTree as $, AnalyticsContext as A, PlayerCapabilities as B, assertNever as C, PlayerPresence as D, ErrorDisplay as E, isEqual as F, isDesktopApp as G, createTheme$1 as H, propTypesExports as I, DEFAULT_CAMERA_STATE as J, indentNodeProp as K, LeftSidebarItemKeys as L, continuedIndent as M, foldNodeProp as N, styleTags as O, PropTypes as P, tags$1 as Q, RightSidebarItemKeys as R, Stack$1 as S, LRLanguage as T, LanguageSupport as U, ExternalTokenizer as V, WorkspaceContext as W, LRParser as X, ifNotIn as Y, completeFromList as Z, _extends$3 as _, AppEvent as a, flatIndent as a0, delimitedIndent as a1, foldInside as a2, ContextTracker as a3, LocalTokenGroup as a4, snippetCompletion as a5, IterMode as a6, NodeWeakMap as a7, defineCSSCompletionSource as a8, EditorView as a9, EditorSelection as aa, html$4 as ab, parseMixed as ac, bracketMatchingHandle as ad, javascriptLanguage as ae, VisualizerConnection as af, VisualizerContext as ag, PanelLayout as ah, ImagePanel as ai, PointCloudPanel as aj, globalInputEventMetricsManager as ak, globalDecodeMetricsManager as al, globalRenderMetricsManager as am, globalThroughputMetricsManager as an, baseSet as b, createAggregator as c, useTranslation as d, usePanelCatalog as e, flatRest as f, generateUtilityClass as g, EmptyState as h, isEmpty as i, PanelContext as j, PanelCatalogContext as k, usePanelStateStore as l, makeStyles as m, useDefaultPanelTitle as n, useWorkspaceStore as o, WorkspaceStoreSelectors as p, difference as q, usePanelContext as r, useMessagePipeline as s, useHoverValue as t, useAnalytics as u, v4 as v, useSetHoverValue as w, useClearHoverValue as x, useMessagePipelineGetter as y, usePanelSettingsTreeUpdate as z };
166659
+ export { syntaxTree as $, AnalyticsContext as A, PlayerCapabilities as B, assertNever as C, PlayerPresence as D, ErrorDisplay as E, isEqual as F, isDesktopApp as G, createTheme$1 as H, propTypesExports as I, DEFAULT_CAMERA_STATE as J, indentNodeProp as K, LeftSidebarItemKeys as L, continuedIndent as M, foldNodeProp as N, styleTags as O, PropTypes as P, tags$1 as Q, RightSidebarItemKeys as R, Stack$1 as S, LRLanguage as T, LanguageSupport as U, ExternalTokenizer as V, WorkspaceContext as W, LRParser as X, ifNotIn as Y, completeFromList as Z, _extends$3 as _, AppEvent as a, flatIndent as a0, delimitedIndent as a1, foldInside as a2, ContextTracker as a3, LocalTokenGroup as a4, snippetCompletion as a5, IterMode as a6, NodeWeakMap as a7, defineCSSCompletionSource as a8, EditorView as a9, EditorSelection as aa, html$4 as ab, parseMixed as ac, bracketMatchingHandle as ad, javascriptLanguage as ae, VisualizerConnection as af, VisualizerContext as ag, PanelLayout as ah, ImagePanel as ai, PointCloudPanel as aj, globalInputEventMetricsManager as ak, globalDecodeMetricsManager as al, globalRenderMetricsManager as am, globalThroughputMetricsManager as an, FrameStore as ao, baseSet as b, createAggregator as c, useTranslation as d, usePanelCatalog as e, flatRest as f, generateUtilityClass as g, EmptyState as h, isEmpty as i, PanelContext as j, PanelCatalogContext as k, usePanelStateStore as l, makeStyles as m, useDefaultPanelTitle as n, useWorkspaceStore as o, WorkspaceStoreSelectors as p, difference as q, usePanelContext as r, useMessagePipeline as s, useHoverValue as t, useAnalytics as u, v4 as v, useSetHoverValue as w, useClearHoverValue as x, useMessagePipelineGetter as y, usePanelSettingsTreeUpdate as z };