feat(model): add data_visualization layout block by zimeg · Pull Request #1612 · slackapi/java-slack-sdk · GitHub
Skip to content

feat(model): add data_visualization layout block - #1612

Draft
zimeg wants to merge 1 commit into
mainfrom
chore/block-kit-data-visualization
Draft

zimeg wants to merge 1 commit into
mainfrom
chore/block-kit-data-visualization

Conversation

@zimeg

@zimeg zimeg commented Jun 26, 2026

Copy link
Copy Markdown
Member

Summary

Adds support for the Block Kit data_visualization layout block to slack-api-model. A data visualization renders a chart (pie, bar, area, or line) from supplied data.

  • DataVisualizationBlock — top-level layout block (title, chart, block_id), following existing LayoutBlock conventions (Lombok @Data @Builder @NoArgsConstructor @AllArgsConstructor, public static final String TYPE).
  • Nested model classes:
    • DataVisualizationChart — type (pie/bar/area/line), segments (pie), series + axisConfig (bar/area/line).
    • DataVisualizationSegment — label, value (pie segment).
    • DataVisualizationSeries — name, data (bar/area/line series).
    • DataVisualizationDataPoint — label, value (series data point).
    • DataVisualizationAxisConfig — categories, xLabel, yLabel.
  • Registered data_visualization in GsonLayoutBlockFactory for deserialization.
  • Added a Blocks.dataVisualization(...) DSL helper.
  • Added BlockKitTest cases: pie-chart parsing, bar-chart-with-axis-config parsing, and a builder round-trip.

This is net-new in all SDKs; one block per PR.

Docs

https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block

Validation

Run with a JDK 21 toolchain (JAVA_HOME pointed at zulu-21) since the repo's pinned JaCoCo 0.8.7 agent cannot instrument JDK 25 classes — a pre-existing toolchain limitation unrelated to this change. The JaCoCo agent was bypassed via -DargLine=" " to run the tests.

  • ./mvnw -pl slack-api-model test -Dtest=BlockKitTest -DargLine=" " → Tests run: 46, Failures: 0, Errors: 0 (includes the 3 new cases). PASS
  • ./mvnw -pl slack-api-model test -DargLine=" " (full module) → Tests run: 477, Failures: 0, Errors: 0. PASS

Note: this repo does not use changesets (Maven, no .changeset/), so none was added.

Co-Authored-By: Claude svc-devxp-claude@slack-corp.com

🤖 Generated with Claude Code

Add support for the Block Kit `data_visualization` layout block to
slack-api-model. A data visualization renders a pie, bar, area, or line
chart from supplied data.

- Add DataVisualizationBlock model (title, chart, block_id) following
  existing LayoutBlock conventions, plus nested DataVisualizationChart,
  DataVisualizationSegment (pie), DataVisualizationSeries and
  DataVisualizationDataPoint (bar/area/line), and DataVisualizationAxisConfig.
- Register data_visualization in GsonLayoutBlockFactory for deserialization.
- Add a Blocks.dataVisualization(...) DSL helper.
- Add BlockKitTest cases covering pie/bar JSON parsing and builder round-trip.

Ref: https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@codecov

codecov Bot commented Jun 26, 2026 •

Copy link
Copy Markdown

@zimeg zimeg self-assigned this Sep 30, 2026

This branch has not been deployed

No deployments
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