PulseTrade.Comm.Spa.Dynamic.Renderer
0.1.0-alpha48
See the version list below for details.
dotnet add package PulseTrade.Comm.Spa.Dynamic.Renderer --version 0.1.0-alpha48
NuGet\Install-Package PulseTrade.Comm.Spa.Dynamic.Renderer -Version 0.1.0-alpha48
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Renderer" Version="0.1.0-alpha48" />
<PackageVersion Include="PulseTrade.Comm.Spa.Dynamic.Renderer" Version="0.1.0-alpha48" />
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Renderer" />
paket add PulseTrade.Comm.Spa.Dynamic.Renderer --version 0.1.0-alpha48
#r "nuget: PulseTrade.Comm.Spa.Dynamic.Renderer, 0.1.0-alpha48"
#:package PulseTrade.Comm.Spa.Dynamic.Renderer@0.1.0-alpha48
#addin nuget:?package=PulseTrade.Comm.Spa.Dynamic.Renderer&version=0.1.0-alpha48&prerelease
#tool nuget:?package=PulseTrade.Comm.Spa.Dynamic.Renderer&version=0.1.0-alpha48&prerelease
PulseTrade.Comm.Spa.Dynamic.Renderer
基於PulseTrade.Comm.Spa.Dynamic.Contracts的pure WebSharper F# TA workspace renderer。
Responsibility
- owns:DOM/SVG chart layout、bounded local viewport、row visibility、compact query/Add Row UI、typed action callback。
- does not own:PTCS、WebSocket、SQL、market-data provider、credential、ACL或authorization。
- local-only:pan、zoom、row toggle、Reset View。
- remote typed action:Change Query、Add Row、Remove Row、Reset Canvas;每個row以toggle + 固定寬度remove control呈現,remote command in-flight時remove同樣disabled。
- shared research view:同一visible index驅動各row crosshair/cursor values;transport timestamp壓成
MM-dd HH:mm,OHLC detail可換行,時間標籤在SVG外以HTML grid呈現,避免mobile非等比縮放文字。 - status:保留freshness、watermark、quality與recoverable last-good error;remote in-flight只禁用remote submit,不凍結local view。
- query draft:只從
TaWorkspaceDocument.DefaultView的query.*metadata初始化;document revision不變的poll不覆蓋使用者輸入,metadata缺失時保持空白,禁止回退到demo symbol/interval/date。 - Apply boundary:instrument/interval/range只更新local draft;選擇interval不送action、不改authoritative query、不重render,按
Load / Apply才送一次ChangeTaQuery。 - loaded range:shared-axis working set可保留最多4000 positions;overview以bounded bucket呈現全range,左右handle可resize,中段可move,48/200/All可切換。drag只更新draft,pointer release/
change才commit一次render,local navigation不送server action;All模式把完整working set壓縮成bounded SVG primitives觀察長趨勢。 - Add/Edit Row:由
TaWorkspaceDocument.EditorSchemas生成generic Text/Integer/Decimal/Boolean/Choice/Scale/List/Group表單;同template可建立多個參數實例。帶ptcs.dynamic.editor.binding.v1的row可預填並以stable RowId重新設定;legacy無binding row保持read-only。editor draft不會被poll覆蓋。 - Reset Canvas:送remote typed action恢復mount時initial ordered rows/query;Reset View只恢復local viewport。
- timeline:各trace依timestamp對齊reference timeline;SMA/ADX/MACD warm-up縮短不會用array index錯位或造成sequence failure。
- temporal projection:
TemporalPoint明確指定source interval與projection;coarse K棒用CandleSpan跨base slots,coarse line用RepeatAcrossBaseBuckets,只在close後可知的indicator用StepAfterClose,避免look-ahead。 - shared temporal data:
temporal-axis.v1提供唯一sparse Position/time authority,temporal-series.v1以Position join。Renderer不依scale推算缺失點;同一K的preview revision原位替換。candlestick可由TaCandleDataRefs指定的O/H/L/C/V五條scalar series合成。 - multi-candle:同一row可同時畫1K/5K等多個candlestick traces;base candle維持實心,coarse candle以trace色outline/dashed wick呈現並保留source interval metadata。
- cursor/style:K棒、line point與cross-row cursor共用slot-center幾何;indicator line width為1.25,histogram維持1.0。
- event-time interaction:
BaseRowId的真實timestamp驅動shared cursor;coarse row只使用finalized containing/as-of point,否則missing。viewport release送半開event-time range,pending期間controls不可重入。
API
TaWorkspaceRenderer.render
TaWorkspaceRenderer.defaultOptions
callbacks
runtimeState
runtimeState是Var<RuntimeState>;host adapter負責strict frame decode/reducer與更新Var。正式runtime從current document讀editor catalog;TaRendererOptions.EditorSchemas只作standalone/test fallback。callbacks.SubmitAction接收含RequestId/revision的DynamicActionRequest並回DynamicActionResult;Add使用ApplyTemplate(None, ...),Edit使用ApplyTemplate(Some rowId, ...),不提供arbitrary URL、SQL或raw credential。
Verification
- exact-package model/dependency/source tests:
tests/PulseTrade.Comm.Spa.Dynamic.Renderer.Tests。 - exact-package live bundle:
tests/PulseTrade.Comm.Spa.Dynamic.Renderer.BrowserDemo。 - desktop/mobile F# Playwright:
scripts/verify-ta-renderer-playwright.fsx。 - current exact package:
PulseTrade.Comm.Spa.Dynamic.Renderer 0.1.0-alpha48,exact依賴Contracts[0.1.0-alpha20]與FSharp.Core[10.1.400]。Current model gate 25/25;高密度overview selection以不重疊的move/left-resize/right-resize hit-area保留三種操作。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FSharp.Core (= 10.1.400)
- PulseTrade.Comm.Spa.Dynamic.Contracts (= 0.1.0-alpha20)
- WebSharper.FSharp (>= 10.1.6.676)
- WebSharper.UI (>= 10.1.5.676)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on PulseTrade.Comm.Spa.Dynamic.Renderer:
| Package | Downloads |
|---|---|
|
PulseTrade.Comm.Spa.Dynamic.Ptcs.Client
Pure WebSharper same-origin PTCS transient client adapter for Dynamic TA Research. |
|
|
PulseTrade.MarketData.E2EQuotation.Dynamic.Browser
Bounded pure WebSharper E2EQuotation adapter for the shared Dynamic TA renderer. |
|
|
PulseTrade.Comm.Spa.Dynamic.Interactive.Client
Transport-neutral WebSharper client shell for embedding the Dynamic SDUI runtime in interactive hosts. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha9 | 70 | 7/12/2026 |
| 0.1.0-alpha8 | 70 | 7/12/2026 |
| 0.1.0-alpha7 | 70 | 7/12/2026 |
| 0.1.0-alpha49 | 0 | 9/8/2026 |
| 0.1.0-alpha48 | 0 | 9/8/2026 |
| 0.1.0-alpha46 | 0 | 9/8/2026 |
| 0.1.0-alpha45 | 0 | 9/8/2026 |
| 0.1.0-alpha39 | 0 | 9/8/2026 |
| 0.1.0-alpha38 | 44 | 9/6/2026 |
| 0.1.0-alpha25 | 86 | 7/15/2026 |
| 0.1.0-alpha24 | 71 | 7/15/2026 |
| 0.1.0-alpha19 | 93 | 7/14/2026 |
| 0.1.0-alpha18 | 87 | 7/14/2026 |
| 0.1.0-alpha12 | 89 | 7/13/2026 |
| 0.1.0-alpha11 | 64 | 7/12/2026 |
| 0.1.0-alpha10 | 72 | 7/12/2026 |