@luxonis/visualizer-protobuf 1.6.2 → 1.7.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 (137) hide show
  1. package/dist/apl-NdZ6-T1z.js +142 -0
  2. package/dist/apps/depthai-visualizer/lib/src/components/Panel.d.ts +2 -0
  3. package/dist/apps/depthai-visualizer/lib/src/components/Panel.d.ts.map +1 -1
  4. package/dist/apps/depthai-visualizer/lib/src/components/Panel.js +2 -2
  5. package/dist/apps/depthai-visualizer/lib/src/components/Panel.js.map +1 -1
  6. package/dist/apps/depthai-visualizer/lib/src/components/PanelToolbar.d.ts +4 -1
  7. package/dist/apps/depthai-visualizer/lib/src/components/PanelToolbar.d.ts.map +1 -1
  8. package/dist/apps/depthai-visualizer/lib/src/components/PanelToolbar.js +25 -13
  9. package/dist/apps/depthai-visualizer/lib/src/components/PanelToolbar.js.map +1 -1
  10. package/dist/apps/depthai-visualizer/lib/src/panels/ImagePanel.d.ts +2 -8
  11. package/dist/apps/depthai-visualizer/lib/src/panels/ImagePanel.d.ts.map +1 -1
  12. package/dist/apps/depthai-visualizer/lib/src/panels/ImagePanel.js +1 -1
  13. package/dist/apps/depthai-visualizer/lib/src/panels/ImagePanel.js.map +1 -1
  14. package/dist/apps/depthai-visualizer/lib/src/panels/PointCloudPanel.js +2 -2
  15. package/dist/apps/depthai-visualizer/lib/src/panels/PointCloudPanel.js.map +1 -1
  16. package/dist/asciiarmor-CmJEbAuq.js +56 -0
  17. package/dist/asn1-CG_zvzH1.js +192 -0
  18. package/dist/asterisk-D6r__RMF.js +187 -0
  19. package/dist/brainfuck-COwWCBpq.js +70 -0
  20. package/dist/clike-BjlaHgsH.js +1018 -0
  21. package/dist/clojure-C2XPrGCa.js +274 -0
  22. package/dist/cmake-BGrEgXCL.js +81 -0
  23. package/dist/cobol-BfwG5XeO.js +235 -0
  24. package/dist/coffeescript-BG8vTfSz.js +329 -0
  25. package/dist/commonlisp-8oE2EpEe.js +108 -0
  26. package/dist/crystal--rIRMl16.js +419 -0
  27. package/dist/css-C_ZeEwz2.js +847 -0
  28. package/dist/cypher-Bayei42D.js +122 -0
  29. package/dist/d-B0hhz6be.js +205 -0
  30. package/dist/diff-DQutOIXs.js +30 -0
  31. package/dist/dockerfile-FAjn0vs9.js +199 -0
  32. package/dist/dtd-C1CeYVnM.js +121 -0
  33. package/dist/dylan-Dm9-uD-A.js +337 -0
  34. package/dist/ebnf-jWG_1Yly.js +151 -0
  35. package/dist/ecl-CgJPA6z9.js +190 -0
  36. package/dist/eiffel-lj7uLahq.js +146 -0
  37. package/dist/elm-Cz7o1ijk.js +230 -0
  38. package/dist/erlang-CyL5QOyR.js +581 -0
  39. package/dist/factor-B0KnwW_L.js +65 -0
  40. package/dist/fcl-DiozYjc8.js +154 -0
  41. package/dist/forth-B7vn5ze0.js +164 -0
  42. package/dist/fortran-D2XNEnBT.js +172 -0
  43. package/dist/gas-B_Tj57Ve.js +343 -0
  44. package/dist/gherkin-CJ6Qk4EZ.js +147 -0
  45. package/dist/groovy-BD9p_7sW.js +230 -0
  46. package/dist/haskell-BHnm1B83.js +239 -0
  47. package/dist/haxe-DWtZc5G9.js +490 -0
  48. package/dist/http-BOd5SYCT.js +89 -0
  49. package/dist/idl-FSFk8_xX.js +274 -0
  50. package/dist/index-B2YTRRfg.js +77 -0
  51. package/dist/{index-B8tJ5E-v.js → index-Beii0-_3.js} +7 -4
  52. package/dist/index-BjWYigIi.js +124 -0
  53. package/dist/index-Bx-Bh4nu.js +114 -0
  54. package/dist/index-Bya68zyH.js +154265 -0
  55. package/dist/index-C3_VkVgd.js +626 -0
  56. package/dist/index-CIOyzzeT.js +199 -0
  57. package/dist/index-CY_MdHWz.js +810 -0
  58. package/dist/index-D8b2daZv.js +155 -0
  59. package/dist/index-DW9KaYNb.js +149 -0
  60. package/dist/index-DZ4eTPnT.js +497 -0
  61. package/dist/index-DZeM9OAW.js +356 -0
  62. package/dist/index-DgQXSEwG.js +348 -0
  63. package/dist/index-DuTu94nj.js +436 -0
  64. package/dist/{index-CDLN8AQd.js → index-KZ3VqQGp.js} +88 -35
  65. package/dist/index-WQmqQNn4.js +205 -0
  66. package/dist/index-o4kozweh.js +458 -0
  67. package/dist/index-rTpSqKsn.js +103 -0
  68. package/dist/index-tmy4XtHv.js +346 -0
  69. package/dist/index.js +7 -3
  70. package/dist/javascript-CWIx5LQU.js +922 -0
  71. package/dist/jinja2-D9k5QrXv.js +171 -0
  72. package/dist/julia-DM42tOPB.js +369 -0
  73. package/dist/livescript-Jd_p-LwX.js +259 -0
  74. package/dist/lua-CByQu4v6.js +137 -0
  75. package/dist/mathematica-Dkv0uCYF.js +153 -0
  76. package/dist/mbox-CYTvs5kC.js +114 -0
  77. package/dist/mirc-DpgP3GCo.js +176 -0
  78. package/dist/mllike-Ti5DOjKW.js +346 -0
  79. package/dist/modelica-CR6hTSce.js +192 -0
  80. package/dist/mscgen-D0GXtzMS.js +149 -0
  81. package/dist/mumps-Bf1EyDa6.js +129 -0
  82. package/dist/nginx-By9Phklj.js +163 -0
  83. package/dist/nsis-27gzqCGG.js +80 -0
  84. package/dist/ntriples-C7VJ7pnm.js +141 -0
  85. package/dist/octave-6yR_ix15.js +112 -0
  86. package/dist/oz-CEUnktiQ.js +235 -0
  87. package/dist/package.json +1 -0
  88. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.d.ts +1 -1
  89. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.d.ts.map +1 -1
  90. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.js +47 -18
  91. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.js.map +1 -1
  92. package/dist/pascal-AdN1jbEG.js +124 -0
  93. package/dist/perl-B99DUQQt.js +819 -0
  94. package/dist/pig-DFeDRta6.js +149 -0
  95. package/dist/powershell-DhwsNWMx.js +381 -0
  96. package/dist/properties-o21uErwC.js +62 -0
  97. package/dist/protobuf-YxlANsmD.js +54 -0
  98. package/dist/pug-OXF_6qhs.js +504 -0
  99. package/dist/puppet-B8WICGYE.js +205 -0
  100. package/dist/python-D3FFx1Id.js +389 -0
  101. package/dist/q-D2Hjhl2C.js +123 -0
  102. package/dist/r-D73k5lac.js +174 -0
  103. package/dist/rpm-Duv_WH0z.js +89 -0
  104. package/dist/ruby-DGCVqZDt.js +287 -0
  105. package/dist/sas-XjPv1Vy5.js +268 -0
  106. package/dist/scheme-DeaA28vt.js +263 -0
  107. package/dist/shell-Bx6QZTgx.js +145 -0
  108. package/dist/sieve-CWCD62sW.js +178 -0
  109. package/dist/simple-mode-DAYwfn8M.js +135 -0
  110. package/dist/smalltalk-DSQbF4MF.js +153 -0
  111. package/dist/solr-v_XRf31C.js +80 -0
  112. package/dist/sparql-BrfDqf0-.js +170 -0
  113. package/dist/spreadsheet-Csn84Pef.js +98 -0
  114. package/dist/sql-Bhuc3u9R.js +481 -0
  115. package/dist/stex-DBkktma-.js +246 -0
  116. package/dist/stylus-dNd_pqKl.js +750 -0
  117. package/dist/swift-CHbTprt3.js +202 -0
  118. package/dist/tcl-BRlMUELr.js +125 -0
  119. package/dist/textile-CqfTUjd4.js +441 -0
  120. package/dist/tiddlywiki-BrsoM8KB.js +278 -0
  121. package/dist/tiki-D-ivWPkc.js +289 -0
  122. package/dist/toml-t_IhJu83.js +75 -0
  123. package/dist/troff-DckGF2AE.js +64 -0
  124. package/dist/ttcn-DlN2TOzU.js +257 -0
  125. package/dist/ttcn-cfg-pHSvg1fS.js +201 -0
  126. package/dist/turtle-D9Js0BlL.js +141 -0
  127. package/dist/vb-CbIGLrpY.js +249 -0
  128. package/dist/vbscript-8ANWle9n.js +320 -0
  129. package/dist/velocity-D6hz3Hzw.js +186 -0
  130. package/dist/verilog-DIV442at.js +565 -0
  131. package/dist/vhdl-BlTiZo_v.js +174 -0
  132. package/dist/webidl-Cp3tcqdk.js +179 -0
  133. package/dist/xquery-BOQU-_D-.js +425 -0
  134. package/dist/yacas-DQ1WucF0.js +182 -0
  135. package/dist/z80-P1j44jDI.js +102 -0
  136. package/package.json +2 -1
  137. package/dist/index-BoCFgPcb.js +0 -23123
