Skip to content

finish plotlyjs 2.28 parity - #502

Open
kMutagene wants to merge 9 commits into
devfrom
plotly2.28
Open

finish plotlyjs 2.28 parity#502
kMutagene wants to merge 9 commits into
devfrom
plotly2.28

Conversation

@kMutagene

Copy link
Copy Markdown
Collaborator

No description provided.

kMutagene and others added 9 commits April 16, 2026 19:31
…2.28.0)

Commit I — Sankey node align:
- Add `SankeyNodeAlign` StyleParam DU (Left/Right/Center/Justify)
- Add `?Align: StyleParam.SankeyNodeAlign` to `SankeyNodes.init`/`SankeyNodes.style`
- Add `?NodeAlign` to `Chart.Sankey` F# convenience overload
- Tests: 2 new assertions verifying `"align"` serializes correctly on the node object

Commit K — Sankey encoded node and link arrays:
- Add `?ColorEncoded`, `?CustomDataEncoded`, `?XEncoded`, `?YEncoded` to `SankeyNodes.init`/`SankeyNodes.style`
- Add `?SourceEncoded`, `?TargetEncoded`, `?ValueEncoded`, `?ColorEncoded`, `?CustomDataEncoded` to `SankeyLinks.init`/`SankeyLinks.style`
- Encoded params share the same plotly.js property key as their plain counterparts; encoded version wins when both are provided
- Tests: 9 new assertions verifying all node and link encoded fields serialize as `{"bdata":...}` objects
- Update PlotlyJS_2_28_Parity.md to reflect both commits as done (942 tests passing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds encoded typed array convenience overloads to Plotly.NET.CSharp
for the most commonly used chart types, completing the H3 phase of
encoded array support:

Chart2D.cs:
- Chart.Scatter<TextType>(xEncoded, yEncoded, mode, ...)
- Chart.Bar<TextType,BaseType,WidthType>(valuesEncoded, ...)
- Chart.StackedBar<TextType,BaseType,WidthType>(valuesEncoded, ...)
- Chart.Column<TextType,BaseType,WidthType>(valuesEncoded, ...)
- Chart.StackedColumn<TextType,BaseType,WidthType>(valuesEncoded, ...)
- Chart.Heatmap<TextType>(zEncoded, ?xEncoded, ?yEncoded, ...)
- Chart.Histogram2D(xEncoded, yEncoded, ?zEncoded, ...)

Chart3D.cs:
- Chart.Scatter3D<TextType>(xEncoded, yEncoded, zEncoded, mode, ...)

Each overload delegates directly to the corresponding F# convenience
overload in the relevant Chart*_*.Chart module. Base/Width SRTP params
on Bar variants are exposed as generic type parameters BaseType/WidthType
to satisfy F# compiled IL requirements from C#.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rloads (Commit L)

Adds `Chart.ParallelCoord(keyValuesEncoded = ...)` and
`Chart.ParallelCategories(keyValuesEncoded = ...)` convenience overloads
to ChartDomain_Relations.fs. Each overload maps `seq<string * EncodedTypedArray>`
pairs to `Dimension.initParallel(Label = key, ValuesEncoded = encodedVals)`,
delegating to the existing `dimensions` overload.

Tests: 2 new assertions verifying dimension values serialize as
`{"bdata":...}` encoded objects for both trace types.

Plan update: Commit L complete (944 tests passing), Commit M (C# surface)
marked done for foundational chart types.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t N)

- Add docs/general/encoded-arrays.fsx: new General doc page covering
  EncodedTypedArray constructors, dtype table, and examples for
  Chart.Scatter, Chart.Bar, and Chart.Heatmap encoded overloads

- Update docs/categorical-charts/sankey.fsx: add NodeAlign section
  showing Chart.Sankey with StyleParam.SankeyNodeAlign.Left

- Update PlotlyJS_2_28_Parity.md: mark Virtual-WebGL as no surface
  needed (AdditionalHeadTags covers it), mark Commit N done,
  update test count to 944

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- docs/3D-charts/3d-isosurface-plots.fsx: Newtonsoft.JSON 13.0.1 → 13.0.3, DynamicObj 2.0.0 → 7.0.1
- docs/general/image-export.fsx: PuppeteerSharp 9.0.2 → 24.40.0

All docs now consistently reference DynamicObj 7.0.1, Newtonsoft.JSON 13.0.3,
Giraffe.ViewEngine 1.4.0, and PuppeteerSharp 24.40.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Port the eleven 2.28 wrapper additions into the per-chart files, retain both F# console examples, and update the plain Sankey fixture for the new core optional parameters. Add eighteen C# regression cases generated from real chart markup and reconcile the integration plans with the delivered scope. Validated with the full clean FAKE runTestsAll pipeline: 958 core and 123 C# tests passed; ImageExport passed 6 with 2 already pending.
Document shared encoded arrays, tested C# examples, numeric and shape limits, nested precedence, selected wrapper coverage, and Virtual-WebGL script loading. Correct package release notes and installation-example formatting. Add shared Sankey init/style collision tests and C# encoded SPLOM/documentation cases. Record browser validation and completion scope in the plans.

Validation: full clean FAKE runTestsAll passed (960 core, 126 C#, 6 ImageExport passed with 2 existing skips). FAKE BuildDocs completed and strict reevaluation of both edited pages passed. Browser checks passed for encoded Scatter, 2x3 Heatmap, nested Sankey, SPLOM, and four Virtual-WebGL charts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant