Skip to content

finish plotlyjs 2.28 parity#502

Open
kMutagene wants to merge 7 commits intodevfrom
plotly2.28
Open

finish plotlyjs 2.28 parity#502
kMutagene wants to merge 7 commits intodevfrom
plotly2.28

Conversation

@kMutagene
Copy link
Copy Markdown
Collaborator

No description provided.

kMutagene and others added 7 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>
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