@@ -0,0 +1,142 @@
1
+ var builtInFuncs = {
2
+ "+": ["conjugate", "add"],
3
+ "−": ["negate", "subtract"],
4
+ "×": ["signOf", "multiply"],
5
+ "÷": ["reciprocal", "divide"],
6
+ "⌈": ["ceiling", "greaterOf"],
7
+ "⌊": ["floor", "lesserOf"],
8
+ "∣": ["absolute", "residue"],
9
+ "⍳": ["indexGenerate", "indexOf"],
10
+ "?": ["roll", "deal"],
11
+ "⋆": ["exponentiate", "toThePowerOf"],
12
+ "⍟": ["naturalLog", "logToTheBase"],
13
+ "○": ["piTimes", "circularFuncs"],
14
+ "!": ["factorial", "binomial"],
15
+ "⌹": ["matrixInverse", "matrixDivide"],
16
+ "<": [null, "lessThan"],
17
+ "≤": [null, "lessThanOrEqual"],
18
+ "=": [null, "equals"],
19
+ ">": [null, "greaterThan"],
20
+ "≥": [null, "greaterThanOrEqual"],
21
+ "≠": [null, "notEqual"],
22
+ "≡": ["depth", "match"],
23
+ "≢": [null, "notMatch"],
24
+ "∈": ["enlist", "membership"],
25
+ "⍷": [null, "find"],
26
+ "∪": ["unique", "union"],
27
+ "∩": [null, "intersection"],
28
+ "∼": ["not", "without"],
29
+ "∨": [null, "or"],
30
+ "∧": [null, "and"],
31
+ "⍱": [null, "nor"],
32
+ "⍲": [null, "nand"],
33
+ "⍴": ["shapeOf", "reshape"],
34
+ ",": ["ravel", "catenate"],
35
+ "⍪": [null, "firstAxisCatenate"],
36
+ "⌽": ["reverse", "rotate"],
37
+ "⊖": ["axis1Reverse", "axis1Rotate"],
38
+ "⍉": ["transpose", null],
39
+ "↑": ["first", "take"],
40
+ "↓": [null, "drop"],
41
+ "⊂": ["enclose", "partitionWithAxis"],
42
+ "⊃": ["diclose", "pick"],
43
+ "⌷": [null, "index"],
44
+ "⍋": ["gradeUp", null],
45
+ "⍒": ["gradeDown", null],
46
+ "⊤": ["encode", null],
47
+ "⊥": ["decode", null],
48
+ "⍕": ["format", "formatByExample"],
49
+ "⍎": ["execute", null],
50
+ "⊣": ["stop", "left"],
51
+ "⊢": ["pass", "right"]
52
+ };
53
+
54
+ var isOperator = /[\.\/⌿⍀¨⍣]/;
55
+ var isNiladic = /⍬/;
56
+ var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
57
+ var isArrow = /←/;
58
+ var isComment = /[⍝#].*$/;
59
+
60
+ var stringEater = function(type) {
61
+ var prev;
62
+ prev = false;
63
+ return function(c) {
64
+ prev = c;
65
+ if (c === type) {
66
+ return prev === "\\";
67
+ }
68
+ return true;
69
+ };
70
+ };
71
+
72
+ const apl = {
73
+ name: "apl",
74
+ startState: function() {
75
+ return {
76
+ prev: false,
77
+ func: false,
78
+ op: false,
79
+ string: false,
80
+ escape: false
81
+ };
82
+ },
83
+ token: function(stream, state) {
84
+ var ch;
85
+ if (stream.eatSpace()) {
86
+ return null;
87
+ }
88
+ ch = stream.next();
89
+ if (ch === '"' || ch === "'") {
90
+ stream.eatWhile(stringEater(ch));
91
+ stream.next();
92
+ state.prev = true;
93
+ return "string";
94
+ }
95
+ if (/[\[{\(]/.test(ch)) {
96
+ state.prev = false;
97
+ return null;
98
+ }
99
+ if (/[\]}\)]/.test(ch)) {
100
+ state.prev = true;
101
+ return null;
102
+ }
103
+ if (isNiladic.test(ch)) {
104
+ state.prev = false;
105
+ return "atom";
106
+ }
107
+ if (/[¯\d]/.test(ch)) {
108
+ if (state.func) {
109
+ state.func = false;
110
+ state.prev = false;
111
+ } else {
112
+ state.prev = true;
113
+ }
114
+ stream.eatWhile(/[\w\.]/);
115
+ return "number";
116
+ }
117
+ if (isOperator.test(ch)) {
118
+ return "operator"
119
+ }
120
+ if (isArrow.test(ch)) {
121
+ return "operator";
122
+ }
123
+ if (isFunction.test(ch)) {
124
+ state.func = true;
125
+ state.prev = false;
126
+ return builtInFuncs[ch] ? "variableName.function.standard" : "variableName.function"
127
+ }
128
+ if (isComment.test(ch)) {
129
+ stream.skipToEnd();
130
+ return "comment";
131
+ }
132
+ if (ch === "∘" && stream.peek() === ".") {
133
+ stream.next();
134
+ return "variableName.function";
135
+ }
136
+ stream.eatWhile(/[\w\$_]/);
137
+ state.prev = true;
138
+ return "keyword";
139
+ }
140
+ };
141
+
142
+ export { apl };
@@ -1,3 +1,4 @@
1
+ import { ProtobufKind } from "../messaging/protobuf.js";
1
2
  export type PanelTopic = {
2
3
  name: string;
3
4
  extra: boolean;
@@ -5,6 +6,7 @@ export type PanelTopic = {
5
6
  };
6
7
  export type PanelProps = React.PropsWithChildren<{
7
8
  topic: string;
9
+ kind: ProtobufKind;
8
10
  disableAnnotations?: boolean;
9
11
  annotationTopics?: string[];
10
12
  extraAnnotationTopics?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAaA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,aAAa,QAAO,aAEhC,CAAC;AASF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA+CtC,CAAC"}
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,aAAa,QAAO,aAEhC,CAAC;AASF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiDtC,CAAC"}
@@ -17,7 +17,7 @@ const rawToAnnotations = (rawAnnotations, extra, current) => rawAnnotations.map(
17
17
  extra,
18
18
  enabled: current.find(({ name }) => name === annotationTopic)?.enabled ?? !extra
19
19
  }));
20
- export const Panel = ({ children, topic, disableAnnotations = false, annotationTopics = [], extraAnnotationTopics = [] }) => {
20
+ export const Panel = ({ children, kind, topic, disableAnnotations = false, annotationTopics = [], extraAnnotationTopics = [] }) => {
21
21
  const [detections, setDetections] = React.useState([]);
22
22
  React.useEffect(() => {
23
23
  if (!disableAnnotations) {
@@ -27,6 +27,6 @@ export const Panel = ({ children, topic, disableAnnotations = false, annotationT
27
27
  ]);
28
28
  }
29
29
  }, [JSON.stringify(annotationTopics), JSON.stringify(extraAnnotationTopics)]);
30
- return (_jsx(RemountOnValueChange, { value: "internal-player", children: _jsx(ErrorBoundary, { children: _jsx(DetectionContext.Provider, { value: { detections }, children: _jsxs(Stack, { flexGrow: 1, overflow: "hidden", border: "1px solid #d3d3d3d9", style: { borderRadius: "8px" }, children: [_jsx(PanelToolbar, { topic: topic, setDetections: setDetections, disableAnnotations: disableAnnotations }), _jsx(Suspense, { fallback: _jsx(EmptyState, { children: _jsx("div", { children: "Loading..." }) }), children: _jsx(RemountOnValueChange, { value: detections, children: children }) })] }) }) }) }));
30
+ return (_jsx(RemountOnValueChange, { value: "internal-player", children: _jsx(ErrorBoundary, { children: _jsx(DetectionContext.Provider, { value: { detections }, children: _jsxs(Stack, { flexGrow: 1, overflow: "hidden", border: "1px solid #d3d3d3d9", style: { borderRadius: "8px" }, children: [_jsx(PanelToolbar, { kind: kind, topic: topic, setDetections: setDetections, disableAnnotations: disableAnnotations }), _jsx(Suspense, { fallback: _jsx(EmptyState, { children: _jsx("div", { children: "Loading..." }) }), children: _jsx(RemountOnValueChange, { value: detections, children: children }) })] }) }) }) }));
31
31
  };
32
32
  //# sourceMappingURL=Panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../../../src/components/Panel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,UAAU,MAAM,gDAAgD,CAAC;AACxE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,oBAAoB,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAqBtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAgB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAkB,EAAE;IAC/C,OAAO,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,cAAwB,EAAE,KAAc,EAAE,OAAqB,EAAgB,EAAE,CACzG,cAAc,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE,eAAe;IACrB,KAAK;IACL,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK;CACjF,CAAC,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,KAAK,EACL,kBAAkB,GAAG,KAAK,EAC1B,gBAAgB,GAAG,EAAE,EACrB,qBAAqB,GAAG,EAAE,EAC3B,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAe,EAAE,CAAC,CAAC;IAErE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC;gBACrD,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAE9E,OAAO,CACL,KAAC,oBAAoB,IAAC,KAAK,EAAC,iBAAiB,YAC3C,KAAC,aAAa,cACZ,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,YAC9C,MAAC,KAAK,IACJ,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAC,QAAQ,EACjB,MAAM,EAAC,qBAAqB,EAC5B,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAE9B,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GACtC,EACF,KAAC,QAAQ,IACP,QAAQ,EACN,KAAC,UAAU,cACT,uCAAqB,GACV,YAGf,KAAC,oBAAoB,IAAC,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAwB,GACjE,IACL,GACkB,GACd,GACK,CACxB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../../../src/components/Panel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,UAAU,MAAM,gDAAgD,CAAC;AACxE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,oBAAoB,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAuBtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAgB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAkB,EAAE;IAC/C,OAAO,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,cAAwB,EAAE,KAAc,EAAE,OAAqB,EAAgB,EAAE,CACzG,cAAc,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE,eAAe;IACrB,KAAK;IACL,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK;CACjF,CAAC,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,kBAAkB,GAAG,KAAK,EAC1B,gBAAgB,GAAG,EAAE,EACrB,qBAAqB,GAAG,EAAE,EAC3B,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAe,EAAE,CAAC,CAAC;IAErE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC;gBACrD,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAE9E,OAAO,CACL,KAAC,oBAAoB,IAAC,KAAK,EAAC,iBAAiB,YAC3C,KAAC,aAAa,cACZ,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,YAC9C,MAAC,KAAK,IACJ,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAC,QAAQ,EACjB,MAAM,EAAC,qBAAqB,EAC5B,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAE9B,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GACtC,EACF,KAAC,QAAQ,IACP,QAAQ,EACN,KAAC,UAAU,cACT,uCAAqB,GACV,YAGf,KAAC,oBAAoB,IAAC,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAwB,GACjE,IACL,GACkB,GACd,GACK,CACxB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import { type PanelTopic } from "./Panel.js";
2
+ import { ProtobufKind } from "../messaging/protobuf.js";
3
+ import '@luxonis/common-fe-components/styles';
2
4
  export type PanelToolbarProps = {
3
5
  topic: string;
6
+ kind: ProtobufKind;
4
7
  disableAnnotations?: boolean;
5
- setDetections?: (topics: PanelTopic[]) => void;
8
+ setDetections?: (cb: (topics: PanelTopic[]) => PanelTopic[]) => void;
6
9
  };
7
10
  export declare const PanelToolbar: React.FC<PanelToolbarProps>;
8
11
  //# sourceMappingURL=PanelToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAc5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2FpD,CAAC"}
1
+ {"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,sCAAsC,CAAC;AAuB9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6HpD,CAAC"}
@@ -2,30 +2,42 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  // This Source Code Form is subject to the terms of the Mozilla Public
3
3
  // License, v2.0. If a copy of the MPL was not distributed with this
4
4
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
5
- import { ArrowDropUp, CheckBox, CheckBoxOutlineBlank } from "@mui/icons-material";
6
- import ArrowDropDown from "@mui/icons-material/ArrowDropDown.js";
7
- import { Button, ListItemIcon, ListItemText, Menu, MenuItem, Stack, Typography } from "@mui/material";
8
5
  import { useDetections } from "./Panel.js";
9
- const PanelAnnotationButton = ({ topic, onClick }) => (_jsxs(MenuItem, { onClick: onClick, children: [_jsx(ListItemIcon, { children: topic.enabled ? _jsx(CheckBox, {}) : _jsx(CheckBoxOutlineBlank, {}) }), _jsx(ListItemText, { children: topic.name })] }));
10
- export const PanelToolbar = ({ topic, setDetections, disableAnnotations = false }) => {
6
+ import { ArrowDownIcon, ArrowUpIcon, Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Flex, HelpIcon, Icon, Label, NormalText, SubHeader, Tooltip } from "@luxonis/common-fe-components";
7
+ import { ImCheckboxChecked, ImCheckboxUnchecked } from "react-icons/im";
8
+ import '@luxonis/common-fe-components/styles';
9
+ const PanelAnnotationButton = ({ topic, onClick }) => {
10
+ const handleClick = React.useCallback(event => {
11
+ event.preventDefault();
12
+ onClick();
13
+ }, []);
14
+ return (_jsx(DropdownMenuItem, { onClick: handleClick, children: _jsxs(Flex, { align: "center", gap: "sm", children: [_jsx(Icon, { color: "active", icon: topic.enabled ? ImCheckboxChecked : ImCheckboxUnchecked }), _jsx(NormalText, { text: topic.name })] }) }));
15
+ };
16
+ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations = false }) => {
11
17
  const { detections } = useDetections();
18
+ const [annotationsOpened, setAnnotationsOpened] = React.useState(false);
12
19
  const hasExtra = React.useMemo(() => detections.some((topic) => topic.extra && !topic.enabled), [detections]);
13
20
  const [extraVisible, setExtraVisible] = React.useState(false);
14
- const [anchorEl, setAnchorEl] = React.useState(null);
15
- const open = Boolean(anchorEl);
16
- const onOpen = React.useCallback((event) => {
17
- setAnchorEl(event.currentTarget);
18
- }, []);
19
21
  const onToggleTopic = React.useCallback((toggleTopicName) => {
20
- setDetections?.(detections.map((topic) => ({
22
+ setDetections?.((current) => current.map((topic) => ({
21
23
  ...topic,
22
24
  ...(toggleTopicName === topic.name && {
23
25
  enabled: !topic.enabled
24
26
  })
25
27
  })));
26
28
  }, [detections, setDetections]);
27
- return (_jsxs(Stack, { direction: "row", spacing: 2, paddingX: 2, alignItems: "center", justifyContent: "space-between", children: [_jsx(Typography, { variant: "button", component: "p", children: topic }), !disableAnnotations && (_jsxs(_Fragment, { children: [_jsx(Button, { "aria-controls": open ? "basic-menu" : undefined, "aria-haspopup": "true", "aria-expanded": open ? "true" : undefined, onClick: onOpen, endIcon: anchorEl ? _jsx(ArrowDropUp, {}) : _jsx(ArrowDropDown, {}), disabled: detections.length === 0, children: "Annotations" }), _jsxs(Menu, { anchorEl: anchorEl, open: open, onClose: () => setAnchorEl(null), children: [detections.map((topic) => (!topic.extra || topic.enabled) && (_jsx(PanelAnnotationButton, { topic: topic, onClick: () => onToggleTopic(topic.name) }, topic.name))), hasExtra && (_jsx(Button, { fullWidth: true, "aria-expanded": extraVisible ? "true" : undefined, onClick: () => setExtraVisible((current) => !current), endIcon: extraVisible ? _jsx(ArrowDropUp, {}) : _jsx(ArrowDropDown, {}), children: extraVisible ? "Less" : "More" })), extraVisible &&
29
+ return (_jsxs(Flex, { direction: "row", gap: "sm", align: "center", justify: "space-between", style: {
30
+ paddingLeft: 16
31
+ }, children: [_jsx(SubHeader, { text: topic }), !disableAnnotations && kind === 'image' && (_jsxs(DropdownMenu, { onOpenChange: setAnnotationsOpened, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", label: "Annotations", "aria-controls": annotationsOpened ? "basic-menu" : undefined, "aria-haspopup": "true", "aria-expanded": annotationsOpened ? "true" : undefined, icon: annotationsOpened ? ArrowUpIcon : ArrowDownIcon, disabled: detections.length === 0, style: {
32
+ borderRadius: 0,
33
+ borderTopRightRadius: 8
34
+ } }) }), _jsxs(DropdownMenuContent, { children: [detections.map((topic) => (!topic.extra || topic.enabled) && (_jsx(PanelAnnotationButton, { topic: topic, onClick: () => onToggleTopic(topic.name) }, topic.name))), hasExtra && (_jsx(Button, { width: "full", paddingY: "xs", variant: "ghost", "aria-expanded": extraVisible ? "true" : undefined, onClick: () => setExtraVisible((current) => !current), icon: extraVisible ? ArrowUpIcon : ArrowDownIcon, style: {
35
+ borderRadius: 4,
36
+ }, children: extraVisible ? "Less" : "More" })), extraVisible &&
28
37
  detections.map((topic) => topic.extra &&
29
- !topic.enabled && (_jsx(PanelAnnotationButton, { topic: topic, onClick: () => onToggleTopic(topic.name) }, topic.name)))] })] }))] }));
38
+ !topic.enabled && (_jsx(PanelAnnotationButton, { topic: topic, onClick: () => onToggleTopic(topic.name) }, topic.name)))] })] })), kind === 'pointCloud' && (_jsx(Tooltip, { content: _jsxs(_Fragment, { children: [_jsx(Label, { text: "To move camera:" }), _jsxs("ul", { children: [_jsx("li", { children: "w - Move camera forward" }), _jsx("li", { children: "a - Move camera backward" }), _jsx("li", { children: "s - Move camera to the left" }), _jsx("li", { children: "d - Move camera to the right" }), _jsx("li", { children: "Scroll \u2013 Zoom in and out" }), _jsx("li", { children: "Drag \u2013 Move camera parallel to the ground" }), _jsx("li", { children: "Right-click + Drag horizontally \u2013 Rotate the camera around the world's z-axis" }), _jsx("li", { children: "Right-click + Drag vertically \u2013 Pan the camera around the world's x- and y- axes" })] })] }), children: _jsx(Button, { variant: "ghost", colorVariant: "white", cursor: "help", icon: HelpIcon, style: {
39
+ borderRadius: 0,
40
+ borderTopRightRadius: 8
41
+ } }) }))] }));
30
42
  };
