@rfkit/charts 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/FrequencyAllocation/SegmentContainer.d.ts +3 -2
- package/components/FrequencyAllocation/Tooltip/index.d.ts +2 -18
- package/components/FrequencyAllocation/color.d.ts +8 -0
- package/components/FrequencyAllocation/data.d.ts +12 -0
- package/components/FrequencyAllocation/tools.d.ts +20 -0
- package/components/FrequencyAllocation/types.d.ts +3 -30
- package/index.d.ts +1 -0
- package/index.js +2002 -1466
- package/modules/Spectrum/render.d.ts +1 -0
- package/package.json +1 -1
- package/types/publish.d.ts +3 -3
- package/types/store.d.ts +8 -8
- package/store/data/frequencyAllocation.d.ts +0 -3
package/index.js
CHANGED
|
@@ -4,6 +4,449 @@ import * as __WEBPACK_EXTERNAL_MODULE__rfkit_theme_a11ca9cb__ from "@rfkit/theme
|
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE_react_dom_7136dc57__ from "react-dom";
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__rfkit_spectrum_analyzer_159ab12b__ from "@rfkit/spectrum-analyzer";
|
|
6
6
|
var __webpack_modules__ = {
|
|
7
|
+
"./src/utils/index.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
Ax: ()=>leftSegments2frequency,
|
|
10
|
+
B5: ()=>getRowCol,
|
|
11
|
+
Bp: ()=>isdBm,
|
|
12
|
+
Fc: ()=>getDateTime,
|
|
13
|
+
IS: ()=>generateFrequencySegments,
|
|
14
|
+
P2: ()=>throttle1,
|
|
15
|
+
P9: ()=>convertToTimestampedArrays,
|
|
16
|
+
PM: ()=>mergeObjects,
|
|
17
|
+
Ri: ()=>isNumberAlias,
|
|
18
|
+
SF: ()=>createGUID,
|
|
19
|
+
f1: ()=>leftSegmentsFindStep,
|
|
20
|
+
g9: ()=>throttleTimer,
|
|
21
|
+
kL: ()=>getDimInfo,
|
|
22
|
+
lj: ()=>getFrequencyToFixed,
|
|
23
|
+
or: ()=>leftPoints2frequency,
|
|
24
|
+
r2: ()=>scopeLeftSegments2bandwidth,
|
|
25
|
+
sl: ()=>generateGreatSegments,
|
|
26
|
+
vY: ()=>getThemeFillStyle,
|
|
27
|
+
wF: ()=>getMidIndex
|
|
28
|
+
});
|
|
29
|
+
const createGUID = ()=>((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
|
|
30
|
+
const getDateTime = (t = Date.now(), sep1 = '-', sep2 = ':', time = false)=>{
|
|
31
|
+
if (!t) return '';
|
|
32
|
+
let timestamp;
|
|
33
|
+
if (t instanceof Date) timestamp = t.getTime();
|
|
34
|
+
else {
|
|
35
|
+
if ('number' != typeof t) return '';
|
|
36
|
+
timestamp = t;
|
|
37
|
+
if (10 === timestamp.toString().length) timestamp *= 1000;
|
|
38
|
+
}
|
|
39
|
+
const date = new Date(timestamp);
|
|
40
|
+
if (Number.isNaN(date.getTime())) return '';
|
|
41
|
+
const year = date.getFullYear();
|
|
42
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
43
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
44
|
+
const hours = String(date.getHours()).padStart(2, '0');
|
|
45
|
+
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
46
|
+
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
47
|
+
const timeStr = `${hours}${sep2}${minutes}${sep2}${seconds}`;
|
|
48
|
+
if (time) return timeStr;
|
|
49
|
+
const dateStr = `${year}${sep1}${month}${sep1}${day}`;
|
|
50
|
+
return `${dateStr} ${timeStr}`;
|
|
51
|
+
};
|
|
52
|
+
function throttle1(func = ()=>{}, wait = 1000 / 30) {
|
|
53
|
+
let prev = 0;
|
|
54
|
+
return (...arg)=>{
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
const timeSinceLastCall = now - prev;
|
|
57
|
+
if (timeSinceLastCall >= wait) {
|
|
58
|
+
func(...arg);
|
|
59
|
+
prev = now;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function throttleRequestAnimationFrame(func = ()=>{}) {
|
|
64
|
+
let scheduled = false;
|
|
65
|
+
return (e)=>{
|
|
66
|
+
if (!scheduled) {
|
|
67
|
+
scheduled = true;
|
|
68
|
+
requestAnimationFrame(()=>{
|
|
69
|
+
func(e);
|
|
70
|
+
scheduled = false;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function throttleTimer(func = ()=>{}, wait) {
|
|
76
|
+
let timer = null;
|
|
77
|
+
return (e)=>{
|
|
78
|
+
clearTimeout(timer);
|
|
79
|
+
timer = setTimeout(()=>{
|
|
80
|
+
func(e);
|
|
81
|
+
}, wait || 100);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
const leftSegments2frequency = (segments)=>{
|
|
85
|
+
if (!segments?.length) return ()=>'';
|
|
86
|
+
const { totalPoints } = segments;
|
|
87
|
+
const segmentInfo = segments.map((segment, index)=>{
|
|
88
|
+
const { point, frequencyCache } = segment;
|
|
89
|
+
const ll = 100 * point / totalPoints;
|
|
90
|
+
return {
|
|
91
|
+
ll,
|
|
92
|
+
frequencyCache,
|
|
93
|
+
startLeft: 0 === index ? 0 : segments.slice(0, index).reduce((sum, s)=>sum + 100 * s.point / totalPoints, 0)
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
return (left)=>{
|
|
97
|
+
if (left <= 0) return String(segments[0]?.start);
|
|
98
|
+
if (left >= 100) return String(segments[segments.length - 1]?.stop);
|
|
99
|
+
let low = 0;
|
|
100
|
+
let high = segmentInfo.length - 1;
|
|
101
|
+
while(low <= high){
|
|
102
|
+
const mid = low + high >>> 1;
|
|
103
|
+
const { startLeft, ll } = segmentInfo[mid];
|
|
104
|
+
if (left >= startLeft && left < startLeft + ll) {
|
|
105
|
+
const { frequencyCache } = segmentInfo[mid];
|
|
106
|
+
const relativeLeft = left - startLeft;
|
|
107
|
+
const ratio = relativeLeft / ll;
|
|
108
|
+
const index = Math.min(Math.ceil(ratio * frequencyCache.length) - 1, frequencyCache.length - 1);
|
|
109
|
+
return frequencyCache[index]?.frequency ?? '';
|
|
110
|
+
}
|
|
111
|
+
if (left < startLeft) high = mid - 1;
|
|
112
|
+
else low = mid + 1;
|
|
113
|
+
}
|
|
114
|
+
return '';
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
const leftSegmentsFindStep = (segments)=>(left)=>{
|
|
118
|
+
if (!segments || 0 === left || 100 === left) return 0;
|
|
119
|
+
const { totalPoints } = segments;
|
|
120
|
+
let l = left;
|
|
121
|
+
for(let i = 0; i < segments.length; i += 1){
|
|
122
|
+
const { point } = segments[i];
|
|
123
|
+
const ll = 100 * point / totalPoints;
|
|
124
|
+
if (l - ll <= 0) return ll / point;
|
|
125
|
+
l -= ll;
|
|
126
|
+
}
|
|
127
|
+
return 0;
|
|
128
|
+
};
|
|
129
|
+
function leftPoints2frequency(points) {
|
|
130
|
+
const len = points.length;
|
|
131
|
+
return (left)=>{
|
|
132
|
+
if (0 === len) return;
|
|
133
|
+
let index = Math.ceil(left * len / 100) - 1;
|
|
134
|
+
if (-1 === index) index = 0;
|
|
135
|
+
return points[index];
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
const scopeLeftSegments2bandwidth = (e)=>{
|
|
139
|
+
if (!e) return 0;
|
|
140
|
+
const { segments } = e;
|
|
141
|
+
if (!segments) return 0;
|
|
142
|
+
const { totalPoints } = segments;
|
|
143
|
+
let { endLeft, startLeft } = e;
|
|
144
|
+
const diff = endLeft - startLeft;
|
|
145
|
+
const diffabs = Math.abs(diff);
|
|
146
|
+
if (diff < 0) {
|
|
147
|
+
startLeft = e.endLeft;
|
|
148
|
+
endLeft = e.startLeft;
|
|
149
|
+
}
|
|
150
|
+
let width = 0;
|
|
151
|
+
let startTag = false;
|
|
152
|
+
for(let i = 0; i < segments.length; i += 1){
|
|
153
|
+
const { step, start, stop, point } = segments[i];
|
|
154
|
+
const ll = 100 * point / totalPoints;
|
|
155
|
+
const quark = step / 1000;
|
|
156
|
+
const haveStart = startLeft - ll <= 0;
|
|
157
|
+
const haveEnd = endLeft - ll <= 0;
|
|
158
|
+
if (!startTag && haveStart && haveEnd) return Math.round(diffabs / ll * point) * quark;
|
|
159
|
+
if (haveStart && !startTag) {
|
|
160
|
+
startTag = true;
|
|
161
|
+
width += Math.round((1 - startLeft / ll) * point) * quark;
|
|
162
|
+
}
|
|
163
|
+
if (haveEnd) {
|
|
164
|
+
width += Math.round(endLeft / ll * point) * quark;
|
|
165
|
+
return width;
|
|
166
|
+
}
|
|
167
|
+
if (startLeft < 0 && !haveEnd) width += stop - start;
|
|
168
|
+
startLeft -= ll;
|
|
169
|
+
endLeft -= ll;
|
|
170
|
+
}
|
|
171
|
+
return 0;
|
|
172
|
+
};
|
|
173
|
+
function isdBm(unit) {
|
|
174
|
+
return unit?.slice(0, 3) === 'dBm';
|
|
175
|
+
}
|
|
176
|
+
function arrayFindMax(arr) {
|
|
177
|
+
if (!arr?.length) return {};
|
|
178
|
+
let max = Number.NEGATIVE_INFINITY;
|
|
179
|
+
let maxIndex = 0;
|
|
180
|
+
for(let i = 0; i < arr.length; i += 1){
|
|
181
|
+
const item = arr[i];
|
|
182
|
+
if (item > max) {
|
|
183
|
+
max = item;
|
|
184
|
+
maxIndex = i;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
max,
|
|
189
|
+
maxIndex
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function arrayFindMin(arr) {
|
|
193
|
+
if (!arr?.length) return 0;
|
|
194
|
+
let min = Number.POSITIVE_INFINITY;
|
|
195
|
+
let minIndex = 0;
|
|
196
|
+
for(let i = 0; i < arr.length; i += 1){
|
|
197
|
+
const item = arr[i];
|
|
198
|
+
if (item < min) {
|
|
199
|
+
min = item;
|
|
200
|
+
minIndex = i;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
min,
|
|
205
|
+
minIndex
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
const setTotalPoints = (segments, totalPoints)=>{
|
|
209
|
+
Object.defineProperty(segments, 'totalPoints', {
|
|
210
|
+
value: totalPoints,
|
|
211
|
+
enumerable: false,
|
|
212
|
+
configurable: true
|
|
213
|
+
});
|
|
214
|
+
return segments;
|
|
215
|
+
};
|
|
216
|
+
const generateFrequencyCache = (config)=>{
|
|
217
|
+
const { totalPoints, startFrequency, stopFrequency, index = 0 } = config;
|
|
218
|
+
const segmentWidth = stopFrequency - startFrequency;
|
|
219
|
+
if (1 === totalPoints) return [
|
|
220
|
+
{
|
|
221
|
+
frequency: getFrequencyToFixed(startFrequency),
|
|
222
|
+
startLeft: 100 * index / totalPoints,
|
|
223
|
+
endLeft: (index + 1) * 100 / totalPoints
|
|
224
|
+
}
|
|
225
|
+
];
|
|
226
|
+
return new Array(totalPoints).fill(0).map((_, i)=>{
|
|
227
|
+
const progress = i / (totalPoints - 1);
|
|
228
|
+
const freq = startFrequency + progress * segmentWidth;
|
|
229
|
+
return {
|
|
230
|
+
frequency: getFrequencyToFixed(freq),
|
|
231
|
+
startLeft: (index + i) * 100 / totalPoints,
|
|
232
|
+
endLeft: (index + i + 1) * 100 / totalPoints
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
const generateFrequencySegments = (e)=>{
|
|
237
|
+
const { frequency, bandwidth, totalPoints } = e;
|
|
238
|
+
const linearStart = frequency - bandwidth / 2000;
|
|
239
|
+
const linearStop = frequency + bandwidth / 2000;
|
|
240
|
+
if (linearStart <= 0 || linearStop <= 0) return [];
|
|
241
|
+
const frequencyCache = generateFrequencyCache({
|
|
242
|
+
totalPoints,
|
|
243
|
+
startFrequency: linearStart,
|
|
244
|
+
stopFrequency: linearStop,
|
|
245
|
+
stepFrequency: bandwidth / totalPoints
|
|
246
|
+
});
|
|
247
|
+
const segments = [
|
|
248
|
+
{
|
|
249
|
+
frequency,
|
|
250
|
+
bandwidth,
|
|
251
|
+
step: linearStop - linearStart,
|
|
252
|
+
start: linearStart,
|
|
253
|
+
stop: linearStop,
|
|
254
|
+
index: 0,
|
|
255
|
+
label: '',
|
|
256
|
+
point: totalPoints,
|
|
257
|
+
percentage: 1,
|
|
258
|
+
progress: [
|
|
259
|
+
0,
|
|
260
|
+
100
|
|
261
|
+
],
|
|
262
|
+
frequencyCache
|
|
263
|
+
}
|
|
264
|
+
];
|
|
265
|
+
return setTotalPoints(segments, totalPoints);
|
|
266
|
+
};
|
|
267
|
+
const generateGreatSegments = (prevSegments)=>{
|
|
268
|
+
if (!prevSegments?.length) return [];
|
|
269
|
+
const totalPoints = prevSegments.reduce((sum, { startFrequency, stopFrequency, stepFrequency })=>sum + Math.round((stopFrequency - startFrequency) * 1000 / stepFrequency) + 1, 0);
|
|
270
|
+
let cumulativePoints = 0;
|
|
271
|
+
const segments = prevSegments.map(({ startFrequency, stopFrequency, stepFrequency, label })=>{
|
|
272
|
+
const point = Math.round((stopFrequency - startFrequency) * 1000 / stepFrequency) + 1;
|
|
273
|
+
const index = cumulativePoints;
|
|
274
|
+
const frequencyCache = generateFrequencyCache({
|
|
275
|
+
totalPoints: point,
|
|
276
|
+
startFrequency,
|
|
277
|
+
stopFrequency,
|
|
278
|
+
stepFrequency,
|
|
279
|
+
index
|
|
280
|
+
});
|
|
281
|
+
cumulativePoints += point;
|
|
282
|
+
return {
|
|
283
|
+
start: startFrequency,
|
|
284
|
+
stop: stopFrequency,
|
|
285
|
+
step: stepFrequency,
|
|
286
|
+
index,
|
|
287
|
+
label,
|
|
288
|
+
point,
|
|
289
|
+
percentage: point / totalPoints,
|
|
290
|
+
progress: [
|
|
291
|
+
100 * index / totalPoints,
|
|
292
|
+
100 * cumulativePoints / totalPoints
|
|
293
|
+
],
|
|
294
|
+
frequencyCache
|
|
295
|
+
};
|
|
296
|
+
});
|
|
297
|
+
return setTotalPoints(segments, totalPoints);
|
|
298
|
+
};
|
|
299
|
+
function getDimInfo(d) {
|
|
300
|
+
if (!d) return {};
|
|
301
|
+
const valid = d.filter((f)=>isNumberAlias(f));
|
|
302
|
+
if (!valid?.length) return {};
|
|
303
|
+
const avg = eval(valid.join('+')) / valid.length;
|
|
304
|
+
const { min, minIndex } = arrayFindMin(valid);
|
|
305
|
+
const { max, maxIndex } = arrayFindMax(valid);
|
|
306
|
+
return {
|
|
307
|
+
min,
|
|
308
|
+
minIndex,
|
|
309
|
+
max,
|
|
310
|
+
maxIndex,
|
|
311
|
+
avg
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
const isNumberAlias = (n)=>Number.isFinite(+n);
|
|
315
|
+
const arrayKeepAttribute = (source, target)=>{
|
|
316
|
+
if (void 0 !== source.max) target.max = source.max;
|
|
317
|
+
if (void 0 !== source.maxIndex) target.maxIndex = source.maxIndex;
|
|
318
|
+
if (void 0 !== source.timestamp) target.timestamp = source.timestamp;
|
|
319
|
+
if (void 0 !== source.progress) target.progress = source.progress;
|
|
320
|
+
};
|
|
321
|
+
const weakenArray = (data, interval, factor)=>{
|
|
322
|
+
if (interval <= 0 || data.length <= interval) {
|
|
323
|
+
const result = Array.from({
|
|
324
|
+
length: data.length
|
|
325
|
+
}, (_, index)=>{
|
|
326
|
+
const value = data[index] + (factor?.[index] ?? 0);
|
|
327
|
+
return 0 === value ? 0 : value || void 0;
|
|
328
|
+
});
|
|
329
|
+
arrayKeepAttribute(data, result);
|
|
330
|
+
return result;
|
|
331
|
+
}
|
|
332
|
+
const ratio = data.length / interval;
|
|
333
|
+
const result = new Array(interval);
|
|
334
|
+
arrayKeepAttribute(data, result);
|
|
335
|
+
const step = ratio;
|
|
336
|
+
let currentIndex = ratio / 2;
|
|
337
|
+
const dataLength = data.length;
|
|
338
|
+
for(let i = 0; i < interval; i++){
|
|
339
|
+
const start = Math.floor(currentIndex);
|
|
340
|
+
const end = Math.min(Math.floor(currentIndex + step), dataLength);
|
|
341
|
+
let max = data[start];
|
|
342
|
+
for(let j = start + 1; j < end; j++)if (data[j] > max) max = data[j];
|
|
343
|
+
const value = factor ? max + (factor[start] ?? 0) : max;
|
|
344
|
+
result[i] = 0 === value ? 0 : value || void 0;
|
|
345
|
+
currentIndex += step;
|
|
346
|
+
}
|
|
347
|
+
return result;
|
|
348
|
+
};
|
|
349
|
+
const getRowCol = (unknownArray)=>{
|
|
350
|
+
const row = unknownArray.length;
|
|
351
|
+
const col = Math.max(...unknownArray.map((r)=>r?.length));
|
|
352
|
+
return {
|
|
353
|
+
row,
|
|
354
|
+
col
|
|
355
|
+
};
|
|
356
|
+
};
|
|
357
|
+
function expandArray(arr) {
|
|
358
|
+
const expandedArray = [];
|
|
359
|
+
for(let i = 0; i < arr.length - 1; i += 1){
|
|
360
|
+
const current = arr[i];
|
|
361
|
+
const next = arr[i + 1];
|
|
362
|
+
const step = (next - current) / 10;
|
|
363
|
+
expandedArray.push(current);
|
|
364
|
+
for(let j = 1; j <= 9; j += 1){
|
|
365
|
+
const newValue = current + step * j;
|
|
366
|
+
expandedArray.push(newValue);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
expandedArray.push(arr[arr.length - 1]);
|
|
370
|
+
return expandedArray;
|
|
371
|
+
}
|
|
372
|
+
function getThemeFillStyle() {
|
|
373
|
+
const computedStyles = getComputedStyle(document.documentElement);
|
|
374
|
+
const themeColorBase = computedStyles.getPropertyValue('--theme-color-base').trim();
|
|
375
|
+
const themeColorPrimary = computedStyles.getPropertyValue('--theme-color-primary').trim();
|
|
376
|
+
const fillStyle = `${themeColorBase}B0`;
|
|
377
|
+
const fillStylePrimary = themeColorPrimary;
|
|
378
|
+
const fillStyleTransparentBase = `${themeColorBase}10`;
|
|
379
|
+
return {
|
|
380
|
+
fillStyle,
|
|
381
|
+
fillStylePrimary,
|
|
382
|
+
fillStyleTransparentBase
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
const mergeObjects = (e, params)=>{
|
|
386
|
+
const p = e;
|
|
387
|
+
Object.keys(p).forEach((k)=>{
|
|
388
|
+
if ('[object Object]' === Object.prototype.toString.call(params[k])) p[k] = {
|
|
389
|
+
...p[k],
|
|
390
|
+
...params[k]
|
|
391
|
+
};
|
|
392
|
+
else if (void 0 !== params[k]) p[k] = params[k];
|
|
393
|
+
});
|
|
394
|
+
return p;
|
|
395
|
+
};
|
|
396
|
+
function getMidIndex(indexStart, indexEnd) {
|
|
397
|
+
if (indexStart < 0 || indexEnd < 0 || indexStart > indexEnd) throw new Error('Invalid index range');
|
|
398
|
+
return indexStart + Math.floor((indexEnd - indexStart) / 2);
|
|
399
|
+
}
|
|
400
|
+
const getFrequencyToFixed = (frequency, fixedNum = 6)=>{
|
|
401
|
+
if (!frequency && 0 !== frequency) return '';
|
|
402
|
+
const fixed = Number.parseFloat(frequency.toFixed(fixedNum));
|
|
403
|
+
return Number.isFinite(fixed) ? String(fixed) : '';
|
|
404
|
+
};
|
|
405
|
+
const createChartRenderID = ({ moduleType, globalID })=>{
|
|
406
|
+
if (moduleType && globalID) return `${moduleType}-${globalID}`;
|
|
407
|
+
return createGUID();
|
|
408
|
+
};
|
|
409
|
+
const convertToTimestampedArrays = (data, timestamps)=>{
|
|
410
|
+
if (!data || !Array.isArray(data)) return [];
|
|
411
|
+
return Array.from({
|
|
412
|
+
length: data.length
|
|
413
|
+
}, (_, i)=>{
|
|
414
|
+
const d = data[i];
|
|
415
|
+
const frame = new Float32Array(d.length);
|
|
416
|
+
frame.set(d);
|
|
417
|
+
frame.timestamp = timestamps[i];
|
|
418
|
+
return frame;
|
|
419
|
+
});
|
|
420
|
+
};
|
|
421
|
+
const debounce = (fn, delay = 1000 / 30)=>{
|
|
422
|
+
let timer = null;
|
|
423
|
+
const debouncedFunction = (...args)=>{
|
|
424
|
+
if (timer) clearTimeout(timer);
|
|
425
|
+
timer = setTimeout(()=>{
|
|
426
|
+
fn(...args);
|
|
427
|
+
}, delay);
|
|
428
|
+
};
|
|
429
|
+
debouncedFunction.cancel = ()=>{
|
|
430
|
+
if (timer) {
|
|
431
|
+
clearTimeout(timer);
|
|
432
|
+
timer = null;
|
|
433
|
+
}
|
|
434
|
+
};
|
|
435
|
+
return debouncedFunction;
|
|
436
|
+
};
|
|
437
|
+
function debounceRequestAnimationFrame(func = ()=>{}) {
|
|
438
|
+
let scheduled = false;
|
|
439
|
+
return (...args)=>{
|
|
440
|
+
if (!scheduled) {
|
|
441
|
+
scheduled = true;
|
|
442
|
+
requestAnimationFrame(()=>{
|
|
443
|
+
func(...args);
|
|
444
|
+
scheduled = false;
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
},
|
|
7
450
|
"../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/AxisX/styles.module.less": function(module, __webpack_exports__, __webpack_require__) {
|
|
8
451
|
__webpack_require__.d(__webpack_exports__, {
|
|
9
452
|
Z: ()=>__WEBPACK_DEFAULT_EXPORT__
|
|
@@ -3221,6 +3664,16 @@ function __webpack_require__(moduleId) {
|
|
|
3221
3664
|
(()=>{
|
|
3222
3665
|
__webpack_require__.nc = void 0;
|
|
3223
3666
|
})();
|
|
3667
|
+
const STORAGE_KEY = 'rfkit-charts-frequency-allocation';
|
|
3668
|
+
const getFrequencyAllocationFromCache = ()=>{
|
|
3669
|
+
const cached = localStorage.getItem(STORAGE_KEY);
|
|
3670
|
+
if (!cached) return null;
|
|
3671
|
+
const data = JSON.parse(cached);
|
|
3672
|
+
return Array.isArray(data) ? data : null;
|
|
3673
|
+
};
|
|
3674
|
+
const setFrequencyAllocationToCache = (data)=>{
|
|
3675
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
|
|
3676
|
+
};
|
|
3224
3677
|
const KEY = 'DCHARTS_CONFIG';
|
|
3225
3678
|
const defaultConfig = {
|
|
3226
3679
|
line: {
|
|
@@ -3621,334 +4074,7 @@ function withChartPublisher(ChartComponent, componentName) {
|
|
|
3621
4074
|
ChartWrapper.displayName = `withChartPublisher(${componentName})`;
|
|
3622
4075
|
return ChartWrapper;
|
|
3623
4076
|
}
|
|
3624
|
-
|
|
3625
|
-
const getDateTime = (t = Date.now(), sep1 = '-', sep2 = ':', time = false)=>{
|
|
3626
|
-
if (!t) return '';
|
|
3627
|
-
let timestamp;
|
|
3628
|
-
if (t instanceof Date) timestamp = t.getTime();
|
|
3629
|
-
else {
|
|
3630
|
-
if ('number' != typeof t) return '';
|
|
3631
|
-
timestamp = t;
|
|
3632
|
-
if (10 === timestamp.toString().length) timestamp *= 1000;
|
|
3633
|
-
}
|
|
3634
|
-
const date = new Date(timestamp);
|
|
3635
|
-
if (Number.isNaN(date.getTime())) return '';
|
|
3636
|
-
const year = date.getFullYear();
|
|
3637
|
-
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
3638
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
3639
|
-
const hours = String(date.getHours()).padStart(2, '0');
|
|
3640
|
-
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
3641
|
-
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
3642
|
-
const timeStr = `${hours}${sep2}${minutes}${sep2}${seconds}`;
|
|
3643
|
-
if (time) return timeStr;
|
|
3644
|
-
const dateStr = `${year}${sep1}${month}${sep1}${day}`;
|
|
3645
|
-
return `${dateStr} ${timeStr}`;
|
|
3646
|
-
};
|
|
3647
|
-
function utils_throttle(func = ()=>{}, wait = 1000 / 30) {
|
|
3648
|
-
let prev = 0;
|
|
3649
|
-
return (...arg)=>{
|
|
3650
|
-
const now = Date.now();
|
|
3651
|
-
const timeSinceLastCall = now - prev;
|
|
3652
|
-
if (timeSinceLastCall >= wait) {
|
|
3653
|
-
func(...arg);
|
|
3654
|
-
prev = now;
|
|
3655
|
-
}
|
|
3656
|
-
};
|
|
3657
|
-
}
|
|
3658
|
-
function throttleTimer(func = ()=>{}, wait) {
|
|
3659
|
-
let timer = null;
|
|
3660
|
-
return (e)=>{
|
|
3661
|
-
clearTimeout(timer);
|
|
3662
|
-
timer = setTimeout(()=>{
|
|
3663
|
-
func(e);
|
|
3664
|
-
}, wait || 100);
|
|
3665
|
-
};
|
|
3666
|
-
}
|
|
3667
|
-
const leftSegments2frequency = (segments)=>{
|
|
3668
|
-
if (!segments?.length) return ()=>'';
|
|
3669
|
-
const { totalPoints } = segments;
|
|
3670
|
-
const segmentInfo = segments.map((segment, index)=>{
|
|
3671
|
-
const { point, frequencyCache } = segment;
|
|
3672
|
-
const ll = 100 * point / totalPoints;
|
|
3673
|
-
return {
|
|
3674
|
-
ll,
|
|
3675
|
-
frequencyCache,
|
|
3676
|
-
startLeft: 0 === index ? 0 : segments.slice(0, index).reduce((sum, s)=>sum + 100 * s.point / totalPoints, 0)
|
|
3677
|
-
};
|
|
3678
|
-
});
|
|
3679
|
-
return (left)=>{
|
|
3680
|
-
if (left <= 0) return String(segments[0]?.start);
|
|
3681
|
-
if (left >= 100) return String(segments[segments.length - 1]?.stop);
|
|
3682
|
-
let low = 0;
|
|
3683
|
-
let high = segmentInfo.length - 1;
|
|
3684
|
-
while(low <= high){
|
|
3685
|
-
const mid = low + high >>> 1;
|
|
3686
|
-
const { startLeft, ll } = segmentInfo[mid];
|
|
3687
|
-
if (left >= startLeft && left < startLeft + ll) {
|
|
3688
|
-
const { frequencyCache } = segmentInfo[mid];
|
|
3689
|
-
const relativeLeft = left - startLeft;
|
|
3690
|
-
const ratio = relativeLeft / ll;
|
|
3691
|
-
const index = Math.min(Math.ceil(ratio * frequencyCache.length) - 1, frequencyCache.length - 1);
|
|
3692
|
-
return frequencyCache[index]?.frequency ?? '';
|
|
3693
|
-
}
|
|
3694
|
-
if (left < startLeft) high = mid - 1;
|
|
3695
|
-
else low = mid + 1;
|
|
3696
|
-
}
|
|
3697
|
-
return '';
|
|
3698
|
-
};
|
|
3699
|
-
};
|
|
3700
|
-
const leftSegmentsFindStep = (segments)=>(left)=>{
|
|
3701
|
-
if (!segments || 0 === left || 100 === left) return 0;
|
|
3702
|
-
const { totalPoints } = segments;
|
|
3703
|
-
let l = left;
|
|
3704
|
-
for(let i = 0; i < segments.length; i += 1){
|
|
3705
|
-
const { point } = segments[i];
|
|
3706
|
-
const ll = 100 * point / totalPoints;
|
|
3707
|
-
if (l - ll <= 0) return ll / point;
|
|
3708
|
-
l -= ll;
|
|
3709
|
-
}
|
|
3710
|
-
return 0;
|
|
3711
|
-
};
|
|
3712
|
-
function leftPoints2frequency(points) {
|
|
3713
|
-
const len = points.length;
|
|
3714
|
-
return (left)=>{
|
|
3715
|
-
if (0 === len) return;
|
|
3716
|
-
let index = Math.ceil(left * len / 100) - 1;
|
|
3717
|
-
if (-1 === index) index = 0;
|
|
3718
|
-
return points[index];
|
|
3719
|
-
};
|
|
3720
|
-
}
|
|
3721
|
-
const scopeLeftSegments2bandwidth = (e)=>{
|
|
3722
|
-
if (!e) return 0;
|
|
3723
|
-
const { segments } = e;
|
|
3724
|
-
if (!segments) return 0;
|
|
3725
|
-
const { totalPoints } = segments;
|
|
3726
|
-
let { endLeft, startLeft } = e;
|
|
3727
|
-
const diff = endLeft - startLeft;
|
|
3728
|
-
const diffabs = Math.abs(diff);
|
|
3729
|
-
if (diff < 0) {
|
|
3730
|
-
startLeft = e.endLeft;
|
|
3731
|
-
endLeft = e.startLeft;
|
|
3732
|
-
}
|
|
3733
|
-
let width = 0;
|
|
3734
|
-
let startTag = false;
|
|
3735
|
-
for(let i = 0; i < segments.length; i += 1){
|
|
3736
|
-
const { step, start, stop, point } = segments[i];
|
|
3737
|
-
const ll = 100 * point / totalPoints;
|
|
3738
|
-
const quark = step / 1000;
|
|
3739
|
-
const haveStart = startLeft - ll <= 0;
|
|
3740
|
-
const haveEnd = endLeft - ll <= 0;
|
|
3741
|
-
if (!startTag && haveStart && haveEnd) return Math.round(diffabs / ll * point) * quark;
|
|
3742
|
-
if (haveStart && !startTag) {
|
|
3743
|
-
startTag = true;
|
|
3744
|
-
width += Math.round((1 - startLeft / ll) * point) * quark;
|
|
3745
|
-
}
|
|
3746
|
-
if (haveEnd) {
|
|
3747
|
-
width += Math.round(endLeft / ll * point) * quark;
|
|
3748
|
-
return width;
|
|
3749
|
-
}
|
|
3750
|
-
if (startLeft < 0 && !haveEnd) width += stop - start;
|
|
3751
|
-
startLeft -= ll;
|
|
3752
|
-
endLeft -= ll;
|
|
3753
|
-
}
|
|
3754
|
-
return 0;
|
|
3755
|
-
};
|
|
3756
|
-
function isdBm(unit) {
|
|
3757
|
-
return unit?.slice(0, 3) === 'dBm';
|
|
3758
|
-
}
|
|
3759
|
-
function arrayFindMax(arr) {
|
|
3760
|
-
if (!arr?.length) return {};
|
|
3761
|
-
let max = Number.NEGATIVE_INFINITY;
|
|
3762
|
-
let maxIndex = 0;
|
|
3763
|
-
for(let i = 0; i < arr.length; i += 1){
|
|
3764
|
-
const item = arr[i];
|
|
3765
|
-
if (item > max) {
|
|
3766
|
-
max = item;
|
|
3767
|
-
maxIndex = i;
|
|
3768
|
-
}
|
|
3769
|
-
}
|
|
3770
|
-
return {
|
|
3771
|
-
max,
|
|
3772
|
-
maxIndex
|
|
3773
|
-
};
|
|
3774
|
-
}
|
|
3775
|
-
function arrayFindMin(arr) {
|
|
3776
|
-
if (!arr?.length) return 0;
|
|
3777
|
-
let min = Number.POSITIVE_INFINITY;
|
|
3778
|
-
let minIndex = 0;
|
|
3779
|
-
for(let i = 0; i < arr.length; i += 1){
|
|
3780
|
-
const item = arr[i];
|
|
3781
|
-
if (item < min) {
|
|
3782
|
-
min = item;
|
|
3783
|
-
minIndex = i;
|
|
3784
|
-
}
|
|
3785
|
-
}
|
|
3786
|
-
return {
|
|
3787
|
-
min,
|
|
3788
|
-
minIndex
|
|
3789
|
-
};
|
|
3790
|
-
}
|
|
3791
|
-
const setTotalPoints = (segments, totalPoints)=>{
|
|
3792
|
-
Object.defineProperty(segments, 'totalPoints', {
|
|
3793
|
-
value: totalPoints,
|
|
3794
|
-
enumerable: false,
|
|
3795
|
-
configurable: true
|
|
3796
|
-
});
|
|
3797
|
-
return segments;
|
|
3798
|
-
};
|
|
3799
|
-
const generateFrequencyCache = (config)=>{
|
|
3800
|
-
const { totalPoints, startFrequency, stopFrequency, index = 0 } = config;
|
|
3801
|
-
const segmentWidth = stopFrequency - startFrequency;
|
|
3802
|
-
if (1 === totalPoints) return [
|
|
3803
|
-
{
|
|
3804
|
-
frequency: getFrequencyToFixed(startFrequency),
|
|
3805
|
-
startLeft: 100 * index / totalPoints,
|
|
3806
|
-
endLeft: (index + 1) * 100 / totalPoints
|
|
3807
|
-
}
|
|
3808
|
-
];
|
|
3809
|
-
return new Array(totalPoints).fill(0).map((_, i)=>{
|
|
3810
|
-
const progress = i / (totalPoints - 1);
|
|
3811
|
-
const freq = startFrequency + progress * segmentWidth;
|
|
3812
|
-
return {
|
|
3813
|
-
frequency: getFrequencyToFixed(freq),
|
|
3814
|
-
startLeft: (index + i) * 100 / totalPoints,
|
|
3815
|
-
endLeft: (index + i + 1) * 100 / totalPoints
|
|
3816
|
-
};
|
|
3817
|
-
});
|
|
3818
|
-
};
|
|
3819
|
-
const generateFrequencySegments = (e)=>{
|
|
3820
|
-
const { frequency, bandwidth, totalPoints } = e;
|
|
3821
|
-
const linearStart = frequency - bandwidth / 2000;
|
|
3822
|
-
const linearStop = frequency + bandwidth / 2000;
|
|
3823
|
-
if (linearStart <= 0 || linearStop <= 0) return [];
|
|
3824
|
-
const frequencyCache = generateFrequencyCache({
|
|
3825
|
-
totalPoints,
|
|
3826
|
-
startFrequency: linearStart,
|
|
3827
|
-
stopFrequency: linearStop,
|
|
3828
|
-
stepFrequency: bandwidth / totalPoints
|
|
3829
|
-
});
|
|
3830
|
-
const segments = [
|
|
3831
|
-
{
|
|
3832
|
-
frequency,
|
|
3833
|
-
bandwidth,
|
|
3834
|
-
step: linearStop - linearStart,
|
|
3835
|
-
start: linearStart,
|
|
3836
|
-
stop: linearStop,
|
|
3837
|
-
index: 0,
|
|
3838
|
-
label: '',
|
|
3839
|
-
point: totalPoints,
|
|
3840
|
-
percentage: 1,
|
|
3841
|
-
progress: [
|
|
3842
|
-
0,
|
|
3843
|
-
100
|
|
3844
|
-
],
|
|
3845
|
-
frequencyCache
|
|
3846
|
-
}
|
|
3847
|
-
];
|
|
3848
|
-
return setTotalPoints(segments, totalPoints);
|
|
3849
|
-
};
|
|
3850
|
-
const generateGreatSegments = (prevSegments)=>{
|
|
3851
|
-
if (!prevSegments?.length) return [];
|
|
3852
|
-
const totalPoints = prevSegments.reduce((sum, { startFrequency, stopFrequency, stepFrequency })=>sum + Math.round((stopFrequency - startFrequency) * 1000 / stepFrequency) + 1, 0);
|
|
3853
|
-
let cumulativePoints = 0;
|
|
3854
|
-
const segments = prevSegments.map(({ startFrequency, stopFrequency, stepFrequency, label })=>{
|
|
3855
|
-
const point = Math.round((stopFrequency - startFrequency) * 1000 / stepFrequency) + 1;
|
|
3856
|
-
const index = cumulativePoints;
|
|
3857
|
-
const frequencyCache = generateFrequencyCache({
|
|
3858
|
-
totalPoints: point,
|
|
3859
|
-
startFrequency,
|
|
3860
|
-
stopFrequency,
|
|
3861
|
-
stepFrequency,
|
|
3862
|
-
index
|
|
3863
|
-
});
|
|
3864
|
-
cumulativePoints += point;
|
|
3865
|
-
return {
|
|
3866
|
-
start: startFrequency,
|
|
3867
|
-
stop: stopFrequency,
|
|
3868
|
-
step: stepFrequency,
|
|
3869
|
-
index,
|
|
3870
|
-
label,
|
|
3871
|
-
point,
|
|
3872
|
-
percentage: point / totalPoints,
|
|
3873
|
-
progress: [
|
|
3874
|
-
100 * index / totalPoints,
|
|
3875
|
-
100 * cumulativePoints / totalPoints
|
|
3876
|
-
],
|
|
3877
|
-
frequencyCache
|
|
3878
|
-
};
|
|
3879
|
-
});
|
|
3880
|
-
return setTotalPoints(segments, totalPoints);
|
|
3881
|
-
};
|
|
3882
|
-
function getDimInfo(d) {
|
|
3883
|
-
if (!d) return {};
|
|
3884
|
-
const valid = d.filter((f)=>isNumberAlias(f));
|
|
3885
|
-
if (!valid?.length) return {};
|
|
3886
|
-
const eval2 = eval;
|
|
3887
|
-
const avg = eval2(valid.join('+')) / valid.length;
|
|
3888
|
-
const { min, minIndex } = arrayFindMin(valid);
|
|
3889
|
-
const { max, maxIndex } = arrayFindMax(valid);
|
|
3890
|
-
return {
|
|
3891
|
-
min,
|
|
3892
|
-
minIndex,
|
|
3893
|
-
max,
|
|
3894
|
-
maxIndex,
|
|
3895
|
-
avg
|
|
3896
|
-
};
|
|
3897
|
-
}
|
|
3898
|
-
const isNumberAlias = (n)=>Number.isFinite(+n);
|
|
3899
|
-
const getRowCol = (unknownArray)=>{
|
|
3900
|
-
const row = unknownArray.length;
|
|
3901
|
-
const col = Math.max(...unknownArray.map((r)=>r?.length));
|
|
3902
|
-
return {
|
|
3903
|
-
row,
|
|
3904
|
-
col
|
|
3905
|
-
};
|
|
3906
|
-
};
|
|
3907
|
-
function getThemeFillStyle() {
|
|
3908
|
-
const computedStyles = getComputedStyle(document.documentElement);
|
|
3909
|
-
const themeColorBase = computedStyles.getPropertyValue('--theme-color-base').trim();
|
|
3910
|
-
const themeColorPrimary = computedStyles.getPropertyValue('--theme-color-primary').trim();
|
|
3911
|
-
const fillStyle = `${themeColorBase}B0`;
|
|
3912
|
-
const fillStylePrimary = themeColorPrimary;
|
|
3913
|
-
const fillStyleTransparentBase = `${themeColorBase}10`;
|
|
3914
|
-
return {
|
|
3915
|
-
fillStyle,
|
|
3916
|
-
fillStylePrimary,
|
|
3917
|
-
fillStyleTransparentBase
|
|
3918
|
-
};
|
|
3919
|
-
}
|
|
3920
|
-
const mergeObjects = (e, params)=>{
|
|
3921
|
-
const p = e;
|
|
3922
|
-
Object.keys(p).forEach((k)=>{
|
|
3923
|
-
if ('[object Object]' === Object.prototype.toString.call(params[k])) p[k] = {
|
|
3924
|
-
...p[k],
|
|
3925
|
-
...params[k]
|
|
3926
|
-
};
|
|
3927
|
-
else if (void 0 !== params[k]) p[k] = params[k];
|
|
3928
|
-
});
|
|
3929
|
-
return p;
|
|
3930
|
-
};
|
|
3931
|
-
function getMidIndex(indexStart, indexEnd) {
|
|
3932
|
-
if (indexStart < 0 || indexEnd < 0 || indexStart > indexEnd) throw new Error('Invalid index range');
|
|
3933
|
-
return indexStart + Math.floor((indexEnd - indexStart) / 2);
|
|
3934
|
-
}
|
|
3935
|
-
const getFrequencyToFixed = (frequency, fixedNum = 6)=>{
|
|
3936
|
-
if (!frequency && 0 !== frequency) return '';
|
|
3937
|
-
const fixed = Number.parseFloat(frequency.toFixed(fixedNum));
|
|
3938
|
-
return Number.isFinite(fixed) ? String(fixed) : '';
|
|
3939
|
-
};
|
|
3940
|
-
const convertToTimestampedArrays = (data, timestamps)=>{
|
|
3941
|
-
if (!data || !Array.isArray(data)) return [];
|
|
3942
|
-
return Array.from({
|
|
3943
|
-
length: data.length
|
|
3944
|
-
}, (_, i)=>{
|
|
3945
|
-
const d = data[i];
|
|
3946
|
-
const frame = new Float32Array(d.length);
|
|
3947
|
-
frame.set(d);
|
|
3948
|
-
frame.timestamp = timestamps[i];
|
|
3949
|
-
return frame;
|
|
3950
|
-
});
|
|
3951
|
-
};
|
|
4077
|
+
var utils = __webpack_require__("./src/utils/index.ts");
|
|
3952
4078
|
const AppContext = __WEBPACK_EXTERNAL_MODULE_react__["default"].createContext({});
|
|
3953
4079
|
const store_context = AppContext;
|
|
3954
4080
|
var store_HeatmapCaptureType = /*#__PURE__*/ function(HeatmapCaptureType) {
|
|
@@ -3995,618 +4121,6 @@ const intervalDefault = {
|
|
|
3995
4121
|
end: weakenDefault
|
|
3996
4122
|
};
|
|
3997
4123
|
const dataRateDefault = 1;
|
|
3998
|
-
const originalFrequencyAllocationData = [
|
|
3999
|
-
{
|
|
4000
|
-
startFrequency: 87,
|
|
4001
|
-
stopFrequency: 108,
|
|
4002
|
-
defaultStep: 100,
|
|
4003
|
-
defaultBandwidth: 150,
|
|
4004
|
-
modulation: 'AM',
|
|
4005
|
-
demodulation: "\u4E0D\u89E3\u8C03",
|
|
4006
|
-
allocation: "FM\u5E7F\u64AD",
|
|
4007
|
-
status: "\u5408\u6CD5",
|
|
4008
|
-
color: '#FF7F50',
|
|
4009
|
-
title: "FM\u5E7F\u64AD",
|
|
4010
|
-
description: "FM\u8C03\u9891\u5E7F\u64AD\u9891\u6BB5\uFF0C\u7528\u4E8E\u97F3\u9891\u5E7F\u64AD\u670D\u52A1"
|
|
4011
|
-
},
|
|
4012
|
-
{
|
|
4013
|
-
startFrequency: 108,
|
|
4014
|
-
stopFrequency: 118,
|
|
4015
|
-
defaultStep: 50,
|
|
4016
|
-
defaultBandwidth: 100,
|
|
4017
|
-
modulation: 'FM',
|
|
4018
|
-
demodulation: "\u89E3\u8C03",
|
|
4019
|
-
allocation: "\u822A\u7A7A\u5BFC\u822A",
|
|
4020
|
-
status: "\u5408\u6CD5",
|
|
4021
|
-
color: '#4169E1',
|
|
4022
|
-
title: "\u822A\u7A7A\u5BFC\u822A",
|
|
4023
|
-
description: "\u822A\u7A7A\u65E0\u7EBF\u7535\u5BFC\u822A\u9891\u6BB5\uFF0C\u7528\u4E8E\u4EEA\u8868\u7740\u9646\u7CFB\u7EDF\u7B49"
|
|
4024
|
-
},
|
|
4025
|
-
{
|
|
4026
|
-
startFrequency: 118,
|
|
4027
|
-
stopFrequency: 137,
|
|
4028
|
-
defaultStep: 25,
|
|
4029
|
-
defaultBandwidth: 50,
|
|
4030
|
-
modulation: 'AM',
|
|
4031
|
-
demodulation: "\u89E3\u8C03",
|
|
4032
|
-
allocation: "\u822A\u7A7A\u8BED\u97F3\u901A\u4FE1",
|
|
4033
|
-
status: "\u5408\u6CD5",
|
|
4034
|
-
color: '#32CD32',
|
|
4035
|
-
title: "\u822A\u7A7A\u8BED\u97F3\u901A\u4FE1",
|
|
4036
|
-
description: "\u6C11\u7528\u822A\u7A7A\u8BED\u97F3\u901A\u4FE1\u9891\u6BB5"
|
|
4037
|
-
},
|
|
4038
|
-
{
|
|
4039
|
-
startFrequency: 121,
|
|
4040
|
-
stopFrequency: 122,
|
|
4041
|
-
defaultStep: 25,
|
|
4042
|
-
defaultBandwidth: 50,
|
|
4043
|
-
modulation: 'FM',
|
|
4044
|
-
demodulation: "\u89E3\u8C03",
|
|
4045
|
-
allocation: "\u7D27\u6025\u901A\u4FE1",
|
|
4046
|
-
status: "\u5408\u6CD5",
|
|
4047
|
-
color: '#FF4500',
|
|
4048
|
-
title: "\u7D27\u6025\u901A\u4FE1",
|
|
4049
|
-
description: "\u7D27\u6025\u60C5\u51B5\u901A\u4FE1\u4E13\u7528\u9891\u6BB5"
|
|
4050
|
-
},
|
|
4051
|
-
{
|
|
4052
|
-
startFrequency: 136,
|
|
4053
|
-
stopFrequency: 174,
|
|
4054
|
-
defaultStep: 25,
|
|
4055
|
-
defaultBandwidth: 50,
|
|
4056
|
-
modulation: 'FM',
|
|
4057
|
-
demodulation: "\u89E3\u8C03",
|
|
4058
|
-
allocation: "\u5BF9\u8BB2\u901A\u4FE1",
|
|
4059
|
-
status: "\u5408\u6CD5",
|
|
4060
|
-
color: '#9370DB',
|
|
4061
|
-
title: "\u5BF9\u8BB2\u901A\u4FE1",
|
|
4062
|
-
description: "\u4E13\u4E1A\u65E0\u7EBF\u5BF9\u8BB2\u901A\u4FE1\u9891\u6BB5"
|
|
4063
|
-
},
|
|
4064
|
-
{
|
|
4065
|
-
startFrequency: 161,
|
|
4066
|
-
stopFrequency: 162,
|
|
4067
|
-
defaultStep: 25,
|
|
4068
|
-
defaultBandwidth: 50,
|
|
4069
|
-
modulation: 'GMSK',
|
|
4070
|
-
demodulation: "\u89E3\u8C03",
|
|
4071
|
-
allocation: "AIS\u8239\u8236\u901A\u4FE1",
|
|
4072
|
-
status: "\u5408\u6CD5",
|
|
4073
|
-
color: '#4682B4',
|
|
4074
|
-
title: "AIS\u8239\u8236\u901A\u4FE1",
|
|
4075
|
-
description: "\u8239\u8236\u81EA\u52A8\u8BC6\u522B\u7CFB\u7EDF(AIS)\u4E13\u7528\u9891\u6BB5"
|
|
4076
|
-
},
|
|
4077
|
-
{
|
|
4078
|
-
startFrequency: 351,
|
|
4079
|
-
stopFrequency: 400,
|
|
4080
|
-
defaultStep: 25,
|
|
4081
|
-
defaultBandwidth: 50,
|
|
4082
|
-
modulation: 'FM',
|
|
4083
|
-
demodulation: "\u89E3\u8C03",
|
|
4084
|
-
allocation: "\u96C6\u7FA4\u901A\u4FE1",
|
|
4085
|
-
status: "\u5408\u6CD5",
|
|
4086
|
-
color: '#20B2AA',
|
|
4087
|
-
title: "\u96C6\u7FA4\u901A\u4FE1",
|
|
4088
|
-
description: "\u4E13\u4E1A\u96C6\u7FA4\u901A\u4FE1\u7CFB\u7EDF\u9891\u6BB5"
|
|
4089
|
-
},
|
|
4090
|
-
{
|
|
4091
|
-
startFrequency: 400,
|
|
4092
|
-
stopFrequency: 470,
|
|
4093
|
-
defaultStep: 25,
|
|
4094
|
-
defaultBandwidth: 50,
|
|
4095
|
-
modulation: 'FM',
|
|
4096
|
-
demodulation: "\u89E3\u8C03",
|
|
4097
|
-
allocation: "\u4E13\u4E1A\u5BF9\u8BB2",
|
|
4098
|
-
status: "\u5408\u6CD5",
|
|
4099
|
-
color: '#DDA0DD',
|
|
4100
|
-
title: "\u4E13\u4E1A\u5BF9\u8BB2",
|
|
4101
|
-
description: "\u4E13\u4E1A\u65E0\u7EBF\u5BF9\u8BB2\u901A\u4FE1\u9891\u6BB5"
|
|
4102
|
-
},
|
|
4103
|
-
{
|
|
4104
|
-
startFrequency: 534,
|
|
4105
|
-
stopFrequency: 542,
|
|
4106
|
-
defaultStep: 100,
|
|
4107
|
-
defaultBandwidth: 8000,
|
|
4108
|
-
modulation: 'OFDM',
|
|
4109
|
-
demodulation: "\u89E3\u8C03",
|
|
4110
|
-
allocation: "\u6570\u5B57\u7535\u89C6",
|
|
4111
|
-
status: "\u5408\u6CD5",
|
|
4112
|
-
color: '#F08080',
|
|
4113
|
-
title: "\u6570\u5B57\u7535\u89C6",
|
|
4114
|
-
description: "\u6570\u5B57\u7535\u89C6\u5E7F\u64AD\u9891\u6BB5"
|
|
4115
|
-
},
|
|
4116
|
-
{
|
|
4117
|
-
startFrequency: 622,
|
|
4118
|
-
stopFrequency: 630,
|
|
4119
|
-
defaultStep: 100,
|
|
4120
|
-
defaultBandwidth: 8000,
|
|
4121
|
-
modulation: 'OFDM',
|
|
4122
|
-
demodulation: "\u89E3\u8C03",
|
|
4123
|
-
allocation: "\u6570\u5B57\u7535\u89C6",
|
|
4124
|
-
status: "\u5408\u6CD5",
|
|
4125
|
-
color: '#87CEFA',
|
|
4126
|
-
title: "\u6570\u5B57\u7535\u89C6",
|
|
4127
|
-
description: "\u6570\u5B57\u7535\u89C6\u5E7F\u64AD\u9891\u6BB5"
|
|
4128
|
-
},
|
|
4129
|
-
{
|
|
4130
|
-
startFrequency: 703,
|
|
4131
|
-
stopFrequency: 733,
|
|
4132
|
-
defaultStep: 100,
|
|
4133
|
-
defaultBandwidth: 30000,
|
|
4134
|
-
modulation: 'OFDMA',
|
|
4135
|
-
demodulation: "\u89E3\u8C03",
|
|
4136
|
-
allocation: "5G\u4E0A\u884C(\u5E7F\u7535/\u79FB\u52A8)",
|
|
4137
|
-
status: "\u5408\u6CD5",
|
|
4138
|
-
color: '#9ACD32',
|
|
4139
|
-
title: "5G\u4E0A\u884C(\u5E7F\u7535/\u79FB\u52A8)",
|
|
4140
|
-
description: "\u5E7F\u7535\u548C\u79FB\u52A85G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4141
|
-
},
|
|
4142
|
-
{
|
|
4143
|
-
startFrequency: 758,
|
|
4144
|
-
stopFrequency: 788,
|
|
4145
|
-
defaultStep: 100,
|
|
4146
|
-
defaultBandwidth: 30000,
|
|
4147
|
-
modulation: 'OFDMA',
|
|
4148
|
-
demodulation: "\u89E3\u8C03",
|
|
4149
|
-
allocation: "5G\u4E0B\u884C(\u5E7F\u7535/\u79FB\u52A8)",
|
|
4150
|
-
status: "\u5408\u6CD5",
|
|
4151
|
-
color: '#7B68EE',
|
|
4152
|
-
title: "5G\u4E0B\u884C(\u5E7F\u7535/\u79FB\u52A8)",
|
|
4153
|
-
description: "\u5E7F\u7535\u548C\u79FB\u52A85G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4154
|
-
},
|
|
4155
|
-
{
|
|
4156
|
-
startFrequency: 806,
|
|
4157
|
-
stopFrequency: 821,
|
|
4158
|
-
defaultStep: 25,
|
|
4159
|
-
defaultBandwidth: 50,
|
|
4160
|
-
modulation: "\u03C0/4DQPSK",
|
|
4161
|
-
demodulation: "\u89E3\u8C03",
|
|
4162
|
-
allocation: "\u6570\u5B57\u96C6\u7FA4\u4E0A\u884C",
|
|
4163
|
-
status: "\u5408\u6CD5",
|
|
4164
|
-
color: '#FFA500',
|
|
4165
|
-
title: "\u6570\u5B57\u96C6\u7FA4\u4E0A\u884C",
|
|
4166
|
-
description: "\u6570\u5B57\u96C6\u7FA4\u901A\u4FE1\u7CFB\u7EDF(TETRA)\u4E0A\u884C\u9891\u6BB5"
|
|
4167
|
-
},
|
|
4168
|
-
{
|
|
4169
|
-
startFrequency: 824,
|
|
4170
|
-
stopFrequency: 835,
|
|
4171
|
-
defaultStep: 100,
|
|
4172
|
-
defaultBandwidth: 5000,
|
|
4173
|
-
modulation: 'QPSK',
|
|
4174
|
-
demodulation: "\u89E3\u8C03",
|
|
4175
|
-
allocation: "\u7535\u4FE13G/4G/5G\u4E0A\u884C",
|
|
4176
|
-
status: "\u5408\u6CD5",
|
|
4177
|
-
color: '#48D1CC',
|
|
4178
|
-
title: "\u7535\u4FE13G/4G/5G\u4E0A\u884C",
|
|
4179
|
-
description: "\u4E2D\u56FD\u7535\u4FE13G/4G/5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4180
|
-
},
|
|
4181
|
-
{
|
|
4182
|
-
startFrequency: 851,
|
|
4183
|
-
stopFrequency: 866,
|
|
4184
|
-
defaultStep: 25,
|
|
4185
|
-
defaultBandwidth: 50,
|
|
4186
|
-
modulation: "\u03C0/4DQPSK",
|
|
4187
|
-
demodulation: "\u89E3\u8C03",
|
|
4188
|
-
allocation: "\u6570\u5B57\u96C6\u7FA4\u4E0B\u884C",
|
|
4189
|
-
status: "\u5408\u6CD5",
|
|
4190
|
-
color: '#C71585',
|
|
4191
|
-
title: "\u6570\u5B57\u96C6\u7FA4\u4E0B\u884C",
|
|
4192
|
-
description: "\u6570\u5B57\u96C6\u7FA4\u901A\u4FE1\u7CFB\u7EDF(TETRA)\u4E0B\u884C\u9891\u6BB5"
|
|
4193
|
-
},
|
|
4194
|
-
{
|
|
4195
|
-
startFrequency: 869,
|
|
4196
|
-
stopFrequency: 880,
|
|
4197
|
-
defaultStep: 100,
|
|
4198
|
-
defaultBandwidth: 5000,
|
|
4199
|
-
modulation: 'QPSK',
|
|
4200
|
-
demodulation: "\u89E3\u8C03",
|
|
4201
|
-
allocation: "\u7535\u4FE13G/4G/5G\u4E0B\u884C",
|
|
4202
|
-
status: "\u5408\u6CD5",
|
|
4203
|
-
color: '#6495ED',
|
|
4204
|
-
title: "\u7535\u4FE13G/4G/5G\u4E0B\u884C",
|
|
4205
|
-
description: "\u4E2D\u56FD\u7535\u4FE13G/4G/5G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4206
|
-
},
|
|
4207
|
-
{
|
|
4208
|
-
startFrequency: 885,
|
|
4209
|
-
stopFrequency: 889,
|
|
4210
|
-
defaultStep: 200,
|
|
4211
|
-
defaultBandwidth: 200,
|
|
4212
|
-
modulation: 'GMSK',
|
|
4213
|
-
demodulation: "\u89E3\u8C03",
|
|
4214
|
-
allocation: "GSM-R\u4E0A\u884C",
|
|
4215
|
-
status: "\u5408\u6CD5",
|
|
4216
|
-
color: '#DC143C',
|
|
4217
|
-
title: "GSM-R\u4E0A\u884C",
|
|
4218
|
-
description: "\u94C1\u8DEF\u4E13\u7528GSM-R\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4219
|
-
},
|
|
4220
|
-
{
|
|
4221
|
-
startFrequency: 889,
|
|
4222
|
-
stopFrequency: 904,
|
|
4223
|
-
defaultStep: 200,
|
|
4224
|
-
defaultBandwidth: 200,
|
|
4225
|
-
modulation: 'GMSK',
|
|
4226
|
-
demodulation: "\u89E3\u8C03",
|
|
4227
|
-
allocation: "\u79FB\u52A82G/4G\u4E0A\u884C",
|
|
4228
|
-
status: "\u5408\u6CD5",
|
|
4229
|
-
color: '#B22222',
|
|
4230
|
-
title: "\u79FB\u52A82G/4G\u4E0A\u884C",
|
|
4231
|
-
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4232
|
-
},
|
|
4233
|
-
{
|
|
4234
|
-
startFrequency: 904,
|
|
4235
|
-
stopFrequency: 915,
|
|
4236
|
-
defaultStep: 200,
|
|
4237
|
-
defaultBandwidth: 200,
|
|
4238
|
-
modulation: 'QPSK',
|
|
4239
|
-
demodulation: "\u89E3\u8C03",
|
|
4240
|
-
allocation: "\u8054\u901A2/3/4/5G\u4E0A\u884C",
|
|
4241
|
-
status: "\u5408\u6CD5",
|
|
4242
|
-
color: '#808000',
|
|
4243
|
-
title: "\u8054\u901A2/3/4/5G\u4E0A\u884C",
|
|
4244
|
-
description: "\u4E2D\u56FD\u8054\u901A2G/3G/4G/5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4245
|
-
},
|
|
4246
|
-
{
|
|
4247
|
-
startFrequency: 930,
|
|
4248
|
-
stopFrequency: 934,
|
|
4249
|
-
defaultStep: 200,
|
|
4250
|
-
defaultBandwidth: 200,
|
|
4251
|
-
modulation: 'GMSK',
|
|
4252
|
-
demodulation: "\u89E3\u8C03",
|
|
4253
|
-
allocation: "GSM-R\u4E0B\u884C",
|
|
4254
|
-
status: "\u5408\u6CD5",
|
|
4255
|
-
color: '#008080',
|
|
4256
|
-
title: "GSM-R\u4E0B\u884C",
|
|
4257
|
-
description: "\u94C1\u8DEF\u4E13\u7528GSM-R\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4258
|
-
},
|
|
4259
|
-
{
|
|
4260
|
-
startFrequency: 934,
|
|
4261
|
-
stopFrequency: 949,
|
|
4262
|
-
defaultStep: 200,
|
|
4263
|
-
defaultBandwidth: 200,
|
|
4264
|
-
modulation: 'GMSK',
|
|
4265
|
-
demodulation: "\u89E3\u8C03",
|
|
4266
|
-
allocation: "\u79FB\u52A82G/4G\u4E0B\u884C",
|
|
4267
|
-
status: "\u5408\u6CD5",
|
|
4268
|
-
color: '#2E8B57',
|
|
4269
|
-
title: "\u79FB\u52A82G/4G\u4E0B\u884C",
|
|
4270
|
-
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4271
|
-
},
|
|
4272
|
-
{
|
|
4273
|
-
startFrequency: 949,
|
|
4274
|
-
stopFrequency: 960,
|
|
4275
|
-
defaultStep: 200,
|
|
4276
|
-
defaultBandwidth: 200,
|
|
4277
|
-
modulation: 'QPSK',
|
|
4278
|
-
demodulation: "\u89E3\u8C03",
|
|
4279
|
-
allocation: "\u8054\u901A2/3/4/5G\u4E0B\u884C",
|
|
4280
|
-
status: "\u5408\u6CD5",
|
|
4281
|
-
color: '#800080',
|
|
4282
|
-
title: "\u8054\u901A2/3/4/5G\u4E0B\u884C",
|
|
4283
|
-
description: "\u4E2D\u56FD\u8054\u901A2G/3G/4G/5G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4284
|
-
},
|
|
4285
|
-
{
|
|
4286
|
-
startFrequency: 1164,
|
|
4287
|
-
stopFrequency: 1189,
|
|
4288
|
-
defaultStep: 1000,
|
|
4289
|
-
defaultBandwidth: 10000,
|
|
4290
|
-
modulation: 'BPSK',
|
|
4291
|
-
demodulation: "\u89E3\u8C03",
|
|
4292
|
-
allocation: "GPS L5\u9891\u6BB5",
|
|
4293
|
-
status: "\u5408\u6CD5",
|
|
4294
|
-
color: '#B8860B',
|
|
4295
|
-
title: "GPS L5\u9891\u6BB5",
|
|
4296
|
-
description: "\u5168\u7403\u5B9A\u4F4D\u7CFB\u7EDFGPS L5\u9891\u6BB5"
|
|
4297
|
-
},
|
|
4298
|
-
{
|
|
4299
|
-
startFrequency: 1215,
|
|
4300
|
-
stopFrequency: 1234,
|
|
4301
|
-
defaultStep: 1000,
|
|
4302
|
-
defaultBandwidth: 10000,
|
|
4303
|
-
modulation: 'BPSK',
|
|
4304
|
-
demodulation: "\u89E3\u8C03",
|
|
4305
|
-
allocation: "GPS L2\u9891\u6BB5",
|
|
4306
|
-
status: "\u5408\u6CD5",
|
|
4307
|
-
color: '#778899',
|
|
4308
|
-
title: "GPS L2\u9891\u6BB5",
|
|
4309
|
-
description: "\u5168\u7403\u5B9A\u4F4D\u7CFB\u7EDFGPS L2\u9891\u6BB5"
|
|
4310
|
-
},
|
|
4311
|
-
{
|
|
4312
|
-
startFrequency: 1447,
|
|
4313
|
-
stopFrequency: 1467,
|
|
4314
|
-
defaultStep: 100,
|
|
4315
|
-
defaultBandwidth: 10000,
|
|
4316
|
-
modulation: 'OFDMA',
|
|
4317
|
-
demodulation: "\u89E3\u8C03",
|
|
4318
|
-
allocation: "\u653F\u52A1\u516C\u5B89\u4E13\u7F51",
|
|
4319
|
-
status: "\u5408\u6CD5",
|
|
4320
|
-
color: '#483D8B',
|
|
4321
|
-
title: "\u653F\u52A1\u516C\u5B89\u4E13\u7F51",
|
|
4322
|
-
description: "\u653F\u52A1\u548C\u516C\u5B89\u4E13\u7528LTE\u7F51\u7EDC\u9891\u6BB5"
|
|
4323
|
-
},
|
|
4324
|
-
{
|
|
4325
|
-
startFrequency: 1563,
|
|
4326
|
-
stopFrequency: 1587,
|
|
4327
|
-
defaultStep: 1000,
|
|
4328
|
-
defaultBandwidth: 10000,
|
|
4329
|
-
modulation: 'BPSK',
|
|
4330
|
-
demodulation: "\u89E3\u8C03",
|
|
4331
|
-
allocation: "GPS L1\u9891\u6BB5",
|
|
4332
|
-
status: "\u5408\u6CD5",
|
|
4333
|
-
color: '#CD5C5C',
|
|
4334
|
-
title: "GPS L1\u9891\u6BB5",
|
|
4335
|
-
description: "\u5168\u7403\u5B9A\u4F4D\u7CFB\u7EDFGPS L1\u9891\u6BB5"
|
|
4336
|
-
},
|
|
4337
|
-
{
|
|
4338
|
-
startFrequency: 1710,
|
|
4339
|
-
stopFrequency: 1735,
|
|
4340
|
-
defaultStep: 200,
|
|
4341
|
-
defaultBandwidth: 5000,
|
|
4342
|
-
modulation: 'QPSK',
|
|
4343
|
-
demodulation: "\u89E3\u8C03",
|
|
4344
|
-
allocation: "\u79FB\u52A82G/4G\u4E0A\u884C",
|
|
4345
|
-
status: "\u5408\u6CD5",
|
|
4346
|
-
color: '#FA8072',
|
|
4347
|
-
title: "\u79FB\u52A82G/4G\u4E0A\u884C",
|
|
4348
|
-
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4349
|
-
},
|
|
4350
|
-
{
|
|
4351
|
-
startFrequency: 1735,
|
|
4352
|
-
stopFrequency: 1765,
|
|
4353
|
-
defaultStep: 200,
|
|
4354
|
-
defaultBandwidth: 5000,
|
|
4355
|
-
modulation: 'QPSK',
|
|
4356
|
-
demodulation: "\u89E3\u8C03",
|
|
4357
|
-
allocation: "\u8054\u901A2/4G\u4E0A\u884C",
|
|
4358
|
-
status: "\u5408\u6CD5",
|
|
4359
|
-
color: '#6A5ACD',
|
|
4360
|
-
title: "\u8054\u901A2/4G\u4E0A\u884C",
|
|
4361
|
-
description: "\u4E2D\u56FD\u8054\u901A2G/4G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4362
|
-
},
|
|
4363
|
-
{
|
|
4364
|
-
startFrequency: 1805,
|
|
4365
|
-
stopFrequency: 1830,
|
|
4366
|
-
defaultStep: 200,
|
|
4367
|
-
defaultBandwidth: 5000,
|
|
4368
|
-
modulation: 'QPSK',
|
|
4369
|
-
demodulation: "\u89E3\u8C03",
|
|
4370
|
-
allocation: "\u79FB\u52A82G/4G\u4E0B\u884C",
|
|
4371
|
-
status: "\u5408\u6CD5",
|
|
4372
|
-
color: '#00FA9A',
|
|
4373
|
-
title: "\u79FB\u52A82G/4G\u4E0B\u884C",
|
|
4374
|
-
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4375
|
-
},
|
|
4376
|
-
{
|
|
4377
|
-
startFrequency: 1830,
|
|
4378
|
-
stopFrequency: 1860,
|
|
4379
|
-
defaultStep: 200,
|
|
4380
|
-
defaultBandwidth: 5000,
|
|
4381
|
-
modulation: 'QPSK',
|
|
4382
|
-
demodulation: "\u89E3\u8C03",
|
|
4383
|
-
allocation: "\u8054\u901A2/4G\u4E0B\u884C",
|
|
4384
|
-
status: "\u5408\u6CD5",
|
|
4385
|
-
color: '#FF6347',
|
|
4386
|
-
title: "\u8054\u901A2/4G\u4E0B\u884C",
|
|
4387
|
-
description: "\u4E2D\u56FD\u8054\u901A2G/4G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4388
|
-
},
|
|
4389
|
-
{
|
|
4390
|
-
startFrequency: 1885,
|
|
4391
|
-
stopFrequency: 1915,
|
|
4392
|
-
defaultStep: 100,
|
|
4393
|
-
defaultBandwidth: 10000,
|
|
4394
|
-
modulation: 'OFDMA',
|
|
4395
|
-
demodulation: "\u89E3\u8C03",
|
|
4396
|
-
allocation: "\u79FB\u52A84G",
|
|
4397
|
-
status: "\u5408\u6CD5",
|
|
4398
|
-
color: '#4169E1',
|
|
4399
|
-
title: "\u79FB\u52A84G",
|
|
4400
|
-
description: "\u4E2D\u56FD\u79FB\u52A84G\u7F51\u7EDC\u9891\u6BB5"
|
|
4401
|
-
},
|
|
4402
|
-
{
|
|
4403
|
-
startFrequency: 1920,
|
|
4404
|
-
stopFrequency: 1940,
|
|
4405
|
-
defaultStep: 100,
|
|
4406
|
-
defaultBandwidth: 10000,
|
|
4407
|
-
modulation: 'OFDMA',
|
|
4408
|
-
demodulation: "\u89E3\u8C03",
|
|
4409
|
-
allocation: "\u7535\u4FE1/\u8054\u901A5G\u4E0A\u884C",
|
|
4410
|
-
status: "\u5408\u6CD5",
|
|
4411
|
-
color: '#8A2BE2',
|
|
4412
|
-
title: "\u7535\u4FE1/\u8054\u901A5G\u4E0A\u884C",
|
|
4413
|
-
description: "\u4E2D\u56FD\u7535\u4FE1/\u8054\u901A5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4414
|
-
},
|
|
4415
|
-
{
|
|
4416
|
-
startFrequency: 1940,
|
|
4417
|
-
stopFrequency: 1965,
|
|
4418
|
-
defaultStep: 100,
|
|
4419
|
-
defaultBandwidth: 10000,
|
|
4420
|
-
modulation: 'OFDMA',
|
|
4421
|
-
demodulation: "\u89E3\u8C03",
|
|
4422
|
-
allocation: "\u8054\u901A3/4/5G\u4E0A\u884C",
|
|
4423
|
-
status: "\u5408\u6CD5",
|
|
4424
|
-
color: '#9932CC',
|
|
4425
|
-
title: "\u8054\u901A3/4/5G\u4E0A\u884C",
|
|
4426
|
-
description: "\u4E2D\u56FD\u8054\u901A3G/4G/5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
4427
|
-
},
|
|
4428
|
-
{
|
|
4429
|
-
startFrequency: 2110,
|
|
4430
|
-
stopFrequency: 2130,
|
|
4431
|
-
defaultStep: 100,
|
|
4432
|
-
defaultBandwidth: 10000,
|
|
4433
|
-
modulation: 'OFDMA',
|
|
4434
|
-
demodulation: "\u89E3\u8C03",
|
|
4435
|
-
allocation: "\u7535\u4FE1/\u8054\u901A5G\u4E0B\u884C",
|
|
4436
|
-
status: "\u5408\u6CD5",
|
|
4437
|
-
color: '#8FBC8F',
|
|
4438
|
-
title: "\u7535\u4FE1/\u8054\u901A5G\u4E0B\u884C",
|
|
4439
|
-
description: "\u4E2D\u56FD\u7535\u4FE1/\u8054\u901A5G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
4440
|
-
},
|
|
4441
|
-
{
|
|
4442
|
-
startFrequency: 2300,
|
|
4443
|
-
stopFrequency: 2320,
|
|
4444
|
-
defaultStep: 100,
|
|
4445
|
-
defaultBandwidth: 10000,
|
|
4446
|
-
modulation: 'OFDMA',
|
|
4447
|
-
demodulation: "\u89E3\u8C03",
|
|
4448
|
-
allocation: "\u8054\u901A4G",
|
|
4449
|
-
status: "\u5408\u6CD5",
|
|
4450
|
-
color: '#2F4F4F',
|
|
4451
|
-
title: "\u8054\u901A4G",
|
|
4452
|
-
description: "\u4E2D\u56FD\u8054\u901A4G\u7F51\u7EDC\u9891\u6BB5"
|
|
4453
|
-
},
|
|
4454
|
-
{
|
|
4455
|
-
startFrequency: 2320,
|
|
4456
|
-
stopFrequency: 2370,
|
|
4457
|
-
defaultStep: 100,
|
|
4458
|
-
defaultBandwidth: 10000,
|
|
4459
|
-
modulation: 'OFDMA',
|
|
4460
|
-
demodulation: "\u89E3\u8C03",
|
|
4461
|
-
allocation: "\u79FB\u52A84G",
|
|
4462
|
-
status: "\u5408\u6CD5",
|
|
4463
|
-
color: '#00CED1',
|
|
4464
|
-
title: "\u79FB\u52A84G",
|
|
4465
|
-
description: "\u4E2D\u56FD\u79FB\u52A84G\u7F51\u7EDC\u9891\u6BB5"
|
|
4466
|
-
},
|
|
4467
|
-
{
|
|
4468
|
-
startFrequency: 2400,
|
|
4469
|
-
stopFrequency: 2500,
|
|
4470
|
-
defaultStep: 1,
|
|
4471
|
-
defaultBandwidth: 20,
|
|
4472
|
-
modulation: 'OFDM',
|
|
4473
|
-
demodulation: "\u89E3\u8C03",
|
|
4474
|
-
allocation: 'ISM 2.4GHz',
|
|
4475
|
-
status: "\u5408\u6CD5",
|
|
4476
|
-
color: '#A0522D',
|
|
4477
|
-
title: 'ISM 2.4GHz',
|
|
4478
|
-
description: "WIFI\u3001\u84DD\u7259\u3001\u65E0\u4EBA\u673A\u7B49\u4F7F\u7528\u9891\u6BB5"
|
|
4479
|
-
},
|
|
4480
|
-
{
|
|
4481
|
-
startFrequency: 2515,
|
|
4482
|
-
stopFrequency: 2675,
|
|
4483
|
-
defaultStep: 100,
|
|
4484
|
-
defaultBandwidth: 10000,
|
|
4485
|
-
modulation: 'OFDMA',
|
|
4486
|
-
demodulation: "\u89E3\u8C03",
|
|
4487
|
-
allocation: "\u79FB\u52A85G/4G",
|
|
4488
|
-
status: "\u5408\u6CD5",
|
|
4489
|
-
color: '#BA55D3',
|
|
4490
|
-
title: "\u79FB\u52A85G/4G",
|
|
4491
|
-
description: "\u4E2D\u56FD\u79FB\u52A85G\u548C4G\u7F51\u7EDC\u9891\u6BB5"
|
|
4492
|
-
},
|
|
4493
|
-
{
|
|
4494
|
-
startFrequency: 3300,
|
|
4495
|
-
stopFrequency: 3600,
|
|
4496
|
-
defaultStep: 100,
|
|
4497
|
-
defaultBandwidth: 10000,
|
|
4498
|
-
modulation: 'OFDMA',
|
|
4499
|
-
demodulation: "\u89E3\u8C03",
|
|
4500
|
-
allocation: "5G\u9891\u6BB5",
|
|
4501
|
-
status: "\u5408\u6CD5",
|
|
4502
|
-
color: '#66CDAA',
|
|
4503
|
-
title: "5G\u9891\u6BB5",
|
|
4504
|
-
description: "\u7535\u4FE1\u3001\u8054\u901A\u3001\u5E7F\u75355G\u7F51\u7EDC\u9891\u6BB5"
|
|
4505
|
-
},
|
|
4506
|
-
{
|
|
4507
|
-
startFrequency: 4800,
|
|
4508
|
-
stopFrequency: 4900,
|
|
4509
|
-
defaultStep: 100,
|
|
4510
|
-
defaultBandwidth: 10000,
|
|
4511
|
-
modulation: 'OFDMA',
|
|
4512
|
-
demodulation: "\u89E3\u8C03",
|
|
4513
|
-
allocation: "\u79FB\u52A85G",
|
|
4514
|
-
status: "\u5408\u6CD5",
|
|
4515
|
-
color: '#9370DB',
|
|
4516
|
-
title: "\u79FB\u52A85G",
|
|
4517
|
-
description: "\u4E2D\u56FD\u79FB\u52A85G\u7F51\u7EDC\u9891\u6BB5"
|
|
4518
|
-
},
|
|
4519
|
-
{
|
|
4520
|
-
startFrequency: 4900,
|
|
4521
|
-
stopFrequency: 4960,
|
|
4522
|
-
defaultStep: 100,
|
|
4523
|
-
defaultBandwidth: 10000,
|
|
4524
|
-
modulation: 'OFDMA',
|
|
4525
|
-
demodulation: "\u89E3\u8C03",
|
|
4526
|
-
allocation: "\u5E7F\u75355G",
|
|
4527
|
-
status: "\u5408\u6CD5",
|
|
4528
|
-
color: '#3CB371',
|
|
4529
|
-
title: "\u5E7F\u75355G",
|
|
4530
|
-
description: "\u4E2D\u56FD\u5E7F\u75355G\u7F51\u7EDC\u9891\u6BB5"
|
|
4531
|
-
},
|
|
4532
|
-
{
|
|
4533
|
-
startFrequency: 5725,
|
|
4534
|
-
stopFrequency: 5875.5,
|
|
4535
|
-
defaultStep: 5,
|
|
4536
|
-
defaultBandwidth: 20,
|
|
4537
|
-
modulation: 'OFDM',
|
|
4538
|
-
demodulation: "\u89E3\u8C03",
|
|
4539
|
-
allocation: 'ISM 5GHz',
|
|
4540
|
-
status: "\u5408\u6CD5",
|
|
4541
|
-
color: '#7FFFD4',
|
|
4542
|
-
title: 'ISM 5GHz',
|
|
4543
|
-
description: "WIFI\u3001\u65E0\u4EBA\u673A\u7B49\u4F7F\u7528\u9891\u6BB5"
|
|
4544
|
-
}
|
|
4545
|
-
];
|
|
4546
|
-
const originalColors = originalFrequencyAllocationData.map((item)=>item.color);
|
|
4547
|
-
function hexToHsl(hex) {
|
|
4548
|
-
const r = parseInt(hex.slice(1, 3), 16) / 255;
|
|
4549
|
-
const g = parseInt(hex.slice(3, 5), 16) / 255;
|
|
4550
|
-
const b = parseInt(hex.slice(5, 7), 16) / 255;
|
|
4551
|
-
const max = Math.max(r, g, b);
|
|
4552
|
-
const min = Math.min(r, g, b);
|
|
4553
|
-
let h = 0;
|
|
4554
|
-
let s = 0;
|
|
4555
|
-
const l = (max + min) / 2;
|
|
4556
|
-
if (max !== min) {
|
|
4557
|
-
const d = max - min;
|
|
4558
|
-
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
4559
|
-
switch(max){
|
|
4560
|
-
case r:
|
|
4561
|
-
h = (g - b) / d + (g < b ? 6 : 0);
|
|
4562
|
-
break;
|
|
4563
|
-
case g:
|
|
4564
|
-
h = (b - r) / d + 2;
|
|
4565
|
-
break;
|
|
4566
|
-
case b:
|
|
4567
|
-
h = (r - g) / d + 4;
|
|
4568
|
-
break;
|
|
4569
|
-
}
|
|
4570
|
-
h /= 6;
|
|
4571
|
-
}
|
|
4572
|
-
return {
|
|
4573
|
-
h: 360 * h,
|
|
4574
|
-
s: 100 * s,
|
|
4575
|
-
l: 100 * l
|
|
4576
|
-
};
|
|
4577
|
-
}
|
|
4578
|
-
const sortedColors = [
|
|
4579
|
-
...originalColors
|
|
4580
|
-
].map((color)=>({
|
|
4581
|
-
color,
|
|
4582
|
-
hsl: hexToHsl(color)
|
|
4583
|
-
})).sort((a, b)=>{
|
|
4584
|
-
if (Math.abs(a.hsl.h - b.hsl.h) > 10) return a.hsl.h - b.hsl.h;
|
|
4585
|
-
return a.hsl.l - b.hsl.l;
|
|
4586
|
-
}).map((item)=>item.color);
|
|
4587
|
-
function sortAndRecolorFrequencyAllocationData(data) {
|
|
4588
|
-
const sortedData = [
|
|
4589
|
-
...data
|
|
4590
|
-
].sort((a, b)=>a.startFrequency - b.startFrequency);
|
|
4591
|
-
return sortedData.map((item, index)=>{
|
|
4592
|
-
const totalBands = sortedData.length;
|
|
4593
|
-
const colorCount = sortedColors.length;
|
|
4594
|
-
const startColorIndex = Math.floor(index / totalBands * colorCount);
|
|
4595
|
-
const endColorIndex = Math.floor((index + 1) / totalBands * colorCount);
|
|
4596
|
-
const startColor = sortedColors[Math.min(startColorIndex, colorCount - 1)];
|
|
4597
|
-
const endColor = sortedColors[Math.min(endColorIndex, colorCount - 1)];
|
|
4598
|
-
const finalEndColor = index === totalBands - 1 ? sortedColors[colorCount - 1] : endColor;
|
|
4599
|
-
return {
|
|
4600
|
-
...item,
|
|
4601
|
-
color: startColor,
|
|
4602
|
-
gradientColors: [
|
|
4603
|
-
startColor,
|
|
4604
|
-
finalEndColor
|
|
4605
|
-
]
|
|
4606
|
-
};
|
|
4607
|
-
});
|
|
4608
|
-
}
|
|
4609
|
-
const frequencyAllocationData = sortAndRecolorFrequencyAllocationData(originalFrequencyAllocationData);
|
|
4610
4124
|
function defaultState_createParams() {
|
|
4611
4125
|
return {
|
|
4612
4126
|
globalID: '',
|
|
@@ -4779,7 +4293,7 @@ function defaultState_createParams() {
|
|
|
4779
4293
|
frequencyAllocation: {
|
|
4780
4294
|
show: true,
|
|
4781
4295
|
display: true,
|
|
4782
|
-
data:
|
|
4296
|
+
data: []
|
|
4783
4297
|
},
|
|
4784
4298
|
timeRange: 0,
|
|
4785
4299
|
levelStream: {
|
|
@@ -4856,7 +4370,7 @@ function useVirtualRange({ unit, realRange, step, globalID }) {
|
|
|
4856
4370
|
let { offset, flaw } = tools_defaultData;
|
|
4857
4371
|
let range = realRange;
|
|
4858
4372
|
let renderRange = realRange;
|
|
4859
|
-
if (
|
|
4373
|
+
if ((0, utils.Bp)(unit)) {
|
|
4860
4374
|
const diff = dBuV2dBm(0);
|
|
4861
4375
|
flaw = diff % step;
|
|
4862
4376
|
offset = diff - flaw;
|
|
@@ -4881,7 +4395,7 @@ function useVirtualRange({ unit, realRange, step, globalID }) {
|
|
|
4881
4395
|
function range2realRange({ range, unit, globalID }) {
|
|
4882
4396
|
let realRange = range;
|
|
4883
4397
|
let renderRange = range;
|
|
4884
|
-
if (
|
|
4398
|
+
if ((0, utils.Bp)(unit)) {
|
|
4885
4399
|
const { offset, flaw } = VIRTUAL_RANGE(globalID);
|
|
4886
4400
|
realRange = [
|
|
4887
4401
|
range[0] - offset,
|
|
@@ -4898,7 +4412,7 @@ function range2realRange({ range, unit, globalID }) {
|
|
|
4898
4412
|
};
|
|
4899
4413
|
}
|
|
4900
4414
|
function getVirtualLevel(unit, v) {
|
|
4901
|
-
const dbm =
|
|
4415
|
+
const dbm = (0, utils.Bp)(unit);
|
|
4902
4416
|
return dbm ? dBuV2dBm(v) : v;
|
|
4903
4417
|
}
|
|
4904
4418
|
function mergeParameter(key, params, state) {
|
|
@@ -4906,7 +4420,7 @@ function mergeParameter(key, params, state) {
|
|
|
4906
4420
|
const p = preset[key];
|
|
4907
4421
|
if (!params) return p;
|
|
4908
4422
|
if ('object' != typeof params || null === params) return params;
|
|
4909
|
-
return
|
|
4423
|
+
return (0, utils.PM)(p, params);
|
|
4910
4424
|
}
|
|
4911
4425
|
const useParamEffect = (paramName, paramValue, state, dispatch)=>{
|
|
4912
4426
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
@@ -4962,7 +4476,7 @@ const Params_Params = (props)=>{
|
|
|
4962
4476
|
const axisY = props.axisY;
|
|
4963
4477
|
if (axisY && globalID) {
|
|
4964
4478
|
const { range, unit } = axisY;
|
|
4965
|
-
if (range?.[0] !== void 0 && (unit &&
|
|
4479
|
+
if (range?.[0] !== void 0 && (unit && (0, utils.Bp)(unit) && state.axisY.unit !== unit || range[0] !== state.axisY.range[0] && (0, utils.Bp)(state.axisY.unit))) {
|
|
4966
4480
|
const { realRange, renderRange } = range2realRange({
|
|
4967
4481
|
range,
|
|
4968
4482
|
unit,
|
|
@@ -4978,7 +4492,7 @@ const Params_Params = (props)=>{
|
|
|
4978
4492
|
axisY: mergeParameter('axisY', updatedAxisY, state)
|
|
4979
4493
|
}
|
|
4980
4494
|
});
|
|
4981
|
-
} else if (unit ||
|
|
4495
|
+
} else if (unit || (0, utils.Bp)(state.axisY.unit) || !range) dispatch({
|
|
4982
4496
|
payload: {
|
|
4983
4497
|
axisY: mergeParameter('axisY', axisY, state)
|
|
4984
4498
|
}
|
|
@@ -5026,7 +4540,7 @@ function useStore_useStore() {
|
|
|
5026
4540
|
}
|
|
5027
4541
|
const Store = (props)=>{
|
|
5028
4542
|
const { children } = props;
|
|
5029
|
-
const [state, dispatchBase] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useReducer)(reducer,
|
|
4543
|
+
const [state, dispatchBase] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useReducer)(reducer, (0, utils.PM)(defaultState_createParams(), props));
|
|
5030
4544
|
const dispatch = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((action)=>{
|
|
5031
4545
|
if (action?.payload) dispatchBase(action);
|
|
5032
4546
|
}, []);
|
|
@@ -5121,7 +4635,7 @@ const Container = (props)=>{
|
|
|
5121
4635
|
const { children, style } = props;
|
|
5122
4636
|
const { state: { system }, dispatch } = useStore_useStore();
|
|
5123
4637
|
const ref = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
|
|
5124
|
-
const globalID = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>
|
|
4638
|
+
const globalID = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>(0, utils.SF)(), []);
|
|
5125
4639
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
5126
4640
|
if (globalID) dispatch({
|
|
5127
4641
|
payload: {
|
|
@@ -5136,7 +4650,7 @@ const Container = (props)=>{
|
|
|
5136
4650
|
if (globalID) {
|
|
5137
4651
|
let first = true;
|
|
5138
4652
|
resizeObserver = new ResizeObserver(()=>{
|
|
5139
|
-
if (!first)
|
|
4653
|
+
if (!first) (0, utils.g9)(()=>{
|
|
5140
4654
|
PUB_SUB(globalID)({
|
|
5141
4655
|
pstype: constants_PSType.Resize
|
|
5142
4656
|
});
|
|
@@ -5229,10 +4743,10 @@ useChart_styles_module_options.domAPI = styleDomAPI_default();
|
|
|
5229
4743
|
useChart_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
5230
4744
|
injectStylesIntoStyleTag_default()(useChart_styles_module.Z, useChart_styles_module_options);
|
|
5231
4745
|
const hooks_useChart_styles_module = useChart_styles_module.Z && useChart_styles_module.Z.locals ? useChart_styles_module.Z.locals : void 0;
|
|
5232
|
-
const
|
|
4746
|
+
const useChart_useChart = (props)=>{
|
|
5233
4747
|
const { state: { globalID } } = useStore_useStore();
|
|
5234
4748
|
const { Render, params, onIDChange } = props;
|
|
5235
|
-
const id = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>
|
|
4749
|
+
const id = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>(0, utils.SF)(), []);
|
|
5236
4750
|
const [chart, init] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)();
|
|
5237
4751
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
5238
4752
|
if (id && globalID) {
|
|
@@ -5276,7 +4790,7 @@ const useChart = (props)=>{
|
|
|
5276
4790
|
Chart
|
|
5277
4791
|
};
|
|
5278
4792
|
};
|
|
5279
|
-
const
|
|
4793
|
+
const useChart = useChart_useChart;
|
|
5280
4794
|
const tools = (globalID, name, func)=>subscription_createSubscriptionManager(`passThrough-${globalID}-${name}`, '0', func);
|
|
5281
4795
|
class engine_Engine {
|
|
5282
4796
|
state = {
|
|
@@ -5625,7 +5139,7 @@ class Gauge extends engine_Engine {
|
|
|
5625
5139
|
}
|
|
5626
5140
|
drawLimit() {
|
|
5627
5141
|
const { data: { limit }, range: [min, max], canvas, ctx, baseWidth, padding, lineWidth, fillStylePrimary } = this.state;
|
|
5628
|
-
if (!
|
|
5142
|
+
if (!(0, utils.Ri)(limit)) return;
|
|
5629
5143
|
const width = 3 * baseWidth;
|
|
5630
5144
|
const height = canvas.height - 2 * padding;
|
|
5631
5145
|
const x = (canvas.width - width) / 2;
|
|
@@ -6034,7 +5548,7 @@ class Heatmap extends engine_Engine {
|
|
|
6034
5548
|
const { range = this.state.range, colors = this.state.colors } = e;
|
|
6035
5549
|
if (range && colors) {
|
|
6036
5550
|
const [rangeMin, rangeMax] = range;
|
|
6037
|
-
if (
|
|
5551
|
+
if ((0, utils.Ri)(rangeMax) && (0, utils.Ri)(rangeMax) && rangeMin < rangeMax) if (this.state.CI) this.state.CI.setColors(colors, rangeMin, rangeMax, 0.1);
|
|
6038
5552
|
else this.updateProps({
|
|
6039
5553
|
CI: new ColorInterpolator_ColorInterpolator(colors, rangeMin, rangeMax, 0.1)
|
|
6040
5554
|
});
|
|
@@ -6070,7 +5584,7 @@ class Heatmap extends engine_Engine {
|
|
|
6070
5584
|
render(data) {
|
|
6071
5585
|
if (data?.length >= 0) {
|
|
6072
5586
|
this.state.data = data;
|
|
6073
|
-
|
|
5587
|
+
(0, utils.P2)(()=>{
|
|
6074
5588
|
this.draw();
|
|
6075
5589
|
})();
|
|
6076
5590
|
}
|
|
@@ -6098,7 +5612,7 @@ class IQ extends engine_Engine {
|
|
|
6098
5612
|
render(data) {
|
|
6099
5613
|
if (data.IData && data.QData) {
|
|
6100
5614
|
this.state.data = data;
|
|
6101
|
-
|
|
5615
|
+
(0, utils.P2)(()=>{
|
|
6102
5616
|
this.draw();
|
|
6103
5617
|
})();
|
|
6104
5618
|
}
|
|
@@ -6165,7 +5679,7 @@ class iqEye_IQ extends engine_Engine {
|
|
|
6165
5679
|
render(data) {
|
|
6166
5680
|
if (data.IData && data.QData) {
|
|
6167
5681
|
this.state.data = data;
|
|
6168
|
-
|
|
5682
|
+
(0, utils.P2)(()=>{
|
|
6169
5683
|
this.draw();
|
|
6170
5684
|
})();
|
|
6171
5685
|
}
|
|
@@ -6278,19 +5792,19 @@ class iqEye_IQ extends engine_Engine {
|
|
|
6278
5792
|
}
|
|
6279
5793
|
}
|
|
6280
5794
|
}
|
|
6281
|
-
var type_OrientationType = /*#__PURE__*/ function(
|
|
6282
|
-
|
|
6283
|
-
|
|
6284
|
-
return
|
|
5795
|
+
var type_OrientationType = /*#__PURE__*/ function(OrientationType1) {
|
|
5796
|
+
OrientationType1["Horizontal"] = "horizontal";
|
|
5797
|
+
OrientationType1["Vertical"] = "vertical";
|
|
5798
|
+
return OrientationType1;
|
|
6285
5799
|
}({});
|
|
6286
|
-
var type_GraphicType = /*#__PURE__*/ function(
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
return
|
|
5800
|
+
var type_GraphicType = /*#__PURE__*/ function(GraphicType1) {
|
|
5801
|
+
GraphicType1["Circle"] = "circle";
|
|
5802
|
+
GraphicType1["Rect"] = "rect";
|
|
5803
|
+
GraphicType1["Line"] = "line";
|
|
5804
|
+
GraphicType1["Stepline"] = "stepline";
|
|
5805
|
+
GraphicType1["Bar"] = "bar";
|
|
5806
|
+
GraphicType1["Area"] = "area";
|
|
5807
|
+
return GraphicType1;
|
|
6294
5808
|
}({});
|
|
6295
5809
|
class Series extends engine_Engine {
|
|
6296
5810
|
init(props) {
|
|
@@ -6347,20 +5861,19 @@ class Series extends engine_Engine {
|
|
|
6347
5861
|
thickness: 1,
|
|
6348
5862
|
display: true,
|
|
6349
5863
|
color: '#000000',
|
|
6350
|
-
type: type_GraphicType.
|
|
5864
|
+
type: type_GraphicType.Stepline,
|
|
6351
5865
|
data: void 0,
|
|
6352
5866
|
path: void 0,
|
|
6353
5867
|
orientation: type_OrientationType.Vertical,
|
|
6354
5868
|
...series[name],
|
|
6355
5869
|
...e
|
|
6356
5870
|
};
|
|
6357
|
-
if ('templateData' === e.name) console.log(series[name]);
|
|
6358
5871
|
this.draw();
|
|
6359
5872
|
}
|
|
6360
5873
|
}
|
|
6361
5874
|
render(e) {
|
|
6362
5875
|
e && this.setSeries(e);
|
|
6363
|
-
|
|
5876
|
+
(0, utils.P2)(()=>{
|
|
6364
5877
|
this.draw();
|
|
6365
5878
|
})();
|
|
6366
5879
|
}
|
|
@@ -6533,27 +6046,486 @@ class Series extends engine_Engine {
|
|
|
6533
6046
|
if (type === type_GraphicType.Bar) if (orientation === type_OrientationType.Horizontal) {
|
|
6534
6047
|
const h = height / len;
|
|
6535
6048
|
const hh = Math.round(h);
|
|
6536
|
-
for(let i = 0; i < len; i += 1){
|
|
6537
|
-
const y = Math.round(height - (i + 1) * h);
|
|
6538
|
-
const w = Math.round((data[i] - min) / rangeY * width);
|
|
6539
|
-
const x = width - w;
|
|
6540
|
-
ctx.beginPath();
|
|
6541
|
-
ctx.rect(x, y, w, hh);
|
|
6542
|
-
ctx.fillStyle = color;
|
|
6543
|
-
ctx.fill();
|
|
6544
|
-
}
|
|
6545
|
-
} else for(let i = 0; i < len; i += 1){
|
|
6546
|
-
const startX = Math.floor(i * width / len);
|
|
6547
|
-
const endX = Math.floor((i + 1) * width / len);
|
|
6548
|
-
const w = endX - startX;
|
|
6549
|
-
const h = Math.round((data[i] - min) / rangeY * height);
|
|
6550
|
-
ctx.beginPath();
|
|
6551
|
-
ctx.rect(startX, 0, w, h);
|
|
6552
|
-
ctx.fillStyle = this.state.barValue2Color ? this.state.CI.getColor(data[i]).hax : color;
|
|
6553
|
-
ctx.fill();
|
|
6049
|
+
for(let i = 0; i < len; i += 1){
|
|
6050
|
+
const y = Math.round(height - (i + 1) * h);
|
|
6051
|
+
const w = Math.round((data[i] - min) / rangeY * width);
|
|
6052
|
+
const x = width - w;
|
|
6053
|
+
ctx.beginPath();
|
|
6054
|
+
ctx.rect(x, y, w, hh);
|
|
6055
|
+
ctx.fillStyle = color;
|
|
6056
|
+
ctx.fill();
|
|
6057
|
+
}
|
|
6058
|
+
} else for(let i = 0; i < len; i += 1){
|
|
6059
|
+
const startX = Math.floor(i * width / len);
|
|
6060
|
+
const endX = Math.floor((i + 1) * width / len);
|
|
6061
|
+
const w = endX - startX;
|
|
6062
|
+
const h = Math.round((data[i] - min) / rangeY * height);
|
|
6063
|
+
ctx.beginPath();
|
|
6064
|
+
ctx.rect(startX, 0, w, h);
|
|
6065
|
+
ctx.fillStyle = this.state.barValue2Color ? this.state.CI.getColor(data[i]).hax : color;
|
|
6066
|
+
ctx.fill();
|
|
6067
|
+
}
|
|
6068
|
+
}
|
|
6069
|
+
ctx.restore();
|
|
6070
|
+
}
|
|
6071
|
+
}
|
|
6072
|
+
class webglEngine_WebGLEngine {
|
|
6073
|
+
state = {
|
|
6074
|
+
id: '',
|
|
6075
|
+
container: void 0,
|
|
6076
|
+
canvas: null,
|
|
6077
|
+
ctx: null,
|
|
6078
|
+
range: [
|
|
6079
|
+
-20,
|
|
6080
|
+
100
|
|
6081
|
+
]
|
|
6082
|
+
};
|
|
6083
|
+
constructor(props){
|
|
6084
|
+
this.updateProps(props);
|
|
6085
|
+
this.init(props);
|
|
6086
|
+
}
|
|
6087
|
+
updateProps(e) {
|
|
6088
|
+
this.state = {
|
|
6089
|
+
...this.state,
|
|
6090
|
+
...e
|
|
6091
|
+
};
|
|
6092
|
+
}
|
|
6093
|
+
init(_p) {
|
|
6094
|
+
const { id } = this.state;
|
|
6095
|
+
const container = document.getElementById(id);
|
|
6096
|
+
const canvas = document.createElement('canvas');
|
|
6097
|
+
const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
|
|
6098
|
+
if (!gl) return;
|
|
6099
|
+
canvas.style.transform = 'scaleY(-1)';
|
|
6100
|
+
this.updateProps({
|
|
6101
|
+
container,
|
|
6102
|
+
canvas,
|
|
6103
|
+
gl
|
|
6104
|
+
});
|
|
6105
|
+
container?.appendChild(canvas);
|
|
6106
|
+
this.initWebGL();
|
|
6107
|
+
this.resize(false);
|
|
6108
|
+
}
|
|
6109
|
+
initWebGL() {
|
|
6110
|
+
const { gl } = this.state;
|
|
6111
|
+
if (!gl) return;
|
|
6112
|
+
const program = this.createShaderProgram();
|
|
6113
|
+
const positionBuffer = gl.createBuffer();
|
|
6114
|
+
const colorBuffer = gl.createBuffer();
|
|
6115
|
+
this.updateProps({
|
|
6116
|
+
program,
|
|
6117
|
+
buffers: {
|
|
6118
|
+
position: positionBuffer,
|
|
6119
|
+
color: colorBuffer
|
|
6120
|
+
}
|
|
6121
|
+
});
|
|
6122
|
+
gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);
|
|
6123
|
+
gl.enable(gl.BLEND);
|
|
6124
|
+
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
|
|
6125
|
+
}
|
|
6126
|
+
createShaderProgram() {
|
|
6127
|
+
const { gl } = this.state;
|
|
6128
|
+
if (!gl) return null;
|
|
6129
|
+
const vertexShaderSource = `
|
|
6130
|
+
attribute vec2 a_position;
|
|
6131
|
+
attribute vec4 a_color;
|
|
6132
|
+
uniform vec2 u_resolution;
|
|
6133
|
+
varying vec4 v_color;
|
|
6134
|
+
|
|
6135
|
+
void main() {
|
|
6136
|
+
// \u{5C06}\u{50CF}\u{7D20}\u{5750}\u{6807}\u{8F6C}\u{6362}\u{4E3A}\u{88C1}\u{526A}\u{7A7A}\u{95F4}\u{5750}\u{6807}
|
|
6137
|
+
vec2 zeroToOne = a_position / u_resolution;
|
|
6138
|
+
vec2 zeroToTwo = zeroToOne * 2.0;
|
|
6139
|
+
vec2 clipSpace = zeroToTwo - 1.0;
|
|
6140
|
+
|
|
6141
|
+
gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);
|
|
6142
|
+
v_color = a_color;
|
|
6143
|
+
}
|
|
6144
|
+
`;
|
|
6145
|
+
const fragmentShaderSource = `
|
|
6146
|
+
precision mediump float;
|
|
6147
|
+
varying vec4 v_color;
|
|
6148
|
+
|
|
6149
|
+
void main() {
|
|
6150
|
+
gl_FragColor = v_color;
|
|
6151
|
+
}
|
|
6152
|
+
`;
|
|
6153
|
+
const vertexShader = this.createShader(gl, gl.VERTEX_SHADER, vertexShaderSource);
|
|
6154
|
+
const fragmentShader = this.createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource);
|
|
6155
|
+
if (!vertexShader || !fragmentShader) return null;
|
|
6156
|
+
const program = gl.createProgram();
|
|
6157
|
+
if (!program) return null;
|
|
6158
|
+
gl.attachShader(program, vertexShader);
|
|
6159
|
+
gl.attachShader(program, fragmentShader);
|
|
6160
|
+
gl.linkProgram(program);
|
|
6161
|
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) return null;
|
|
6162
|
+
return program;
|
|
6163
|
+
}
|
|
6164
|
+
createShader(gl, type, source) {
|
|
6165
|
+
const shader = gl.createShader(type);
|
|
6166
|
+
if (!shader) return null;
|
|
6167
|
+
gl.shaderSource(shader, source);
|
|
6168
|
+
gl.compileShader(shader);
|
|
6169
|
+
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
6170
|
+
gl.deleteShader(shader);
|
|
6171
|
+
return null;
|
|
6172
|
+
}
|
|
6173
|
+
return shader;
|
|
6174
|
+
}
|
|
6175
|
+
resize(draw = true) {
|
|
6176
|
+
const { canvas, container, gl } = this.state;
|
|
6177
|
+
const { clientWidth, clientHeight } = container;
|
|
6178
|
+
if (!clientWidth || !clientHeight) return;
|
|
6179
|
+
canvas.width = clientWidth;
|
|
6180
|
+
canvas.height = clientHeight;
|
|
6181
|
+
if (gl) gl.viewport(0, 0, clientWidth, clientHeight);
|
|
6182
|
+
if (draw) setTimeout(()=>{
|
|
6183
|
+
this.draw();
|
|
6184
|
+
});
|
|
6185
|
+
}
|
|
6186
|
+
clear() {
|
|
6187
|
+
const { gl } = this.state;
|
|
6188
|
+
if (!gl) return;
|
|
6189
|
+
gl.clearColor(0.0, 0.0, 0.0, 0.0);
|
|
6190
|
+
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
6191
|
+
}
|
|
6192
|
+
draw() {}
|
|
6193
|
+
drawLines(vertices, colors) {
|
|
6194
|
+
const { gl, program, buffers } = this.state;
|
|
6195
|
+
if (!gl || !program || !buffers) return;
|
|
6196
|
+
gl.useProgram(program);
|
|
6197
|
+
const resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
|
|
6198
|
+
gl.uniform2f(resolutionLocation, gl.canvas.width, gl.canvas.height);
|
|
6199
|
+
const positionLocation = gl.getAttribLocation(program, 'a_position');
|
|
6200
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
|
|
6201
|
+
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
|
|
6202
|
+
gl.enableVertexAttribArray(positionLocation);
|
|
6203
|
+
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
6204
|
+
const colorLocation = gl.getAttribLocation(program, 'a_color');
|
|
6205
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.color);
|
|
6206
|
+
gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
|
|
6207
|
+
gl.enableVertexAttribArray(colorLocation);
|
|
6208
|
+
gl.vertexAttribPointer(colorLocation, 4, gl.FLOAT, false, 0, 0);
|
|
6209
|
+
const vertexCount = vertices.length / 2;
|
|
6210
|
+
gl.drawArrays(gl.TRIANGLES, 0, vertexCount);
|
|
6211
|
+
}
|
|
6212
|
+
drawTriangles(vertices, colors) {
|
|
6213
|
+
const { gl, program, buffers } = this.state;
|
|
6214
|
+
if (!gl || !program || !buffers) return;
|
|
6215
|
+
gl.useProgram(program);
|
|
6216
|
+
const resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
|
|
6217
|
+
gl.uniform2f(resolutionLocation, gl.canvas.width, gl.canvas.height);
|
|
6218
|
+
const positionLocation = gl.getAttribLocation(program, 'a_position');
|
|
6219
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
|
|
6220
|
+
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
|
|
6221
|
+
gl.enableVertexAttribArray(positionLocation);
|
|
6222
|
+
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
6223
|
+
const colorLocation = gl.getAttribLocation(program, 'a_color');
|
|
6224
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.color);
|
|
6225
|
+
gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
|
|
6226
|
+
gl.enableVertexAttribArray(colorLocation);
|
|
6227
|
+
gl.vertexAttribPointer(colorLocation, 4, gl.FLOAT, false, 0, 0);
|
|
6228
|
+
const vertexCount = vertices.length / 2;
|
|
6229
|
+
gl.drawArrays(gl.TRIANGLES, 0, vertexCount);
|
|
6230
|
+
}
|
|
6231
|
+
setupBuffers(vertices, colors) {
|
|
6232
|
+
const { gl, program, buffers } = this.state;
|
|
6233
|
+
if (!gl || !program || !buffers) return;
|
|
6234
|
+
gl.useProgram(program);
|
|
6235
|
+
const resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
|
|
6236
|
+
gl.uniform2f(resolutionLocation, gl.canvas.width, gl.canvas.height);
|
|
6237
|
+
const positionLocation = gl.getAttribLocation(program, 'a_position');
|
|
6238
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
|
|
6239
|
+
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
|
|
6240
|
+
gl.enableVertexAttribArray(positionLocation);
|
|
6241
|
+
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
6242
|
+
const colorLocation = gl.getAttribLocation(program, 'a_color');
|
|
6243
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.color);
|
|
6244
|
+
gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
|
|
6245
|
+
gl.enableVertexAttribArray(colorLocation);
|
|
6246
|
+
gl.vertexAttribPointer(colorLocation, 4, gl.FLOAT, false, 0, 0);
|
|
6247
|
+
}
|
|
6248
|
+
}
|
|
6249
|
+
class WebGLSeries extends null {
|
|
6250
|
+
vertexData = new Float32Array(0);
|
|
6251
|
+
colorData = new Float32Array(0);
|
|
6252
|
+
throttledDraw = throttle(()=>{
|
|
6253
|
+
this.draw();
|
|
6254
|
+
});
|
|
6255
|
+
init(props) {
|
|
6256
|
+
super.init(props);
|
|
6257
|
+
const { series } = props;
|
|
6258
|
+
this.updateProps({
|
|
6259
|
+
interval: 0,
|
|
6260
|
+
series: {}
|
|
6261
|
+
});
|
|
6262
|
+
this.setRange(this.state.range);
|
|
6263
|
+
series?.forEach((e)=>{
|
|
6264
|
+
this.setSeries(e);
|
|
6265
|
+
});
|
|
6266
|
+
}
|
|
6267
|
+
updateProps(e) {
|
|
6268
|
+
super.updateProps(e);
|
|
6269
|
+
const { colors = this.state.colors } = e;
|
|
6270
|
+
if (this.state.barValue2Color && !this.state.CI) this.updateProps({
|
|
6271
|
+
CI: new ColorInterpolator(colors, 0, 100, 0.1)
|
|
6272
|
+
});
|
|
6273
|
+
}
|
|
6274
|
+
clear() {
|
|
6275
|
+
super.clear();
|
|
6276
|
+
const { series } = this.state;
|
|
6277
|
+
const seriesArray = Object.entries(series);
|
|
6278
|
+
seriesArray.forEach(([name, i])=>{
|
|
6279
|
+
series[name] = {
|
|
6280
|
+
...i,
|
|
6281
|
+
data: void 0
|
|
6282
|
+
};
|
|
6283
|
+
});
|
|
6284
|
+
}
|
|
6285
|
+
setRange(range) {
|
|
6286
|
+
this.updateProps({
|
|
6287
|
+
range: [
|
|
6288
|
+
...range,
|
|
6289
|
+
range[1] - range[0]
|
|
6290
|
+
]
|
|
6291
|
+
});
|
|
6292
|
+
this.draw();
|
|
6293
|
+
}
|
|
6294
|
+
setIntervel(interval) {
|
|
6295
|
+
if (!interval) return;
|
|
6296
|
+
this.updateProps({
|
|
6297
|
+
interval
|
|
6298
|
+
});
|
|
6299
|
+
}
|
|
6300
|
+
setSeries(e) {
|
|
6301
|
+
if (e?.name) {
|
|
6302
|
+
const { name } = e;
|
|
6303
|
+
const { series } = this.state;
|
|
6304
|
+
series[name] = {
|
|
6305
|
+
thickness: 1,
|
|
6306
|
+
display: true,
|
|
6307
|
+
color: '#000000',
|
|
6308
|
+
type: GraphicType.Line,
|
|
6309
|
+
data: void 0,
|
|
6310
|
+
path: void 0,
|
|
6311
|
+
orientation: OrientationType.Vertical,
|
|
6312
|
+
...series[name],
|
|
6313
|
+
...e
|
|
6314
|
+
};
|
|
6315
|
+
}
|
|
6316
|
+
}
|
|
6317
|
+
render(e) {
|
|
6318
|
+
e && this.setSeries(e);
|
|
6319
|
+
this.throttledDraw();
|
|
6320
|
+
}
|
|
6321
|
+
hexToRgba(hex, alpha = 1) {
|
|
6322
|
+
const r = Number.parseInt(hex.slice(1, 3), 16) / 255;
|
|
6323
|
+
const g = Number.parseInt(hex.slice(3, 5), 16) / 255;
|
|
6324
|
+
const b = Number.parseInt(hex.slice(5, 7), 16) / 255;
|
|
6325
|
+
return [
|
|
6326
|
+
r,
|
|
6327
|
+
g,
|
|
6328
|
+
b,
|
|
6329
|
+
alpha
|
|
6330
|
+
];
|
|
6331
|
+
}
|
|
6332
|
+
generateLineVertices(data, color, thickness) {
|
|
6333
|
+
const vertices = [];
|
|
6334
|
+
const colors = [];
|
|
6335
|
+
const [r, g, b, a] = this.hexToRgba(color);
|
|
6336
|
+
const { range: [min, , rangeY], canvas: { width, height } } = this.state;
|
|
6337
|
+
const len = data.length;
|
|
6338
|
+
const per = width / len;
|
|
6339
|
+
const halfThickness = thickness / 2;
|
|
6340
|
+
for(let i = 0; i < len - 1; i++){
|
|
6341
|
+
const value1 = data[i];
|
|
6342
|
+
const value2 = data[i + 1];
|
|
6343
|
+
if (void 0 === value1 || void 0 === value2 || Number.isNaN(value1) || Number.isNaN(value2)) continue;
|
|
6344
|
+
const x1 = (i + 0.5) * per;
|
|
6345
|
+
const y1 = (value1 - min) / rangeY * height;
|
|
6346
|
+
const x2 = (i + 1.5) * per;
|
|
6347
|
+
const y2 = (value2 - min) / rangeY * height;
|
|
6348
|
+
const dx = x2 - x1;
|
|
6349
|
+
const dy = y2 - y1;
|
|
6350
|
+
const length = Math.sqrt(dx * dx + dy * dy);
|
|
6351
|
+
const nx = -dy / length * halfThickness;
|
|
6352
|
+
const ny = dx / length * halfThickness;
|
|
6353
|
+
vertices.push(x1 + nx, y1 + ny, x1 - nx, y1 - ny, x2 + nx, y2 + ny);
|
|
6354
|
+
vertices.push(x1 - nx, y1 - ny, x2 - nx, y2 - ny, x2 + nx, y2 + ny);
|
|
6355
|
+
for(let j = 0; j < 6; j++)colors.push(r, g, b, a);
|
|
6356
|
+
}
|
|
6357
|
+
return {
|
|
6358
|
+
vertices,
|
|
6359
|
+
colors
|
|
6360
|
+
};
|
|
6361
|
+
}
|
|
6362
|
+
generateSteplineVertices(data, color, thickness) {
|
|
6363
|
+
const vertices = [];
|
|
6364
|
+
const colors = [];
|
|
6365
|
+
const [r, g, b, a] = this.hexToRgba(color);
|
|
6366
|
+
const { range: [min, , rangeY], canvas: { width, height } } = this.state;
|
|
6367
|
+
const len = data.length;
|
|
6368
|
+
const per = width / len;
|
|
6369
|
+
const halfThickness = thickness / 2;
|
|
6370
|
+
for(let i = 0; i < len - 1; i++){
|
|
6371
|
+
const value1 = data[i];
|
|
6372
|
+
const value2 = data[i + 1];
|
|
6373
|
+
if (void 0 === value1 || void 0 === value2 || Number.isNaN(value1) || Number.isNaN(value2)) continue;
|
|
6374
|
+
const x1 = i * per;
|
|
6375
|
+
const y1 = (value1 - min) / rangeY * height;
|
|
6376
|
+
const x2 = (i + 1) * per;
|
|
6377
|
+
const y2 = (value2 - min) / rangeY * height;
|
|
6378
|
+
vertices.push(x1, y1 - halfThickness, x1, y1 + halfThickness, x2, y1 - halfThickness, x1, y1 + halfThickness, x2, y1 + halfThickness, x2, y1 - halfThickness);
|
|
6379
|
+
vertices.push(x2 - halfThickness, y1, x2 + halfThickness, y1, x2 - halfThickness, y2, x2 + halfThickness, y1, x2 + halfThickness, y2, x2 - halfThickness, y2);
|
|
6380
|
+
for(let j = 0; j < 12; j++)colors.push(r, g, b, a);
|
|
6381
|
+
}
|
|
6382
|
+
return {
|
|
6383
|
+
vertices,
|
|
6384
|
+
colors
|
|
6385
|
+
};
|
|
6386
|
+
}
|
|
6387
|
+
generateBarVertices(data, color, orientation) {
|
|
6388
|
+
const vertices = [];
|
|
6389
|
+
const colors = [];
|
|
6390
|
+
const [r, g, b, a] = this.hexToRgba(color);
|
|
6391
|
+
const { range: [min, , rangeY], canvas: { width, height } } = this.state;
|
|
6392
|
+
const len = data.length;
|
|
6393
|
+
if (orientation === OrientationType.Vertical) for(let i = 0; i < len; i++){
|
|
6394
|
+
const value = data[i];
|
|
6395
|
+
if (void 0 === value || Number.isNaN(value)) continue;
|
|
6396
|
+
const startX = Math.floor(i * width / len);
|
|
6397
|
+
const endX = Math.floor((i + 1) * width / len);
|
|
6398
|
+
const barHeight = (value - min) / rangeY * height;
|
|
6399
|
+
vertices.push(startX, 0, endX, 0, startX, barHeight, endX, 0, endX, barHeight, startX, barHeight);
|
|
6400
|
+
for(let j = 0; j < 6; j++)if (this.state.barValue2Color && this.state.CI) {
|
|
6401
|
+
const colorObj = this.state.CI.getColor(value);
|
|
6402
|
+
const [cr, cg, cb] = this.hexToRgba(colorObj.hax);
|
|
6403
|
+
colors.push(cr, cg, cb, a);
|
|
6404
|
+
} else colors.push(r, g, b, a);
|
|
6405
|
+
}
|
|
6406
|
+
else {
|
|
6407
|
+
const h = height / len;
|
|
6408
|
+
for(let i = 0; i < len; i++){
|
|
6409
|
+
const value = data[i];
|
|
6410
|
+
if (void 0 === value || Number.isNaN(value)) continue;
|
|
6411
|
+
const y = Math.round(height - (i + 1) * h);
|
|
6412
|
+
const w = (value - min) / rangeY * width;
|
|
6413
|
+
const x = width - w;
|
|
6414
|
+
const hh = Math.round(h);
|
|
6415
|
+
vertices.push(x, y, width, y, x, y + hh, width, y, width, y + hh, x, y + hh);
|
|
6416
|
+
for(let j = 0; j < 6; j++)colors.push(r, g, b, a);
|
|
6554
6417
|
}
|
|
6555
6418
|
}
|
|
6556
|
-
|
|
6419
|
+
return {
|
|
6420
|
+
vertices,
|
|
6421
|
+
colors
|
|
6422
|
+
};
|
|
6423
|
+
}
|
|
6424
|
+
generateCircleVertices(data, color, thickness) {
|
|
6425
|
+
const vertices = [];
|
|
6426
|
+
const colors = [];
|
|
6427
|
+
const [r, g, b, a] = this.hexToRgba(color);
|
|
6428
|
+
const { range: [min, , rangeY], canvas: { width, height } } = this.state;
|
|
6429
|
+
const len = data.length;
|
|
6430
|
+
const per = width / len;
|
|
6431
|
+
const radius = thickness / 2;
|
|
6432
|
+
const segments = 16;
|
|
6433
|
+
for(let i = 0; i < len; i++){
|
|
6434
|
+
const value = data[i];
|
|
6435
|
+
if (void 0 === value || Number.isNaN(value)) continue;
|
|
6436
|
+
const centerX = (i + 0.5) * per;
|
|
6437
|
+
const centerY = (value - min) / rangeY * height;
|
|
6438
|
+
for(let j = 0; j < segments; j++){
|
|
6439
|
+
const angle1 = j / segments * 2 * Math.PI;
|
|
6440
|
+
const angle2 = (j + 1) / segments * 2 * Math.PI;
|
|
6441
|
+
vertices.push(centerX, centerY, centerX + Math.cos(angle1) * radius, centerY + Math.sin(angle1) * radius, centerX + Math.cos(angle2) * radius, centerY + Math.sin(angle2) * radius);
|
|
6442
|
+
for(let k = 0; k < 3; k++)colors.push(r, g, b, a);
|
|
6443
|
+
}
|
|
6444
|
+
}
|
|
6445
|
+
return {
|
|
6446
|
+
vertices,
|
|
6447
|
+
colors
|
|
6448
|
+
};
|
|
6449
|
+
}
|
|
6450
|
+
generateRectVertices(data, color, thickness) {
|
|
6451
|
+
const vertices = [];
|
|
6452
|
+
const colors = [];
|
|
6453
|
+
const [r, g, b, a] = this.hexToRgba(color);
|
|
6454
|
+
const { range: [min, , rangeY], canvas: { width, height } } = this.state;
|
|
6455
|
+
const len = data.length;
|
|
6456
|
+
const per = width / len;
|
|
6457
|
+
const side = thickness;
|
|
6458
|
+
const halfSide = side / 2;
|
|
6459
|
+
for(let i = 0; i < len; i++){
|
|
6460
|
+
const value = data[i];
|
|
6461
|
+
if (void 0 === value || Number.isNaN(value)) continue;
|
|
6462
|
+
const centerX = (i + 0.5) * per;
|
|
6463
|
+
const centerY = (value - min) / rangeY * height;
|
|
6464
|
+
vertices.push(centerX - halfSide, centerY - halfSide, centerX + halfSide, centerY - halfSide, centerX - halfSide, centerY + halfSide, centerX + halfSide, centerY - halfSide, centerX + halfSide, centerY + halfSide, centerX - halfSide, centerY + halfSide);
|
|
6465
|
+
for(let j = 0; j < 6; j++)colors.push(r, g, b, a);
|
|
6466
|
+
}
|
|
6467
|
+
return {
|
|
6468
|
+
vertices,
|
|
6469
|
+
colors
|
|
6470
|
+
};
|
|
6471
|
+
}
|
|
6472
|
+
draw() {
|
|
6473
|
+
const { series, gl, program, buffers } = this.state;
|
|
6474
|
+
if (!gl || !program || !buffers) return;
|
|
6475
|
+
gl.clearColor(0.0, 0.0, 0.0, 0.0);
|
|
6476
|
+
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
6477
|
+
const seriesArray = Object.values(series);
|
|
6478
|
+
const allVertices = [];
|
|
6479
|
+
const allColors = [];
|
|
6480
|
+
for (const seriesConfig of seriesArray){
|
|
6481
|
+
const { display, color, type, data, orientation, thickness } = seriesConfig;
|
|
6482
|
+
if (!data || !display) continue;
|
|
6483
|
+
let result;
|
|
6484
|
+
switch(type){
|
|
6485
|
+
case GraphicType.Line:
|
|
6486
|
+
result = this.generateLineVertices(data, color, thickness || 1);
|
|
6487
|
+
this.drawLines(new Float32Array(result.vertices), new Float32Array(result.colors));
|
|
6488
|
+
break;
|
|
6489
|
+
case GraphicType.Stepline:
|
|
6490
|
+
result = this.generateSteplineVertices(data, color, thickness || 1);
|
|
6491
|
+
this.drawLines(new Float32Array(result.vertices), new Float32Array(result.colors));
|
|
6492
|
+
break;
|
|
6493
|
+
case GraphicType.Bar:
|
|
6494
|
+
result = this.generateBarVertices(data, color, orientation || OrientationType.Vertical);
|
|
6495
|
+
this.drawTriangles(new Float32Array(result.vertices), new Float32Array(result.colors));
|
|
6496
|
+
break;
|
|
6497
|
+
case GraphicType.Circle:
|
|
6498
|
+
result = this.generateCircleVertices(data, color, thickness || 4);
|
|
6499
|
+
this.drawTriangles(new Float32Array(result.vertices), new Float32Array(result.colors));
|
|
6500
|
+
break;
|
|
6501
|
+
case GraphicType.Rect:
|
|
6502
|
+
result = this.generateRectVertices(data, color, thickness || 3);
|
|
6503
|
+
this.drawTriangles(new Float32Array(result.vertices), new Float32Array(result.colors));
|
|
6504
|
+
break;
|
|
6505
|
+
}
|
|
6506
|
+
const vertices = result.vertices;
|
|
6507
|
+
const colors = result.colors;
|
|
6508
|
+
allVertices.push(...vertices);
|
|
6509
|
+
allColors.push(...colors);
|
|
6510
|
+
}
|
|
6511
|
+
if (0 === allVertices.length) return;
|
|
6512
|
+
this.vertexData = new Float32Array(allVertices);
|
|
6513
|
+
this.colorData = new Float32Array(allColors);
|
|
6514
|
+
gl.useProgram(program);
|
|
6515
|
+
const resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
|
|
6516
|
+
gl.uniform2f(resolutionLocation, gl.canvas.width, gl.canvas.height);
|
|
6517
|
+
const positionLocation = gl.getAttribLocation(program, 'a_position');
|
|
6518
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
|
|
6519
|
+
gl.bufferData(gl.ARRAY_BUFFER, this.vertexData, gl.STATIC_DRAW);
|
|
6520
|
+
gl.enableVertexAttribArray(positionLocation);
|
|
6521
|
+
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
6522
|
+
const colorLocation = gl.getAttribLocation(program, 'a_color');
|
|
6523
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.color);
|
|
6524
|
+
gl.bufferData(gl.ARRAY_BUFFER, this.colorData, gl.STATIC_DRAW);
|
|
6525
|
+
gl.enableVertexAttribArray(colorLocation);
|
|
6526
|
+
gl.vertexAttribPointer(colorLocation, 4, gl.FLOAT, false, 0, 0);
|
|
6527
|
+
const vertexCount = this.vertexData.length / 2;
|
|
6528
|
+
gl.drawArrays(gl.TRIANGLES, 0, vertexCount);
|
|
6557
6529
|
}
|
|
6558
6530
|
}
|
|
6559
6531
|
class IQStream {
|
|
@@ -6570,14 +6542,14 @@ class IQStream {
|
|
|
6570
6542
|
if (!id) return;
|
|
6571
6543
|
this.state.chart = new Dial({
|
|
6572
6544
|
id,
|
|
6573
|
-
...
|
|
6545
|
+
...(0, utils.vY)()
|
|
6574
6546
|
});
|
|
6575
6547
|
setTimeout(()=>{
|
|
6576
6548
|
this.state.chart.resize();
|
|
6577
6549
|
});
|
|
6578
6550
|
__WEBPACK_EXTERNAL_MODULE__rfkit_theme_a11ca9cb__.themeObserver.subscribe(()=>{
|
|
6579
6551
|
this.state.chart.updateProps({
|
|
6580
|
-
...
|
|
6552
|
+
...(0, utils.vY)()
|
|
6581
6553
|
});
|
|
6582
6554
|
this.state.chart.resize();
|
|
6583
6555
|
this.state.chart.draw();
|
|
@@ -6599,7 +6571,7 @@ class IQStream {
|
|
|
6599
6571
|
}
|
|
6600
6572
|
const Dial_Dial = ()=>{
|
|
6601
6573
|
const { state: { globalID } } = useStore_useStore();
|
|
6602
|
-
const { chart, Chart } =
|
|
6574
|
+
const { chart, Chart } = useChart({
|
|
6603
6575
|
Render: IQStream
|
|
6604
6576
|
});
|
|
6605
6577
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
@@ -6746,7 +6718,7 @@ class render_IQStream {
|
|
|
6746
6718
|
if (!id) return;
|
|
6747
6719
|
this.state.chart = new Gauge({
|
|
6748
6720
|
id,
|
|
6749
|
-
...
|
|
6721
|
+
...(0, utils.vY)(),
|
|
6750
6722
|
...props
|
|
6751
6723
|
});
|
|
6752
6724
|
setTimeout(()=>{
|
|
@@ -6754,7 +6726,7 @@ class render_IQStream {
|
|
|
6754
6726
|
});
|
|
6755
6727
|
__WEBPACK_EXTERNAL_MODULE__rfkit_theme_a11ca9cb__.themeObserver.subscribe(()=>{
|
|
6756
6728
|
this.state.chart.updateProps({
|
|
6757
|
-
...
|
|
6729
|
+
...(0, utils.vY)()
|
|
6758
6730
|
});
|
|
6759
6731
|
this.state.chart.resize();
|
|
6760
6732
|
this.state.chart.draw();
|
|
@@ -6781,7 +6753,7 @@ const Gauge_padding = 20;
|
|
|
6781
6753
|
const Gauge_step = 2;
|
|
6782
6754
|
const Gauge_Gauge = ({ onChange })=>{
|
|
6783
6755
|
const { state: { globalID, axisY: { range } } } = useStore_useStore();
|
|
6784
|
-
const { chart, Chart } =
|
|
6756
|
+
const { chart, Chart } = useChart({
|
|
6785
6757
|
Render: render_IQStream,
|
|
6786
6758
|
params: {
|
|
6787
6759
|
padding: Gauge_padding,
|
|
@@ -6902,7 +6874,7 @@ const Ticks = (props)=>{
|
|
|
6902
6874
|
for(let i = 0; i < HEATMAP_FULL_TICKS; i++){
|
|
6903
6875
|
const index = Math.floor((dataLength - 1) * i / (HEATMAP_FULL_TICKS - 1));
|
|
6904
6876
|
const data = waterfallData[index];
|
|
6905
|
-
const value = data?.timestamp ?
|
|
6877
|
+
const value = data?.timestamp ? (0, utils.Fc)(data.timestamp, void 0, void 0, true) : '';
|
|
6906
6878
|
values.push(value);
|
|
6907
6879
|
}
|
|
6908
6880
|
setTimeValues(values);
|
|
@@ -7239,7 +7211,7 @@ const FrequencyDataBoard = ({ left, updateKey, onChange })=>{
|
|
|
7239
7211
|
if (0 === values.length) return null;
|
|
7240
7212
|
index.current = Math.max(0, Math.ceil(values.length * left / 100) - 1);
|
|
7241
7213
|
const level = getVirtualLevel(axisY.unit, values[index.current])?.toFixed(1);
|
|
7242
|
-
if (!
|
|
7214
|
+
if (!(0, utils.Ri)(level)) return null;
|
|
7243
7215
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
|
|
7244
7216
|
className: components_FrequencyDataBoard_styles_module.item,
|
|
7245
7217
|
style: {
|
|
@@ -7387,7 +7359,7 @@ const HeatmapPopover = ({ id })=>{
|
|
|
7387
7359
|
const newValue = yValue[xIndex];
|
|
7388
7360
|
setValue(Number.isFinite(newValue) ? newValue.toFixed(1) : '');
|
|
7389
7361
|
const timestamp = yValue.timestamp;
|
|
7390
|
-
if (timestamp) setTimestamp(
|
|
7362
|
+
if (timestamp) setTimestamp((0, utils.Fc)(timestamp));
|
|
7391
7363
|
}
|
|
7392
7364
|
}
|
|
7393
7365
|
}
|
|
@@ -7675,7 +7647,7 @@ const EventBus_EventBus = ({ id })=>{
|
|
|
7675
7647
|
}, [
|
|
7676
7648
|
EID
|
|
7677
7649
|
]);
|
|
7678
|
-
const handleMouseMove = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(
|
|
7650
|
+
const handleMouseMove = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((0, utils.P2)((e)=>{
|
|
7679
7651
|
createMoveEventManager(EID)(e, calculateEventRelativePosition(e));
|
|
7680
7652
|
updateCursor();
|
|
7681
7653
|
if (dragState.current.isDragging && dragState.current.startPoint.event) {
|
|
@@ -7721,7 +7693,7 @@ const EventBus_EventBus = ({ id })=>{
|
|
|
7721
7693
|
}, [
|
|
7722
7694
|
EID
|
|
7723
7695
|
]);
|
|
7724
|
-
const handleWheel = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(
|
|
7696
|
+
const handleWheel = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((0, utils.P2)((e)=>{
|
|
7725
7697
|
createWheelEventManager(EID)(-1 * e.deltaY, calculateEventRelativePosition(e));
|
|
7726
7698
|
}), [
|
|
7727
7699
|
EID
|
|
@@ -7832,17 +7804,17 @@ function calculateAreaInfo({ endLeft, startLeft, startTop, endTop, frequencyForm
|
|
|
7832
7804
|
startCol: indices.start,
|
|
7833
7805
|
endCol: indices.end,
|
|
7834
7806
|
startTimestamp,
|
|
7835
|
-
startTimestampFormat:
|
|
7807
|
+
startTimestampFormat: (0, utils.Fc)(startTimestamp),
|
|
7836
7808
|
endTimestamp,
|
|
7837
|
-
endTimestampFormat:
|
|
7809
|
+
endTimestampFormat: (0, utils.Fc)(endTimestamp),
|
|
7838
7810
|
duration,
|
|
7839
|
-
durationFormat:
|
|
7811
|
+
durationFormat: (0, utils.lj)(duration / 1000, 3),
|
|
7840
7812
|
startFrequency: frequencies.start,
|
|
7841
7813
|
startFrequencyFormat: String(frequencies.start),
|
|
7842
7814
|
endFrequency: frequencies.end,
|
|
7843
7815
|
endFrequencyFormat: String(frequencies.end),
|
|
7844
7816
|
bandwidth,
|
|
7845
|
-
bandwidthFormat:
|
|
7817
|
+
bandwidthFormat: (0, utils.lj)(bandwidth),
|
|
7846
7818
|
data: waterfallData.slice(indices.bottom, indices.top + 1).map((row)=>Array.from(row.slice(indices.start, indices.end + 1)))
|
|
7847
7819
|
};
|
|
7848
7820
|
return result;
|
|
@@ -7997,7 +7969,7 @@ const Area = (props)=>{
|
|
|
7997
7969
|
})
|
|
7998
7970
|
]
|
|
7999
7971
|
}),
|
|
8000
|
-
|
|
7972
|
+
(0, utils.Ri)(info.durationFormat) && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
|
|
8001
7973
|
className: HeatmapCapture_Area_styles_module.item,
|
|
8002
7974
|
children: [
|
|
8003
7975
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
@@ -8056,7 +8028,7 @@ const RowIndex = ({ id })=>{
|
|
|
8056
8028
|
const rowData = {
|
|
8057
8029
|
data: waterfallData[newRowIndex],
|
|
8058
8030
|
timestamp: newTimestamp,
|
|
8059
|
-
timestampFormat:
|
|
8031
|
+
timestampFormat: (0, utils.Fc)(newTimestamp),
|
|
8060
8032
|
rowIndex: newRowIndex
|
|
8061
8033
|
};
|
|
8062
8034
|
setInfo(rowData);
|
|
@@ -8207,9 +8179,9 @@ const Slider = ({ id })=>{
|
|
|
8207
8179
|
const endIndex = Math.round((100 - newPosition) / 100 * (len - 1));
|
|
8208
8180
|
const startIndex = Math.round((100 - (newPosition + newHeight)) / 100 * (len - 1));
|
|
8209
8181
|
const startTimestamp = heatmapData[startIndex]?.timestamp;
|
|
8210
|
-
const startTimestampFormat =
|
|
8182
|
+
const startTimestampFormat = (0, utils.Fc)(startTimestamp);
|
|
8211
8183
|
const endTimestamp = heatmapData[endIndex]?.timestamp;
|
|
8212
|
-
const endTimestampFormat =
|
|
8184
|
+
const endTimestampFormat = (0, utils.Fc)(endTimestamp);
|
|
8213
8185
|
const duration = endTimestamp - startTimestamp;
|
|
8214
8186
|
const durationFormat = (duration / 1000).toFixed(3);
|
|
8215
8187
|
return {
|
|
@@ -8489,7 +8461,7 @@ const Board = ({ markers, heatmapMode, onChange })=>{
|
|
|
8489
8461
|
children: i.frequency
|
|
8490
8462
|
}),
|
|
8491
8463
|
heatmapMode && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
|
|
8492
|
-
children: i.timestamp ? `-${
|
|
8464
|
+
children: i.timestamp ? `-${(0, utils.Fc)(i.timestamp).slice(11)}` : ''
|
|
8493
8465
|
})
|
|
8494
8466
|
]
|
|
8495
8467
|
}),
|
|
@@ -8792,7 +8764,7 @@ class Markers {
|
|
|
8792
8764
|
create(e, isBatchAdd = false) {
|
|
8793
8765
|
const { markers, labelCache, counter, data, heatmapMode, selectMax } = this.state;
|
|
8794
8766
|
if (0 === data.length) return;
|
|
8795
|
-
const id =
|
|
8767
|
+
const id = (0, utils.SF)();
|
|
8796
8768
|
const label = counter.add();
|
|
8797
8769
|
if (!label) return;
|
|
8798
8770
|
labelCache.push(label);
|
|
@@ -9096,7 +9068,7 @@ class FreeMarkers extends Markers {
|
|
|
9096
9068
|
if (!data || 0 === data.length) return e;
|
|
9097
9069
|
const { peak } = e;
|
|
9098
9070
|
let { left, top } = e;
|
|
9099
|
-
const { row, col } =
|
|
9071
|
+
const { row, col } = (0, utils.B5)(data);
|
|
9100
9072
|
const splitLeft = splitZoomLeft({
|
|
9101
9073
|
left,
|
|
9102
9074
|
zoom,
|
|
@@ -9304,7 +9276,7 @@ class Range {
|
|
|
9304
9276
|
...db[SERIES.maxData.name],
|
|
9305
9277
|
...db[SERIES.minData.name]
|
|
9306
9278
|
];
|
|
9307
|
-
const allInfo =
|
|
9279
|
+
const allInfo = (0, utils.kL)(allData);
|
|
9308
9280
|
let { avg } = allInfo;
|
|
9309
9281
|
if (void 0 === avg) avg = 10;
|
|
9310
9282
|
let step = propsStep || axisY.step;
|
|
@@ -9431,7 +9403,7 @@ class Range {
|
|
|
9431
9403
|
step: this.state.axisY.step,
|
|
9432
9404
|
globalID: this.state.globalID
|
|
9433
9405
|
});
|
|
9434
|
-
const diff =
|
|
9406
|
+
const diff = (0, utils.Bp)(unit) ? v.offset : 0;
|
|
9435
9407
|
const isExceedMin = min < restrict[0] - diff;
|
|
9436
9408
|
const isExceedMax = max > restrict[1];
|
|
9437
9409
|
let newMin = min;
|
|
@@ -9474,7 +9446,7 @@ const components_Ticks_Ticks = ({ ranging })=>{
|
|
|
9474
9446
|
length: len
|
|
9475
9447
|
}, (_, index)=>{
|
|
9476
9448
|
const value = (restrictMax - index * step).toFixed(0);
|
|
9477
|
-
if (!
|
|
9449
|
+
if (!(0, utils.Ri)(value)) return null;
|
|
9478
9450
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
9479
9451
|
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
|
|
9480
9452
|
children: value
|
|
@@ -9779,17 +9751,17 @@ class Spectrum {
|
|
|
9779
9751
|
id,
|
|
9780
9752
|
range: renderRange
|
|
9781
9753
|
});
|
|
9754
|
+
this.initSeries();
|
|
9755
|
+
this.useRangeAutoFocus = ()=>{
|
|
9756
|
+
useRangeAutoFocus(this.state.globalID)();
|
|
9757
|
+
};
|
|
9758
|
+
}
|
|
9759
|
+
initSeries() {
|
|
9782
9760
|
Object.values(SERIES).forEach((config)=>{
|
|
9761
|
+
if (config.name === SERIES.templateData.name) config.type = type_GraphicType.Area;
|
|
9783
9762
|
this.setSeries(JSON.parse(JSON.stringify(config)));
|
|
9784
9763
|
return config;
|
|
9785
9764
|
});
|
|
9786
|
-
this.setSeries({
|
|
9787
|
-
...SERIES.templateData,
|
|
9788
|
-
type: type_GraphicType.Area
|
|
9789
|
-
});
|
|
9790
|
-
this.useRangeAutoFocus = ()=>{
|
|
9791
|
-
useRangeAutoFocus(this.state.globalID)();
|
|
9792
|
-
};
|
|
9793
9765
|
}
|
|
9794
9766
|
updateSeries(d, extraData) {
|
|
9795
9767
|
const { series, chart } = this.state;
|
|
@@ -10159,7 +10131,7 @@ const Markers_Markers = ({ id, counter, selecter, heatmapMode = false })=>{
|
|
|
10159
10131
|
]);
|
|
10160
10132
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
10161
10133
|
if (globalID) {
|
|
10162
|
-
const quark =
|
|
10134
|
+
const quark = (0, utils.f1)(segments);
|
|
10163
10135
|
subscriptionKeyBus(globalID, 'marker', (e)=>{
|
|
10164
10136
|
const { ctrlKey, altKey, key } = e;
|
|
10165
10137
|
const { selected } = marker;
|
|
@@ -10454,7 +10426,7 @@ class render_Heatmap {
|
|
|
10454
10426
|
const Heatmap_Heatmap = (props)=>{
|
|
10455
10427
|
const { selecter, heatmapDefaultData } = props;
|
|
10456
10428
|
const { state: { axisY: { realRange }, globalID } } = useStore_useStore();
|
|
10457
|
-
const { id, chart, Chart } =
|
|
10429
|
+
const { id, chart, Chart } = useChart({
|
|
10458
10430
|
Render: render_Heatmap,
|
|
10459
10431
|
params: {
|
|
10460
10432
|
realRange,
|
|
@@ -10546,7 +10518,7 @@ const Heatmap_Chart_Chart = ({ publish, heatmapDefaultData })=>{
|
|
|
10546
10518
|
const { pstype } = e;
|
|
10547
10519
|
if (pstype === constants_PSType.Heatmap) {
|
|
10548
10520
|
const { data, timestamps } = e;
|
|
10549
|
-
const waterfallData =
|
|
10521
|
+
const waterfallData = (0, utils.P9)(data, timestamps);
|
|
10550
10522
|
const db = withDatabase(globalID);
|
|
10551
10523
|
db.getAllRawData = ()=>({
|
|
10552
10524
|
...getDefaultData().getAllRawData(),
|
|
@@ -10612,7 +10584,7 @@ class IQPlanisphere {
|
|
|
10612
10584
|
}
|
|
10613
10585
|
function IQEye_IQPlanisphere() {
|
|
10614
10586
|
const { state: { globalID } } = useStore_useStore();
|
|
10615
|
-
const { chart, Chart } =
|
|
10587
|
+
const { chart, Chart } = useChart({
|
|
10616
10588
|
Render: IQPlanisphere
|
|
10617
10589
|
});
|
|
10618
10590
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
@@ -10774,7 +10746,7 @@ const GridLines = ()=>{
|
|
|
10774
10746
|
const components_GridLines = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__["default"].memo(GridLines);
|
|
10775
10747
|
const IQLine = ()=>{
|
|
10776
10748
|
const { state: { axisY: { autoranging }, globalID } } = useStore_useStore();
|
|
10777
|
-
const { chart, Chart } =
|
|
10749
|
+
const { chart, Chart } = useChart({
|
|
10778
10750
|
Render: Spectrum,
|
|
10779
10751
|
params: {
|
|
10780
10752
|
autoranging
|
|
@@ -10807,7 +10779,7 @@ const IQLine = ()=>{
|
|
|
10807
10779
|
{
|
|
10808
10780
|
const { IData, QData } = d;
|
|
10809
10781
|
if (IData && QData) {
|
|
10810
|
-
const { min, max } =
|
|
10782
|
+
const { min, max } = (0, utils.kL)([
|
|
10811
10783
|
...IData,
|
|
10812
10784
|
...QData
|
|
10813
10785
|
]);
|
|
@@ -10878,7 +10850,7 @@ class render_IQPlanisphere {
|
|
|
10878
10850
|
}
|
|
10879
10851
|
function IQPlanisphere_IQPlanisphere() {
|
|
10880
10852
|
const { state: { globalID } } = useStore_useStore();
|
|
10881
|
-
const { chart, Chart } =
|
|
10853
|
+
const { chart, Chart } = useChart({
|
|
10882
10854
|
Render: render_IQPlanisphere
|
|
10883
10855
|
});
|
|
10884
10856
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
@@ -10939,7 +10911,7 @@ class IQStream_render_IQStream {
|
|
|
10939
10911
|
}
|
|
10940
10912
|
const IQStream_IQStream = ()=>{
|
|
10941
10913
|
const { state: { globalID } } = useStore_useStore();
|
|
10942
|
-
const { chart, Chart } =
|
|
10914
|
+
const { chart, Chart } = useChart({
|
|
10943
10915
|
Render: IQStream_render_IQStream
|
|
10944
10916
|
});
|
|
10945
10917
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
@@ -11004,405 +10976,975 @@ const IQ_Chart_Chart = (props)=>{
|
|
|
11004
10976
|
}
|
|
11005
10977
|
}
|
|
11006
10978
|
});
|
|
11007
|
-
const Chart = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
11008
|
-
switch(type){
|
|
11009
|
-
case constants_ChartType.IQEye:
|
|
11010
|
-
return IQEye_IQPlanisphere;
|
|
11011
|
-
case constants_ChartType.IQLine:
|
|
11012
|
-
return modules_IQLine;
|
|
11013
|
-
case constants_ChartType.IQPlanisphere:
|
|
11014
|
-
return IQPlanisphere_IQPlanisphere;
|
|
11015
|
-
case constants_ChartType.IQStream:
|
|
11016
|
-
return modules_IQStream;
|
|
11017
|
-
default:
|
|
11018
|
-
return IQPlanisphere_IQPlanisphere;
|
|
11019
|
-
}
|
|
10979
|
+
const Chart = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
10980
|
+
switch(type){
|
|
10981
|
+
case constants_ChartType.IQEye:
|
|
10982
|
+
return IQEye_IQPlanisphere;
|
|
10983
|
+
case constants_ChartType.IQLine:
|
|
10984
|
+
return modules_IQLine;
|
|
10985
|
+
case constants_ChartType.IQPlanisphere:
|
|
10986
|
+
return IQPlanisphere_IQPlanisphere;
|
|
10987
|
+
case constants_ChartType.IQStream:
|
|
10988
|
+
return modules_IQStream;
|
|
10989
|
+
default:
|
|
10990
|
+
return IQPlanisphere_IQPlanisphere;
|
|
10991
|
+
}
|
|
10992
|
+
}, [
|
|
10993
|
+
type
|
|
10994
|
+
]);
|
|
10995
|
+
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_Container, {
|
|
10996
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Chart, {})
|
|
10997
|
+
});
|
|
10998
|
+
};
|
|
10999
|
+
const IQ_Chart = IQ_Chart_Chart;
|
|
11000
|
+
const IQChart = (props)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(store, {
|
|
11001
|
+
system: {
|
|
11002
|
+
padding: false,
|
|
11003
|
+
border: false
|
|
11004
|
+
},
|
|
11005
|
+
...props,
|
|
11006
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(IQ_Chart, {
|
|
11007
|
+
...props
|
|
11008
|
+
})
|
|
11009
|
+
});
|
|
11010
|
+
const IQ_IQ = withChartPublisher(IQChart, 'IQ');
|
|
11011
|
+
const lib_IQ = IQ_IQ;
|
|
11012
|
+
function uselevelStreamAnalyzer() {
|
|
11013
|
+
const { state: { globalID, axisY: { range }, levelStream: { cacheTime, granularity } } } = useStore_useStore();
|
|
11014
|
+
const analyzer = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
|
|
11015
|
+
const globalIDRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(globalID);
|
|
11016
|
+
const updateLevelStreamData = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((renderData)=>{
|
|
11017
|
+
tools(globalIDRef.current, constants_ModuleType.Spectrum)({
|
|
11018
|
+
pstype: constants_PSType.Render,
|
|
11019
|
+
data: {
|
|
11020
|
+
[REAL_DATA_NAME]: renderData.spectrumData
|
|
11021
|
+
}
|
|
11022
|
+
});
|
|
11023
|
+
tools(globalIDRef.current, constants_ModuleType.LevelStream)({
|
|
11024
|
+
pstype: constants_PSType.Render,
|
|
11025
|
+
data: renderData.probabilityRangeData
|
|
11026
|
+
});
|
|
11027
|
+
}, []);
|
|
11028
|
+
const handleLevelStreamUpdate = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((data)=>{
|
|
11029
|
+
const { probabilityRangeData, spectrumData } = data;
|
|
11030
|
+
updateLevelStreamData({
|
|
11031
|
+
probabilityRangeData,
|
|
11032
|
+
spectrumData
|
|
11033
|
+
});
|
|
11034
|
+
}, [
|
|
11035
|
+
updateLevelStreamData
|
|
11036
|
+
]);
|
|
11037
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11038
|
+
globalIDRef.current = globalID;
|
|
11039
|
+
}, [
|
|
11040
|
+
globalID
|
|
11041
|
+
]);
|
|
11042
|
+
if (!analyzer.current && globalID) {
|
|
11043
|
+
analyzer.current = new __WEBPACK_EXTERNAL_MODULE__rfkit_spectrum_analyzer_159ab12b__.LevelStreamAnalyzer({
|
|
11044
|
+
range,
|
|
11045
|
+
cacheTime: cacheTime,
|
|
11046
|
+
granularity: granularity,
|
|
11047
|
+
onLevelStreamUpdate: handleLevelStreamUpdate
|
|
11048
|
+
});
|
|
11049
|
+
const key = 'levelStream';
|
|
11050
|
+
const { line: color } = getConfig(key);
|
|
11051
|
+
tools(globalID, constants_ModuleType.Spectrum)({
|
|
11052
|
+
pstype: constants_PSType.Series,
|
|
11053
|
+
name: REAL_DATA_NAME,
|
|
11054
|
+
color
|
|
11055
|
+
});
|
|
11056
|
+
}
|
|
11057
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11058
|
+
analyzer.current?.setConfig({
|
|
11059
|
+
range
|
|
11060
|
+
});
|
|
11061
|
+
}, [
|
|
11062
|
+
range
|
|
11063
|
+
]);
|
|
11064
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11065
|
+
analyzer.current?.setConfig({
|
|
11066
|
+
cacheTime: cacheTime
|
|
11067
|
+
});
|
|
11068
|
+
}, [
|
|
11069
|
+
cacheTime
|
|
11070
|
+
]);
|
|
11071
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11072
|
+
analyzer.current?.setConfig({
|
|
11073
|
+
granularity: granularity
|
|
11074
|
+
});
|
|
11075
|
+
}, [
|
|
11076
|
+
granularity
|
|
11077
|
+
]);
|
|
11078
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11079
|
+
analyzer.current?.setConfig({
|
|
11080
|
+
onLevelStreamUpdate: handleLevelStreamUpdate
|
|
11081
|
+
});
|
|
11082
|
+
}, [
|
|
11083
|
+
handleLevelStreamUpdate
|
|
11084
|
+
]);
|
|
11085
|
+
return {
|
|
11086
|
+
analyzer: analyzer.current,
|
|
11087
|
+
updateLevelStreamData
|
|
11088
|
+
};
|
|
11089
|
+
}
|
|
11090
|
+
class Occupancy {
|
|
11091
|
+
state;
|
|
11092
|
+
constructor(props){
|
|
11093
|
+
this.state = {
|
|
11094
|
+
chart: null,
|
|
11095
|
+
orientation: type_OrientationType.Vertical,
|
|
11096
|
+
...props
|
|
11097
|
+
};
|
|
11098
|
+
this.init();
|
|
11099
|
+
}
|
|
11100
|
+
init() {
|
|
11101
|
+
const { id, orientation } = this.state;
|
|
11102
|
+
const colors = [
|
|
11103
|
+
...getGradient()
|
|
11104
|
+
].reverse().map((c)=>hexToRGBA(c));
|
|
11105
|
+
const chart = new Series({
|
|
11106
|
+
id,
|
|
11107
|
+
series: [
|
|
11108
|
+
{
|
|
11109
|
+
name: 'bar',
|
|
11110
|
+
type: 'bar',
|
|
11111
|
+
display: true,
|
|
11112
|
+
color: getConfig('bar'),
|
|
11113
|
+
orientation
|
|
11114
|
+
}
|
|
11115
|
+
],
|
|
11116
|
+
range: [
|
|
11117
|
+
0,
|
|
11118
|
+
100
|
|
11119
|
+
],
|
|
11120
|
+
barValue2Color: true,
|
|
11121
|
+
colors
|
|
11122
|
+
});
|
|
11123
|
+
this.state.chart = chart;
|
|
11124
|
+
}
|
|
11125
|
+
updateSeries(data) {
|
|
11126
|
+
const { chart } = this.state;
|
|
11127
|
+
chart.render({
|
|
11128
|
+
name: 'bar',
|
|
11129
|
+
data
|
|
11130
|
+
});
|
|
11131
|
+
}
|
|
11132
|
+
reset() {
|
|
11133
|
+
this.resize();
|
|
11134
|
+
this.clear();
|
|
11135
|
+
}
|
|
11136
|
+
resize() {
|
|
11137
|
+
this.state.chart.resize();
|
|
11138
|
+
}
|
|
11139
|
+
clear() {
|
|
11140
|
+
this.state.chart.clear();
|
|
11141
|
+
}
|
|
11142
|
+
}
|
|
11143
|
+
const Level_Level = (props)=>{
|
|
11144
|
+
const { state: { axisY, globalID } } = useStore_useStore();
|
|
11145
|
+
const { opacity } = props;
|
|
11146
|
+
const { chart, Chart } = useChart({
|
|
11147
|
+
Render: Occupancy,
|
|
11148
|
+
params: {
|
|
11149
|
+
orientation: type_OrientationType.Horizontal
|
|
11150
|
+
}
|
|
11151
|
+
});
|
|
11152
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11153
|
+
if (chart && globalID) tools(globalID, constants_ModuleType.LevelStream, (d)=>{
|
|
11154
|
+
const { data } = d;
|
|
11155
|
+
if (data) chart.updateSeries(data);
|
|
11156
|
+
});
|
|
11020
11157
|
}, [
|
|
11021
|
-
|
|
11158
|
+
chart,
|
|
11159
|
+
globalID
|
|
11022
11160
|
]);
|
|
11023
|
-
|
|
11024
|
-
|
|
11161
|
+
const style = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>({
|
|
11162
|
+
opacity,
|
|
11163
|
+
zIndex: 1
|
|
11164
|
+
}), [
|
|
11165
|
+
axisY,
|
|
11166
|
+
opacity
|
|
11167
|
+
]);
|
|
11168
|
+
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Chart, {
|
|
11169
|
+
style: style
|
|
11025
11170
|
});
|
|
11026
11171
|
};
|
|
11027
|
-
const
|
|
11028
|
-
|
|
11029
|
-
|
|
11030
|
-
|
|
11031
|
-
|
|
11032
|
-
|
|
11033
|
-
|
|
11034
|
-
|
|
11035
|
-
|
|
11036
|
-
|
|
11037
|
-
|
|
11038
|
-
const
|
|
11039
|
-
const
|
|
11040
|
-
|
|
11041
|
-
|
|
11042
|
-
|
|
11043
|
-
|
|
11044
|
-
|
|
11045
|
-
|
|
11046
|
-
|
|
11047
|
-
|
|
11048
|
-
[REAL_DATA_NAME]: renderData.spectrumData
|
|
11172
|
+
const Level = Level_Level;
|
|
11173
|
+
var Band_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/Band/styles.module.less");
|
|
11174
|
+
var Band_styles_module_options = {};
|
|
11175
|
+
Band_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
11176
|
+
Band_styles_module_options.setAttributes = setAttributesWithoutAttributes_default();
|
|
11177
|
+
Band_styles_module_options.insert = insertBySelector_default().bind(null, "head");
|
|
11178
|
+
Band_styles_module_options.domAPI = styleDomAPI_default();
|
|
11179
|
+
Band_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
11180
|
+
injectStylesIntoStyleTag_default()(Band_styles_module.Z, Band_styles_module_options);
|
|
11181
|
+
const components_Band_styles_module = Band_styles_module.Z && Band_styles_module.Z.locals ? Band_styles_module.Z.locals : void 0;
|
|
11182
|
+
function useBand() {
|
|
11183
|
+
const { state: { band }, dispatch } = useStore_useStore();
|
|
11184
|
+
const setBand = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((e)=>{
|
|
11185
|
+
const { show = true, width = 0 } = e;
|
|
11186
|
+
dispatch({
|
|
11187
|
+
payload: {
|
|
11188
|
+
band: {
|
|
11189
|
+
...band,
|
|
11190
|
+
show,
|
|
11191
|
+
width
|
|
11192
|
+
}
|
|
11049
11193
|
}
|
|
11050
11194
|
});
|
|
11051
|
-
tools(globalIDRef.current, constants_ModuleType.LevelStream)({
|
|
11052
|
-
pstype: constants_PSType.Render,
|
|
11053
|
-
data: renderData.probabilityRangeData
|
|
11054
|
-
});
|
|
11055
|
-
}, []);
|
|
11056
|
-
const handleLevelStreamUpdate = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((data)=>{
|
|
11057
|
-
const { probabilityRangeData, spectrumData } = data;
|
|
11058
|
-
updateLevelStreamData({
|
|
11059
|
-
probabilityRangeData,
|
|
11060
|
-
spectrumData
|
|
11061
|
-
});
|
|
11062
|
-
}, [
|
|
11063
|
-
updateLevelStreamData
|
|
11064
|
-
]);
|
|
11065
|
-
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11066
|
-
globalIDRef.current = globalID;
|
|
11067
11195
|
}, [
|
|
11068
|
-
|
|
11196
|
+
band
|
|
11069
11197
|
]);
|
|
11070
|
-
|
|
11071
|
-
|
|
11072
|
-
|
|
11073
|
-
|
|
11074
|
-
|
|
11075
|
-
|
|
11076
|
-
|
|
11077
|
-
|
|
11078
|
-
|
|
11079
|
-
|
|
11080
|
-
|
|
11081
|
-
|
|
11082
|
-
|
|
11198
|
+
return setBand;
|
|
11199
|
+
}
|
|
11200
|
+
const Band_Band = ()=>{
|
|
11201
|
+
const { state: { band: { show, width, left, color } } } = useStore_useStore();
|
|
11202
|
+
if (!show) return null;
|
|
11203
|
+
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomOffsetContainer, {
|
|
11204
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11205
|
+
className: components_Band_styles_module.band,
|
|
11206
|
+
style: {
|
|
11207
|
+
left: void 0 !== left ? `${left}%` : `calc(50% - ${width / 2}%)`,
|
|
11208
|
+
width: `${width}%`,
|
|
11209
|
+
backgroundColor: `${color}15`,
|
|
11210
|
+
borderColor: `${color}`
|
|
11211
|
+
}
|
|
11212
|
+
})
|
|
11213
|
+
});
|
|
11214
|
+
};
|
|
11215
|
+
const Band = Band_Band;
|
|
11216
|
+
var DragFrame_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/DragFrame/styles.module.less");
|
|
11217
|
+
var DragFrame_styles_module_options = {};
|
|
11218
|
+
DragFrame_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
11219
|
+
DragFrame_styles_module_options.setAttributes = setAttributesWithoutAttributes_default();
|
|
11220
|
+
DragFrame_styles_module_options.insert = insertBySelector_default().bind(null, "head");
|
|
11221
|
+
DragFrame_styles_module_options.domAPI = styleDomAPI_default();
|
|
11222
|
+
DragFrame_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
11223
|
+
injectStylesIntoStyleTag_default()(DragFrame_styles_module.Z, DragFrame_styles_module_options);
|
|
11224
|
+
const components_DragFrame_styles_module = DragFrame_styles_module.Z && DragFrame_styles_module.Z.locals ? DragFrame_styles_module.Z.locals : void 0;
|
|
11225
|
+
const maxIndexSegments2FrequencyBandwidth = ({ frequencyLeft, segments })=>(0, utils.Ax)(segments)(frequencyLeft);
|
|
11226
|
+
const startEnd2AnalyseFrequencyBandwidth = ({ e, zoom, segments, onChange, globalID })=>{
|
|
11227
|
+
const { realData } = withDatabase(globalID).getAllRawData();
|
|
11228
|
+
if (!realData) return;
|
|
11229
|
+
const len = realData.length;
|
|
11230
|
+
const { interval: { start: outsideStart, end: outsideEnd } } = zoom;
|
|
11231
|
+
const potintLen = outsideEnd - outsideStart;
|
|
11232
|
+
const { left: startLeft } = e;
|
|
11233
|
+
const endLeft = e.left + e.width;
|
|
11234
|
+
const left = convertCoordToVisualLeft({
|
|
11235
|
+
coord: e,
|
|
11236
|
+
segments,
|
|
11237
|
+
zoom
|
|
11238
|
+
});
|
|
11239
|
+
const right = convertCoordToVisualLeft({
|
|
11240
|
+
coord: {
|
|
11241
|
+
left: endLeft
|
|
11242
|
+
},
|
|
11243
|
+
segments,
|
|
11244
|
+
zoom
|
|
11245
|
+
});
|
|
11246
|
+
const start = Math.max(0, Math.ceil(len * left / 100) - 1);
|
|
11247
|
+
const end = Math.ceil(len * right / 100);
|
|
11248
|
+
const { maxIndex } = (0, utils.kL)(Array.from(realData.slice(start, end)));
|
|
11249
|
+
const frequencyLeft = (outsideStart + (start + maxIndex + 1) / len * potintLen) * 100 / segments.totalPoints;
|
|
11250
|
+
const frequency = maxIndexSegments2FrequencyBandwidth({
|
|
11251
|
+
frequencyLeft,
|
|
11252
|
+
segments
|
|
11253
|
+
});
|
|
11254
|
+
const bandwidth = Math.round(1000 * (0, utils.r2)({
|
|
11255
|
+
segments,
|
|
11256
|
+
endLeft,
|
|
11257
|
+
startLeft
|
|
11258
|
+
}));
|
|
11259
|
+
onChange({
|
|
11260
|
+
frequency,
|
|
11261
|
+
bandwidth,
|
|
11262
|
+
left,
|
|
11263
|
+
right
|
|
11264
|
+
});
|
|
11265
|
+
};
|
|
11266
|
+
const DragFrame_COMPONENT_KEY = constants_ToolType.DragFrame;
|
|
11267
|
+
const DragFrame = ({ id })=>{
|
|
11268
|
+
const { state: { zoom, segments, signalAnalysis, globalID }, dispatch } = useStore_useStore();
|
|
11269
|
+
const [frameState, setFrameState] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(null);
|
|
11270
|
+
const onChange = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((e, isSignalAnalysis = false)=>{
|
|
11271
|
+
if (signalAnalysis.show && signalAnalysis.display && isSignalAnalysis) return void startEnd2AnalyseFrequencyBandwidth({
|
|
11272
|
+
e,
|
|
11273
|
+
zoom,
|
|
11274
|
+
segments,
|
|
11275
|
+
onChange: signalAnalysis.onChange,
|
|
11276
|
+
globalID
|
|
11083
11277
|
});
|
|
11084
|
-
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
|
|
11278
|
+
dispatch({
|
|
11279
|
+
payload: {
|
|
11280
|
+
zoom: {
|
|
11281
|
+
...zoom,
|
|
11282
|
+
interval: e.interval,
|
|
11283
|
+
isScanSegmentsUpdateMagnify: e.isScanSegmentsUpdateMagnify
|
|
11284
|
+
}
|
|
11285
|
+
}
|
|
11088
11286
|
});
|
|
11089
11287
|
}, [
|
|
11090
|
-
|
|
11288
|
+
signalAnalysis,
|
|
11289
|
+
zoom,
|
|
11290
|
+
segments,
|
|
11291
|
+
globalID
|
|
11091
11292
|
]);
|
|
11092
|
-
(0, __WEBPACK_EXTERNAL_MODULE_react__.
|
|
11093
|
-
|
|
11094
|
-
|
|
11293
|
+
const filterFrameState = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((startCoords, endCoords, _, isEventButtonsRight)=>{
|
|
11294
|
+
if (startCoords && endCoords && isEventButtonsRight) {
|
|
11295
|
+
const diffX = endCoords.left - startCoords.left;
|
|
11296
|
+
setFrameState({
|
|
11297
|
+
diffX,
|
|
11298
|
+
left: diffX > 0 ? startCoords.left : endCoords.left,
|
|
11299
|
+
width: Math.abs(diffX),
|
|
11300
|
+
isScanSegmentsUpdateMagnify: diffX > 0
|
|
11301
|
+
});
|
|
11302
|
+
}
|
|
11303
|
+
}, []);
|
|
11304
|
+
const handleFrameRender = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
|
|
11305
|
+
if (!frameState) return;
|
|
11306
|
+
const { left, width, isScanSegmentsUpdateMagnify, diffX } = frameState;
|
|
11307
|
+
const { totalPoints } = segments;
|
|
11308
|
+
if (isScanSegmentsUpdateMagnify && diffX > 0) {
|
|
11309
|
+
const nextPoint = 2 * Math.ceil(width / 100 * totalPoints / 2);
|
|
11310
|
+
const start = Math.round(totalPoints * left / 100) - 1;
|
|
11311
|
+
const end = nextPoint + start - 1;
|
|
11312
|
+
if (nextPoint > 10) onChange({
|
|
11313
|
+
interval: {
|
|
11314
|
+
start,
|
|
11315
|
+
end
|
|
11316
|
+
},
|
|
11317
|
+
isScanSegmentsUpdateMagnify,
|
|
11318
|
+
left,
|
|
11319
|
+
width
|
|
11320
|
+
}, true);
|
|
11321
|
+
}
|
|
11322
|
+
if (diffX < 0) onChange({
|
|
11323
|
+
interval: {
|
|
11324
|
+
start: 0,
|
|
11325
|
+
end: totalPoints - 1
|
|
11326
|
+
},
|
|
11327
|
+
isScanSegmentsUpdateMagnify,
|
|
11328
|
+
left,
|
|
11329
|
+
width
|
|
11095
11330
|
});
|
|
11096
11331
|
}, [
|
|
11097
|
-
|
|
11332
|
+
frameState,
|
|
11333
|
+
segments,
|
|
11334
|
+
zoom.interval.end,
|
|
11335
|
+
onChange
|
|
11098
11336
|
]);
|
|
11099
|
-
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11100
|
-
|
|
11101
|
-
|
|
11102
|
-
|
|
11337
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11338
|
+
if (zoom.show) {
|
|
11339
|
+
const reset = ()=>{
|
|
11340
|
+
setFrameState(null);
|
|
11341
|
+
resetEventLevel(id, DragFrame_COMPONENT_KEY);
|
|
11342
|
+
};
|
|
11343
|
+
createMouseDownEventManager(id, DragFrame_COMPONENT_KEY, reset);
|
|
11344
|
+
createMouseUpEventManager(id, DragFrame_COMPONENT_KEY, ()=>{
|
|
11345
|
+
handleFrameRender();
|
|
11346
|
+
reset();
|
|
11347
|
+
});
|
|
11348
|
+
createMouseLeaveEventManager(id, DragFrame_COMPONENT_KEY, reset);
|
|
11349
|
+
createDragEventManager(id, DragFrame_COMPONENT_KEY, (...args)=>{
|
|
11350
|
+
if (compareEventPriority(id, DragFrame_COMPONENT_KEY)) filterFrameState(args[0], args[1], args[2], args[3]);
|
|
11351
|
+
});
|
|
11352
|
+
}
|
|
11103
11353
|
}, [
|
|
11104
|
-
|
|
11354
|
+
zoom.show,
|
|
11355
|
+
id,
|
|
11356
|
+
handleFrameRender,
|
|
11357
|
+
filterFrameState
|
|
11105
11358
|
]);
|
|
11106
11359
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11107
|
-
|
|
11108
|
-
onLevelStreamUpdate: handleLevelStreamUpdate
|
|
11109
|
-
});
|
|
11360
|
+
if (!frameState) resetEventLevel(id, DragFrame_COMPONENT_KEY);
|
|
11110
11361
|
}, [
|
|
11111
|
-
|
|
11362
|
+
frameState,
|
|
11363
|
+
id
|
|
11112
11364
|
]);
|
|
11365
|
+
if (!zoom.show) return null;
|
|
11366
|
+
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomOffsetContainer, {
|
|
11367
|
+
className: components_DragFrame_styles_module.DragFrame,
|
|
11368
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11369
|
+
className: `${components_DragFrame_styles_module.frame} ${frameState?.isScanSegmentsUpdateMagnify ? '' : components_DragFrame_styles_module.bias}`,
|
|
11370
|
+
style: frameState ? {
|
|
11371
|
+
left: `${frameState.left}%`,
|
|
11372
|
+
width: `${frameState.width}%`
|
|
11373
|
+
} : {}
|
|
11374
|
+
})
|
|
11375
|
+
});
|
|
11376
|
+
};
|
|
11377
|
+
const components_DragFrame = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(DragFrame);
|
|
11378
|
+
const originalColors = [
|
|
11379
|
+
'#B22222',
|
|
11380
|
+
'#CD5C5C',
|
|
11381
|
+
'#FF6347',
|
|
11382
|
+
'#FA8072',
|
|
11383
|
+
'#F08080',
|
|
11384
|
+
'#A0522D',
|
|
11385
|
+
'#FF4500',
|
|
11386
|
+
'#FF7F50',
|
|
11387
|
+
'#B8860B',
|
|
11388
|
+
'#FFA500',
|
|
11389
|
+
'#808000',
|
|
11390
|
+
'#9ACD32',
|
|
11391
|
+
'#32CD32',
|
|
11392
|
+
'#8FBC8F',
|
|
11393
|
+
'#2E8B57',
|
|
11394
|
+
'#3CB371',
|
|
11395
|
+
'#00FA9A',
|
|
11396
|
+
'#66CDAA',
|
|
11397
|
+
'#7FFFD4',
|
|
11398
|
+
'#2F4F4F',
|
|
11399
|
+
'#008080',
|
|
11400
|
+
'#00CED1',
|
|
11401
|
+
'#20B2AA',
|
|
11402
|
+
'#48D1CC',
|
|
11403
|
+
'#4682B4',
|
|
11404
|
+
'#778899',
|
|
11405
|
+
'#87CEFA',
|
|
11406
|
+
'#4169E1',
|
|
11407
|
+
'#4169E1',
|
|
11408
|
+
'#6495ED',
|
|
11409
|
+
'#483D8B',
|
|
11410
|
+
'#6A5ACD',
|
|
11411
|
+
'#7B68EE',
|
|
11412
|
+
'#9370DB',
|
|
11413
|
+
'#9370DB',
|
|
11414
|
+
'#9932CC',
|
|
11415
|
+
'#8A2BE2',
|
|
11416
|
+
'#BA55D3',
|
|
11417
|
+
'#800080',
|
|
11418
|
+
'#DDA0DD',
|
|
11419
|
+
'#C71585',
|
|
11420
|
+
'#DC143C'
|
|
11421
|
+
];
|
|
11422
|
+
function hexToHsl(hex) {
|
|
11423
|
+
const r = parseInt(hex.slice(1, 3), 16) / 255;
|
|
11424
|
+
const g = parseInt(hex.slice(3, 5), 16) / 255;
|
|
11425
|
+
const b = parseInt(hex.slice(5, 7), 16) / 255;
|
|
11426
|
+
const max = Math.max(r, g, b);
|
|
11427
|
+
const min = Math.min(r, g, b);
|
|
11428
|
+
let h = 0;
|
|
11429
|
+
let s = 0;
|
|
11430
|
+
const l = (max + min) / 2;
|
|
11431
|
+
if (max !== min) {
|
|
11432
|
+
const d = max - min;
|
|
11433
|
+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
11434
|
+
switch(max){
|
|
11435
|
+
case r:
|
|
11436
|
+
h = (g - b) / d + (g < b ? 6 : 0);
|
|
11437
|
+
break;
|
|
11438
|
+
case g:
|
|
11439
|
+
h = (b - r) / d + 2;
|
|
11440
|
+
break;
|
|
11441
|
+
case b:
|
|
11442
|
+
h = (r - g) / d + 4;
|
|
11443
|
+
break;
|
|
11444
|
+
}
|
|
11445
|
+
h /= 6;
|
|
11446
|
+
}
|
|
11113
11447
|
return {
|
|
11114
|
-
|
|
11115
|
-
|
|
11448
|
+
h: 360 * h,
|
|
11449
|
+
s: 100 * s,
|
|
11450
|
+
l: 100 * l
|
|
11116
11451
|
};
|
|
11117
11452
|
}
|
|
11118
|
-
|
|
11119
|
-
|
|
11120
|
-
|
|
11121
|
-
|
|
11122
|
-
|
|
11123
|
-
|
|
11124
|
-
|
|
11453
|
+
const sortedColors = [
|
|
11454
|
+
...originalColors
|
|
11455
|
+
].map((color)=>({
|
|
11456
|
+
color,
|
|
11457
|
+
hsl: hexToHsl(color)
|
|
11458
|
+
})).sort((a, b)=>{
|
|
11459
|
+
if (Math.abs(a.hsl.h - b.hsl.h) > 10) return a.hsl.h - b.hsl.h;
|
|
11460
|
+
return a.hsl.l - b.hsl.l;
|
|
11461
|
+
}).map((item)=>item.color);
|
|
11462
|
+
function sortAndRecolorFrequencyAllocationData(data) {
|
|
11463
|
+
const sortedData = [
|
|
11464
|
+
...data
|
|
11465
|
+
].sort((a, b)=>Number(a.startFrequency) - Number(b.startFrequency));
|
|
11466
|
+
return sortedData.map((item, index)=>{
|
|
11467
|
+
const totalBands = sortedData.length;
|
|
11468
|
+
const colorCount = sortedColors.length;
|
|
11469
|
+
const startColorIndex = Math.floor(index / totalBands * colorCount);
|
|
11470
|
+
const endColorIndex = Math.floor((index + 1) / totalBands * colorCount);
|
|
11471
|
+
const startColor = sortedColors[Math.min(startColorIndex, colorCount - 1)];
|
|
11472
|
+
const endColor = sortedColors[Math.min(endColorIndex, colorCount - 1)];
|
|
11473
|
+
const finalEndColor = index === totalBands - 1 ? sortedColors[colorCount - 1] : endColor;
|
|
11474
|
+
return {
|
|
11475
|
+
...item,
|
|
11476
|
+
color: startColor,
|
|
11477
|
+
gradientColors: [
|
|
11478
|
+
startColor,
|
|
11479
|
+
finalEndColor
|
|
11480
|
+
]
|
|
11125
11481
|
};
|
|
11126
|
-
|
|
11127
|
-
|
|
11128
|
-
|
|
11129
|
-
|
|
11130
|
-
|
|
11131
|
-
|
|
11132
|
-
|
|
11133
|
-
|
|
11134
|
-
|
|
11135
|
-
|
|
11136
|
-
|
|
11137
|
-
|
|
11138
|
-
|
|
11139
|
-
|
|
11140
|
-
|
|
11141
|
-
|
|
11142
|
-
|
|
11143
|
-
|
|
11144
|
-
|
|
11145
|
-
|
|
11146
|
-
|
|
11147
|
-
|
|
11148
|
-
|
|
11149
|
-
|
|
11150
|
-
|
|
11151
|
-
|
|
11152
|
-
|
|
11153
|
-
|
|
11154
|
-
|
|
11155
|
-
|
|
11156
|
-
|
|
11157
|
-
|
|
11158
|
-
|
|
11159
|
-
|
|
11160
|
-
|
|
11161
|
-
|
|
11162
|
-
|
|
11163
|
-
|
|
11164
|
-
|
|
11165
|
-
|
|
11166
|
-
|
|
11167
|
-
|
|
11168
|
-
|
|
11482
|
+
});
|
|
11483
|
+
}
|
|
11484
|
+
const FrequencyAllocation_data = [
|
|
11485
|
+
{
|
|
11486
|
+
startFrequency: 87,
|
|
11487
|
+
stopFrequency: 108,
|
|
11488
|
+
stepFrequency: 100,
|
|
11489
|
+
bandwidth: 150,
|
|
11490
|
+
modulation: 'AM',
|
|
11491
|
+
demodulation: "\u4E0D\u89E3\u8C03",
|
|
11492
|
+
status: "\u5408\u6CD5",
|
|
11493
|
+
title: "FM\u5E7F\u64AD",
|
|
11494
|
+
description: "FM\u8C03\u9891\u5E7F\u64AD\u9891\u6BB5\uFF0C\u7528\u4E8E\u97F3\u9891\u5E7F\u64AD\u670D\u52A1"
|
|
11495
|
+
},
|
|
11496
|
+
{
|
|
11497
|
+
startFrequency: 108,
|
|
11498
|
+
stopFrequency: 118,
|
|
11499
|
+
stepFrequency: 50,
|
|
11500
|
+
bandwidth: 100,
|
|
11501
|
+
modulation: 'FM',
|
|
11502
|
+
demodulation: "\u89E3\u8C03",
|
|
11503
|
+
status: "\u5408\u6CD5",
|
|
11504
|
+
title: "\u822A\u7A7A\u5BFC\u822A",
|
|
11505
|
+
description: "\u822A\u7A7A\u65E0\u7EBF\u7535\u5BFC\u822A\u9891\u6BB5\uFF0C\u7528\u4E8E\u4EEA\u8868\u7740\u9646\u7CFB\u7EDF\u7B49"
|
|
11506
|
+
},
|
|
11507
|
+
{
|
|
11508
|
+
startFrequency: 118,
|
|
11509
|
+
stopFrequency: 137,
|
|
11510
|
+
stepFrequency: 25,
|
|
11511
|
+
bandwidth: 50,
|
|
11512
|
+
modulation: 'AM',
|
|
11513
|
+
demodulation: "\u89E3\u8C03",
|
|
11514
|
+
status: "\u5408\u6CD5",
|
|
11515
|
+
title: "\u822A\u7A7A\u8BED\u97F3\u901A\u4FE1",
|
|
11516
|
+
description: "\u6C11\u7528\u822A\u7A7A\u8BED\u97F3\u901A\u4FE1\u9891\u6BB5"
|
|
11517
|
+
},
|
|
11518
|
+
{
|
|
11519
|
+
startFrequency: 121,
|
|
11520
|
+
stopFrequency: 122,
|
|
11521
|
+
stepFrequency: 25,
|
|
11522
|
+
bandwidth: 50,
|
|
11523
|
+
modulation: 'FM',
|
|
11524
|
+
demodulation: "\u89E3\u8C03",
|
|
11525
|
+
status: "\u5408\u6CD5",
|
|
11526
|
+
title: "\u7D27\u6025\u901A\u4FE1",
|
|
11527
|
+
description: "\u7D27\u6025\u60C5\u51B5\u901A\u4FE1\u4E13\u7528\u9891\u6BB5"
|
|
11528
|
+
},
|
|
11529
|
+
{
|
|
11530
|
+
startFrequency: 136,
|
|
11531
|
+
stopFrequency: 174,
|
|
11532
|
+
stepFrequency: 25,
|
|
11533
|
+
bandwidth: 50,
|
|
11534
|
+
modulation: 'FM',
|
|
11535
|
+
demodulation: "\u89E3\u8C03",
|
|
11536
|
+
status: "\u5408\u6CD5",
|
|
11537
|
+
title: "\u5BF9\u8BB2\u901A\u4FE1",
|
|
11538
|
+
description: "\u4E13\u4E1A\u65E0\u7EBF\u5BF9\u8BB2\u901A\u4FE1\u9891\u6BB5"
|
|
11539
|
+
},
|
|
11540
|
+
{
|
|
11541
|
+
startFrequency: 161,
|
|
11542
|
+
stopFrequency: 162,
|
|
11543
|
+
stepFrequency: 25,
|
|
11544
|
+
bandwidth: 50,
|
|
11545
|
+
modulation: 'GMSK',
|
|
11546
|
+
demodulation: "\u89E3\u8C03",
|
|
11547
|
+
status: "\u5408\u6CD5",
|
|
11548
|
+
title: "AIS\u8239\u8236\u901A\u4FE1",
|
|
11549
|
+
description: "\u8239\u8236\u81EA\u52A8\u8BC6\u522B\u7CFB\u7EDF(AIS)\u4E13\u7528\u9891\u6BB5"
|
|
11550
|
+
},
|
|
11551
|
+
{
|
|
11552
|
+
startFrequency: 351,
|
|
11553
|
+
stopFrequency: 400,
|
|
11554
|
+
stepFrequency: 25,
|
|
11555
|
+
bandwidth: 50,
|
|
11556
|
+
modulation: 'FM',
|
|
11557
|
+
demodulation: "\u89E3\u8C03",
|
|
11558
|
+
status: "\u5408\u6CD5",
|
|
11559
|
+
title: "\u96C6\u7FA4\u901A\u4FE1",
|
|
11560
|
+
description: "\u4E13\u4E1A\u96C6\u7FA4\u901A\u4FE1\u7CFB\u7EDF\u9891\u6BB5"
|
|
11561
|
+
},
|
|
11562
|
+
{
|
|
11563
|
+
startFrequency: 400,
|
|
11564
|
+
stopFrequency: 470,
|
|
11565
|
+
stepFrequency: 25,
|
|
11566
|
+
bandwidth: 50,
|
|
11567
|
+
modulation: 'FM',
|
|
11568
|
+
demodulation: "\u89E3\u8C03",
|
|
11569
|
+
status: "\u5408\u6CD5",
|
|
11570
|
+
title: "\u4E13\u4E1A\u5BF9\u8BB2",
|
|
11571
|
+
description: "\u4E13\u4E1A\u65E0\u7EBF\u5BF9\u8BB2\u901A\u4FE1\u9891\u6BB5"
|
|
11572
|
+
},
|
|
11573
|
+
{
|
|
11574
|
+
startFrequency: 534,
|
|
11575
|
+
stopFrequency: 542,
|
|
11576
|
+
stepFrequency: 100,
|
|
11577
|
+
bandwidth: 8000,
|
|
11578
|
+
modulation: 'OFDM',
|
|
11579
|
+
demodulation: "\u89E3\u8C03",
|
|
11580
|
+
status: "\u5408\u6CD5",
|
|
11581
|
+
title: "\u6570\u5B57\u7535\u89C6",
|
|
11582
|
+
description: "\u6570\u5B57\u7535\u89C6\u5E7F\u64AD\u9891\u6BB5"
|
|
11583
|
+
},
|
|
11584
|
+
{
|
|
11585
|
+
startFrequency: 622,
|
|
11586
|
+
stopFrequency: 630,
|
|
11587
|
+
stepFrequency: 100,
|
|
11588
|
+
bandwidth: 8000,
|
|
11589
|
+
modulation: 'OFDM',
|
|
11590
|
+
demodulation: "\u89E3\u8C03",
|
|
11591
|
+
status: "\u5408\u6CD5",
|
|
11592
|
+
title: "\u6570\u5B57\u7535\u89C6",
|
|
11593
|
+
description: "\u6570\u5B57\u7535\u89C6\u5E7F\u64AD\u9891\u6BB5"
|
|
11594
|
+
},
|
|
11595
|
+
{
|
|
11596
|
+
startFrequency: 703,
|
|
11597
|
+
stopFrequency: 733,
|
|
11598
|
+
stepFrequency: 100,
|
|
11599
|
+
bandwidth: 30000,
|
|
11600
|
+
modulation: 'OFDMA',
|
|
11601
|
+
demodulation: "\u89E3\u8C03",
|
|
11602
|
+
status: "\u5408\u6CD5",
|
|
11603
|
+
title: "5G\u4E0A\u884C(\u5E7F\u7535/\u79FB\u52A8)",
|
|
11604
|
+
description: "\u5E7F\u7535\u548C\u79FB\u52A85G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11605
|
+
},
|
|
11606
|
+
{
|
|
11607
|
+
startFrequency: 758,
|
|
11608
|
+
stopFrequency: 788,
|
|
11609
|
+
stepFrequency: 100,
|
|
11610
|
+
bandwidth: 30000,
|
|
11611
|
+
modulation: 'OFDMA',
|
|
11612
|
+
demodulation: "\u89E3\u8C03",
|
|
11613
|
+
status: "\u5408\u6CD5",
|
|
11614
|
+
title: "5G\u4E0B\u884C(\u5E7F\u7535/\u79FB\u52A8)",
|
|
11615
|
+
description: "\u5E7F\u7535\u548C\u79FB\u52A85G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11616
|
+
},
|
|
11617
|
+
{
|
|
11618
|
+
startFrequency: 806,
|
|
11619
|
+
stopFrequency: 821,
|
|
11620
|
+
stepFrequency: 25,
|
|
11621
|
+
bandwidth: 50,
|
|
11622
|
+
modulation: "\u03C0/4DQPSK",
|
|
11623
|
+
demodulation: "\u89E3\u8C03",
|
|
11624
|
+
status: "\u5408\u6CD5",
|
|
11625
|
+
title: "\u6570\u5B57\u96C6\u7FA4\u4E0A\u884C",
|
|
11626
|
+
description: "\u6570\u5B57\u96C6\u7FA4\u901A\u4FE1\u7CFB\u7EDF(TETRA)\u4E0A\u884C\u9891\u6BB5"
|
|
11627
|
+
},
|
|
11628
|
+
{
|
|
11629
|
+
startFrequency: 824,
|
|
11630
|
+
stopFrequency: 835,
|
|
11631
|
+
stepFrequency: 100,
|
|
11632
|
+
bandwidth: 5000,
|
|
11633
|
+
modulation: 'QPSK',
|
|
11634
|
+
demodulation: "\u89E3\u8C03",
|
|
11635
|
+
status: "\u5408\u6CD5",
|
|
11636
|
+
title: "\u7535\u4FE13G/4G/5G\u4E0A\u884C",
|
|
11637
|
+
description: "\u4E2D\u56FD\u7535\u4FE13G/4G/5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11638
|
+
},
|
|
11639
|
+
{
|
|
11640
|
+
startFrequency: 851,
|
|
11641
|
+
stopFrequency: 866,
|
|
11642
|
+
stepFrequency: 25,
|
|
11643
|
+
bandwidth: 50,
|
|
11644
|
+
modulation: "\u03C0/4DQPSK",
|
|
11645
|
+
demodulation: "\u89E3\u8C03",
|
|
11646
|
+
status: "\u5408\u6CD5",
|
|
11647
|
+
title: "\u6570\u5B57\u96C6\u7FA4\u4E0B\u884C",
|
|
11648
|
+
description: "\u6570\u5B57\u96C6\u7FA4\u901A\u4FE1\u7CFB\u7EDF(TETRA)\u4E0B\u884C\u9891\u6BB5"
|
|
11649
|
+
},
|
|
11650
|
+
{
|
|
11651
|
+
startFrequency: 869,
|
|
11652
|
+
stopFrequency: 880,
|
|
11653
|
+
stepFrequency: 100,
|
|
11654
|
+
bandwidth: 5000,
|
|
11655
|
+
modulation: 'QPSK',
|
|
11656
|
+
demodulation: "\u89E3\u8C03",
|
|
11657
|
+
status: "\u5408\u6CD5",
|
|
11658
|
+
title: "\u7535\u4FE13G/4G/5G\u4E0B\u884C",
|
|
11659
|
+
description: "\u4E2D\u56FD\u7535\u4FE13G/4G/5G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11660
|
+
},
|
|
11661
|
+
{
|
|
11662
|
+
startFrequency: 885,
|
|
11663
|
+
stopFrequency: 889,
|
|
11664
|
+
stepFrequency: 200,
|
|
11665
|
+
bandwidth: 200,
|
|
11666
|
+
modulation: 'GMSK',
|
|
11667
|
+
demodulation: "\u89E3\u8C03",
|
|
11668
|
+
status: "\u5408\u6CD5",
|
|
11669
|
+
title: "GSM-R\u4E0A\u884C",
|
|
11670
|
+
description: "\u94C1\u8DEF\u4E13\u7528GSM-R\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11671
|
+
},
|
|
11672
|
+
{
|
|
11673
|
+
startFrequency: 889,
|
|
11674
|
+
stopFrequency: 904,
|
|
11675
|
+
stepFrequency: 200,
|
|
11676
|
+
bandwidth: 200,
|
|
11677
|
+
modulation: 'GMSK',
|
|
11678
|
+
demodulation: "\u89E3\u8C03",
|
|
11679
|
+
status: "\u5408\u6CD5",
|
|
11680
|
+
title: "\u79FB\u52A82G/4G\u4E0A\u884C",
|
|
11681
|
+
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11682
|
+
},
|
|
11683
|
+
{
|
|
11684
|
+
startFrequency: 904,
|
|
11685
|
+
stopFrequency: 915,
|
|
11686
|
+
stepFrequency: 200,
|
|
11687
|
+
bandwidth: 200,
|
|
11688
|
+
modulation: 'QPSK',
|
|
11689
|
+
demodulation: "\u89E3\u8C03",
|
|
11690
|
+
status: "\u5408\u6CD5",
|
|
11691
|
+
title: "\u8054\u901A2/3/4/5G\u4E0A\u884C",
|
|
11692
|
+
description: "\u4E2D\u56FD\u8054\u901A2G/3G/4G/5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11693
|
+
},
|
|
11694
|
+
{
|
|
11695
|
+
startFrequency: 930,
|
|
11696
|
+
stopFrequency: 934,
|
|
11697
|
+
stepFrequency: 200,
|
|
11698
|
+
bandwidth: 200,
|
|
11699
|
+
modulation: 'GMSK',
|
|
11700
|
+
demodulation: "\u89E3\u8C03",
|
|
11701
|
+
status: "\u5408\u6CD5",
|
|
11702
|
+
title: "GSM-R\u4E0B\u884C",
|
|
11703
|
+
description: "\u94C1\u8DEF\u4E13\u7528GSM-R\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11704
|
+
},
|
|
11705
|
+
{
|
|
11706
|
+
startFrequency: 934,
|
|
11707
|
+
stopFrequency: 949,
|
|
11708
|
+
stepFrequency: 200,
|
|
11709
|
+
bandwidth: 200,
|
|
11710
|
+
modulation: 'GMSK',
|
|
11711
|
+
demodulation: "\u89E3\u8C03",
|
|
11712
|
+
status: "\u5408\u6CD5",
|
|
11713
|
+
title: "\u79FB\u52A82G/4G\u4E0B\u884C",
|
|
11714
|
+
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11715
|
+
},
|
|
11716
|
+
{
|
|
11717
|
+
startFrequency: 949,
|
|
11718
|
+
stopFrequency: 960,
|
|
11719
|
+
stepFrequency: 200,
|
|
11720
|
+
bandwidth: 200,
|
|
11721
|
+
modulation: 'QPSK',
|
|
11722
|
+
demodulation: "\u89E3\u8C03",
|
|
11723
|
+
status: "\u5408\u6CD5",
|
|
11724
|
+
title: "\u8054\u901A2/3/4/5G\u4E0B\u884C",
|
|
11725
|
+
description: "\u4E2D\u56FD\u8054\u901A2G/3G/4G/5G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11726
|
+
},
|
|
11727
|
+
{
|
|
11728
|
+
startFrequency: 1164,
|
|
11729
|
+
stopFrequency: 1189,
|
|
11730
|
+
stepFrequency: 1000,
|
|
11731
|
+
bandwidth: 10000,
|
|
11732
|
+
modulation: 'BPSK',
|
|
11733
|
+
demodulation: "\u89E3\u8C03",
|
|
11734
|
+
status: "\u5408\u6CD5",
|
|
11735
|
+
title: "GPS L5\u9891\u6BB5",
|
|
11736
|
+
description: "\u5168\u7403\u5B9A\u4F4D\u7CFB\u7EDFGPS L5\u9891\u6BB5"
|
|
11737
|
+
},
|
|
11738
|
+
{
|
|
11739
|
+
startFrequency: 1215,
|
|
11740
|
+
stopFrequency: 1234,
|
|
11741
|
+
stepFrequency: 1000,
|
|
11742
|
+
bandwidth: 10000,
|
|
11743
|
+
modulation: 'BPSK',
|
|
11744
|
+
demodulation: "\u89E3\u8C03",
|
|
11745
|
+
status: "\u5408\u6CD5",
|
|
11746
|
+
title: "GPS L2\u9891\u6BB5",
|
|
11747
|
+
description: "\u5168\u7403\u5B9A\u4F4D\u7CFB\u7EDFGPS L2\u9891\u6BB5"
|
|
11748
|
+
},
|
|
11749
|
+
{
|
|
11750
|
+
startFrequency: 1447,
|
|
11751
|
+
stopFrequency: 1467,
|
|
11752
|
+
stepFrequency: 100,
|
|
11753
|
+
bandwidth: 10000,
|
|
11754
|
+
modulation: 'OFDMA',
|
|
11755
|
+
demodulation: "\u89E3\u8C03",
|
|
11756
|
+
status: "\u5408\u6CD5",
|
|
11757
|
+
title: "\u653F\u52A1\u516C\u5B89\u4E13\u7F51",
|
|
11758
|
+
description: "\u653F\u52A1\u548C\u516C\u5B89\u4E13\u7528LTE\u7F51\u7EDC\u9891\u6BB5"
|
|
11759
|
+
},
|
|
11760
|
+
{
|
|
11761
|
+
startFrequency: 1563,
|
|
11762
|
+
stopFrequency: 1587,
|
|
11763
|
+
stepFrequency: 1000,
|
|
11764
|
+
bandwidth: 10000,
|
|
11765
|
+
modulation: 'BPSK',
|
|
11766
|
+
demodulation: "\u89E3\u8C03",
|
|
11767
|
+
status: "\u5408\u6CD5",
|
|
11768
|
+
title: "GPS L1\u9891\u6BB5",
|
|
11769
|
+
description: "\u5168\u7403\u5B9A\u4F4D\u7CFB\u7EDFGPS L1\u9891\u6BB5"
|
|
11770
|
+
},
|
|
11771
|
+
{
|
|
11772
|
+
startFrequency: 1710,
|
|
11773
|
+
stopFrequency: 1735,
|
|
11774
|
+
stepFrequency: 200,
|
|
11775
|
+
bandwidth: 5000,
|
|
11776
|
+
modulation: 'QPSK',
|
|
11777
|
+
demodulation: "\u89E3\u8C03",
|
|
11778
|
+
status: "\u5408\u6CD5",
|
|
11779
|
+
title: "\u79FB\u52A82G/4G\u4E0A\u884C",
|
|
11780
|
+
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11781
|
+
},
|
|
11782
|
+
{
|
|
11783
|
+
startFrequency: 1735,
|
|
11784
|
+
stopFrequency: 1765,
|
|
11785
|
+
stepFrequency: 200,
|
|
11786
|
+
bandwidth: 5000,
|
|
11787
|
+
modulation: 'QPSK',
|
|
11788
|
+
demodulation: "\u89E3\u8C03",
|
|
11789
|
+
status: "\u5408\u6CD5",
|
|
11790
|
+
title: "\u8054\u901A2/4G\u4E0A\u884C",
|
|
11791
|
+
description: "\u4E2D\u56FD\u8054\u901A2G/4G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11792
|
+
},
|
|
11793
|
+
{
|
|
11794
|
+
startFrequency: 1805,
|
|
11795
|
+
stopFrequency: 1830,
|
|
11796
|
+
stepFrequency: 200,
|
|
11797
|
+
bandwidth: 5000,
|
|
11798
|
+
modulation: 'QPSK',
|
|
11799
|
+
demodulation: "\u89E3\u8C03",
|
|
11800
|
+
status: "\u5408\u6CD5",
|
|
11801
|
+
title: "\u79FB\u52A82G/4G\u4E0B\u884C",
|
|
11802
|
+
description: "\u4E2D\u56FD\u79FB\u52A82G/4G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11803
|
+
},
|
|
11804
|
+
{
|
|
11805
|
+
startFrequency: 1830,
|
|
11806
|
+
stopFrequency: 1860,
|
|
11807
|
+
stepFrequency: 200,
|
|
11808
|
+
bandwidth: 5000,
|
|
11809
|
+
modulation: 'QPSK',
|
|
11810
|
+
demodulation: "\u89E3\u8C03",
|
|
11811
|
+
status: "\u5408\u6CD5",
|
|
11812
|
+
title: "\u8054\u901A2/4G\u4E0B\u884C",
|
|
11813
|
+
description: "\u4E2D\u56FD\u8054\u901A2G/4G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11814
|
+
},
|
|
11815
|
+
{
|
|
11816
|
+
startFrequency: 1885,
|
|
11817
|
+
stopFrequency: 1915,
|
|
11818
|
+
stepFrequency: 100,
|
|
11819
|
+
bandwidth: 10000,
|
|
11820
|
+
modulation: 'OFDMA',
|
|
11821
|
+
demodulation: "\u89E3\u8C03",
|
|
11822
|
+
status: "\u5408\u6CD5",
|
|
11823
|
+
title: "\u79FB\u52A84G",
|
|
11824
|
+
description: "\u4E2D\u56FD\u79FB\u52A84G\u7F51\u7EDC\u9891\u6BB5"
|
|
11825
|
+
},
|
|
11826
|
+
{
|
|
11827
|
+
startFrequency: 1920,
|
|
11828
|
+
stopFrequency: 1940,
|
|
11829
|
+
stepFrequency: 100,
|
|
11830
|
+
bandwidth: 10000,
|
|
11831
|
+
modulation: 'OFDMA',
|
|
11832
|
+
demodulation: "\u89E3\u8C03",
|
|
11833
|
+
status: "\u5408\u6CD5",
|
|
11834
|
+
title: "\u7535\u4FE1/\u8054\u901A5G\u4E0A\u884C",
|
|
11835
|
+
description: "\u4E2D\u56FD\u7535\u4FE1/\u8054\u901A5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11836
|
+
},
|
|
11837
|
+
{
|
|
11838
|
+
startFrequency: 1940,
|
|
11839
|
+
stopFrequency: 1965,
|
|
11840
|
+
stepFrequency: 100,
|
|
11841
|
+
bandwidth: 10000,
|
|
11842
|
+
modulation: 'OFDMA',
|
|
11843
|
+
demodulation: "\u89E3\u8C03",
|
|
11844
|
+
status: "\u5408\u6CD5",
|
|
11845
|
+
title: "\u8054\u901A3/4/5G\u4E0A\u884C",
|
|
11846
|
+
description: "\u4E2D\u56FD\u8054\u901A3G/4G/5G\u7F51\u7EDC\u4E0A\u884C\u9891\u6BB5"
|
|
11847
|
+
},
|
|
11848
|
+
{
|
|
11849
|
+
startFrequency: 2110,
|
|
11850
|
+
stopFrequency: 2130,
|
|
11851
|
+
stepFrequency: 100,
|
|
11852
|
+
bandwidth: 10000,
|
|
11853
|
+
modulation: 'OFDMA',
|
|
11854
|
+
demodulation: "\u89E3\u8C03",
|
|
11855
|
+
status: "\u5408\u6CD5",
|
|
11856
|
+
title: "\u7535\u4FE1/\u8054\u901A5G\u4E0B\u884C",
|
|
11857
|
+
description: "\u4E2D\u56FD\u7535\u4FE1/\u8054\u901A5G\u7F51\u7EDC\u4E0B\u884C\u9891\u6BB5"
|
|
11858
|
+
},
|
|
11859
|
+
{
|
|
11860
|
+
startFrequency: 2300,
|
|
11861
|
+
stopFrequency: 2320,
|
|
11862
|
+
stepFrequency: 100,
|
|
11863
|
+
bandwidth: 10000,
|
|
11864
|
+
modulation: 'OFDMA',
|
|
11865
|
+
demodulation: "\u89E3\u8C03",
|
|
11866
|
+
status: "\u5408\u6CD5",
|
|
11867
|
+
title: "\u8054\u901A4G",
|
|
11868
|
+
description: "\u4E2D\u56FD\u8054\u901A4G\u7F51\u7EDC\u9891\u6BB5"
|
|
11869
|
+
},
|
|
11870
|
+
{
|
|
11871
|
+
startFrequency: 2320,
|
|
11872
|
+
stopFrequency: 2370,
|
|
11873
|
+
stepFrequency: 100,
|
|
11874
|
+
bandwidth: 10000,
|
|
11875
|
+
modulation: 'OFDMA',
|
|
11876
|
+
demodulation: "\u89E3\u8C03",
|
|
11877
|
+
status: "\u5408\u6CD5",
|
|
11878
|
+
title: "\u79FB\u52A84G",
|
|
11879
|
+
description: "\u4E2D\u56FD\u79FB\u52A84G\u7F51\u7EDC\u9891\u6BB5"
|
|
11880
|
+
},
|
|
11881
|
+
{
|
|
11882
|
+
startFrequency: 2400,
|
|
11883
|
+
stopFrequency: 2500,
|
|
11884
|
+
stepFrequency: 1,
|
|
11885
|
+
bandwidth: 20,
|
|
11886
|
+
modulation: 'OFDM',
|
|
11887
|
+
demodulation: "\u89E3\u8C03",
|
|
11888
|
+
status: "\u5408\u6CD5",
|
|
11889
|
+
title: 'ISM 2.4GHz',
|
|
11890
|
+
description: "WIFI\u3001\u84DD\u7259\u3001\u65E0\u4EBA\u673A\u7B49\u4F7F\u7528\u9891\u6BB5"
|
|
11891
|
+
},
|
|
11892
|
+
{
|
|
11893
|
+
startFrequency: 2515,
|
|
11894
|
+
stopFrequency: 2675,
|
|
11895
|
+
stepFrequency: 100,
|
|
11896
|
+
bandwidth: 10000,
|
|
11897
|
+
modulation: 'OFDMA',
|
|
11898
|
+
demodulation: "\u89E3\u8C03",
|
|
11899
|
+
status: "\u5408\u6CD5",
|
|
11900
|
+
title: "\u79FB\u52A85G/4G",
|
|
11901
|
+
description: "\u4E2D\u56FD\u79FB\u52A85G\u548C4G\u7F51\u7EDC\u9891\u6BB5"
|
|
11902
|
+
},
|
|
11903
|
+
{
|
|
11904
|
+
startFrequency: 3300,
|
|
11905
|
+
stopFrequency: 3600,
|
|
11906
|
+
stepFrequency: 100,
|
|
11907
|
+
bandwidth: 10000,
|
|
11908
|
+
modulation: 'OFDMA',
|
|
11909
|
+
demodulation: "\u89E3\u8C03",
|
|
11910
|
+
status: "\u5408\u6CD5",
|
|
11911
|
+
title: "5G\u9891\u6BB5",
|
|
11912
|
+
description: "\u7535\u4FE1\u3001\u8054\u901A\u3001\u5E7F\u75355G\u7F51\u7EDC\u9891\u6BB5"
|
|
11913
|
+
},
|
|
11914
|
+
{
|
|
11915
|
+
startFrequency: 4800,
|
|
11916
|
+
stopFrequency: 4900,
|
|
11917
|
+
stepFrequency: 100,
|
|
11918
|
+
bandwidth: 10000,
|
|
11919
|
+
modulation: 'OFDMA',
|
|
11920
|
+
demodulation: "\u89E3\u8C03",
|
|
11921
|
+
status: "\u5408\u6CD5",
|
|
11922
|
+
title: "\u79FB\u52A85G",
|
|
11923
|
+
description: "\u4E2D\u56FD\u79FB\u52A85G\u7F51\u7EDC\u9891\u6BB5"
|
|
11924
|
+
},
|
|
11925
|
+
{
|
|
11926
|
+
startFrequency: 4900,
|
|
11927
|
+
stopFrequency: 4960,
|
|
11928
|
+
stepFrequency: 100,
|
|
11929
|
+
bandwidth: 10000,
|
|
11930
|
+
modulation: 'OFDMA',
|
|
11931
|
+
demodulation: "\u89E3\u8C03",
|
|
11932
|
+
status: "\u5408\u6CD5",
|
|
11933
|
+
title: "\u5E7F\u75355G",
|
|
11934
|
+
description: "\u4E2D\u56FD\u5E7F\u75355G\u7F51\u7EDC\u9891\u6BB5"
|
|
11935
|
+
},
|
|
11936
|
+
{
|
|
11937
|
+
startFrequency: 5725,
|
|
11938
|
+
stopFrequency: 5875.5,
|
|
11939
|
+
stepFrequency: 5,
|
|
11940
|
+
bandwidth: 20,
|
|
11941
|
+
modulation: 'OFDM',
|
|
11942
|
+
demodulation: "\u89E3\u8C03",
|
|
11943
|
+
status: "\u5408\u6CD5",
|
|
11944
|
+
title: 'ISM 5GHz',
|
|
11945
|
+
description: "WIFI\u3001\u65E0\u4EBA\u673A\u7B49\u4F7F\u7528\u9891\u6BB5"
|
|
11169
11946
|
}
|
|
11170
|
-
|
|
11171
|
-
const Level_Level = (props)=>{
|
|
11172
|
-
const { state: { axisY, globalID } } = useStore_useStore();
|
|
11173
|
-
const { opacity } = props;
|
|
11174
|
-
const { chart, Chart } = hooks_useChart({
|
|
11175
|
-
Render: Occupancy,
|
|
11176
|
-
params: {
|
|
11177
|
-
orientation: type_OrientationType.Horizontal
|
|
11178
|
-
}
|
|
11179
|
-
});
|
|
11180
|
-
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11181
|
-
if (chart && globalID) tools(globalID, constants_ModuleType.LevelStream, (d)=>{
|
|
11182
|
-
const { data } = d;
|
|
11183
|
-
if (data) chart.updateSeries(data);
|
|
11184
|
-
});
|
|
11185
|
-
}, [
|
|
11186
|
-
chart,
|
|
11187
|
-
globalID
|
|
11188
|
-
]);
|
|
11189
|
-
const style = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>({
|
|
11190
|
-
opacity,
|
|
11191
|
-
zIndex: 1
|
|
11192
|
-
}), [
|
|
11193
|
-
axisY,
|
|
11194
|
-
opacity
|
|
11195
|
-
]);
|
|
11196
|
-
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Chart, {
|
|
11197
|
-
style: style
|
|
11198
|
-
});
|
|
11199
|
-
};
|
|
11200
|
-
const Level = Level_Level;
|
|
11201
|
-
var Band_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/Band/styles.module.less");
|
|
11202
|
-
var Band_styles_module_options = {};
|
|
11203
|
-
Band_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
11204
|
-
Band_styles_module_options.setAttributes = setAttributesWithoutAttributes_default();
|
|
11205
|
-
Band_styles_module_options.insert = insertBySelector_default().bind(null, "head");
|
|
11206
|
-
Band_styles_module_options.domAPI = styleDomAPI_default();
|
|
11207
|
-
Band_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
11208
|
-
injectStylesIntoStyleTag_default()(Band_styles_module.Z, Band_styles_module_options);
|
|
11209
|
-
const components_Band_styles_module = Band_styles_module.Z && Band_styles_module.Z.locals ? Band_styles_module.Z.locals : void 0;
|
|
11210
|
-
function useBand() {
|
|
11211
|
-
const { state: { band }, dispatch } = useStore_useStore();
|
|
11212
|
-
const setBand = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((e)=>{
|
|
11213
|
-
const { show = true, width = 0 } = e;
|
|
11214
|
-
dispatch({
|
|
11215
|
-
payload: {
|
|
11216
|
-
band: {
|
|
11217
|
-
...band,
|
|
11218
|
-
show,
|
|
11219
|
-
width
|
|
11220
|
-
}
|
|
11221
|
-
}
|
|
11222
|
-
});
|
|
11223
|
-
}, [
|
|
11224
|
-
band
|
|
11225
|
-
]);
|
|
11226
|
-
return setBand;
|
|
11227
|
-
}
|
|
11228
|
-
const Band_Band = ()=>{
|
|
11229
|
-
const { state: { band: { show, width, left, color } } } = useStore_useStore();
|
|
11230
|
-
if (!show) return null;
|
|
11231
|
-
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomOffsetContainer, {
|
|
11232
|
-
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11233
|
-
className: components_Band_styles_module.band,
|
|
11234
|
-
style: {
|
|
11235
|
-
left: void 0 !== left ? `${left}%` : `calc(50% - ${width / 2}%)`,
|
|
11236
|
-
width: `${width}%`,
|
|
11237
|
-
backgroundColor: `${color}15`,
|
|
11238
|
-
borderColor: `${color}`
|
|
11239
|
-
}
|
|
11240
|
-
})
|
|
11241
|
-
});
|
|
11242
|
-
};
|
|
11243
|
-
const Band = Band_Band;
|
|
11244
|
-
var DragFrame_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/DragFrame/styles.module.less");
|
|
11245
|
-
var DragFrame_styles_module_options = {};
|
|
11246
|
-
DragFrame_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
11247
|
-
DragFrame_styles_module_options.setAttributes = setAttributesWithoutAttributes_default();
|
|
11248
|
-
DragFrame_styles_module_options.insert = insertBySelector_default().bind(null, "head");
|
|
11249
|
-
DragFrame_styles_module_options.domAPI = styleDomAPI_default();
|
|
11250
|
-
DragFrame_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
11251
|
-
injectStylesIntoStyleTag_default()(DragFrame_styles_module.Z, DragFrame_styles_module_options);
|
|
11252
|
-
const components_DragFrame_styles_module = DragFrame_styles_module.Z && DragFrame_styles_module.Z.locals ? DragFrame_styles_module.Z.locals : void 0;
|
|
11253
|
-
const maxIndexSegments2FrequencyBandwidth = ({ frequencyLeft, segments })=>leftSegments2frequency(segments)(frequencyLeft);
|
|
11254
|
-
const startEnd2AnalyseFrequencyBandwidth = ({ e, zoom, segments, onChange, globalID })=>{
|
|
11255
|
-
const { realData } = withDatabase(globalID).getAllRawData();
|
|
11256
|
-
if (!realData) return;
|
|
11257
|
-
const len = realData.length;
|
|
11258
|
-
const { interval: { start: outsideStart, end: outsideEnd } } = zoom;
|
|
11259
|
-
const potintLen = outsideEnd - outsideStart;
|
|
11260
|
-
const { left: startLeft } = e;
|
|
11261
|
-
const endLeft = e.left + e.width;
|
|
11262
|
-
const left = convertCoordToVisualLeft({
|
|
11263
|
-
coord: e,
|
|
11264
|
-
segments,
|
|
11265
|
-
zoom
|
|
11266
|
-
});
|
|
11267
|
-
const right = convertCoordToVisualLeft({
|
|
11268
|
-
coord: {
|
|
11269
|
-
left: endLeft
|
|
11270
|
-
},
|
|
11271
|
-
segments,
|
|
11272
|
-
zoom
|
|
11273
|
-
});
|
|
11274
|
-
const start = Math.max(0, Math.ceil(len * left / 100) - 1);
|
|
11275
|
-
const end = Math.ceil(len * right / 100);
|
|
11276
|
-
const { maxIndex } = getDimInfo(Array.from(realData.slice(start, end)));
|
|
11277
|
-
const frequencyLeft = (outsideStart + (start + maxIndex + 1) / len * potintLen) * 100 / segments.totalPoints;
|
|
11278
|
-
const frequency = maxIndexSegments2FrequencyBandwidth({
|
|
11279
|
-
frequencyLeft,
|
|
11280
|
-
segments
|
|
11281
|
-
});
|
|
11282
|
-
const bandwidth = Math.round(1000 * scopeLeftSegments2bandwidth({
|
|
11283
|
-
segments,
|
|
11284
|
-
endLeft,
|
|
11285
|
-
startLeft
|
|
11286
|
-
}));
|
|
11287
|
-
onChange({
|
|
11288
|
-
frequency,
|
|
11289
|
-
bandwidth,
|
|
11290
|
-
left,
|
|
11291
|
-
right
|
|
11292
|
-
});
|
|
11293
|
-
};
|
|
11294
|
-
const DragFrame_COMPONENT_KEY = constants_ToolType.DragFrame;
|
|
11295
|
-
const DragFrame = ({ id })=>{
|
|
11296
|
-
const { state: { zoom, segments, signalAnalysis, globalID }, dispatch } = useStore_useStore();
|
|
11297
|
-
const [frameState, setFrameState] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(null);
|
|
11298
|
-
const onChange = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((e, isSignalAnalysis = false)=>{
|
|
11299
|
-
if (signalAnalysis.show && signalAnalysis.display && isSignalAnalysis) return void startEnd2AnalyseFrequencyBandwidth({
|
|
11300
|
-
e,
|
|
11301
|
-
zoom,
|
|
11302
|
-
segments,
|
|
11303
|
-
onChange: signalAnalysis.onChange,
|
|
11304
|
-
globalID
|
|
11305
|
-
});
|
|
11306
|
-
dispatch({
|
|
11307
|
-
payload: {
|
|
11308
|
-
zoom: {
|
|
11309
|
-
...zoom,
|
|
11310
|
-
interval: e.interval,
|
|
11311
|
-
isScanSegmentsUpdateMagnify: e.isScanSegmentsUpdateMagnify
|
|
11312
|
-
}
|
|
11313
|
-
}
|
|
11314
|
-
});
|
|
11315
|
-
}, [
|
|
11316
|
-
signalAnalysis,
|
|
11317
|
-
zoom,
|
|
11318
|
-
segments,
|
|
11319
|
-
globalID
|
|
11320
|
-
]);
|
|
11321
|
-
const filterFrameState = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((startCoords, endCoords, _, isEventButtonsRight)=>{
|
|
11322
|
-
if (startCoords && endCoords && isEventButtonsRight) {
|
|
11323
|
-
const diffX = endCoords.left - startCoords.left;
|
|
11324
|
-
setFrameState({
|
|
11325
|
-
diffX,
|
|
11326
|
-
left: diffX > 0 ? startCoords.left : endCoords.left,
|
|
11327
|
-
width: Math.abs(diffX),
|
|
11328
|
-
isScanSegmentsUpdateMagnify: diffX > 0
|
|
11329
|
-
});
|
|
11330
|
-
}
|
|
11331
|
-
}, []);
|
|
11332
|
-
const handleFrameRender = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
|
|
11333
|
-
if (!frameState) return;
|
|
11334
|
-
const { left, width, isScanSegmentsUpdateMagnify, diffX } = frameState;
|
|
11335
|
-
const { totalPoints } = segments;
|
|
11336
|
-
if (isScanSegmentsUpdateMagnify && diffX > 0) {
|
|
11337
|
-
const nextPoint = 2 * Math.ceil(width / 100 * totalPoints / 2);
|
|
11338
|
-
const start = Math.round(totalPoints * left / 100) - 1;
|
|
11339
|
-
const end = nextPoint + start - 1;
|
|
11340
|
-
if (nextPoint > 10) onChange({
|
|
11341
|
-
interval: {
|
|
11342
|
-
start,
|
|
11343
|
-
end
|
|
11344
|
-
},
|
|
11345
|
-
isScanSegmentsUpdateMagnify,
|
|
11346
|
-
left,
|
|
11347
|
-
width
|
|
11348
|
-
}, true);
|
|
11349
|
-
}
|
|
11350
|
-
if (diffX < 0) onChange({
|
|
11351
|
-
interval: {
|
|
11352
|
-
start: 0,
|
|
11353
|
-
end: totalPoints - 1
|
|
11354
|
-
},
|
|
11355
|
-
isScanSegmentsUpdateMagnify,
|
|
11356
|
-
left,
|
|
11357
|
-
width
|
|
11358
|
-
});
|
|
11359
|
-
}, [
|
|
11360
|
-
frameState,
|
|
11361
|
-
segments,
|
|
11362
|
-
zoom.interval.end,
|
|
11363
|
-
onChange
|
|
11364
|
-
]);
|
|
11365
|
-
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11366
|
-
if (zoom.show) {
|
|
11367
|
-
const reset = ()=>{
|
|
11368
|
-
setFrameState(null);
|
|
11369
|
-
resetEventLevel(id, DragFrame_COMPONENT_KEY);
|
|
11370
|
-
};
|
|
11371
|
-
createMouseDownEventManager(id, DragFrame_COMPONENT_KEY, reset);
|
|
11372
|
-
createMouseUpEventManager(id, DragFrame_COMPONENT_KEY, ()=>{
|
|
11373
|
-
handleFrameRender();
|
|
11374
|
-
reset();
|
|
11375
|
-
});
|
|
11376
|
-
createMouseLeaveEventManager(id, DragFrame_COMPONENT_KEY, reset);
|
|
11377
|
-
createDragEventManager(id, DragFrame_COMPONENT_KEY, (...args)=>{
|
|
11378
|
-
if (compareEventPriority(id, DragFrame_COMPONENT_KEY)) filterFrameState(args[0], args[1], args[2], args[3]);
|
|
11379
|
-
});
|
|
11380
|
-
}
|
|
11381
|
-
}, [
|
|
11382
|
-
zoom.show,
|
|
11383
|
-
id,
|
|
11384
|
-
handleFrameRender,
|
|
11385
|
-
filterFrameState
|
|
11386
|
-
]);
|
|
11387
|
-
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
11388
|
-
if (!frameState) resetEventLevel(id, DragFrame_COMPONENT_KEY);
|
|
11389
|
-
}, [
|
|
11390
|
-
frameState,
|
|
11391
|
-
id
|
|
11392
|
-
]);
|
|
11393
|
-
if (!zoom.show) return null;
|
|
11394
|
-
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Zoom_ZoomOffsetContainer, {
|
|
11395
|
-
className: components_DragFrame_styles_module.DragFrame,
|
|
11396
|
-
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11397
|
-
className: `${components_DragFrame_styles_module.frame} ${frameState?.isScanSegmentsUpdateMagnify ? '' : components_DragFrame_styles_module.bias}`,
|
|
11398
|
-
style: frameState ? {
|
|
11399
|
-
left: `${frameState.left}%`,
|
|
11400
|
-
width: `${frameState.width}%`
|
|
11401
|
-
} : {}
|
|
11402
|
-
})
|
|
11403
|
-
});
|
|
11404
|
-
};
|
|
11405
|
-
const components_DragFrame = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(DragFrame);
|
|
11947
|
+
];
|
|
11406
11948
|
var FrequencyAllocation_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/FrequencyAllocation/styles.module.less");
|
|
11407
11949
|
var FrequencyAllocation_styles_module_options = {};
|
|
11408
11950
|
FrequencyAllocation_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
@@ -11418,7 +11960,7 @@ const SegmentContainer = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.mem
|
|
|
11418
11960
|
children: bandPositions.map(({ band, range, position }, index)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11419
11961
|
className: components_FrequencyAllocation_styles_module.item,
|
|
11420
11962
|
style: {
|
|
11421
|
-
background: band.gradientColors ? `linear-gradient(to right, ${band.gradientColors[0]}, ${band.gradientColors[1]})` : band.color,
|
|
11963
|
+
background: (band.gradientColors ? `linear-gradient(to right, ${band.gradientColors[0]}, ${band.gradientColors[1]})` : band.color) || 'var(--theme-color-primary)',
|
|
11422
11964
|
left: position.left,
|
|
11423
11965
|
width: position.width
|
|
11424
11966
|
},
|
|
@@ -11438,7 +11980,7 @@ FrequencyAllocation_Tooltip_styles_module_options.domAPI = styleDomAPI_default()
|
|
|
11438
11980
|
FrequencyAllocation_Tooltip_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
11439
11981
|
injectStylesIntoStyleTag_default()(FrequencyAllocation_Tooltip_styles_module.Z, FrequencyAllocation_Tooltip_styles_module_options);
|
|
11440
11982
|
const components_FrequencyAllocation_Tooltip_styles_module = FrequencyAllocation_Tooltip_styles_module.Z && FrequencyAllocation_Tooltip_styles_module.Z.locals ? FrequencyAllocation_Tooltip_styles_module.Z.locals : void 0;
|
|
11441
|
-
const FrequencyAllocation_Tooltip_Tooltip = ({ title, description, visible, x, y, startFrequency, stopFrequency, centerFrequency,
|
|
11983
|
+
const FrequencyAllocation_Tooltip_Tooltip = ({ title, description, visible, x, y, startFrequency, stopFrequency, centerFrequency, stepFrequency, bandwidth, modulation, demodulation, status })=>{
|
|
11442
11984
|
const tooltipRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
|
|
11443
11985
|
const [position, setPosition] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)({
|
|
11444
11986
|
x,
|
|
@@ -11481,13 +12023,13 @@ const FrequencyAllocation_Tooltip_Tooltip = ({ title, description, visible, x, y
|
|
|
11481
12023
|
children: `\u{9891}\u{7387}\u{8303}\u{56F4}: ${startFrequency} - ${stopFrequency}`
|
|
11482
12024
|
}),
|
|
11483
12025
|
centerFrequency && bandwidth && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11484
|
-
children: `\u{4E2D}\u{5FC3}\u{9891}\u{7387}: ${centerFrequency} & \u{5E26}\u{5BBD}: ${bandwidth}`
|
|
12026
|
+
children: `\u{4E2D}\u{5FC3}\u{9891}\u{7387}: ${centerFrequency} MHz & \u{5E26}\u{5BBD}: ${bandwidth} kHz`
|
|
11485
12027
|
}),
|
|
11486
|
-
|
|
11487
|
-
children: `\u{
|
|
12028
|
+
stepFrequency && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
12029
|
+
children: `\u{6B65}\u{8FDB}: ${stepFrequency} kHz`
|
|
11488
12030
|
}),
|
|
11489
|
-
|
|
11490
|
-
children: `\u{
|
|
12031
|
+
bandwidth && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
12032
|
+
children: `\u{5E26}\u{5BBD}: ${bandwidth} kHz`
|
|
11491
12033
|
}),
|
|
11492
12034
|
modulation && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11493
12035
|
children: `\u{8C03}\u{5236}\u{65B9}\u{5F0F}: ${modulation}`
|
|
@@ -11495,9 +12037,6 @@ const FrequencyAllocation_Tooltip_Tooltip = ({ title, description, visible, x, y
|
|
|
11495
12037
|
demodulation && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11496
12038
|
children: `\u{89E3}\u{8C03}\u{65B9}\u{5F0F}: ${demodulation}`
|
|
11497
12039
|
}),
|
|
11498
|
-
allocation && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11499
|
-
children: `\u{5212}\u{5206}\u{4FE1}\u{606F}: ${allocation}`
|
|
11500
|
-
}),
|
|
11501
12040
|
status && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11502
12041
|
children: `\u{72B6}\u{6001}: ${status}`
|
|
11503
12042
|
})
|
|
@@ -11513,38 +12052,42 @@ const FrequencyAllocation_Tooltip_Tooltip = ({ title, description, visible, x, y
|
|
|
11513
12052
|
const FrequencyAllocation_Tooltip = FrequencyAllocation_Tooltip_Tooltip;
|
|
11514
12053
|
const FrequencyAllocation_FrequencyAllocation = ()=>{
|
|
11515
12054
|
const { state: { axisX: { unit }, segments, frequencyAllocation: { display, show, data }, zoom: { style: zoomOffStyle } } } = useStore_useStore();
|
|
12055
|
+
const frequencyAllocationData = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
12056
|
+
const cachedData = getFrequencyAllocationFromCache();
|
|
12057
|
+
return sortAndRecolorFrequencyAllocationData(cachedData?.length > 0 ? cachedData : data?.length > 0 ? data : FrequencyAllocation_data);
|
|
12058
|
+
}, [
|
|
12059
|
+
data
|
|
12060
|
+
]);
|
|
11516
12061
|
const [tooltipInfo, setTooltipInfo] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)({
|
|
11517
12062
|
visible: false,
|
|
11518
12063
|
x: 0,
|
|
11519
|
-
y: 0
|
|
11520
|
-
title: '',
|
|
11521
|
-
description: ''
|
|
12064
|
+
y: 0
|
|
11522
12065
|
});
|
|
11523
12066
|
const getFrequencyRange = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((band)=>{
|
|
11524
12067
|
if (null != band.startFrequency && null != band.stopFrequency) return {
|
|
11525
|
-
start: band.startFrequency,
|
|
11526
|
-
stop: band.stopFrequency,
|
|
12068
|
+
start: Number(band.startFrequency),
|
|
12069
|
+
stop: Number(band.stopFrequency),
|
|
11527
12070
|
type: 'range'
|
|
11528
12071
|
};
|
|
11529
12072
|
if (null != band.centerFrequency && null != band.bandwidth) {
|
|
11530
|
-
const [segment] =
|
|
12073
|
+
const [segment] = (0, utils.IS)({
|
|
11531
12074
|
frequency: band.centerFrequency,
|
|
11532
12075
|
bandwidth: band.bandwidth
|
|
11533
12076
|
});
|
|
11534
12077
|
return {
|
|
11535
12078
|
start: segment.start,
|
|
11536
12079
|
stop: segment.stop,
|
|
11537
|
-
frequency: band.centerFrequency,
|
|
11538
|
-
bandwidth: band.bandwidth,
|
|
12080
|
+
frequency: Number(band.centerFrequency),
|
|
12081
|
+
bandwidth: Number(band.bandwidth),
|
|
11539
12082
|
type: 'centerBandwidth'
|
|
11540
12083
|
};
|
|
11541
12084
|
}
|
|
11542
12085
|
return null;
|
|
11543
12086
|
}, []);
|
|
11544
12087
|
const segmentData = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
11545
|
-
if (!segments?.length || !
|
|
12088
|
+
if (!segments?.length || !frequencyAllocationData) return [];
|
|
11546
12089
|
return segments.map((segment, segmentIndex)=>{
|
|
11547
|
-
const segmentBands =
|
|
12090
|
+
const segmentBands = frequencyAllocationData.map((band)=>{
|
|
11548
12091
|
const range = getFrequencyRange(band);
|
|
11549
12092
|
if (range && !(range.stop < segment.start || range.start > segment.stop)) return {
|
|
11550
12093
|
band,
|
|
@@ -11609,7 +12152,7 @@ const FrequencyAllocation_FrequencyAllocation = ()=>{
|
|
|
11609
12152
|
};
|
|
11610
12153
|
});
|
|
11611
12154
|
}, [
|
|
11612
|
-
|
|
12155
|
+
frequencyAllocationData,
|
|
11613
12156
|
segments,
|
|
11614
12157
|
getFrequencyRange
|
|
11615
12158
|
]);
|
|
@@ -11621,19 +12164,12 @@ const FrequencyAllocation_FrequencyAllocation = ()=>{
|
|
|
11621
12164
|
}, []);
|
|
11622
12165
|
const handleMouseEnter = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((band, range)=>(e)=>{
|
|
11623
12166
|
const tooltipData = {
|
|
12167
|
+
...band,
|
|
11624
12168
|
visible: true,
|
|
11625
12169
|
x: e.clientX + 10,
|
|
11626
12170
|
y: e.clientY + 10,
|
|
11627
|
-
title: band.title,
|
|
11628
|
-
description: band.description,
|
|
11629
12171
|
startFrequency: `${range.start}${unit}`,
|
|
11630
|
-
stopFrequency: `${range.stop}${unit}
|
|
11631
|
-
defaultStep: null != band.defaultStep ? `${band.defaultStep}kHz` : void 0,
|
|
11632
|
-
defaultBandwidth: null != band.defaultBandwidth ? `${band.defaultBandwidth}kHz` : void 0,
|
|
11633
|
-
modulation: band.modulation,
|
|
11634
|
-
demodulation: band.demodulation,
|
|
11635
|
-
allocation: band.allocation,
|
|
11636
|
-
status: band.status
|
|
12172
|
+
stopFrequency: `${range.stop}${unit}`
|
|
11637
12173
|
};
|
|
11638
12174
|
if ('centerBandwidth' === range.type && null != range.frequency && null != range.bandwidth) {
|
|
11639
12175
|
tooltipData.centerFrequency = `${range.frequency}${unit}`;
|
|
@@ -11708,7 +12244,7 @@ const Board_Board = ({ id })=>{
|
|
|
11708
12244
|
const handleChange = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((e)=>{
|
|
11709
12245
|
if (!e) return;
|
|
11710
12246
|
const { index, frequency } = e;
|
|
11711
|
-
if (!
|
|
12247
|
+
if (!(0, utils.Ri)(frequency)) return;
|
|
11712
12248
|
onChange({
|
|
11713
12249
|
index,
|
|
11714
12250
|
frequency
|
|
@@ -11737,7 +12273,7 @@ FrequencyMarkerLine_styles_module_options.insertStyleElement = insertStyleElemen
|
|
|
11737
12273
|
injectStylesIntoStyleTag_default()(FrequencyMarkerLine_styles_module.Z, FrequencyMarkerLine_styles_module_options);
|
|
11738
12274
|
const components_FrequencyMarkerLine_styles_module = FrequencyMarkerLine_styles_module.Z && FrequencyMarkerLine_styles_module.Z.locals ? FrequencyMarkerLine_styles_module.Z.locals : void 0;
|
|
11739
12275
|
const FrequencyMarkerLine_COMPONENT_KEY = constants_ToolType.FrequencyMarkerLine;
|
|
11740
|
-
const
|
|
12276
|
+
const FrequencyMarkerLine_FrequencyMarkerLine = (props)=>{
|
|
11741
12277
|
const { state: { frequencyMarkerLine }, dispatch } = useStore_useStore();
|
|
11742
12278
|
const { show, display, left, onChange } = frequencyMarkerLine;
|
|
11743
12279
|
const { id } = props;
|
|
@@ -11811,7 +12347,7 @@ const FrequencyMarkerLine = (props)=>{
|
|
|
11811
12347
|
})
|
|
11812
12348
|
});
|
|
11813
12349
|
};
|
|
11814
|
-
const
|
|
12350
|
+
const FrequencyMarkerLine = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__["default"].memo(FrequencyMarkerLine_FrequencyMarkerLine);
|
|
11815
12351
|
var Limit_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/Limit/styles.module.less");
|
|
11816
12352
|
var Limit_styles_module_options = {};
|
|
11817
12353
|
Limit_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
@@ -11826,7 +12362,7 @@ const Item_Item = ({ value, onChange })=>{
|
|
|
11826
12362
|
const { label, disabled } = limit;
|
|
11827
12363
|
const { unit, range, step } = axisY;
|
|
11828
12364
|
const [min, max] = range;
|
|
11829
|
-
const diff = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>
|
|
12365
|
+
const diff = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>(0, utils.Bp)(unit) ? dBuV2dBm(0) : 0, [
|
|
11830
12366
|
unit
|
|
11831
12367
|
]);
|
|
11832
12368
|
const value2top = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((v)=>(max - v - diff) / (max - min) * 100, [
|
|
@@ -11965,7 +12501,7 @@ const Limit = ({ id })=>{
|
|
|
11965
12501
|
});
|
|
11966
12502
|
createDragEventManager(id, COMPONENT_NAME, (_, __, diff)=>{
|
|
11967
12503
|
if (!canRender || disabled) return;
|
|
11968
|
-
if (
|
|
12504
|
+
if ((0, utils.Ri)(index) && compareEventPriority(id, COMPONENT_NAME)) {
|
|
11969
12505
|
if (diff?.top) setValue(index, Math.round(limit.value[index] - 100 * diff.top));
|
|
11970
12506
|
}
|
|
11971
12507
|
});
|
|
@@ -11984,7 +12520,7 @@ const Limit = ({ id })=>{
|
|
|
11984
12520
|
children: segments?.map((i, index)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11985
12521
|
style: {
|
|
11986
12522
|
width: `${100 * i.point / segments.totalPoints}%`,
|
|
11987
|
-
opacity:
|
|
12523
|
+
opacity: (0, utils.Ri)(value[index]) ? 1 : 0
|
|
11988
12524
|
},
|
|
11989
12525
|
className: components_Limit_styles_module.item,
|
|
11990
12526
|
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Item, {
|
|
@@ -12450,7 +12986,7 @@ function usePoints() {
|
|
|
12450
12986
|
const { dispatch, state: { axisX } } = useStore_useStore();
|
|
12451
12987
|
const setPoints = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((points)=>{
|
|
12452
12988
|
if (points?.length) {
|
|
12453
|
-
axisX.frequencyFormat =
|
|
12989
|
+
axisX.frequencyFormat = (0, utils.or)(points);
|
|
12454
12990
|
dispatch({
|
|
12455
12991
|
payload: {
|
|
12456
12992
|
points,
|
|
@@ -12464,7 +13000,7 @@ function usePoints() {
|
|
|
12464
13000
|
const Spectrum_Spectrum = (props)=>{
|
|
12465
13001
|
const { selecter, children } = props;
|
|
12466
13002
|
const { state: { axisY: { autoranging }, series: { weaken }, globalID } } = useStore_useStore();
|
|
12467
|
-
const { id, chart, Chart } =
|
|
13003
|
+
const { id, chart, Chart } = useChart({
|
|
12468
13004
|
Render: Spectrum,
|
|
12469
13005
|
params: {
|
|
12470
13006
|
autoranging,
|
|
@@ -12573,7 +13109,7 @@ const Spectrum_Spectrum = (props)=>{
|
|
|
12573
13109
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(components_Stripe, {
|
|
12574
13110
|
id: id
|
|
12575
13111
|
}),
|
|
12576
|
-
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(
|
|
13112
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(FrequencyMarkerLine, {
|
|
12577
13113
|
id: id
|
|
12578
13114
|
}),
|
|
12579
13115
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(FrequencyAllocation, {}),
|
|
@@ -12745,7 +13281,7 @@ const TotalLine = TotalLine_TotalLine;
|
|
|
12745
13281
|
const Occupancy_Occupancy = (props)=>{
|
|
12746
13282
|
const { occupancyAxisYDisabled } = props;
|
|
12747
13283
|
const { state: { globalID } } = useStore_useStore();
|
|
12748
|
-
const { id, chart, Chart } =
|
|
13284
|
+
const { id, chart, Chart } = useChart({
|
|
12749
13285
|
Render: Occupancy
|
|
12750
13286
|
});
|
|
12751
13287
|
const [value, setValue] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(0);
|
|
@@ -12840,9 +13376,9 @@ const ThreeFixedTicks = ()=>{
|
|
|
12840
13376
|
const { start, bandwidth = 0 } = segments[0] ?? {};
|
|
12841
13377
|
const center = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
12842
13378
|
if (!endIndex || !bandwidth || void 0 === start) return 0;
|
|
12843
|
-
const midIndex =
|
|
13379
|
+
const midIndex = (0, utils.wF)(intervalStart, intervalEnd);
|
|
12844
13380
|
const safeIndex = Math.max(0, Math.min(midIndex, endIndex));
|
|
12845
|
-
return
|
|
13381
|
+
return (0, utils.lj)(start + safeIndex * bandwidth / (1000 * endIndex));
|
|
12846
13382
|
}, [
|
|
12847
13383
|
intervalStart,
|
|
12848
13384
|
intervalEnd,
|
|
@@ -12853,7 +13389,7 @@ const ThreeFixedTicks = ()=>{
|
|
|
12853
13389
|
const bandwidthDiff = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
12854
13390
|
if (!totalPoints || !bandwidth) return 0;
|
|
12855
13391
|
const intervalWidth = intervalEnd - intervalStart + 1;
|
|
12856
|
-
return
|
|
13392
|
+
return (0, utils.lj)(intervalWidth * bandwidth / (2 * totalPoints));
|
|
12857
13393
|
}, [
|
|
12858
13394
|
intervalStart,
|
|
12859
13395
|
intervalEnd,
|
|
@@ -12978,7 +13514,7 @@ const AxisXTicks = ({ type })=>{
|
|
|
12978
13514
|
});
|
|
12979
13515
|
};
|
|
12980
13516
|
const AxisX_Ticks = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(AxisXTicks);
|
|
12981
|
-
const
|
|
13517
|
+
const AxisX_AxisX = ({ type })=>{
|
|
12982
13518
|
const { state: { axisX } } = useStore_useStore();
|
|
12983
13519
|
const { children, unit, ticks } = axisX;
|
|
12984
13520
|
const { width, pluginBoxWidth } = useAxisYWidth();
|
|
@@ -13016,7 +13552,7 @@ const AxisX = ({ type })=>{
|
|
|
13016
13552
|
})
|
|
13017
13553
|
});
|
|
13018
13554
|
};
|
|
13019
|
-
const
|
|
13555
|
+
const AxisX = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(AxisX_AxisX);
|
|
13020
13556
|
var Blaze_styles_module = __webpack_require__("../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/Blaze/styles.module.less");
|
|
13021
13557
|
var Blaze_styles_module_options = {};
|
|
13022
13558
|
Blaze_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
@@ -13664,7 +14200,7 @@ function useSegments() {
|
|
|
13664
14200
|
zoom,
|
|
13665
14201
|
axisX
|
|
13666
14202
|
};
|
|
13667
|
-
if (0 === points.length) payload.axisX.frequencyFormat =
|
|
14203
|
+
if (0 === points.length) payload.axisX.frequencyFormat = (0, utils.Ax)(s);
|
|
13668
14204
|
dispatch({
|
|
13669
14205
|
payload
|
|
13670
14206
|
});
|
|
@@ -13710,7 +14246,7 @@ function useSpectrumRule({ channel, onChannelChange }) {
|
|
|
13710
14246
|
zoom
|
|
13711
14247
|
}
|
|
13712
14248
|
});
|
|
13713
|
-
if (event === constants_SegmentsEvent.Cover) setSegments(
|
|
14249
|
+
if (event === constants_SegmentsEvent.Cover) setSegments((0, utils.sl)(e.data));
|
|
13714
14250
|
}, [
|
|
13715
14251
|
segments
|
|
13716
14252
|
]);
|
|
@@ -13733,7 +14269,7 @@ function useSpectrumRule({ channel, onChannelChange }) {
|
|
|
13733
14269
|
});
|
|
13734
14270
|
const generateSegmentsFromPoints = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((points, newRule = ruleRef.current)=>{
|
|
13735
14271
|
if (newRule.bandwidth && newRule.frequency && points) {
|
|
13736
|
-
const segments =
|
|
14272
|
+
const segments = (0, utils.IS)({
|
|
13737
14273
|
frequency: newRule?.frequency,
|
|
13738
14274
|
bandwidth: newRule?.bandwidth,
|
|
13739
14275
|
totalPoints: points
|
|
@@ -13786,7 +14322,7 @@ function useSpectrumRule({ channel, onChannelChange }) {
|
|
|
13786
14322
|
}, []);
|
|
13787
14323
|
return handleSpectrumRule;
|
|
13788
14324
|
}
|
|
13789
|
-
const
|
|
14325
|
+
const SegmentsDisplayControl_SegmentsDisplayControl = ()=>{
|
|
13790
14326
|
const { state: { segments, globalID } } = useStore_useStore();
|
|
13791
14327
|
const [display, setDisplay] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)([]);
|
|
13792
14328
|
const [selectedIndex, setSelectedIndex] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(null);
|
|
@@ -13827,7 +14363,7 @@ const SegmentsDisplayControl = ()=>{
|
|
|
13827
14363
|
onChange: handleSelect
|
|
13828
14364
|
});
|
|
13829
14365
|
};
|
|
13830
|
-
const
|
|
14366
|
+
const SegmentsDisplayControl = SegmentsDisplayControl_SegmentsDisplayControl;
|
|
13831
14367
|
var SeriesDisplayControl_styles_module = __webpack_require__("../../../../node_modules/.pnpm/@rsbuild+core@1.3.18/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[11].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[11].use[2]!../../../../node_modules/.pnpm/@rsbuild+plugin-less@1.3.1_@rsbuild+core@1.4.12/node_modules/@rsbuild/plugin-less/compiled/less-loader/index.js??ruleSet[1].rules[11].use[3]!./src/components/ToolsBar/SeriesDisplayControl/styles.module.less");
|
|
13832
14368
|
var SeriesDisplayControl_styles_module_options = {};
|
|
13833
14369
|
SeriesDisplayControl_styles_module_options.styleTagTransform = styleTagTransform_default();
|
|
@@ -13837,7 +14373,7 @@ SeriesDisplayControl_styles_module_options.domAPI = styleDomAPI_default();
|
|
|
13837
14373
|
SeriesDisplayControl_styles_module_options.insertStyleElement = insertStyleElement_default();
|
|
13838
14374
|
injectStylesIntoStyleTag_default()(SeriesDisplayControl_styles_module.Z, SeriesDisplayControl_styles_module_options);
|
|
13839
14375
|
const ToolsBar_SeriesDisplayControl_styles_module = SeriesDisplayControl_styles_module.Z && SeriesDisplayControl_styles_module.Z.locals ? SeriesDisplayControl_styles_module.Z.locals : void 0;
|
|
13840
|
-
const
|
|
14376
|
+
const SeriesDisplayControl_SeriesDisplayControl = ()=>{
|
|
13841
14377
|
const { state: { globalID, series }, dispatch } = useStore_useStore();
|
|
13842
14378
|
const { data, legendExternal, forceDisplay } = series;
|
|
13843
14379
|
const seriesArray = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>Array.from(data.keys()).filter((name)=>!legendExternal.includes(name)).filter((name)=>name !== constants_SeriesType.TemplateData), [
|
|
@@ -13951,7 +14487,7 @@ const SeriesDisplayControl = ()=>{
|
|
|
13951
14487
|
]
|
|
13952
14488
|
});
|
|
13953
14489
|
};
|
|
13954
|
-
const
|
|
14490
|
+
const SeriesDisplayControl = SeriesDisplayControl_SeriesDisplayControl;
|
|
13955
14491
|
const SpacerLine = ()=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
13956
14492
|
className: components_ToolsBar_styles_module.spacerLine
|
|
13957
14493
|
});
|
|
@@ -13987,7 +14523,7 @@ const ToolsBar = ({ type })=>{
|
|
|
13987
14523
|
]
|
|
13988
14524
|
}),
|
|
13989
14525
|
type === constants_ChartType.Scan && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
|
|
13990
|
-
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(
|
|
14526
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(SegmentsDisplayControl, {})
|
|
13991
14527
|
}),
|
|
13992
14528
|
type === constants_ChartType.Heatmap && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
|
|
13993
14529
|
children: [
|
|
@@ -13995,7 +14531,7 @@ const ToolsBar = ({ type })=>{
|
|
|
13995
14531
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(TimeRange_Switch, {})
|
|
13996
14532
|
]
|
|
13997
14533
|
}),
|
|
13998
|
-
(type === constants_ChartType.SingleFrequency || type === constants_ChartType.Scan || type === constants_ChartType.MScan) && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(
|
|
14534
|
+
(type === constants_ChartType.SingleFrequency || type === constants_ChartType.Scan || type === constants_ChartType.MScan) && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(SeriesDisplayControl, {})
|
|
13999
14535
|
]
|
|
14000
14536
|
})
|
|
14001
14537
|
});
|
|
@@ -14056,7 +14592,7 @@ function useMarkerLinkageZoom() {
|
|
|
14056
14592
|
const SET_SERIES = (globalID, func)=>subscription_createSubscriptionManager(`SET_SERIES-${globalID}`, '0', func);
|
|
14057
14593
|
const SERIES_DEFAULT_CONFIG = {
|
|
14058
14594
|
label: '',
|
|
14059
|
-
color: '
|
|
14595
|
+
color: '#11111150',
|
|
14060
14596
|
thickness: 1,
|
|
14061
14597
|
display: true,
|
|
14062
14598
|
type: type_GraphicType.Stepline
|
|
@@ -14394,7 +14930,7 @@ function useSpectrumAnalyzer(props) {
|
|
|
14394
14930
|
case constants_PSType.Heatmap:
|
|
14395
14931
|
if (e.data) {
|
|
14396
14932
|
const { data, timestamps } = e;
|
|
14397
|
-
const waterfallData =
|
|
14933
|
+
const waterfallData = (0, utils.P9)(data, timestamps);
|
|
14398
14934
|
analyzer.current.setWaterfallData(waterfallData);
|
|
14399
14935
|
}
|
|
14400
14936
|
break;
|
|
@@ -14548,7 +15084,7 @@ const HeatmapPortal_Chart = (props)=>{
|
|
|
14548
15084
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Heatmap, {
|
|
14549
15085
|
selecter: selecter
|
|
14550
15086
|
}),
|
|
14551
|
-
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(
|
|
15087
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
|
|
14552
15088
|
type: type
|
|
14553
15089
|
})
|
|
14554
15090
|
]
|
|
@@ -14566,7 +15102,7 @@ const OccupancyPortal_Chart = (props)=>{
|
|
|
14566
15102
|
type: constants_ChartType.Occupancy
|
|
14567
15103
|
}),
|
|
14568
15104
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(modules_Occupancy, {}),
|
|
14569
|
-
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(
|
|
15105
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
|
|
14570
15106
|
type: type
|
|
14571
15107
|
})
|
|
14572
15108
|
]
|
|
@@ -14635,7 +15171,7 @@ const Spectrum_Chart_Chart = (props)=>{
|
|
|
14635
15171
|
})
|
|
14636
15172
|
]
|
|
14637
15173
|
}),
|
|
14638
|
-
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(
|
|
15174
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(AxisX, {
|
|
14639
15175
|
type: type
|
|
14640
15176
|
})
|
|
14641
15177
|
]
|
|
@@ -14650,4 +15186,4 @@ const SpectrumChart = (props)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react
|
|
|
14650
15186
|
});
|
|
14651
15187
|
const lib_Spectrum_Spectrum = withChartPublisher(SpectrumChart, 'Spectrum');
|
|
14652
15188
|
const lib_Spectrum = lib_Spectrum_Spectrum;
|
|
14653
|
-
export { constants_ChartType as ChartType, lib_Dial as Dial, lib_Gauge as Gauge, lib_Heatmap as Heatmap, store_HeatmapCaptureType as HeatmapCaptureType, lib_IQ as IQ, LevelStream, constants_MarkerEventType as MarkerEventType, lib_Occupancy as Occupancy, constants_OptionKey as OptionKey, constants_PSType as PSType, constants_SegmentsEvent as SegmentsEvent, constants_SeriesType as SeriesType, lib_Spectrum as Spectrum, useSafePublish };
|
|
15189
|
+
export { constants_ChartType as ChartType, lib_Dial as Dial, lib_Gauge as Gauge, lib_Heatmap as Heatmap, store_HeatmapCaptureType as HeatmapCaptureType, lib_IQ as IQ, LevelStream, constants_MarkerEventType as MarkerEventType, lib_Occupancy as Occupancy, constants_OptionKey as OptionKey, constants_PSType as PSType, constants_SegmentsEvent as SegmentsEvent, constants_SeriesType as SeriesType, lib_Spectrum as Spectrum, setFrequencyAllocationToCache, useSafePublish };
|