PulseTrade.Comm.Spa.Dynamic.Renderer 0.1.104

There is a newer version of this package available.
See the version list below for details.
dotnet add package PulseTrade.Comm.Spa.Dynamic.Renderer --version 0.1.104
                    
NuGet\Install-Package PulseTrade.Comm.Spa.Dynamic.Renderer -Version 0.1.104
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Renderer" Version="0.1.104" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PulseTrade.Comm.Spa.Dynamic.Renderer" Version="0.1.104" />
                    
Directory.Packages.props
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Renderer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PulseTrade.Comm.Spa.Dynamic.Renderer --version 0.1.104
                    
#r "nuget: PulseTrade.Comm.Spa.Dynamic.Renderer, 0.1.104"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PulseTrade.Comm.Spa.Dynamic.Renderer@0.1.104
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PulseTrade.Comm.Spa.Dynamic.Renderer&version=0.1.104
                    
Install as a Cake Addin
#tool nuget:?package=PulseTrade.Comm.Spa.Dynamic.Renderer&version=0.1.104
                    
Install as a Cake Tool

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。cache rehydrate進入PausedForResync時仍允許local pan/zoom/hover/cursor,但不送VisibleRangeChanged或SharedCursorChanged,直到authoritative resync完成。
  • 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;accepted後依merged base/reference temporal axis選[FromUtc, ToUtcExclusive) local window,不改authoritative data/revision或清cache。pending期間的新query取代queue中的舊intent,transport仍維持one-in-flight。
  • loaded range:active shared-axis detail目前最多4000 positions;overview以bounded bucket呈現reference domain,左右handle可resize,中段可move,48/200/All可切換。selection依resolved window真實比例繪製,沒有固定visual寬度下限;24 CSS px hit resolver在小selection重疊時仍明確區分left/move/right。drag只更新draft,pointer release才commit一次render。多年coverage+bounded active detail仍需RFC-0032的versioned generic coverage projection,不得以提高retained detail cap冒充完成。
  • 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。
  • generic marker:TaTraceKind.Marker以同row的candlestick trace作target;Position是唯一空間authority,EventTime只進tooltip。marker不參與reference timeline、Y autoscale或numeric legend;每個visible bucket依stable wire order直接畫前4筆,其餘以keyboard-accessible +N cluster逐筆檢視完整label/tooltip。Plot不畫文字label;Label/Tooltip進SVG title與row-local OFI。hollow marker保留semantic stroke,另以pointer-inert contrast halo確保dark plot可辨識。
  • overview stripe:TaTraceKind.OverviewStripe以canonical event time定位navigator X;同trace同X合併成單一full-height線與count,同X不同trace依collision group/layer order分固定lane。paths按trace批次,hover lookup bounded;stripe不參與close sampling、Y-domain或K-bar plot pointer ownership。
  • row resize:每列separator支援pointer、Arrow 8px、Shift+Arrow 32px、Home/double-click reset。override只以CanvasInstanceId + RowId保存在active renderer;同canvas revision/scenario replacement保留,reload/unmount/canvas identity替換清除。candlestick/composite範圍180..720px,scalar範圍96..480px;marker presence不再改row baseline。
  • row-local data window:每列從自身resolved datapoint同時取得timestamp與value;candlestick固定顯示O/H/L/C/V,line/histogram顯示value。shared cursor頂端為兩行yyyy-MM-dd/HH:mm:ss;missing或invalid timestamp明示Unavailable,不借用base row。
  • row composition:同一immutable DataRef可同時出現在overlay row與一或多個separate rows;Renderer逐row獨立解析與呈現,不依DataRef合併row。overlay/分列完全由owner提供的Rows/Traces決定。
  • 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不可重入。
  • plot surface theme:consumer以TaPlotSurfacePresentationCodec.apply在DefaultView選Light/Dark;Renderer用同一palette繪製candle、TA、overview、grid、cursor、axis、legend與tooltip。未指定維持Light,不讀browser preference或consumer CSS作authority。
  • histogram polarity:consumer以TaHistogramTraceOptionsCodec.apply設定正/負色;Renderer依value符號產生兩個batched paths。未指定則兩色皆沿用TaTraceSpec.Color,不從trace name/label推論MACD或交易語意。

API

TaWorkspaceRenderer.render
    TaWorkspaceRenderer.defaultOptions
    callbacks
    runtimeState

TaWorkspaceRenderer.renderWithProjectionCommit
    TaWorkspaceRenderer.defaultOptions
    callbacks
    (fun committedState -> publishReceipt committedState)
    runtimeState

TaWorkspaceRenderer.renderWithProjectionCommitAndDisplayTimeZone
    TaWorkspaceRenderer.defaultOptions
    callbacks
    (fun committedState -> publishReceipt committedState)
    displayTimeZone.View
    runtimeState

TaWorkspaceRenderer.renderWithDisplayTimeZone
    TaWorkspaceRenderer.defaultOptions
    callbacks
    displayTimeZone.View
    runtimeState