31
43
  //# sourceMappingURL=PanelToolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAO5D,MAAM,qBAAqB,GAAyC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC1F,MAAC,QAAQ,IAAC,OAAO,EAAE,OAAO,aACxB,KAAC,YAAY,cAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,QAAQ,KAAG,CAAC,CAAC,CAAC,KAAC,oBAAoB,KAAG,GAAgB,EACtF,KAAC,YAAY,cAAE,KAAK,CAAC,IAAI,GAAgB,IAChC,CACZ,CAAC;AAQF,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,aAAa,EACb,kBAAkB,GAAG,KAAK,EAC3B,EAAE,EAAE;IACH,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAA0C,EAAE,EAAE;QAC9E,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,eAAuB,EAAE,EAAE;QAC1B,aAAa,EAAE,CACb,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,KAAK;YACR,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,IAAI,IAAI;gBACpC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO;aACxB,CAAC;SACH,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,EACD,CAAC,UAAU,EAAE,aAAa,CAAC,CAC5B,CAAC;IAEF,OAAO,CACL,MAAC,KAAK,IACJ,SAAS,EAAC,KAAK,EACf,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,EACX,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe,aAE9B,KAAC,UAAU,IAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,EAAC,GAAG,YACvC,KAAK,GACK,EACZ,CAAC,kBAAkB,IAAI,CACtB,8BACE,KAAC,MAAM,qBACU,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,mBAChC,MAAM,mBACL,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC,CAAC,KAAC,aAAa,KAAG,EACvD,QAAQ,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,4BAG1B,EACT,MAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aACnE,UAAU,CAAC,GAAG,CACb,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CACjC,KAAC,qBAAqB,IAEpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAFnC,KAAK,CAAC,IAAI,CAGf,CACH,CACJ,EACA,QAAQ,IAAI,CACX,KAAC,MAAM,IACL,SAAS,yBACM,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAChD,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EACrD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC,CAAC,KAAC,aAAa,KAAG,YAE1D,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GACxB,CACV,EACA,YAAY;gCACX,UAAU,CAAC,GAAG,CACZ,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,KAAK;oCACX,CAAC,KAAK,CAAC,OAAO,IAAI,CAChB,KAAC,qBAAqB,IAEpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAFnC,KAAK,CAAC,IAAI,CAGf,CACH,CACJ,IACE,IACN,CACJ,IACK,CACT,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,7 @@
