Essential Studio for Blazor Release Notes

Common

Features

  • Syncfusion Blazor components are now compatible with latest .NET 10 preview versions.
  • SpreadSheet component has been added newly in Syncfusion Blazor Library.
  • SpeechToText component has been developed to meet industry standards and are now marked production-ready.
  • The Syncfusion.Blazor.AI package has been added newly in Syncfusion Blazor Library. It provides AI integration capabilities for Blazor Server applications, supporting various AI services including OpenAI, Azure OpenAI, Ollama, and custom AI providers.

Breaking Changes

  • Below TargetFrameWork’s dependent packages version have been upgraded to resolve the vulnerability issues.
    • Target Framework .NET 8.0:
      • Microsoft.AspNetCore.Components.Web upgraded from 8.0.10 to 8.0.15.
    • Target Framework .NET 9.0:
      • Microsoft.AspNetCore.Components.Web upgraded from 9.0.0 to 9.0.4.
      • System.Text.Json upgraded from 9.0.0 to 9.0.4.
    • Microsoft.Extensions.AI.OpenAI upgraded from 9.0.0-preview.9.24525.1 to 9.5.0-preview.1.25265.7.
    • Replaced the deprecated Microsoft.Extensions.AI.Ollama package with OllamaSharp.

Accumulation Chart

Features

  • #I709810 - The border radius feature for accumulation charts can now be added using the BorderRadius property of the AccumulationChartSeries.
    Explore the demo here

  • Added support for displaying a desired label at the center of pie and donut charts in the Accumulation chart using the AccumulationChartCenterLabel. This center label can dynamically change based on the data points when hovering over them, utilizing the HoverTextFormat property.
    Explore the demo here

AI AssistView

Features

  • Now the AI Assistview supports div based text input instead of traditional textarea, offering a more intuitive and flexible user experience for prompt entry.

  • Now we have provided attachment support in the AI AssistView, enabling users to attach files to their prompts for enhanced AI interactions. This functionality is controlled using the Enable property and can be further customized through the AttachmentSettings configuration.

  • Additionally, the following events have newly been added to provide control over the attachments:

    • AttachmentUploadStart: Triggered before the attached file upload begins.

    • AttachmentUploadSuccess: Triggered when the attached file is successfully uploaded.

    • AttachmentUploadFailed: Triggered when the attached file upload fails.

    • AttachmentRemoved: Triggered when an attached file is removed.

Explore the demohere

AutoComplete

Features

To enhance the performance of the AutoComplete component, we have removed the id attributes from the li elements rendered within the popup list. Additionally, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.

Component Scenario Performance Improvement
AutoComplete Initial Rendering 1.2X Faster (Server)
AutoComplete Pop-Up Opening 1.7X Faster (Server)
AutoComplete Filtering 1.1X Faster (WASM)
AutoComplete Two-Way Value Binding 1.3X Faster (Server)
AutoComplete Virtualization 4X Faster (WASM)

Chart

Features

  • Users can now display the total value of each section in stacked column or bar charts using the ChartStackLabelSettings, which makes it easier to read and understand data series.
    Explore the demo here

  • The position of the scrollbar in the chart can now be customized using the Position property in the ChartAxisScrollbarSettings. The vertical scrollbar can be placed on either the left or right, and the horizontal scrollbar can be positioned at the top or bottom of the chart.
    Explore the demo here

  • #F194134 - The position of the zooming toolbar in the chart can be customized using the ChartZoomToolbarPosition property within the ChartZoomSettings. The toolbar can be placed on the left, right, top, or bottom of the chart. Offset positions can also be specified for precise placement.
    Explore the demo here

  • #I640716, #I686321 - Users can now specify column width in exact pixel values for column series types in the Blazor Chart component using the ColumnWidthInPixel property in the ChartSeries.

Chat UI

Features

  • Now the Chat UI supports div based text input instead of traditional textarea, offering a more intuitive and flexible user experience for prompt entry.

  • Now we have provided support for displaying user status icons in the Chat UI, by using the StatusIconCss property, allowing visual representation of user presence.

  • Chat UI now supports the compact mode by using the EnableCompactMode property to align all messages to the left, creating a cleaner layout ideal for group chats and compact displays.

  • Now we have provided support for message options in the Chat UI component, including new properties like IsPinned, RepliedTo, and IsForwarded in the message model to enable pinning, replying, and forwarding functionalities. Which can be further customized using the MessageToolbar & MessageToolbarItem tags, which by default includes actions like Copy, Reply, Pin, and Delete for a richer chat experience.

Explore the demohere

ComboBox

Features

To enhance the performance of the ComboBox component, we have removed the id attributes from the li elements rendered within the popup list. Additionally, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.

