@rfkit/charts 1.1.40 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  import { Series } from '../../engine';
2
2
  import type { SeriesConfig } from '../../types';
3
- export declare const passThroughSeries: (globalID: string, series?: Record<string, SeriesConfig>) => any;
4
3
  interface SpectrumState {
5
4
  chart: Series | null;
6
5
  autoranging: boolean;
@@ -16,7 +15,12 @@ export default class Spectrum {
16
15
  useRangeAutoFocus: () => void;
17
16
  useRangeSet: () => void;
18
17
  firstRenderAutoFocus: boolean;
18
+ seriesUnsubscribe?: () => void;
19
19
  constructor(props: Record<string, unknown>);
20
+ /**
21
+ * 初始化 series 订阅机制
22
+ */
23
+ initSeriesSubscription(): void;
20
24
  init(): void;
21
25
  initSeries(): void;
22
26
  /**
@@ -38,7 +42,7 @@ export default class Spectrum {
38
42
  /**
39
43
  * 设置线信息
40
44
  */
41
- setSeries(config: SeriesConfig): void;
45
+ setSeries(config: SeriesConfig, skipEventEmit?: boolean): void;
42
46
  setDisabledClearRect(disabledClearRect: boolean): void;
43
47
  setRange(renderRange?: [number, number]): void;
44
48
  zoom(): void;
package/package.json CHANGED
@@ -5,6 +5,6 @@
5
5
  "types": "index.d.ts",
6
6
  "author": "Hxgh",
7
7
  "license": "MIT",
8
- "version": "1.1.40",
8
+ "version": "1.2.0",
9
9
  "private": false
10
10
  }
package/types/store.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { TimestampedFloat32Array } from '@rfkit/spectrum-analyzer';
2
2
  import type { MarkerEventType, ModuleType, SeriesType } from '../config';
3
- import type { AxisXRange, AxisYRange, Publish, RecursiveObject, SegmentsType, SeriesConfig, StationInfoType, TopRightBottomLeft } from './';
3
+ import type { AxisXRange, AxisYRange, Publish, RecursiveObject, SegmentsType, StationInfoType, TopRightBottomLeft } from './';
4
4
  export interface SystemConfig {
5
5
  width: number;
6
6
  height: number;
@@ -47,7 +47,6 @@ export interface SeriesProps {
47
47
  zoomMinSimulateWave: boolean;
48
48
  dataRate: number;
49
49
  forceDisplay: boolean;
50
- data: Map<string, SeriesConfig>;
51
50
  legendExternal: SeriesType[];
52
51
  enableMetrics?: boolean;
53
52
  enableWaterfall?: boolean;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Series 事件系统
3
+ * 提供通用的发布-订阅机制,支持 React 组件和普通 JS 模块
4
+ */
5
+ import type { GraphicType } from '../../engine';
6
+ import type { SeriesConfig } from './index';
7
+ import type { ModeConfig, SeriesMode } from './modes';
8
+ /**
9
+ * Series 事件名称常量
10
+ */
11
+ export declare const SeriesEventName: {
12
+ readonly UPDATED: "series:updated";
13
+ readonly ADDED: "series:added";
14
+ readonly REMOVED: "series:removed";
15
+ readonly MODE_CHANGED: "series:mode-changed";
16
+ readonly TYPE_OVERRIDE_CHANGED: "series:type-override-changed";
17
+ readonly BATCH_UPDATED: "series:batch-updated";
18
+ readonly RESET: "series:reset";
19
+ };
20
+ /**
21
+ * Series 事件名称类型
22
+ */
23
+ export type SeriesEventNameType = (typeof SeriesEventName)[keyof typeof SeriesEventName];
24
+ export interface SeriesEvents {
25
+ [SeriesEventName.UPDATED]: {
26
+ globalID: string;
27
+ seriesName: string;
28
+ config: SeriesConfig;
29
+ };
30
+ [SeriesEventName.ADDED]: {
31
+ globalID: string;
32
+ seriesName: string;
33
+ config: SeriesConfig;
34
+ };
35
+ [SeriesEventName.REMOVED]: {
36
+ globalID: string;
37
+ seriesName: string;
38
+ };
39
+ [SeriesEventName.MODE_CHANGED]: {
40
+ globalID: string;
41
+ mode: SeriesMode;
42
+ config: ModeConfig;
43
+ };
44
+ [SeriesEventName.TYPE_OVERRIDE_CHANGED]: {
45
+ globalID: string;
46
+ seriesName?: string;
47
+ type?: GraphicType;
48
+ };
49
+ [SeriesEventName.BATCH_UPDATED]: {
50
+ globalID: string;
51
+ configs: SeriesConfig[];
52
+ };
53
+ [SeriesEventName.RESET]: {
54
+ globalID: string;
55
+ };
56
+ }
57
+ export type EventListener<T = unknown> = (data: T) => void;
58
+ export declare const seriesEvents: {
59
+ /**
60
+ * 订阅事件
61
+ */
62
+ on: any;
63
+ /**
64
+ * 发布事件
65
+ */
66
+ emit: any;
67
+ /**
68
+ * 移除监听器
69
+ */
70
+ removeAllListeners: any;
71
+ /**
72
+ * 获取监听器数量
73
+ */
74
+ getListenerCount: any;
75
+ };
76
+ export declare function subscribeToSeries<K extends keyof SeriesEvents>(globalID: string, event: K, listener: EventListener<SeriesEvents[K]>): () => void;
77
+ export declare function emitSeriesEvent<K extends keyof SeriesEvents>(event: K, data: SeriesEvents[K]): void;
@@ -0,0 +1,65 @@
1
+ import { type SeriesConfig as ExternalSeriesConfig, SeriesManager } from '@rfkit/spectrum-analyzer';
2
+ import { GraphicType } from '../../engine';
3
+ /**
4
+ * 本地 SeriesConfig 类型定义
5
+ */
6
+ export interface SeriesConfig {
7
+ name: string;
8
+ label: string;
9
+ color: string;
10
+ thickness: number;
11
+ display: boolean;
12
+ type: GraphicType;
13
+ }
14
+ /**
15
+ * 部分更新 SeriesConfig 类型定义
16
+ * 只有 name 是必需的,其他字段都是可选的
17
+ */
18
+ export type PartialSeriesConfig = Partial<SeriesConfig> & {
19
+ name: string;
20
+ };
21
+ /**
22
+ * 设置 ChartType 特定的 series 类型覆盖
23
+ * @param globalID
24
+ * @param seriesName series 名称
25
+ * @param type 要覆盖的类型
26
+ */
27
+ export declare function setChartTypeSeriesOverride(globalID: string, seriesName: string, type: GraphicType): void;
28
+ /**
29
+ * 清除 ChartType 特定的类型覆盖
30
+ */
31
+ export declare function clearChartTypeSeriesOverrides(globalID: string): void;
32
+ export { type ModeConfig, SeriesMode, type SeriesModesConfig } from './modes';
33
+ export type { ExternalSeriesConfig };
34
+ /**
35
+ * 获取 SeriesManager 实例
36
+ */
37
+ export declare function getSeriesManager(globalID: string): SeriesManager;
38
+ /**
39
+ * 销毁 SeriesManager
40
+ */
41
+ export declare function destroySeriesManager(globalID: string): void;
42
+ /**
43
+ * 检查是否存在 SeriesManager
44
+ */
45
+ export declare function hasSeriesManager(globalID: string): boolean;
46
+ /**
47
+ * 获取 series 数据映射
48
+ */
49
+ export declare function getSeriesMap(globalID: string): Map<string, SeriesConfig>;
50
+ export declare function updateSeries(globalID: string, config: PartialSeriesConfig): void;
51
+ /**
52
+ * 重置 series
53
+ */
54
+ export declare function resetSeries(globalID: string): void;
55
+ /**
56
+ * 批量更新 series
57
+ */
58
+ export declare function batchUpdateSeries(globalID: string, configs: PartialSeriesConfig[]): void;
59
+ export * from './events';
60
+ export * from './modes';
61
+ /**
62
+ * 获取带有正确 GraphicType 的 series 配置
63
+ * 优先级:ChartType 覆盖 > SeriesMode 配置 > 默认类型
64
+ */
65
+ export declare function getSeriesWithGraphicType(globalID: string): Map<string, SeriesConfig>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Series 模式管理
3
+ * 集成新的事件系统,支持通用的订阅机制
4
+ */
5
+ import { GraphicType } from '../../engine';
6
+ /**
7
+ * 显示模式类型
8
+ */
9
+ export declare enum SeriesMode {
10
+ Line = "line",
11
+ StepLine = "stepline",
12
+ Bar = "bar",
13
+ Area = "area"
14
+ }
15
+ /**
16
+ * 模式配置接口
17
+ */
18
+ export interface ModeConfig {
19
+ name: string;
20
+ label: string;
21
+ icon: string;
22
+ realData: GraphicType;
23
+ minData: GraphicType;
24
+ maxData: GraphicType;
25
+ avgData: GraphicType;
26
+ }
27
+ /**
28
+ * Series 模式配置类型
29
+ */
30
+ export type SeriesModesConfig = Record<SeriesMode, ModeConfig>;
31
+ export declare const SERIES_MODES: SeriesModesConfig;
32
+ /**
33
+ * 获取 Series 模式
34
+ */
35
+ export declare function getSeriesMode(globalID: string): SeriesMode;
36
+ export declare function getNextMode(currentMode: SeriesMode): SeriesMode;
37
+ /**
38
+ * 设置 Series 模式
39
+ */
40
+ export declare function setSeriesMode(globalID: string, mode: SeriesMode): void;
41
+ /**
42
+ * 切换到下一个 Series 模式
43
+ */
44
+ export declare function toggleSeriesMode(globalID: string, currentMode?: SeriesMode): void;
45
+ /**
46
+ * 清除指定 globalID 的模式
47
+ */
48
+ export declare function clearSeriesMode(globalID: string): void;
@@ -1,20 +1,12 @@
1
1
  import type { SpectrumAnalyzer, SpectrumData } from '@rfkit/spectrum-analyzer';
2
2
  import type { RecursiveFunction } from '../types';
3
- export declare function openData(globalID: string, data: any, defaultData: any): any;
3
+ export declare function openData(globalID: string, data: unknown, defaultData: unknown): any;
4
4
  /**
5
5
  * 共享订阅
6
6
  */
7
7
  export type CSMCallback = (...args: any[]) => void;
8
8
  export declare function createSubscriptionManager(id: string, name?: string, func?: CSMCallback): (...args: any[]) => void;
9
9
  export interface rawData {
10
- spectrumExtra: Map<string, {
11
- outputData: Float32Array;
12
- originalData: Float32Array;
13
- }>;
14
- occupancy: {
15
- data: Float32Array;
16
- totalOccupancy: number;
17
- };
18
10
  getAllRawData: () => SpectrumData;
19
11
  }
20
12
  export declare const getDefaultData: () => rawData;
@@ -1,8 +0,0 @@
1
- import type { RecursiveFunction, SeriesConfig } from '../types';
2
- export declare const SET_SERIES: (globalID: string, func?: RecursiveFunction) => (...args: any[]) => void;
3
- export interface UseSeriesResult {
4
- series: Map<string, SeriesConfig>;
5
- updateSeries: (config: SeriesConfig) => void;
6
- resetSeries: () => void;
7
- }
8
- export default function useSeries(): UseSeriesResult;