1
1
  import React from "react";
2
+ import { PanelProps } from "../components/Panel.js";
2
3
  export type ImagePanelProps = {
3
4
  topic: string;
4
5
  };
5
- export declare const ImagePanel: React.NamedExoticComponent<{
6
- topic: string;
7
- disableAnnotations?: boolean;
8
- annotationTopics?: string[];
9
- extraAnnotationTopics?: string[];
10
- } & {
11
- children?: React.ReactNode | undefined;
12
- } & ImagePanelProps>;
6
+ export declare const ImagePanel: React.NamedExoticComponent<Omit<PanelProps, "kind"> & ImagePanelProps>;
13
7
  //# sourceMappingURL=ImagePanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePanel.d.ts","sourceRoot":"","sources":["../../../../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAyBF,eAAO,MAAM,UAAU;;;;;;;oBAMrB,CAAC"}
1
+ {"version":3,"file":"ImagePanel.d.ts","sourceRoot":"","sources":["../../../../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAS,UAAU,EAAiB,MAAM,wBAAwB,CAAC;AAM1E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAyBF,eAAO,MAAM,UAAU,wEAMrB,CAAC"}
@@ -21,6 +21,6 @@ const ImagePanelBody = ({ topic }) => {
21
21
  return _jsx(ImagePanelComponent, { overrideConfig: defaultConfig });
22
22
  };
23
23
  export const ImagePanel = React.memo(function ImagePanel(props) {
24
- return (_jsx(Panel, { ...props, children: _jsx(ImagePanelBody, { topic: props.topic }) }));
24
+ return (_jsx(Panel, { kind: "image", ...props, children: _jsx(ImagePanelBody, { topic: props.topic }) }));
25
25
  });
26
26
  //# sourceMappingURL=ImagePanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePanel.js","sourceRoot":"","sources":["../../../../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1E,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CACpC,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAC/D,CAAC;AAMF,MAAM,cAAc,GAA8B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAEvC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE;YACT,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC5B,SAAS,CAAC,IAAI,EAAE,EAAE;gBAClB,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;aAC/B,CAAC,CACH;YACD,SAAS,EAAE,UAAmB;SAC/B;KACF,CAAC,EACF,CAAC,UAAU,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF,OAAO,KAAC,mBAAmB,IAAC,cAAc,EAAE,aAAa,GAAI,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,KAAmC;IAC1F,OAAO,CACL,KAAC,KAAK,OAAK,KAAK,YACd,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,GAChC,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ImagePanel.js","sourceRoot":"","sources":["../../../../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1E,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CACpC,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAC/D,CAAC;AAMF,MAAM,cAAc,GAA8B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAEvC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE;YACT,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC5B,SAAS,CAAC,IAAI,EAAE,EAAE;gBAClB,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;aAC/B,CAAC,CACH;YACD,SAAS,EAAE,UAAmB;SAC/B;KACF,CAAC,EACF,CAAC,UAAU,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF,OAAO,KAAC,mBAAmB,IAAC,cAAc,EAAE,aAAa,GAAI,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,KAAiD;IACxG,OAAO,CACL,KAAC,KAAK,IAAC,IAAI,EAAC,OAAO,KAAK,KAAK,YAC3B,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,GAChC,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -31,7 +31,7 @@ const PointCloudPanelBody = ({ topic }) => {
31
31
  }), [topic]);