Component Scenario Performance Improvement
ComboBox Initial Rendering 1.1X Faster (Server)
ComboBox Pop-Up Opening Significant (WASM)
ComboBox Filtering 16X Faster (Server)
ComboBox Two-Way Value Binding 5X Faster (WASM)
ComboBox Virtualization 4X Faster (WASM)

Bug Fixes

  • #I734149 - Fixed an issue where the focusing items when typing matched words and pressing the tab key in the combo box with filtering enabled.

  • #I726051 - Fixed an issue where values were not being selected when using the Shift+Tab and Tab keys.

Dashboard Layout

Features

  • Removed the obsolete Col property from the Dashboard Layout component. Use Column instead of Col.
  • #FB18538 - Improved the initial rendering performance of the Dashboard Layout component, especially when using multiple panels with nested child components.
  • #FB28809 - Created event enhancement: The Created event is now triggered after all panels have been completely rendered, allowing actions to be performed once the layout is fully initialized.

Data Grid

Bug fixes

Features

  • #I681678 - Provided support for dropping rows anywhere within the DataGrid content area when performing Row Drag And Drop, offering a more flexible and intuitive reordering experience. Explore the demo here

  • #I678945 - Provided support to customize built-in filter editors on a GridColumn using the FilterEditorSettings property in the DataGrid. Explore the demo here

    Code Example:

      <SfGrid DataSource="@GridData" AllowFiltering="true" AllowPaging="true">
          <GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.Menu"></GridFilterSettings>
          <GridPageSettings PageCount="5"></GridPageSettings>
          <GridColumns>
              <GridColumn Field=@nameof(Orders.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120" FilterEditorSettings="OrderIdFilterSettings"></GridColumn>
          </GridColumns>
      </SfGrid>
      @code {
    
          public IFilterSettings OrderIdFilterSettings = new NumericFilterParams
          {
              NumericTextBoxParams = new NumericTextBoxModel<object>
              {
                  ShowClearButton = true,
                  Min = 10000,
              }
          };
      }
    
    
  • #FB17262 - Provided enhanced support for the IgnoreAccent property in GridSearchSettings to enable accent-insensitive searching and filtering when using an IEnumerable data source, allowing users to match records regardless of diacritic marks or special characters in the text. Explore the demo here

    Code Example:

      <SfGrid DataSource="@GridData" Toolbar="@(new List<string>() { "Search" })" AllowPaging="true">
          <GridSearchSettings IgnoreAccent="true"></GridSearchSettings>
      </SfGrid>
    
    
  • I648184 - Enhanced keyboard navigation support for Column Virtualization in the DataGrid.

Breaking changes

  • #I681678 - Added support to drop rows onto the empty area of the DataGrid using the AllowEmptyAreaDrop property. This option is enabled by default and works in both within and outside grid drag-and-drop scenarios.

    Previous:

    Dropping was only allowed when the target element was a row. If the DataGrid had any empty space while rows were present, dropping was not permitted on that empty area.

    Now:

    Rows can be dropped onto the empty area of the target DataGrid, even if the grid contains data rows. To disable this behavior, set the AllowEmptyAreaDrop property in GridRowDropSettings to false.

    Code Example:

      <SfGrid ID="Grid" DataSource="@GridData" AllowRowDragAndDrop="true">
          <GridRowDropSettings TargetID="DestGrid" AllowEmptyAreaDrop="false"></GridRowDropSettings>
      </SfGrid>
    
    

Diagram

Features

Avoid Connector Overlapping support - This AvoidLineOverlapping feature ensures that connectors adjust dynamically to avoid overlapping with neighboring connectors, maintaining a clear and organized diagram. By automatically updating the connector geometry, it eliminates visual clutter and enhances the readability of connection paths, resulting in a more structured and comprehensible diagram. You can check out the documentation link here.

Ports support for connectors (#I410216) - This ConnectorPort feature allows users to define ports (connection points) on connectors. These ports can be used to create precise connections between connectors or shapes.You can check out the documentation link here.

Automatic generation of UML sequence diagrams from model data - A UML sequence diagram visually represents how a set of objects interact in a process over time. With this feature, you can automatically generate these diagrams from model data, streamlining the visualization of interactions between objects in a system. It dynamically creates lifelines, messages, and activation boxes based on the provided data, reducing manual effort and ensuring accuracy. You can check out the documentation link here.

Import and export UML sequence in Mermaid-syntax - Mermaid syntax is a Markdown-inspired text-based language designed to define diagrams through simple, readable commands. This feature allows users to create UML sequence diagrams from Mermaid syntax and export them back, simplifying visualization, sharing, editing, and cross-platform use. Users can also use AI assistants to generate Mermaid syntax for these diagrams and directly import it into the Blazor Diagram component. You can check out the documentation link here.

Performance Improvements - The performance of the Diagram component is now significantly faster when working with nodes containing annotations and connectors. The following updates enhance the initial loading time and optimize various interactions, resulting in a more efficient user experience:

Feature Scenario Server Improvement (%) WASM Improvement (%)
Initial Loading 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 42.1 39.1
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 11.8 56.6
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 24.4 72.2
Resize 100 Nodes, 100 Connectors, 100 Annotations 66.67 33.33
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 48.65 54.55
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 73.33 64
Rotate 100 Nodes, 100 Connectors, 100 Annotations 49.90 50
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 26.09 55.93
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 67.65 53.13
Drag 100 Nodes, 100 Connectors, 100 Annotations 60 52.38
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 66.67 56
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 81.48 64.29
Selection of all elements using keyboard 100 Nodes, 100 Connectors, 100 Annotations 73.08 99.69
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 98.48 99.78
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 99.80 98.37
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 99.63 96.5
Selection of all elements using mouse 100 Nodes, 100 Connectors, 100 Annotations 71.43 70
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 99.49 99.56
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 99.78 98.67
Cut 100 Nodes, 100 Connectors, 100 Annotations 30 70
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 18.18 87.72
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 41.38 42.86
Paste 100 Nodes, 100 Connectors, 100 Annotations 64.29 75.19
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 57.32 87.74
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 70.68 50
Delete 100 Nodes, 100 Connectors, 100 Annotations 68.42 58.33
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 49.04 94.44
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 53.85 75.33
Undo/Redo 100 Nodes, 100 Connectors, 100 Annotations 40 68.60
  1,000 Nodes, 1,000 Connectors, 1,000 Annotations 30.65 46.15
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 61.70 64.67
Symbols loading in Symbol palette 100 nodes 83.33 88.83
  500 nodes 77.78 87.37
  1000 nodes 86.96 86.92
  5000 nodes 85.71 92.16
  10000 nodes 84.24 90.48
Organization chart - Using Collection 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 58.62 11.11
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 42.11 67.89
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 72.82 84.81
Hierarchical - Using Collection 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 53.75 3.63
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 48.15 65.16
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 44.62 87.50
Complex Hierarchical - Using Collection 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 65.54 11.11
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 22.22 50.62
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 62 69.57
Mind map - Using Collection 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 28.39 13.89
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 28.57 40
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 64.71 64.31
Radial tree - Using Collection 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 46.90 16.56
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 26.35 55.60
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 70.59 78.04
Flowchart - Using Collection 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 42.07 8.21
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 18.75 62.31
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 65.05 71.76
Organization chart - Using Data source 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 51.29 12.78
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 40.09 65.45
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 71.82 73.60
Hierarchical - Using Data source 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 45.58 14.30
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 42.66 55.26
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 67.92 69.85
Complex Hierarchical - Using Data source 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 39.93 49.32
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 43.97 47.40
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 33.68 69.63
Mind map - Using Data source 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 8.54 13.48
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 41.67 42.31
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 25.35 60.96
Radial tree - Using Data source 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 45.51 6.10
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 3.8 37.44
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 45.33 55.62
Flowchart - Using Data source 1,000 Nodes, 1,000 Connectors, 1,000 Annotations 30.24 13.49
  5,000 Nodes, 5,000 Connectors, 5,000 Annotations 37.24 44.53
  10,000 Nodes, 10,000 Connectors, 10,000 Annotations 30 57.71

Bug fixes

  • #I728422 - Diagram now supports port-to-port connections for container elements.

Dialog

Bug Fixes

  • #F196892 - Resolved a console error that occurred when the Resize property was enabled in the custom Dialog component.

DocIO

Features

  • #I84570, #I149806, #I73532, #I104716, #I105049, #I109548, #I119864, #I124725, #I130014, #I137039, #I137196, #I323992, F165479, F168737, #I652765, #I658111 - Provided support to create and remove editable ranges in protected DOCX format documents.
  • #I635778, #I214139, #I665210, #I624912, #I583370, #F141869, #FB26929 - Added support to create list number formats including Arabic, Hebrew, Chinese, and Thai in DOCX format documents and preserve them during Word-to-PDF and image conversions.
  • #I376950, #I411898, #I465126, #I679498, #I297755, #I301645, #I307279, #I349118, #I176036, #I184228, #I216695, #I331649, #I680106, #I86205, #I107655, #I182993, #I201718, #I209411, #I225246, #I311779, #I317812, #I345122 - Added support to preserve shape fill formats such as gradients, transparency, and pattern fills during Word-to-PDF and image conversions.
  • #I70284, #I144361, #I160658, #I188244, #I201718, #I202261, #I206374, #I212424, #F137571 - Recolor effects like grayscale, sepia, and color tone adjustments are now preserved during Word-to-PDF and image conversions.
  • #I293751, #I310315, #I337547, #I367467, #I469762, #I496627, #I650620, #F176420 - Drawing canvas and its contents are now preserved when converting Word documents to PDFs and images.
  • Font substitution is now supported inside charts, allowing users to configure fallback fonts when the original fonts are unavailable during Word to PDF and image conversions.
  • Provided fallback font support for Unicode characters in charts to preserve multilingual content during Word-to-PDF and image conversions.
  • Improved preservation of EMF and WMF metafile images as searchable content during Word-to-PDF conversions.

Features

To enhance the performance of the Dropdown List component, we have removed the id attributes from the li elements rendered within the popup list. Additionally, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.

Component Scenario Performance Improvement
Dropdown List Initial Rendering 1.2X Faster (WASM)
Dropdown List Pop-Up Opening Significant (WASM)
Dropdown List Filtering Significant (WASM)
Dropdown List Two-Way Value Binding Significant (WASM)
Dropdown List Virtualization 1.5X Faster (Server)

File Manager

Features

  • Added support for authorization headers in image retrieval: Custom authorization headers can now be set for image requests, allowing secure access to image files. This enhancement helps protect sensitive data during transfers and supports compliance with specific security and data protection standards without requiring complex configurations.

Bug Fixes

  • #I733818 - The crash issue on refresh in a subfolder when using the SharePoint file provider in the Blazor File Manager component has been resolved.
  • #I729587 - Fixed the error popup issue that appeared when renaming a folder via the context menu in the navigation pane of the Blazor File Manager component.
  • #I715002 - Resolved file selection issue when two files have the same name but different unique IDs in the Blazor File Manager component.

Gantt Chart

Bug fix

  • #I733124 - Fixed issue where taskbar duration was not updating correctly during editing in localized time zones.

  • An issue with the Units field in GanttAssignmentFields has been resolved by updating its type to double?. Previously, a double value of 0 was incorrectly interpreted as a resource unit value of 100 in the Gantt chart component. This update ensures that the correct default value is displayed, improving accuracy in resource management. Now, the double? type allows distinction between an unset default value and a specified value of 0.

Feature

  • #FB67303 - Added the GanttDialogClosing event, which triggers when the edit dialog is closed whether by clicking the Cancel button, Close icon, pressing the Escape key, or saving using the Save button or Enter key. This event provides enhanced control over dialog closure behavior in the Gantt Chart.

Breaking changes

  • Removed the ResourceInfo property from the GanttTaskFields class and the GanttResourceFields Razor component, as it was marked deprecated three releases ago.

    <SfGantt>
       <GanttTaskFields  Id="TaskId" Name="TaskName" StartDate="StartDate" EndDate="EndDate" Duration="Duration" Progress="Progress" ParentID="ParentId" Work="Work" ResourceInfo="Resources" TaskType="TaskType">
       </GanttTaskFields>
      <GanttResourceFields Resources="GetResources" Id="ResourceId" ResourceInfoName="ResourceName" Unit="Unit" TResources="ResourceData">
      </GanttResourceFields>
    </SfGantt>
    @code {
      public class ResourceData
      {
          public int ResourceId { get; set; }
          public string ResourceName { get; set; }
          public double Unit { get; set; }
      }
      List<ResourceData> GetResources = new List<ResourceData>()
      {  
          new ResourceData() { ResourceId= 1, ResourceName= "Martin Tamer" ,Unit=70},
          new ResourceData() { ResourceId= 2, ResourceName= "Rose Fuller" },
          new ResourceData() { ResourceId= 3, ResourceName= "Margaret Buchanan" },
          new ResourceData() { ResourceId= 4, ResourceName= "Fuller King" },
          new ResourceData() { ResourceId= 5, ResourceName= "Davolio Fuller" },
          new ResourceData() { ResourceId= 6, ResourceName= "Van Jack" },
          new ResourceData() { ResourceId= 7, ResourceName= "Fuller Buchanan" },
          new ResourceData() { ResourceId= 8, ResourceName= "Jack Davolio" },
          new ResourceData() { ResourceId= 9, ResourceName= "Tamer Vinet" },
          new ResourceData() { ResourceId= 10, ResourceName= "Vinet Fuller" },
          new ResourceData() { ResourceId= 11, ResourceName= "Bergs Anton" },
          new ResourceData() { ResourceId= 12, ResourceName= "Construction Supervisor" }
      };
    }
    <SfGantt>
       <GanttTaskFields  Id="TaskId" Name="TaskName" StartDate="StartDate" EndDate="EndDate" Duration="Duration" Progress="Progress" ParentID="ParentId" Work="Work" TaskType="TaskType">
       </GanttTaskFields>
      <GanttResource DataSource="GetResources" Id="Id" Name="Name" TValue="TaskInfoModel" TResources="ResourceInfoModel"></GanttResource>
      <GanttAssignmentFields DataSource="GetAssignments" PrimaryKey="PrimaryId" TaskID="TaskId" ResourceID="ResourceId" Units="Unit" TValue="TaskInfoModel" TAssignment="AssignmentModel">
      </GanttAssignmentFields>
    </SfGantt>
    @code {
      public class ResourceInfoModel
      {
          public int Id { get; set; }
          public string? Name { get; set; }
      }
      public class AssignmentModel
      {
          public int PrimaryId { get; set; }
          public int TaskId { get; set; }
          public int ResourceId { get; set; }
          public double? Unit { get; set; }
      }
      
      List<ResourceInfoModel> GetResources = new List<ResourceInfoModel>() {
          new ResourceInfoModel() { Id= 1, Name= "Martin Tamer"},
          new ResourceInfoModel() { Id= 2, Name= "Rose Fuller" },
          new ResourceInfoModel() { Id= 3, Name= "Margaret Buchanan" },
          new ResourceInfoModel() { Id= 4, Name= "Fuller King" },
      };
      List<AssignmentModel> GetAssignments = new List<AssignmentModel>()
      {
          new AssignmentModel() { PrimaryId = 1, TaskId = 2, ResourceId = 1, Unit = 70 },
          new AssignmentModel() { PrimaryId = 2, TaskId = 2, ResourceId = 6 },
          new AssignmentModel() { PrimaryId = 3, TaskId = 3, ResourceId = 2 },
          new AssignmentModel() { PrimaryId = 4, TaskId = 3, ResourceId = 3 }
      };
    }

For detailed guidance, refer to the Resource Assignment documentation.

Image Editor

Features

  • Added support to open images with specific width and height using the OpenAsync method. This enhancement introduces optional parameters: width, height, and isAspectRatio, allowing precise control over image dimensions while optionally maintaining the original aspect ratio.

  • Provided Underline and Strikethrough formatting options for text annotations, enhancing the text styling capabilities in the Image Editor.

  • Added support to load BMP (Bitmap) image files via both the file uploader UI and programmatically through the OpenAsync method.

  • Introduced the EnableImageSmoothing property to control the smoothing of high-resolution images. When enabled, the Image Editor applies smoothing during rendering to reduce distortion and jagged edges, particularly in scaled or rotated images

MultiSelect

Features

To enhance the performance of the MultiSelect component, we have optimized the underlying code logic to further improve the initial rendering speed and filtering performance, particularly when handling large datasets. These changes contribute to a more efficient and responsive user experience.

Component Scenario Performance Improvement
MultiSelect Dropdown Initial Rendering 1.3X Faster (Server)
MultiSelect Dropdown Pop-Up Opening Significant (WASM)
MultiSelect Dropdown Filtering Significant (WASM)
MultiSelect Dropdown Two-Way Value Binding Significant (WASM)
MultiSelect Dropdown Virtualization 4X Faster (WASM)

PDF

Features

PDF Viewer

Bug Fixes

  • #I724983 - Resolved an issue where the download failed when multiple form fields were present, and EnableChunkMessages was enabled.
  • #I728696 - Resolved an issue where Ink Annotations were not visible when loading a specific PDF document in the PDF Viewer.
  • #I724366 - Resolved an issue where the Mail to link in the provided PDF document did not open an email window in the Blazor PDF Viewer.
  • #I722319 - Resolved an issue where multiple Stamp Annotations were added upon a single button click in the PDF Viewer.

Features

Pivot Table

Features

  • Support has been added for performing value sorting simultaneously on both the row and column axes, independent of the value axis - This enhancement allows for more flexible and accurate data analysis across dimensions. Explore the demo here.
  • Support has been added for including headers and footers during Excel exporting with the server-side engine in the pivot table - Explore the demo here.
  • Support has been introduced for exporting the pivot table as a native Excel PivotTable, preserving the pivot structure in the exported file. Users can continue interacting with and customizing the pivot data directly within Excel. This functionality can be accessed through the ‘ExportAsPivotAsync’ method.
  • Provided support to save the exported Excel document as a memory stream instead of exporting the Pivot Table as a downloadable file. The resulting memory stream can be further processed and customized by the user before being exported as a document. This feature can be utilized by specifying the ‘asMemoryStream’ parameter as ‘true’ when calling the method ‘ExportAsExcelAsync’.

Breaking Changes

  • The ExportToExcelAsync method parameters for the pivot table export have now been changed -

    Previous

    Parameter Type Description
    excelExportProperties ExcelExportProperties Specifies the export properties for customizing the table, such as custom columns, data source, and theme.
    isMultipleExport Nullable<bool> Specifies whether multiple exports are enabled.
    workbook Workbook An instance of the workbook to export.
    isBlob Nullable<bool> Specifies whether to export as a blob instead of writing to the response.
    isServerExport bool Specifies whether server-side Excel export is enabled.

    Now

    Parameter Type Description
    asMemoryStream bool Specifies whether to save the exported Excel document as memory rather than exporting the Pivot Table as a downloadable file.
    excelExportProperties ExcelExportProperties Specifies the export properties for customizing the table, such as custom columns, data source, and theme.
    isServerExport bool Specifies whether server-side Excel export is enabled.
  • The ExportToCsvAsync method parameters for the pivot table export have now been changed -

    Previous

    Parameter Type Description
    excelExportProperties ExcelExportProperties Specifies the export properties for customizing the table, such as custom columns, data source, and theme.
    isMultipleExport Nullable<bool> Specifies whether multiple exports are enabled.
    workbook Workbook An instance of the workbook to export.
    isBlob Nullable<bool> Specifies whether to export as a blob instead of writing to the response.
    isServerExport bool Specifies whether server-side CSV export is enabled.

    Now

    Parameter Type Description
    asMemoryStream bool Specifies whether to save the exported CSV document as memory rather than exporting the Pivot Table as a downloadable file.
    excelExportProperties ExcelExportProperties Specifies the export properties for customizing the table, such as custom columns, data source, and theme.
    isServerExport bool Specifies whether server-side CSV export is enabled.

Presentation

Features

  • Font substitution is now supported inside charts, allowing users to configure fallback fonts when the original fonts are unavailable during PowerPoint to PDF and image conversions.
  • Provided fallback font support for Unicode characters in charts to preserve multilingual content during PowerPoint-to-PDF and image conversions.
  • Improved preservation of EMF and WMF metafile images as searchable content during PowerPoint-to-PDF conversions.

Ribbon

Features

  • #I736349 - Now we have provided two-way binding support for the Ribbon item Disabled property.

Rich Text Editor

Features

  • Insert Code Block: The Code Block feature allows users to insert formatted code snippets into the Rich Text Editor using a toolbar button or the Ctrl+Shift+B shortcut. A dropdown menu enables language selection for each code block, supporting options like JavaScript, Python, and HTML. This feature is fully customizable via the Languages property an array of objects defining the available programming languages and the DefaultLanguage property, which sets the default language for newly inserted code blocks. Please find the demo here.

  • Insert Horizontal Line - The Horizontal Line toolbar item enables users to insert a horizontal rule (<hr>) element into the Rich Text Editor with a single click on the dedicated toolbar button. This feature renders a divider line that spans the full width of the editor, helping to visually separate content sections and improve readability. To enable this option, add HorizontalLine to the toolbar items configuration. Please find the demo here.

  • Bottom Toolbar - The Bottom Toolbar feature introduces a fixed toolbar at the bottom of the Rich Text Editor, offering quick access to frequently used formatting tools. It enhances usability, especially in constrained layouts or on mobile devices, by providing a compact and accessible interface. The toolbar’s position is configurable via the API using the RichTextEditorToolbarSettings.Position property, which accepts ToolbarPosition.Top or ToolbarPosition.Bottom enums to control the toolbar placement. Please find the demo link here.

  • Popup Toolbar - The Popup toolbar for the toolbar automatically relocates overflowing toolbar items into a popup container when there isn’t enough space to display them, making it especially useful for constrained layouts or smaller screens. This behavior enhances usability while maintaining a clean and responsive editing experience. It can be configured via the API using the RichTextEditorToolbarSettings.Type property, which accepts the ToolbarType.Popup enum value to enable this mode. Please find the demo link here.

  • MaxFileSize - The MaxFileSize Support feature in the Rich Text Editor allows developers to configure a maximum file size limit for uploaded media files, including images, audio, and video, helping to validate uploads and prevent over sized content. This is achieved through the RichTextEditorImageSettings.MaxFileSize property and similar properties for audio and video uploads. By default, the limit is set to 30MB, but it can be customized per media type to suit specific application requirements.

  • Table row and column copy paste - The Table Row or Column Copy, Cut, and Paste Support feature in the Rich Text Editor enhances table functionality by allowing users to efficiently copy, cut, and paste specific rows or columns using standard keyboard shortcuts Ctrl+C, Ctrl+X, Ctrl+V. This streamlines the editing process and enables quick duplication or reorganization of table data without the need for manual re-entry. Please find the demo here.

  • Enhance the quick toolbar - The Enhanced Quick Toolbar offers improved integration with the editor’s workflow by streamlining content creation and ensuring an uninterrupted editing experience. It provides better positioning and responsiveness, allowing users to access contextual tools seamlessly without distracting from the content, thereby enhancing overall usability and productivity. Please find the demo here.

  • Format Painter - The Format Painter feature in the Rich Text Editor introduces a format painter tool that enables users to copy formatting—such as font style, color, and size—from one text selection and apply it to another with a single click, promoting consistent styling and improving productivity. This feature can be configured via the API by adding "FormatPainter" to the ToolbarItems array and using the RichTextEditorFormatPainterSettings component, which includes AllowedFormats (e.g., ["font-family", "color", "font-size"]) and DeniedFormats (e.g., ["background-color"]) properties to precisely control which formatting attributes are copied, ensuring seamless integration with the editor’s workflow. Please find the demo link here.

  • Slash Menu - The SlashMenu Support feature in the Rich Text Editor introduces a slash command menu, triggered by typing /, offering a fast and intuitive way to insert elements such as paragraphs, headings, lists, or media directly within the editor. This feature can be enabled using the RichTextEditorSlashMenuSettings.Enable property, with available commands configured through the RichTextEditorSlashMenuSettings.Items collection, which accepts a list of SlashMenuItemModel items like Paragraph, Heading1, and Heading2. Additionally, the SlashMenuItemSelecting event enables customization of item selection behavior. Please find the demo link here.

  • Show recent color - The Show Recent Color Support feature in the Rich Text Editor enhances the font color and background color pickers by displaying recently used colors, allowing users to quickly access and reuse them for consistent formatting. This improves efficiency and ensures visual uniformity across content. The feature is configurable via the ShowRecentColors property a boolean that defaults to true enabling developers to toggle the recent colors panel in the color pickers to suit application preferences while maintaining an intuitive and streamlined editing experience. Please find the demo here.

  • ClearUndoRedo - The Clear undo redo in the Rich Text Editor, allows users to clear the undo and redo history through a dedicated action. This functionality is accessible via the ClearUndoRedoAsync public method, which can be invoked programmatically to reset the history.

Bug fixes

  • #I733542 - Now, The issue with the ValueChange event not being triggered when applying background color and styles to a table in the Rich Text Editor has been resolved.

Slider

Bug Fixes

  • #I723850 - Fixed an issue where the slider was not functioning correctly when binding custom values.

TextArea

Breaking changes

  • The following property has been deprecated in this release. Where applicable, recommended alternatives have been provided to ensure a smooth and seamless transition.
Class Deprecated Type Recommended Alternative
SfTextArea Disabled Property Enabled - Use this property for enable/disable the component.

Tooltip

Features

  • Enhanced dynamic content support: The Tooltip component now automatically displays tooltip for dynamically created elements by assigning the required CSS selector to the TargetContainer property. By default, this property is null. This enhancement eliminates the need to manually refresh the tooltip when new elements are added to the DOM.

Bug Fixes

  • #I723090 - The issue with the tooltip not closing correctly when passing args.IsInteracted as true has been resolved.

Tree Grid

Features

  • Provided support for virtualization with hierarchical data binding, ensuring smooth rendering and better with deeply nested hierarchical data structures.

  • Optimized the performance of the LoadChildOnDemand feature in the WASM Tree Grid for remote data sources, resulting in significantly reduced times for both initial rendering and hierarchical row expansion.

Performance Benchmark

The performance improvements observed in the WASM environment are summarized below, based on a dataset containing 10,000 rows, 6 columns, and a page size of 30 records

Release version Initial Rendering Expand
Volume 1 ~5116 ms ~794 ms
Volume 2 ~2742 ms ~475 ms
Performance Improvement ~46.41% faster ~40.18% faster

Testing environment: Chrome 120, Windows 11, Intel i7 processor, 16GB RAM

Visual Studio Code Extensions

Features

  • Syncfusion has introduced Controls and Features Selection in the Blazor Template Studio for Visual Studio Code. This enhancement allows users to choose the Syncfusion components they need and customize specific features within each component using an intuitive project wizard. Build high-quality Blazor applications faster and with greater flexibility. Explore this feature to streamline development and tailor your app to your exact needs.

Breaking Changes

  • Syncfusion has added Bootstrap 5.3 theme support to the Blazor Template Studio for Visual Studio Code, allowing users to easily style and customize their applications.

Visual Studio Extensions

Breaking Changes

  • Syncfusion has added Bootstrap 5.3 theme support to the Blazor Template Studio, allowing users to easily style and customize their applications.

XlsIO

Features

  • Auto Fill and Fill Series support is provided to programmatically populate Excel cell ranges based on patterns, sequences, or trends, minimizing manual input.
  • Font substitution is supported to allow configuration of fallback fonts when the original fonts are unavailable during chart-to-image conversion, ensuring visual consistency.
  • Fallback font handling for Unicode text is implemented during chart-to-image conversion, enabling proper rendering when the default fonts lack the necessary glyphs.
  • Preservation of EMF and WMF metafile images as searchable content during Excel to PDF conversion is supported.
  • #I735455 - Cell value is accurately returned by the Range.Value property when the number contains high-precision digits.
  • #I737657 - The IsFiltered property is updated properly when clearing a filter contains equal to operator.
  • #I736030 - Hyperlinks are removed properly when performing clear operations in worksheet range.

Test Results

Component Name Test Cases Passed Failed Remarks
3DChart 197 197 0 All Passed
Accordion 232 232 0 All Passed
AiAssistView 291 291 0 All Passed
Appbar 102 102 0 All Passed
Autocomplete 458 458 0 All Passed
Breadcrumb 137 137 0 All Passed
Bulletchart 237 237 0 All Passed
Button 255 255 0 All Passed
Calendar 146 146 0 All Passed
Card 125 125 0 All Passed
Carousel 174 174 0 All Passed
Charts 3512 3512 0 All Passed
ChatUI 102 102 0 All Passed
Chips 196 196 0 All Passed
CircularGauge 927 927 0 All Passed
ColorPicker 113 113 0 All Passed
ComboBox 510 510 0 All Passed
DashboardLayout 242 242 0 All Passed
DataForm 537 537 0 All Passed
DataGrid 4717 4717 0 All Passed
DatePicker 417 417 0 All Passed
DateRangePicker 252 252 0 All Passed
DateTimePicker 323 323 0 All Passed
Diagram 10093 10093 0 All Passed
Dialog 389 389 0 All Passed
DocumentEditor 3228 3228 0 All Passed
DropdownList 847 847 0 All Passed
Dropdowntree 131 131 0 All Passed
FileManager 3061 3061 0 All Passed
FileUpload 328 328 0 All Passed
FloatingActionButton 128 128 0 All Passed
Gantt 4394 4394 0 All Passed
HeatMap 339 339 0 All Passed
ImageEditor 3561 3561 0 All Passed
InPlaceEditor 763 763 0 All Passed
InputMask 168 168 0 All Passed
LinearGauge 799 799 0 All Passed
ListBox 138 138 0 All Passed
ListView 439 439 0 All Passed
Maps 1578 1578 0 All Passed
Mention 147 147 0 All Passed
Menu 444 444 0 All Passed
Message 242 242 0 All Passed
MultiselectDropdown 366 366 0 All Passed
NumericTextbox 440 440 0 All Passed
PivotTable 1358 1358 0 All Passed
ProgressBar 198 198 0 All Passed
progressbutton 101 101 0 All Passed
QueryBuilder 584 584 0 All Passed
RangeNavigator 196 196 0 All Passed
Ribbon 440 440 0 All Passed
RichTextEditor 1584 1584 0 All Passed
Scheduler 5161 5161 0 All Passed
SfPdfViewer2 11552 11552 0 All Passed
Sidebar 133 133 0 All Passed
Signature 106 106 0 All Passed
Slider 200 200 0 All Passed
SmithChart 212 212 0 All Passed
SparklineChart 228 228 0 All Passed
SpeechToText 112 112 0 All Passed
SpeedDial 278 278 0 All Passed
Splitter 440 440 0 All Passed
Stepper 724 724 0 All Passed
StockChart 211 211 0 All Passed
Tabs 276 276 0 All Passed
TextArea 165 165 0 All Passed
Textbox 155 155 0 All Passed
TimePicker 261 261 0 All Passed
Toast 150 150 0 All Passed
Toolbar 160 160 0 All Passed
Tooltip 475 475 0 All Passed
TreeGrid 3904 3904 0 All Passed
TreeMap 174 174 0 All Passed
TreeView 1565 1565 0 All Passed
DocIO 16250 16250 0 All Passed
Metafilerenderer 1701 1701 0 All Passed
PDF 12431 12431 0 All Passed
Presentation 55865 55865 0 All Passed
XlsIO 17302 17302 0 All Passed