render與renderWithProjectionCommit維持UTC相容;page owner以typed Var<SduiDisplayTimeZone>.View呼叫display-time overload。切換只更新visible axis、cursor、row data window、metadata、marker/stripe/OFI tooltip,canonical UTC attributes、loaded data、viewport、revision及action channel皆不變。CT/ET由唯一formatter依event instant套用CST/CDT或EST/EDT;consumer不得複製formatter。callback只在current generation的full mount或same-topology visible-row refresh完成,並跨下一個animation-frame boundary後觸發;stale、superseded、current-state mismatch與相同tuple重複候選不觸發。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-generic-marker-playwright.fsx。
  • current owner release:PulseTrade.Comm.Spa.Dynamic.Renderer 0.1.89,exact依賴Contracts [0.1.33]與FSharp.Core [10.1.400]。committed viewport range直接訂閱local UI state,不再等待整棵chart stack replacement;row generation、ready barrier與single-render contract不變。RFC-0032的loaded-coverage、tiny-selection resolver與revision gates不變。

RFC-0028 release為Renderer 0.1.76、Contracts [0.1.29]、Interactive.Client 0.1.67。它包含RFC-0027 typed dark plot/Histogram polarity,並以DefaultView.visibleBars初始化fresh canvas;plot marker只保留glyph/tooltip,每列在cursor gutter與plot間提供固定24px OFI band,最多4筆++N。一般plot hover依axis snap;直接marker/cluster hit以accepted placement exact slot更新同一shared cursor並停止冒泡,避免高密度同CSS pixel時偏至鄰slot。Overview selection為淺灰,visual boundaries為亮綠2 CSS px且不改transparent hit targets。

RFC-0030 candidate為Renderer 0.1.82、Contracts [0.1.30]、Interactive.Client 0.1.73。每個row control line固定single-line Y band;右側trace region使用nowrap與row-local overflow。Marker/OverviewStripe不出現在trace controls,Reset Canvas與canvas identity replacement仍清除local hidden/removed state。

2026-09-29 release:exact graph為Contracts 0.1.33、Renderer 0.1.92、Interactive.Client 0.1.83、Dynamic.Ptcs 0.1.54、Ptcs.Client 0.1.93。長label下Edit固定52px;navigator以bounded wick/up/down paths保留OHLC micro-candles,OverviewStripe仍完全由consumer authoring;pending viewport採local immediate+single latest queue。Cursor gate使用browser event-to-render telemetry,driver round-trip僅診斷。Official signatures/dependencies/manifest/entry parity已通過;真SPAA consumer通過前不宣稱產品驗收。

RFC-0032最新candidate Renderer 0.1.103:PollInFlight與PausedForResync期間navigator仍可local preview/release,boundary intent進single latest queue;action settled或runtime回READY時依最新authority排出一次。透明interaction surface提供hit area,mousedown bubble至live outer SVG;handler以該SVG currentTarget同時作event owner與geometry authority,避免inner/outer border座標偏移。document move/up與24 CSS px hit resolver不變;Unmounted/Disposed仍禁止local操作。Source commit 651ecc5的NuGet.org signature、exact dependency與entry parity已驗證;consumer真SPAA通過前維持candidate狀態。

Navigator跨iframe修正candidate Renderer 0.1.104:live outer SVG改用Pointer Events並在pointerdown取得capture,因此游標移出SVG或child iframe後仍能收到move/up;pointercancel只丟棄draft,不送action。document pointer listener只作capture不可用時fallback。Owner iframe gate已驗frame x=80、navigator x=101、release x=68仍唯一送出Earlier coverage;正式package與真SPAA驗收完成前維持candidate狀態。

RFC-0017之後,cache rehydrate即使保留current identity/revision,只要validated Data object替換仍會重畫。row legend以rowId + local trace index隔離;All模式保留完整scale/cursor arrays,但以bounded candle/line paths呈現。non-base candle cursor使用一次range projection,不再對每個base timestamp掃描完整source。

RFC-0018之後,accepted ChangeTaQuery在host frames已合併後選local viewport。invalid/no-intersection/stale query保留原window並顯示feedback;local selection不送第二個range action。中間Renderer 0.1.34不可使用,因其callback concurrency與正式client one-in-flight不一致。

RFC-0019/0020之後,每列依自身event-time與plot width產生adaptive axis,crosshair只覆蓋該列plot。loaded coverage可大於visible cap;越過boundary時以VisibleRangeChanged要求document query範圍內的相鄰coverage,merge後依event-time anchor重定位。Renderer prepare與row mount/refresh使用generation-aware frame scheduling;consumer仍負責provider query、source merge與cache authority。

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.Comm.Spa.Dynamic.Interactive.Client

Transport-neutral WebSharper client shell for embedding the Dynamic SDUI runtime in interactive hosts.

PulseTrade.MarketData.E2EQuotation.Dynamic.Browser

Bounded pure WebSharper E2EQuotation adapter for the shared Dynamic TA renderer.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.106 0 9/29/2026
0.1.104 0 9/29/2026
0.1.103 0 9/29/2026
0.1.102 0 9/29/2026
0.1.100 0 9/29/2026
0.1.99 0 9/29/2026
0.1.98 0 9/29/2026
0.1.95 0 9/28/2026
0.1.94 0 9/28/2026
0.1.92 24 9/28/2026
0.1.91 44 9/28/2026
0.1.89 36 9/28/2026
0.1.88 39 9/28/2026
0.1.87 41 9/28/2026
0.1.86 34 9/28/2026
0.1.85 32 9/28/2026
0.1.83 48 9/27/2026
0.1.82 49 9/27/2026
0.1.81 49 9/27/2026
0.1.76 53 9/25/2026
Loading failed