32
32
  return _jsx(ThreeDeeRenderComponent, { overrideConfig: defaultConfig });
33
33
  };
34
- export const PointCloudPanel = React.memo(function PointCloudPanel({ topic }) {
35
- return (_jsx(Panel, { topic: topic, disableAnnotations: true, children: _jsx(PointCloudPanelBody, { topic: topic }) }));
34
+ export const PointCloudPanel = React.memo(function PointCloudPanel({ topic, }) {
35
+ return (_jsx(Panel, { kind: "pointCloud", topic: topic, disableAnnotations: true, children: _jsx(PointCloudPanelBody, { topic: topic }) }));
36
36
  });
37
37
  //# sourceMappingURL=PointCloudPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloudPanel.js","sourceRoot":"","sources":["../../../../../../src/panels/PointCloudPanel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CACxC,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,6CAA6C,CAAC,CACxE,CAAC;AAMF,MAAM,mBAAmB,GAAmC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACxE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE;YACN,CAAC,KAAK,CAAC,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,IAAI;aACd;SACF;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvB,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/B,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,KAAK;SACX;KACF,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,KAAC,uBAAuB,IAAC,cAAc,EAAE,aAAa,GAAI,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,EACjE,KAAK,EACgB;IACrB,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,kBACrC,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,GAAI,GAC/B,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"PointCloudPanel.js","sourceRoot":"","sources":["../../../../../../src/panels/PointCloudPanel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CACxC,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,6CAA6C,CAAC,CACxE,CAAC;AAMF,MAAM,mBAAmB,GAAmC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACxE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE;YACN,CAAC,KAAK,CAAC,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,IAAI;aACd;SACF;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvB,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/B,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,KAAK;SACX;KACF,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,KAAC,uBAAuB,IAAC,cAAc,EAAE,aAAa,GAAI,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,EACjE,KAAK,GACgB;IACrB,OAAO,CACL,KAAC,KAAK,IAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,kBACvD,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,GAAI,GAC/B,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,56 @@
1
+ function errorIfNotEmpty(stream) {
2
+ var nonWS = stream.match(/^\s*\S/);
3
+ stream.skipToEnd();
4
+ return nonWS ? "error" : null;
5
+ }
6
+
7
+ const asciiArmor = {
8
+ name: "asciiarmor",
9
+ token: function(stream, state) {
10
+ var m;
11
+ if (state.state == "top") {
12
+ if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\s*$/))) {
13
+ state.state = "headers";
14
+ state.type = m[1];
15
+ return "tag";
16
+ }
17
+ return errorIfNotEmpty(stream);
18
+ } else if (state.state == "headers") {
19
+ if (stream.sol() && stream.match(/^\w+:/)) {
20
+ state.state = "header";
21
+ return "atom";
22
+ } else {
23
+ var result = errorIfNotEmpty(stream);
24
+ if (result) state.state = "body";
25
+ return result;
26
+ }
27
+ } else if (state.state == "header") {
28
+ stream.skipToEnd();
29
+ state.state = "headers";
30
+ return "string";
31
+ } else if (state.state == "body") {
32
+ if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\s*$/))) {
33
+ if (m[1] != state.type) return "error";
34
+ state.state = "end";
35
+ return "tag";
36
+ } else {
37
+ if (stream.eatWhile(/[A-Za-z0-9+\/=]/)) {
38
+ return null;
39
+ } else {
40
+ stream.next();
41
+ return "error";
42
+ }
43
+ }
44
+ } else if (state.state == "end") {
45
+ return errorIfNotEmpty(stream);
46
+ }
47
+ },
48
+ blankLine: function(state) {
49
+ if (state.state == "headers") state.state = "body";
50
+ },
51
+ startState: function() {
52
+ return {state: "top", type: null};
53
+ }
54
+ };
55
+
56
+ export { asciiArmor };
@@ -0,0 +1,192 @@
1
+ function words(str) {
2
+ var obj = {}, words = str.split(" ");
3
+ for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
4
+ return obj;
5
+ }
6
+
7
+ const defaults = {
8
+ keywords: words("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION" +
9
+ " REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED" +
10
+ " WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN" +
11
+ " IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS" +
12
+ " MINACCESS MAXACCESS REVISION STATUS DESCRIPTION" +
13
+ " SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName" +
14
+ " ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY" +
15
+ " IMPLIED EXPORTS"),
16
+ cmipVerbs: words("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),
17
+ compareTypes: words("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY" +
18
+ " MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY" +
19
+ " OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL" +
20
+ " SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL" +
21
+ " TEXTUAL-CONVENTION"),
22
+ status: words("current deprecated mandatory obsolete"),
23
+ tags: words("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS" +
24
+ " UNIVERSAL"),
25
+ storage: words("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING" +
26
+ " UTCTime InterfaceIndex IANAifType CMIP-Attribute" +
27
+ " REAL PACKAGE PACKAGES IpAddress PhysAddress" +
28
+ " NetworkAddress BITS BMPString TimeStamp TimeTicks" +
29
+ " TruthValue RowStatus DisplayString GeneralString" +
30
+ " GraphicString IA5String NumericString" +
31
+ " PrintableString SnmpAdminString TeletexString" +
32
+ " UTF8String VideotexString VisibleString StringStore" +
33
+ " ISO646String T61String UniversalString Unsigned32" +
34
+ " Integer32 Gauge Gauge32 Counter Counter32 Counter64"),
35
+ modifier: words("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS" +
36
+ " GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS" +
37
+ " DEFINED"),
38
+ accessTypes: words("not-accessible accessible-for-notify read-only" +
39
+ " read-create read-write"),
40
+ multiLineStrings: true
41
+ };
42
+
43
+ function asn1(parserConfig) {
44
+ var keywords = parserConfig.keywords || defaults.keywords,
45
+ cmipVerbs = parserConfig.cmipVerbs || defaults.cmipVerbs,
46
+ compareTypes = parserConfig.compareTypes || defaults.compareTypes,
47
+ status = parserConfig.status || defaults.status,
48
+ tags = parserConfig.tags || defaults.tags,
49
+ storage = parserConfig.storage || defaults.storage,
50
+ modifier = parserConfig.modifier || defaults.modifier,
51
+ accessTypes = parserConfig.accessTypes|| defaults.accessTypes,
52
+ multiLineStrings = parserConfig.multiLineStrings || defaults.multiLineStrings,
53
+ indentStatements = parserConfig.indentStatements !== false;
54
+ var isOperatorChar = /[\|\^]/;
55
+ var curPunc;
56
+
57
+ function tokenBase(stream, state) {
58
+ var ch = stream.next();
59
+ if (ch == '"' || ch == "'") {
60
+ state.tokenize = tokenString(ch);
61
+ return state.tokenize(stream, state);
62
+ }
63
+ if (/[\[\]\(\){}:=,;]/.test(ch)) {
64
+ curPunc = ch;
65
+ return "punctuation";
66
+ }
67
+ if (ch == "-"){
68
+ if (stream.eat("-")) {
69
+ stream.skipToEnd();
70
+ return "comment";
71
+ }
72
+ }
73
+ if (/\d/.test(ch)) {
74
+ stream.eatWhile(/[\w\.]/);
75
+ return "number";
76
+ }
77
+ if (isOperatorChar.test(ch)) {
78
+ stream.eatWhile(isOperatorChar);
79
+ return "operator";
80
+ }
81
+
82
+ stream.eatWhile(/[\w\-]/);
83
+ var cur = stream.current();
84
+ if (keywords.propertyIsEnumerable(cur)) return "keyword";
85
+ if (cmipVerbs.propertyIsEnumerable(cur)) return "variableName";
86
+ if (compareTypes.propertyIsEnumerable(cur)) return "atom";
87
+ if (status.propertyIsEnumerable(cur)) return "comment";
88
+ if (tags.propertyIsEnumerable(cur)) return "typeName";
89
+ if (storage.propertyIsEnumerable(cur)) return "modifier";
90
+ if (modifier.propertyIsEnumerable(cur)) return "modifier";
91
+ if (accessTypes.propertyIsEnumerable(cur)) return "modifier";
92
+
93
+ return "variableName";
94
+ }
95
+
96
+ function tokenString(quote) {
97
+ return function(stream, state) {
98
+ var escaped = false, next, end = false;
99
+ while ((next = stream.next()) != null) {
100
+ if (next == quote && !escaped){
101
+ var afterNext = stream.peek();
102
+ //look if the character if the quote is like the B in '10100010'B
103
+ if (afterNext){
104
+ afterNext = afterNext.toLowerCase();
105
+ if(afterNext == "b" || afterNext == "h" || afterNext == "o")
106
+ stream.next();
107
+ }
108
+ end = true; break;
109
+ }
110
+ escaped = !escaped && next == "\\";
111
+ }
112
+ if (end || !(escaped || multiLineStrings))
113
+ state.tokenize = null;
114
+ return "string";
115
+ };
116
+ }
117
+
118
+ function Context(indented, column, type, align, prev) {
119
+ this.indented = indented;
120
+ this.column = column;
121
+ this.type = type;
122
+ this.align = align;
123
+ this.prev = prev;
124
+ }
125
+ function pushContext(state, col, type) {
126
+ var indent = state.indented;
127
+ if (state.context && state.context.type == "statement")
128
+ indent = state.context.indented;
129
+ return state.context = new Context(indent, col, type, null, state.context);
130
+ }
131
+ function popContext(state) {
132
+ var t = state.context.type;
133
+ if (t == ")" || t == "]" || t == "}")
134
+ state.indented = state.context.indented;
135
+ return state.context = state.context.prev;
136
+ }
137
+
138
+ //Interface
139
+ return {
140
+ name: "asn1",
141
+ startState: function() {
142
+ return {
143
+ tokenize: null,
144
+ context: new Context(-2, 0, "top", false),
145
+ indented: 0,
146
+ startOfLine: true
147
+ };
148
+ },
149
+
150
+ token: function(stream, state) {
151
+ var ctx = state.context;
152
+ if (stream.sol()) {
153
+ if (ctx.align == null) ctx.align = false;
154
+ state.indented = stream.indentation();
155
+ state.startOfLine = true;
156
+ }
157
+ if (stream.eatSpace()) return null;
158
+ curPunc = null;
159
+ var style = (state.tokenize || tokenBase)(stream, state);
160
+ if (style == "comment") return style;
161
+ if (ctx.align == null) ctx.align = true;
162
+
163
+ if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
164
+ && ctx.type == "statement"){
165
+ popContext(state);
166
+ }
167
+ else if (curPunc == "{") pushContext(state, stream.column(), "}");
168
+ else if (curPunc == "[") pushContext(state, stream.column(), "]");
169
+ else if (curPunc == "(") pushContext(state, stream.column(), ")");
170
+ else if (curPunc == "}") {
171
+ while (ctx.type == "statement") ctx = popContext(state);
172
+ if (ctx.type == "}") ctx = popContext(state);
173
+ while (ctx.type == "statement") ctx = popContext(state);
174
+ }
175
+ else if (curPunc == ctx.type) popContext(state);
176
+ else if (indentStatements && (((ctx.type == "}" || ctx.type == "top")
177
+ && curPunc != ';') || (ctx.type == "statement"
178
+ && curPunc == "newstatement")))
179
+ pushContext(state, stream.column(), "statement");
180
+
181
+ state.startOfLine = false;
182
+ return style;
183
+ },
184
+
185
+ languageData: {
186
+ indentOnInput: /^\s*[{}]$/,
187
+ commentTokens: {line: "--"}
188
+ }
189
+ };
190
+ }
191
+
192
+ export { asn1 };