waveform-analysis 0.1.24 → 0.1.26
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/README.md +45 -5
- package/dist/index.cjs +1 -1
- package/dist/index.js +540 -487
- package/dist/types/App.vue.d.ts +4 -0
- package/dist/types/DemoRouterApp.vue.d.ts +3 -0
- package/dist/types/components/core/layout.d.ts +6 -3
- package/dist/types/components/core/trackLayoutBuilder.d.ts +2 -0
- package/dist/types/components/core/useWaveformChartController.d.ts +2 -0
- package/dist/types/components/core/waveformChartTypes.d.ts +2 -0
- package/dist/types/components/core/yDomain.d.ts +7 -0
- package/dist/types/demo/DemoChartHost.vue.d.ts +14 -0
- package/dist/types/demo/DemoControlPanel.vue.d.ts +11 -0
- package/dist/types/demo/DemoGridFrameControls.vue.d.ts +11 -0
- package/dist/types/demo/DemoTitleLegendControls.vue.d.ts +11 -0
- package/dist/types/demo/DemoViewControls.vue.d.ts +11 -0
- package/dist/types/demo/types.d.ts +84 -0
- package/dist/types/router.d.ts +3 -0
- package/dist/types/views/FixedYDomainDemo.vue.d.ts +3 -0
- package/package.json +2 -1
- package/src/DemoRouterApp.vue +14 -0
- package/src/components/core/fixedYDomainLayout.test.ts +116 -0
- package/src/components/core/layout.ts +43 -10
- package/src/components/core/trackLayoutBuilder.ts +17 -7
- package/src/components/core/useWaveformChartController.ts +10 -0
- package/src/components/core/useWaveformLayout.ts +20 -4
- package/src/components/core/waveformChartTypes.ts +2 -0
- package/src/components/core/yDomain.test.ts +56 -0
- package/src/components/core/yDomain.ts +50 -0
- package/src/components/interaction/useWaveformViewport.ts +6 -1
- package/src/components/rendering/WaveformTrack.vue +1 -1
- package/src/components/rendering/WaveformTrackAxes.vue +5 -7
- package/src/components/waveformChartCases/layoutAndDomains.test.ts +25 -0
- package/src/components/waveformChartCases/presentationAndAxes.test.ts +26 -6
- package/src/components/waveformChartCases/viewportBoxAndPan.test.ts +50 -0
- package/src/demoRoutes.css +197 -0
- package/src/main.ts +4 -2
- package/src/router.ts +21 -0
- package/src/styles.css +1 -2
- package/src/views/FixedYDomainDemo.test.ts +44 -0
- package/src/views/FixedYDomainDemo.vue +149 -0
package/README.md
CHANGED
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
最新稳定版 Demo:<https://lqycustomsite.online/waveform-analysis/>
|
|
14
14
|
|
|
15
|
+
本地运行 `pnpm dev` 后,可通过
|
|
16
|
+
<http://127.0.0.1:5173/#/fixed-y-domain> 查看固定振幅上下限示例。
|
|
17
|
+
|
|
15
18
|
## 特性
|
|
16
19
|
|
|
17
20
|
- Vue 3 Composition API + TypeScript,支持按需导入 `WaveformChart`
|
|
@@ -22,6 +25,7 @@
|
|
|
22
25
|
- 缩放过程事件、缩放结束按可视区间加载和视口重置
|
|
23
26
|
- 可选的空格拖拽平移,默认关闭并隔离多图表实例
|
|
24
27
|
- 多系列图例、受控显隐、网格分页和最多四根 Y 轴
|
|
28
|
+
- 自动 Y 轴范围,以及全局、按轨道或按系列配置的固定振幅范围
|
|
25
29
|
- 按轨道控制水平/垂直网格线的显隐与颜色
|
|
26
30
|
- 受控标注、右键编辑、拖拽避让和自定义颜色
|
|
27
31
|
- 标题、图框、坐标轴、零值参考线、净图和渲染参数可配置
|
|
@@ -107,13 +111,15 @@ const data = ref<WaveformData>({
|
|
|
107
111
|
| `minVisiblePoints` | `number` | `0` | 缩放后至少保留的不同 X 坐标数 |
|
|
108
112
|
| `initialXDomain` | `[number, number]` | 未设置 | 所有图框的初始 X 范围 |
|
|
109
113
|
| `initialXDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置初始范围 |
|
|
114
|
+
| `yDomain` | `[number, number]` | 未设置 | 所有波形的固定 Y 轴范围 |
|
|
115
|
+
| `yDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置固定范围 |
|
|
110
116
|
| `grid` | `WaveformGridOptions` | `{ rowCount: 2, columnCount: 1, showPagination: true }` | 网格和分页 |
|
|
111
117
|
| `axes` | `WaveformAxesOptions` | 轴线均显示 | X/Y 轴基线显隐 |
|
|
112
118
|
| `rendering` | `WaveformRenderingOptions` | `{}` | 降采样与点/误差棒间距 |
|
|
113
119
|
| `title` / `legend` / `frameStyle` | 对应公开类型 | 未设置 | 标题、图例和图框样式 |
|
|
114
120
|
| `frameNumber` | `string \| number` | 未设置 | 图框水印内容 |
|
|
115
121
|
| `zeroLine` | `WaveformZeroLineOptions` | `{ visible: false }` | 零值参考线显隐与样式 |
|
|
116
|
-
| `cleanView` | `boolean` | `false` |
|
|
122
|
+
| `cleanView` | `boolean` | `false` | 保留波形、图框和刻度的净图模式 |
|
|
117
123
|
| `presentationMode` | `boolean` | `false` | 禁用绘图区交互的展示模式 |
|
|
118
124
|
| `annotations` | `WaveformAnnotation[]` | `[]` | 受控标注数据 |
|
|
119
125
|
| `annotationsVisible` | `boolean` | `true` | 标注图层显隐 |
|
|
@@ -177,6 +183,38 @@ import 'waveform-analysis/style.css'
|
|
|
177
183
|
</template>
|
|
178
184
|
```
|
|
179
185
|
|
|
186
|
+
### 固定振幅上下限
|
|
187
|
+
|
|
188
|
+
未传入 Y 轴范围时,组件继续根据当前可见系列及其误差棒自动计算范围。传入 `yDomain`
|
|
189
|
+
后,所有波形使用同一个固定范围;超出范围的部分只在绘图区裁剪,不会过滤或修改原始数据:
|
|
190
|
+
|
|
191
|
+
```vue
|
|
192
|
+
<WaveformChart :data="chartData" :y-domain="[-80, 80]" />
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
多通道可以通过 `yDomains` 按稳定的 `trackId` 或 `seriesId` 分别配置:
|
|
196
|
+
|
|
197
|
+
```vue
|
|
198
|
+
<WaveformChart
|
|
199
|
+
:data="chartData"
|
|
200
|
+
:y-domain="[-100, 100]"
|
|
201
|
+
:y-domains="{
|
|
202
|
+
voltage: [-65, 65],
|
|
203
|
+
current: [-260, 260],
|
|
204
|
+
}"
|
|
205
|
+
/>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
范围优先级为 `trackId` 配置、`seriesId` 配置、全局 `yDomain`、数据自动范围。上下限必须
|
|
209
|
+
是两个有限且不相等的数字;倒序范围会自动调整为升序,无效配置会回退到下一优先级。
|
|
210
|
+
固定范围会精确作为坐标域使用,不会经过 D3 的 `nice()` 扩展。
|
|
211
|
+
|
|
212
|
+
单值轴叠加模式会合并同一根轴上所有可见系列的有效范围;多值轴模式按系列分别使用配置,
|
|
213
|
+
超过四根轴后复用第 4 根轴的系列会取范围并集。隐藏系列不参与公共范围合并。
|
|
214
|
+
|
|
215
|
+
固定范围存在时,对应图框的 Y 轴不会被平移或视口重置覆盖;X 轴缩放、平移和重置保持原有
|
|
216
|
+
行为。运行时更新或移除 `yDomain` / `yDomains` 会立即重新布局,移除后恢复自动范围。
|
|
217
|
+
|
|
180
218
|
### 缩放后按可视区间加载数据
|
|
181
219
|
|
|
182
220
|
组件支持 Plotly 风格的矩形框选缩放:在 zoom 模式下按住鼠标左键拖拽,松开后同时缩放
|
|
@@ -411,9 +449,10 @@ scale 定位零线:
|
|
|
411
449
|
`dash` 直接对应 SVG 的 `stroke-dasharray`;传入空字符串可显示实线。无效或非正数的
|
|
412
450
|
`width` 会回退到 `1`。
|
|
413
451
|
|
|
414
|
-
设置 `cleanView`
|
|
415
|
-
|
|
416
|
-
tooltip
|
|
452
|
+
设置 `cleanView` 后,组件保留波形、图框边框、X/Y 轴刻度及刻度值,并隐藏标题内容、图例、
|
|
453
|
+
网格、轴标签、图框背景、帧水印、零值参考线、标注和分页器。原图的标题区域、边距和波形
|
|
454
|
+
尺寸保持不变;缩放、悬浮、十字线和 tooltip 仍然可用,切换回普通模式后原有配置和标注
|
|
455
|
+
不会丢失:
|
|
417
456
|
|
|
418
457
|
```vue
|
|
419
458
|
<WaveformChart :data="chartData" :clean-view="cleanViewEnabled" />
|
|
@@ -589,7 +628,8 @@ X、Y 轴会根据各自完整显示域选择格式:最大绝对值在 `[0.01,
|
|
|
589
628
|
- `src/index.ts`:组件库公开入口和工具函数导出
|
|
590
629
|
- `src/components/WaveformChart.vue`:图表容器、缩放、tooltip、图例和标注编排
|
|
591
630
|
- `src/components/{core,data,rendering,interaction,annotation}`:数据、布局、渲染和交互模块
|
|
592
|
-
- `src/App.vue
|
|
631
|
+
- `src/App.vue`:综合可交互 demo,`src/data` 中提供示例波形数据
|
|
632
|
+
- `src/router.ts`:Demo 路由;`src/views/FixedYDomainDemo.vue` 为固定振幅范围示例
|
|
593
633
|
|
|
594
634
|
## 本地开发
|
|
595
635
|
|