Reporting: introduce report designer, PDF generation, DockLayout, and ContextMenu#6690
Open
stsrki wants to merge 289 commits into
Open
Reporting: introduce report designer, PDF generation, DockLayout, and ContextMenu#6690stsrki wants to merge 289 commits into
stsrki wants to merge 289 commits into
Conversation
# Conflicts: # Demos/Blazorise.Demo.AntDesign/wwwroot/index.html # Demos/Blazorise.Demo.Bootstrap.Server/Pages/_Host.cshtml # Demos/Blazorise.Demo.Bootstrap/wwwroot/index.html # Demos/Blazorise.Demo.Bootstrap5/wwwroot/index.html # Demos/Blazorise.Demo.Bulma/wwwroot/index.html # Demos/Blazorise.Demo.FluentUI2/wwwroot/index.html # Demos/Blazorise.Demo.Material/wwwroot/index.html # Demos/Blazorise.Demo.Tailwind/wwwroot/index.html # Documentation/Blazorise.Docs/Resources/docs-api-index.json
# Conflicts: # Documentation/Blazorise.Docs/Resources/docs-api-index.json # Documentation/Blazorise.Docs/Resources/docs-index.json
# Conflicts: # Demos/Blazorise.Demo.AntDesign/wwwroot/index.html # Demos/Blazorise.Demo.Bootstrap.Server/Pages/_Host.cshtml # Demos/Blazorise.Demo.Bootstrap/wwwroot/index.html # Demos/Blazorise.Demo.Bootstrap5/wwwroot/index.html # Demos/Blazorise.Demo.Bulma/wwwroot/index.html # Demos/Blazorise.Demo.FluentUI2/wwwroot/index.html # Demos/Blazorise.Demo.Material/wwwroot/index.html # Demos/Blazorise.Demo.Tailwind/wwwroot/index.html # Documentation/Blazorise.Docs/App.razor # Documentation/Blazorise.Docs/Resources/docs-index.json # Source/Extensions/Blazorise.Video/wwwroot/video.js
Contributor
# Conflicts: # Documentation/Blazorise.Docs/Resources/docs-api-index.json # Documentation/Blazorise.Docs/Resources/docs-index.json # Source/Blazorise.Bootstrap/wwwroot/blazorise.bootstrap.min.css # Source/Blazorise.Bootstrap5/wwwroot/blazorise.bootstrap5.min.css
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.





Summary
Introduces the new Blazorise Reporting extension together with the supporting PDF, DockLayout, and ContextMenu components. The branch also adds the required core infrastructure, styling, documentation, and demos.
Reporting
Adds a declarative, band-based reporting system with headers, footers, detail and group bands, text, fields, images, lines, rectangles, panels, page breaks, tables, and subreports.
The interactive designer supports toolbox and field drag-and-drop, properties editing, rulers, grid snapping, multi-selection, moving, resizing, alignment, ordering, collision warnings, context menus, keyboard shortcuts, and undo/redo history.
Reports support object,
DataSet,DataTable,CSV, and SQL data sources. Expressions include formulas, functions, aggregates, running totals, formatting, grouping, and special fields.Report definitions and designer state can be serialized, saved, and loaded. The toolbar is command-based and supports custom groups, items, templates, and command visibility. Preview is available as HTML or PDF, with PDF display through
PdfViewer.Rendering was optimized through targeted refreshes, cached pagination, reduced cloning, and simplified data resolution.
DockLayout
Adds a new core docking layout with horizontal and vertical splits, resizable panes, tabbed panes, drag-and-drop docking, compass drop zones, closable panes, pinning, auto-hide rails, and flyout panes.
Layout state can be captured and restored, including pane placement, size, selected tabs, closed panes, and pinned state. Rendering and resize handling were optimized so only affected nodes refresh during interactions.
ContextMenu
Adds a new core context menu with regular items, headers, dividers, groups, submenus, checked items, toggles, and toolbar layouts.
Menus support programmatic visibility, lifecycle events, pointer positioning, scrolling, and nested placement. Outside-click and Escape listeners are registered only while a menu is visible to avoid unnecessary document events and JS interop.
PDF and PdfViewer
Adds the
Blazorise.Pdfextension with declarative Razor components and fluent builders for creating documents, pages, text, images, lines, rectangles, tables, rows, and cells.The built-in renderer supports page sizing, margins, borders, colors, image fitting, Unicode text, custom TrueType fonts, and shared Blazorise
TextAlignmentandVerticalAlignmentenums. Public PDF types were split into matching files and standardized around PdfGenerationOptions and PdfGenerationResult.Reporting uses the PDF generator for preview and download, with generated documents displayed directly through PdfViewer.
Core infrastructure
Adds
BaseStyledComponent, a lightweight base class that provides initialization, disposal, class and style builders, andClassandStyleparameters without the completeBaseComponentutility API.BaseComponentnow builds on this smaller base.Document observation was extended for global pointer interactions, and a new Duplicate icon was added across the supported icon providers. Provider styles were added for Reporting, DockLayout, and ContextMenu.