diff --git a/ej2-vue/Release-notes/32.1.19.md b/ej2-vue/Release-notes/32.1.19.md
new file mode 100644
index 000000000..981277d6e
--- /dev/null
+++ b/ej2-vue/Release-notes/32.1.19.md
@@ -0,0 +1,98 @@
+---
+title: Essential Studio for Vue Release Notes
+description: Learn here about the controls in the Essential Studio for Vue 2025 Volume 4 Main Release - Release Notes
+platform: ej2-vue
+documentation: ug
+---
+
+# Essential Studio for Vue - v32.1.19 Release Notes
+
+{% include release-info.html date="December 16, 2025" version="v32.1.19" passed="68209" failed="0" %}
+
+{% directory path: _includes/release-notes/v32.1.19 %}
+
+{% include {{file.url}} %}
+
+{% enddirectory %}
+
+## Test Results
+
+| Component Name | Test Cases | Passed | Failed | Remarks |
+|---------------|------------|--------|--------|---------|
+| 3D Chart | 232 | 232 | 0 | All Passed |
+| 3D Circular Chart | 374 | 374 | 0 | All Passed |
+| Accordion | 208 | 208 | 0 | All Passed |
+| AI Assist View | 432 | 432 | 0 | All Passed |
+| App Bar | 67 | 67 | 0 | All Passed |
+| AutoComplete | 200 | 200 | 0 | All Passed |
+| Breadcrumb | 160 | 160 | 0 | All Passed |
+| Bullet Chart | 169 | 169 | 0 | All Passed |
+| Button | 145 | 145 | 0 | All Passed |
+| ButtonGroup | 120 | 120 | 0 | All Passed |
+| calendar | 177 | 177 | 0 | All Passed |
+| Carousel | 61 | 61 | 0 | All Passed |
+| Chart | 5025 | 5025 | 0 | All Passed |
+| Chat UI | 500 | 500 | 0 | All Passed |
+| Checkbox | 37 | 37 | 0 | All Passed |
+| CircularGauge | 429 | 429 | 0 | All Passed |
+| ColorPicker | 130 | 130 | 0 | All Passed |
+| Combo Box | 139 | 139 | 0 | All Passed |
+| Common | 906 | 906 | 0 | All Passed |
+| Context Menu | 105 | 105 | 0 | All Passed |
+| Data Grid | 3697 | 3697 | 0 | All Passed |
+| Date Picker | 427 | 427 | 0 | All Passed |
+| Date Range Picker | 515 | 515 | 0 | All Passed |
+| Date Time Picker | 325 | 325 | 0 | All Passed |
+| Diagram | 16255 | 16255 | 0 | All Passed |
+| Dialog | 63 | 63 | 0 | All Passed |
+| DropDown Button | 132 | 132 | 0 | All Passed |
+| Dropdown List | 203 | 203 | 0 | All Passed |
+| Dropdown Tree | 104 | 104 | 0 | All Passed |
+| File Manager | 2188 | 2188 | 0 | All Passed |
+| Floating Action Button | 174 | 174 | 0 | All Passed |
+| Gantt | 4368 | 4368 | 0 | All Passed |
+| HeatMap Chart | 478 | 478 | 0 | All Passed |
+| Image Editor | 1653 | 1653 | 0 | All Passed |
+| In-place Editor | 643 | 643 | 0 | All Passed |
+| Kanban | 268 | 268 | 0 | All Passed |
+| LinearGauge | 426 | 426 | 0 | All Passed |
+| Listbox | 115 | 115 | 0 | All Passed |
+| ListView | 84 | 84 | 0 | All Passed |
+| Maps | 1244 | 1244 | 0 | All Passed |
+| Mention | 45 | 45 | 0 | All Passed |
+| Menu | 187 | 187 | 0 | All Passed |
+| Multicolumn Combo Box | 254 | 254 | 0 | All Passed |
+| Multiselect Dropdown | 442 | 442 | 0 | All Passed |
+| OTP Input | 240 | 240 | 0 | All Passed |
+| Pivot Table | 5348 | 5348 | 0 | All Passed |
+| Progress Bar | 83 | 83 | 0 | All Passed |
+| Progress Button | 132 | 132 | 0 | All Passed |
+| Query Builder | 480 | 480 | 0 | All Passed |
+| RadioButton | 45 | 45 | 0 | All Passed |
+| RangeNavigator | 140 | 140 | 0 | All Passed |
+| Rating | 198 | 198 | 0 | All Passed |
+| Ribbon | 625 | 625 | 0 | All Passed |
+| Rich Text Editor | 5135 | 5135 | 0 | All Passed |
+| schedule | 4645 | 4645 | 0 | All Passed |
+| sidebar | 88 | 88 | 0 | All Passed |
+| Signature | 105 | 105 | 0 | All Passed |
+| Skeleton | 144 | 144 | 0 | All Passed |
+| Slider | 147 | 147 | 0 | All Passed |
+| SmithChart | 49 | 49 | 0 | All Passed |
+| Sparkline | 57 | 57 | 0 | All Passed |
+| Speech To Text | 200 | 200 | 0 | All Passed |
+| Speed Dial | 366 | 366 | 0 | All Passed |
+| Split Button | 144 | 144 | 0 | All Passed |
+| Stepper | 91 | 91 | 0 | All Passed |
+| Stock Chart | 379 | 379 | 0 | All Passed |
+| Tab | 69 | 69 | 0 | All Passed |
+| Text Area | 107 | 107 | 0 | All Passed |
+| TextBox | 58 | 58 | 0 | All Passed |
+| Time Picker | 180 | 180 | 0 | All Passed |
+| Timeline | 213 | 213 | 0 | All Passed |
+| Toast | 139 | 139 | 0 | All Passed |
+| Toolbar | 135 | 135 | 0 | All Passed |
+| ToolTip | 136 | 136 | 0 | All Passed |
+| TreeGrid | 3791 | 3791 | 0 | All Passed |
+| Treemap | 264 | 264 | 0 | All Passed |
+| Treeview | 370 | 370 | 0 | All Passed |
\ No newline at end of file
diff --git a/ej2-vue/ai-assistview/toolbar-items.md b/ej2-vue/ai-assistview/toolbar-items.md
index a1e84c26a..eda26b6ce 100644
--- a/ej2-vue/ai-assistview/toolbar-items.md
+++ b/ej2-vue/ai-assistview/toolbar-items.md
@@ -10,7 +10,62 @@ domainurl: ##DomainURL##
# Toolbar items in Vue AI AssistView component
-You can render the AI AssistView toolbar items by using the `items` property in the [toolbarSettings](../api/ai-assistview#toolbarsettings), [responseToolbarSettings](../api/ai-assistview#responsetoolbarsettings) & [promptToolbarSettings](../api/ai-assistview#prompttoolbarsettings) properties.
+You can render the AI AssistView toolbar items by using the `items` property in the [toolbarSettings](../api/ai-assistview#toolbarsettings), [responseToolbarSettings](../api/ai-assistview#responsetoolbarsettings), [promptToolbarSettings](../api/ai-assistview#prompttoolbarsettings) & [footerToolbarSettings](../api/ai-assistview#footertoolbarsettings) properties.
+
+## Configure footer toolbar
+
+By default, the footer toolbar renders the `send`, if attachment is enabled the `attachment` item will also be rendered which allows users to send the prompt text or attach files as needed.
+
+In the following example, AI AssistView component rendered with footer toolbar items such as `send` and `attachment` icons.
+
+{% tabs %}
+{% highlight ts tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/ai-assistview/file-attachments/enable-attachment/app-composition.vue%}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/ai-assistview/file-attachments/enable-attachment/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/ai-assistview/file-attachments/enable-attachment" %}
+
+### Toolbar positioning
+
+You can use the [toolbarPosition](../api/ai-assistview/footerToolbarSettingsModel#toolbarPosition) property to customize footer toolbar position. It has two modes such as `Inline`, and `Bottom`. By default, the toolbarPosition is `Inline`.
+
+By settings toolbarPosition as `Bottom`, footer items will be rendered at the bottom with a dedicated footer area .
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/ai-assistview/toolbar-items/footer-position/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/ai-assistview/toolbar-items/footer-position/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/ai-assistview/toolbar-items/footer-position" %}
+
+### Adding custom items
+
+You can use the [footerToolbarSettings](../api/ai-assistview#footertoolbarsettings) property to add custom items for the footer toolbar in the AI AssistView. The custom items will be added with the existing built-in items in the footer toolbar.
+
+> To know more about the items, please refer to the [items](#items) section.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/ai-assistview/toolbar-items/footer-settings/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/ai-assistview/toolbar-items/footer-settings/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/ai-assistview/toolbar-items/footer-settings" %}
+
+### Item click
+
+The [itemClick](../api/ai-assistview/footerToolbarSettingsModel#itemclick) event is triggered when the footer toolbar item is clicked.
## Adding header toolbar items
@@ -20,7 +75,7 @@ The AI AssistView toolbar's can be rendered by defining an array of items. Items
#### Adding iconCss
-You can customize the toolbar icons by using the [iconCss](../api/ai-assistview/toolbarItemModel/#cssclass) property.
+You can customize the toolbar icons by using the [iconCss](../api/ai-assistview/toolbarItemModel#cssclass) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -35,7 +90,7 @@ You can customize the toolbar icons by using the [iconCss](../api/ai-assistview/
#### Setting item type
-You can change the toolbar item type by using the [`type`](../api/ai-assistview/toolbarItemModel/#type) property. The `type` supports three types of items such as `Button`, `Separator` and `Input`. By default, the type is `Button`.
+You can change the toolbar item type by using the [`type`](../api/ai-assistview/toolbarItemModel#type) property. The `type` supports three types of items such as `Button`, `Separator` and `Input`. By default, the type is `Button`.
In the following example, toolbar item type is set as `Button`.
@@ -52,7 +107,7 @@ In the following example, toolbar item type is set as `Button`.
#### Setting text
-You can use the [text](../api/ai-assistview/toolbarItemModel/#text) property to set the text for toolbar item.
+You can use the [text](../api/ai-assistview/toolbarItemModel#text) property to set the text for toolbar item.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -67,7 +122,7 @@ You can use the [text](../api/ai-assistview/toolbarItemModel/#text) property to
#### Show or hide toolbar item
-You can use the [visible](../api/ai-assistview/toolbarItemModel/#visible) property to specify whether to show or hide the toolbar item. By default, its value is `true`.
+You can use the [visible](../api/ai-assistview/toolbarItemModel#visible) property to specify whether to show or hide the toolbar item. By default, its value is `true`.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -82,7 +137,7 @@ You can use the [visible](../api/ai-assistview/toolbarItemModel/#visible) proper
#### Setting disabled
-You can use the [disabled](../api/ai-assistview/toolbarItemModel/#disabled) property to disable the toolbar item. By default, its value is `false`.
+You can use the [disabled](../api/ai-assistview/toolbarItemModel#disabled) property to disable the toolbar item. By default, its value is `false`.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -97,7 +152,7 @@ You can use the [disabled](../api/ai-assistview/toolbarItemModel/#disabled) prop
#### Setting tooltip text
-You can use the [tooltip](../api/ai-assistview/toolbarItemModel/#tooltip) property to specify the tooltip text to be displayed on hovering the toolbar item.
+You can use the [tooltip](../api/ai-assistview/toolbarItemModel#tooltip) property to specify the tooltip text to be displayed on hovering the toolbar item.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -112,7 +167,7 @@ You can use the [tooltip](../api/ai-assistview/toolbarItemModel/#tooltip) proper
#### Setting cssClass
-You can use the [cssClass](../api/ai-assistview/toolbarItemModel/#cssclass) property to customize the toolbar item.
+You can use the [cssClass](../api/ai-assistview/toolbarItemModel#cssclass) property to customize the toolbar item.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -127,7 +182,7 @@ You can use the [cssClass](../api/ai-assistview/toolbarItemModel/#cssclass) prop
#### Setting alignment
-You can change the alignment of toolbar item by using the [`align`](../api/ai-assistview/toolbarItemModel/#align) property. It supports three types of alignments such as `Left`, `Center` and `Right`. By default, the value is `Left`.
+You can change the alignment of toolbar item by using the [`align`](../api/ai-assistview/toolbarItemModel#align) property. It supports three types of alignments such as `Left`, `Center` and `Right`. By default, the value is `Left`.
In the following example, toolbar item type is set with `Right`.
@@ -144,7 +199,7 @@ In the following example, toolbar item type is set with `Right`.
#### Enabling tab key navigation in toolbar
-You can use the [`tabIndex`](../api/ai-assistview/toolbarItemModel/#tabindex) property of a Toolbar item to enable tab key navigation for the item. By default, the user can switch between items using the arrow keys, but the `tabIndex` property allows you to switch between items using the `Tab` and `Shift+Tab` keys as well.
+You can use the [`tabIndex`](../api/ai-assistview/toolbarItemModel#tabindex) property of a Toolbar item to enable tab key navigation for the item. By default, the user can switch between items using the arrow keys, but the `tabIndex` property allows you to switch between items using the `Tab` and `Shift+Tab` keys as well.
To use the `tabIndex` property, set it for each Toolbar item which you want to enable tab key navigation. The `tabIndex` property should be set to a positive integer value. A value of `0` or a negative value will disable tab key navigation for the item.
@@ -250,7 +305,7 @@ In this case, the user can switch between the two Toolbar items using the Tab an
#### Setting template
-You can use the [template](../api/ai-assistview/toolbarItemModel/#template) property to add custom toolbar item in the AI AssistView.
+You can use the [template](../api/ai-assistview/toolbarItemModel#template) property to add custom toolbar item in the AI AssistView.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -265,7 +320,7 @@ You can use the [template](../api/ai-assistview/toolbarItemModel/#template) prop
### Item clicked
-The [itemClicked](../api/ai-assistview/toolbarSettings/#itemclicked) event is triggered when the header toolbar item is clicked.
+The [itemClicked](../api/ai-assistview/toolbarSettings#itemclicked) event is triggered when the header toolbar item is clicked.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -299,11 +354,11 @@ In the following example, AI AssistView component rendered with built-in toolbar
#### Setting width
-You can use the [width](../api/ai-assistview/promptToolbarSettingsModel/#width) property to set the width of the prompt toolbar in the AI AssistView.
+You can use the [width](../api/ai-assistview/promptToolbarSettingsModel#width) property to set the width of the prompt toolbar in the AI AssistView.
#### Item clicked
-The [itemClicked](../api/ai-assistview/promptToolbarSettingsModel/#itemclicked) event is triggered when the prompt toolbar item is clicked.
+The [itemClicked](../api/ai-assistview/promptToolbarSettingsModel#itemclicked) event is triggered when the prompt toolbar item is clicked.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -335,11 +390,11 @@ In the following example, AI AssistView renders with built-in toolbar items.
#### Setting width
-You can use the [width](../api/ai-assistview/responseToolbarSettingsModel/#width) property to set the width of the response toolbar in the AI AssistView.
+You can use the [width](../api/ai-assistview/responseToolbarSettingsModel#width) property to set the width of the response toolbar in the AI AssistView.
#### Item clicked
-The [itemClicked](../api/ai-assistview/responseToolbarSettingsModel/#itemclicked) event is triggered when the response toolbar item is clicked.
+The [itemClicked](../api/ai-assistview/responseToolbarSettingsModel#itemclicked) event is triggered when the response toolbar item is clicked.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -360,7 +415,7 @@ You can also add custom toolbar items in the AI AssistView by using the [toolbar
You can use the [promptToolbarSettings](../api/ai-assistview#prompttoolbarsettings) property to add custom items for the prompt toolbar in the AI AssistView.
-> To know more about the items, please refer to the [items](../api/ai-assistview/toolbarItemModel/) section.
+> To know more about the items, please refer to the [items](../api/ai-assistview/toolbarItemModel) section.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -377,7 +432,7 @@ You can use the [promptToolbarSettings](../api/ai-assistview#prompttoolbarsettin
You can use the [responseToolbarSettings](../api/ai-assistview#responsetoolbarsettings) property to add custom response toolbar in the AI AssistView.
-> To know more about the items, please refer to the [items](../api/ai-assistview/toolbarItemModel/) section.
+> To know more about the items, please refer to the [items](../api/ai-assistview/toolbarItemModel) section.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -392,4 +447,4 @@ You can use the [responseToolbarSettings](../api/ai-assistview#responsetoolbarse
#### Item clicked
-The [itemClicked](../api/ai-assistview/toolbarSettings/#itemclicked) event is triggered when the custom toolbar item is clicked.
+The [itemClicked](../api/ai-assistview/toolbarSettings#itemclicked) event is triggered when the custom toolbar item is clicked.
diff --git a/ej2-vue/ai-coding-assistant/prompt-library.md b/ej2-vue/ai-coding-assistant/prompt-library.md
new file mode 100644
index 000000000..76eab1966
--- /dev/null
+++ b/ej2-vue/ai-coding-assistant/prompt-library.md
@@ -0,0 +1,285 @@
+---
+layout: post
+title: Syncfusion AI Coding Assistant Prompt Library | Syncfusion
+description: Explore the AI Coding Assistant Prompt Library to enhance Vue development productivity with code generation, configuration examples, and contextual guidance.
+control: Syncfusion AI Coding Assistant Prompt Library
+platform: ej2-vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Prompt Library - AI Coding Assistant
+
+Speed up your Vue projects using these ready-made prompts for popular Syncfusion components. Each prompt is short, easy to understand, and focused on real tasks—like quick setups, tweaks, and fixes.
+
+## How to Use
+
+Before starting, make sure your MCP Server is set up and running.
+
+* Choose a prompt that fits your need.
+* Copy the full prompt with the #SyncfusionVueAssistant handle.
+* Customize the prompt for your specific use case.
+* Execute via the MCP Server.
+* Always check and test the code before adding it to your project.
+
+## Component-Specific Prompts
+
+### Grid
+
+The Syncfusion Vue Data Grid delivers fast, flexible tables for large datasets with built-in interactivity.
+
+{% promptcards %}
+{% promptcard Paging and Sorting %}
+#SyncfusionVueAssistant How do I enable paging and sorting in the Syncfusion Vue Grid?
+{% endpromptcard %}
+{% promptcard Grouping and Filtering %}
+#SyncfusionVueAssistant Show me an example of grouping and filtering data in the Grid component.
+{% endpromptcard %}
+{% promptcard CRUD Operations %}
+#SyncfusionVueAssistant What’s the code to implement full CRUD operations in Syncfusion Vue Grid?
+{% endpromptcard %}
+{% promptcard Grid Export to PDF and Excel %}
+#SyncfusionVueAssistant How can I add PDF and Excel export options to the Grid toolbar?
+{% endpromptcard %}
+{% promptcard Virtual Scrolling %}
+#SyncfusionVueAssistant How do I configure virtual scrolling for large datasets in the Grid?
+{% endpromptcard %}
+{% promptcard Multicolumn Grid Setup %}
+#SyncfusionVueAssistant Create a multicolumn Grid to display product details with sorting and filtering.
+{% endpromptcard %}
+{% promptcard Chat Integration %}
+#SyncfusionVueAssistant How can I integrate a chat widget inside each row of the Syncfusion Grid?
+{% endpromptcard %}
+{% promptcard Advanced Grid Features %}
+#SyncfusionVueAssistant Show me a Grid with paging, sorting, grouping, filtering, and virtual scrolling
+{% endpromptcard %}
+{% promptcard Troubleshooting Grid Export %}
+#SyncfusionVueAssistant Why isn’t my Grid exporting to PDF and Excel correctly?
+{% endpromptcard %}
+{% promptcard Inline Editing %}
+#SyncfusionVueAssistant How do I enable inline editing for CRUD operations in the Grid?
+{% endpromptcard %}
+{% promptcard Custom Toolbar %}
+#SyncfusionVueAssistant Add custom toolbar buttons for PDF and Excel export in the Grid.
+{% endpromptcard %}
+{% promptcard Dynamic Column Configuration %}
+#SyncfusionVueAssistant How can I dynamically configure multicolumn layout with filtering and sorting?
+{% endpromptcard %}
+{% endpromptcards %}
+
+### Chart
+
+The Syncfusion Vue Chart suite offers versatile visualization tools across various series types for insightful data representation.
+
+{% promptcards %}
+{% promptcard Local and Remote Data %}
+#SyncfusionVueAssistant How do I bind both local and remote data sources to a Syncfusion Chart?
+{% endpromptcard %}
+{% promptcard Range Selection %}
+#SyncfusionVueAssistant Show me how to enable range selection in a Syncfusion Vue Chart.
+{% endpromptcard %}
+{% promptcard Chart Types Overview %}
+#SyncfusionVueAssistant What chart types are available in Syncfusion Vue Chart and how to configure them?
+{% endpromptcard %}
+{% promptcard Markers and Data Labels %}
+#SyncfusionVueAssistant How can I display markers and data labels on a line chart?
+{% endpromptcard %}
+{% promptcard Annotations %}
+#SyncfusionVueAssistant Add custom annotations to highlight specific data points in a chart.
+{% endpromptcard %}
+{% promptcard Chart Export to Image or PDF %}
+#SyncfusionVueAssistant How do I export a Syncfusion Chart to PDF or image format?
+{% endpromptcard %}
+{% promptcard Print Support %}
+#SyncfusionVueAssistant Enable print functionality for a Syncfusion Vue Chart component.
+{% endpromptcard %}
+{% promptcard Dynamic Chart with Remote Data %}
+#SyncfusionVueAssistant Create a chart that updates dynamically with remote API data.
+{% endpromptcard %}
+{% promptcard Multiple Series Types %}
+#SyncfusionVueAssistant How do I combine bar and line chart types in a single Syncfusion Chart?
+{% endpromptcard %}
+{% promptcard Troubleshooting Chart Data Binding %}
+#SyncfusionVueAssistant Why isn’t my remote data showing up in the Syncfusion Chart?
+{% endpromptcard %}
+{% promptcard Interactive Range Selector %}
+#SyncfusionVueAssistant Configure a range selector for zooming and filtering in a time-series chart.
+{% endpromptcard %}
+{% promptcard Custom Markers and Labels %}
+#SyncfusionVueAssistant Show me an example of customizing chart markers and data label styles.
+{% endpromptcard %}
+{% endpromptcards %}
+
+### Schedule
+
+The Syncfusion Vue Schedule component helps manage events, resources, and timelines with powerful views and customization.
+
+{% promptcards %}
+{% promptcard Module Injection %}
+#SyncfusionVueAssistant How do I inject required modules into the Syncfusion Vue Schedule component?
+{% endpromptcard %}
+{% promptcard Remote Data Binding %}
+#SyncfusionVueAssistant Bind the Schedule component to a remote API for dynamic event loading.
+{% endpromptcard %}
+{% promptcard CRUD Actions %}
+#SyncfusionVueAssistant Show me how to implement full CRUD operations in the Schedule component.
+{% endpromptcard %}
+{% promptcard Virtual Scrolling %}
+#SyncfusionVueAssistant Enable virtual scrolling for large event datasets in the Schedule view.
+{% endpromptcard %}
+{% promptcard Timezone Support %}
+#SyncfusionVueAssistant How can I configure timezone support in the Syncfusion Vue Schedule?
+{% endpromptcard %}
+{% promptcard Export Schedule to PDF or Excel %}
+#SyncfusionVueAssistant Add export functionality to download the Schedule view as PDF or Excel.
+{% endpromptcard %}
+{% promptcard Timeline Header Rows %}
+#SyncfusionVueAssistant How do I customize timeline header rows in the Schedule component?
+{% endpromptcard %}
+{% promptcard Multiple Module Injection %}
+#SyncfusionVueAssistant Inject multiple modules like Day, Week, and Timeline views into Schedule.
+{% endpromptcard %}
+{% promptcard Troubleshooting Schedule CRUD %}
+#SyncfusionVueAssistant Why aren’t my CRUD actions working correctly in the Schedule component?
+{% endpromptcard %}
+{% promptcard Local and Remote Data %}
+#SyncfusionVueAssistant Bind both local and remote event data to the Schedule component.
+{% endpromptcard %}
+{% promptcard Export and Timezone %}
+#SyncfusionVueAssistant Configure timezone-aware exporting for the Schedule view.
+{% endpromptcard %}
+{% promptcard Advanced Schedule Setup %}
+#SyncfusionVueAssistant Create a Schedule with module injection, CRUD, virtual scrolling, and exporting.
+{% endpromptcard %}
+{% endpromptcards %}
+
+### Kanban
+
+The Syncfusion Vue Kanban organizes tasks in columns with drag-and-drop, swimlanes, and templating for agile workflows.
+
+{% promptcards %}
+{% promptcard Data Binding %}
+#SyncfusionVueAssistant How do I bind local or remote data to the Syncfusion Vue Kanban board?
+{% endpromptcard %}
+{% promptcard Sorting %}
+#SyncfusionVueAssistant Enable sorting of cards within columns in the Kanban component.
+{% endpromptcard %}
+{% promptcard Swimlane View %}
+#SyncfusionVueAssistant Show me how to group Kanban cards using swimlane headers.
+{% endpromptcard %}
+{% promptcard Kanban Card Editing %}
+#SyncfusionVueAssistant How can I enable inline editing of Kanban cards?
+{% endpromptcard %}
+{% promptcard Virtualization %}
+#SyncfusionVueAssistant Configure virtualization for performance with large Kanban datasets.
+{% endpromptcard %}
+{% promptcard Localization %}
+#SyncfusionVueAssistant How do I localize labels and messages in the Kanban component?
+{% endpromptcard %}
+{% promptcard Drag and Drop %}
+#SyncfusionVueAssistant Enable drag-and-drop functionality for moving cards between columns.
+{% endpromptcard %}
+{% promptcard Sorting and Swimlane %}
+#SyncfusionVueAssistant Create a Kanban board with swimlane grouping and sortable cards.
+{% endpromptcard %}
+{% promptcard Editable Cards and Localization %}
+#SyncfusionVueAssistant Show me how to edit cards and apply localization in Kanban.
+{% endpromptcard %}
+{% promptcard Troubleshooting Kanban Drag and Drop %}
+#SyncfusionVueAssistant Why isn’t drag-and-drop working correctly in my Kanban board?
+{% endpromptcard %}
+{% promptcard Remote Data and Virtualization %}
+#SyncfusionVueAssistant Bind remote data to Kanban and enable virtualization for performance.
+{% endpromptcard %}
+{% promptcard Advanced Kanban Setup %}
+#SyncfusionVueAssistant Create a Kanban board with data binding, swimlane, card editing, and drag-and-drop.
+{% endpromptcard %}
+{% endpromptcards %}
+
+### RichTextEditor
+
+The Syncfusion Vue RichTextEditor offers a modern WYSIWYG editor with extensive formatting, media, and integration features.
+
+{% promptcards %}
+{% promptcard Toolbar Configuration %}
+#SyncfusionVueAssistant How do I customize the toolbar options in the Syncfusion RichTextEditor?
+{% endpromptcard %}
+{% promptcard Link Manipulation %}
+#SyncfusionVueAssistant Show me how to add, edit, and remove hyperlinks in RichTextEditor content.
+{% endpromptcard %}
+{% promptcard Iframe Mode %}
+#SyncfusionVueAssistant How can I render the RichTextEditor inside an iframe for isolated styling?
+{% endpromptcard %}
+{% promptcard Module Injection %}
+#SyncfusionVueAssistant Inject feature modules like toolbar, link, and image into RichTextEditor.
+{% endpromptcard %}
+{% promptcard Undo and Redo %}
+#SyncfusionVueAssistant Enable undo and redo functionality in the RichTextEditor toolbar.
+{% endpromptcard %}
+{% promptcard Forms Integration %}
+#SyncfusionVueAssistant How do I integrate a Vue form and validate input?
+{% endpromptcard %}
+{% promptcard Content Import and Export %}
+#SyncfusionVueAssistant Export RichTextEditor content to HTML or import existing HTML content.
+{% endpromptcard %}
+{% promptcard Advanced Toolbar %}
+#SyncfusionVueAssistant Create a RichTextEditor with toolbar options for formatting, links, and undo/redo.
+{% endpromptcard %}
+{% promptcard Iframe and Forms Support %}
+#SyncfusionVueAssistant Use RichTextEditor in iframe mode and bind it to a form for submission.
+{% endpromptcard %}
+{% promptcard Undo/Redo and Export %}
+#SyncfusionVueAssistant Enable undo/redo and export content to HTML in RichTextEditor.
+{% endpromptcard %}
+{% promptcard Module Injection and Link Editing %}
+#SyncfusionVueAssistant Inject toolbar and link modules to enable rich link editing in the editor.
+{% endpromptcard %}
+{% endpromptcards %}
+
+### Calendar
+
+The Syncfusion Vue Calendar supports flexible date selection, localization, and custom rendering.
+
+{% promptcards %}
+{% promptcard Date Range Selection %}
+#SyncfusionVueAssistant How do I enable date range selection in the Syncfusion Vue Calendar?
+{% endpromptcard %}
+{% promptcard Globalization Support %}
+#SyncfusionVueAssistant Configure the Calendar to support multiple cultures and languages.
+{% endpromptcard %}
+{% promptcard Multi-Date Selection %}
+#SyncfusionVueAssistant Show me how to allow users to select multiple dates in the Calendar.
+{% endpromptcard %}
+{% promptcard Islamic Calendar Support %}
+#SyncfusionVueAssistant How can I switch the Calendar to use the Islamic calendar system?
+{% endpromptcard %}
+{% promptcard Skip Months Feature %}
+#SyncfusionVueAssistant Enable skipping months in the Calendar navigation for faster browsing.
+{% endpromptcard %}
+{% promptcard Calendar Showing Other Month Days %}
+#SyncfusionVueAssistant How do I show days from adjacent months in the current Calendar view?
+{% endpromptcard %}
+{% promptcard Custom Day Cell Format %}
+#SyncfusionVueAssistant Customize the day cell format in the Calendar to show short weekday names.
+{% endpromptcard %}
+{% promptcard Calendar Highlighting Weekends %}
+#SyncfusionVueAssistant Highlight weekends in the Calendar with a different background color.
+{% endpromptcard %}
+{% promptcard Globalization and Islamic Calendar %}
+#SyncfusionVueAssistant Configure the Calendar for Arabic culture using Islamic calendar and localization.
+{% endpromptcard %}
+{% promptcard Multi-Selection and Range %}
+#SyncfusionVueAssistant Enable both multi-date selection and range selection in the Calendar.
+{% endpromptcard %}
+{% promptcard Troubleshooting Calendar Date Range %}
+#SyncfusionVueAssistant Why isn’t my Calendar selecting the correct date range?
+{% endpromptcard %}
+{% promptcard Advanced Calendar Setup %}
+#SyncfusionVueAssistant Create a Calendar with date range, multi-selection, globalization, and weekend highlights.
+{% endpromptcard %}
+{% endpromptcards %}
+
+## See also
+
+* [AI Coding Assistant Overview](https://ej2.syncfusion.com/vue/documentation/ai-coding-assistant/overview)
+* [SyncfusionVueAssistant MCP Server](https://ej2.syncfusion.com/vue/documentation/ai-coding-assistant/mcp-server)
diff --git a/ej2-vue/chart/axis-labels.md b/ej2-vue/chart/axis-labels.md
index bfbee86ef..32a203dd6 100644
--- a/ej2-vue/chart/axis-labels.md
+++ b/ej2-vue/chart/axis-labels.md
@@ -12,7 +12,7 @@ domainurl: ##DomainURL##
## Smart Axis Labels
-When the axis labels overlap with each other, you can use [`labelIntersectAction`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis/#labelintersectaction) property in the axis, to place them smartly.
+When the axis labels overlap with each other, you can use [`labelIntersectAction`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis#labelintersectaction) property in the axis, to place them smartly.
When setting `labelIntersectAction` as `Hide`
@@ -160,7 +160,7 @@ are `Rectangle`, `Brace`, `WithoutBorder`, `WithoutTopBorder`, `WithoutTopandBot
## Edge Label Placement
-Labels with long text at the edges of an axis may appear partially in the chart. To avoid this, use [`edgeLabelPlacement`](https://ej2.syncfusion.com/vue/documentation/api/chart/axisModel/#edgelabelplacement) property in axis, which moves the label inside the chart area for better appearance or hides it. By default, the [`edgeLabelPlacement`](https://ej2.syncfusion.com/vue/documentation/api/chart/axisModel/#edgelabelplacement) property is set to **Shift** to ensure that labels are shifted inside the chart area, avoiding any overlap or coincidence.
+Labels with long text at the edges of an axis may appear partially in the chart. To avoid this, use [`edgeLabelPlacement`](https://ej2.syncfusion.com/vue/documentation/api/chart/axisModel#edgelabelplacement) property in axis, which moves the label inside the chart area for better appearance or hides it. By default, the [`edgeLabelPlacement`](https://ej2.syncfusion.com/vue/documentation/api/chart/axisModel#edgelabelplacement) property is set to **Shift** to ensure that labels are shifted inside the chart area, avoiding any overlap or coincidence.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -175,7 +175,7 @@ Labels with long text at the edges of an axis may appear partially in the chart.
## Labels Customization
-The [`labelStyle`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis/#labelplacement) property of an axis provides options to customize the
+The [`labelStyle`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis#labelplacement) property of an axis provides options to customize the
`color`, `font-family`, `font-size` and `font-weight` of the axis labels.
{% tabs %}
@@ -206,7 +206,7 @@ You can customize the specific text in the axis labels using `axisLabelRender` e
## Trim using maximum label width
-You can trim the label using [`enableTrim`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis/#enabletrim) property and width of the labels can also be customized using [`maximumLabelWidth`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis/#maximumlabelwidth) property in the axis, the value maximum label width is `34` by default.
+You can trim the label using [`enableTrim`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis#enabletrim) property and width of the labels can also be customized using [`maximumLabelWidth`](https://ej2.syncfusion.com/vue/documentation/api/chart/axis#maximumlabelwidth) property in the axis, the value maximum label width is `34` by default.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -232,4 +232,19 @@ Line break feature used to customize the long axis label text into multiple line
{% endhighlight %}
{% endtabs %}
-{% previewsample "page.domainurl/code-snippet/chart/axis/category-cs19" %}
\ No newline at end of file
+{% previewsample "page.domainurl/code-snippet/chart/axis/category-cs19" %}
+
+## Axis label template
+
+The axis label template allows you to customize axis labels by formatting them with HTML content, applying conditional styling, and including dynamic elements such as icons, images or additional data. This customization is enabled by setting the template content in the [labelTemplate](https://ej2.syncfusion.com/vue/documentation/api/chart/axismodel#labelTemplate) property of the `AxisModel`.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/axis/category-cs46/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/axis/category-cs46/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/axis/category-cs46" %}
\ No newline at end of file
diff --git a/ej2-vue/chart/chart-appearance.md b/ej2-vue/chart/chart-appearance.md
index 2fe4c923b..e97f8e7d5 100644
--- a/ej2-vue/chart/chart-appearance.md
+++ b/ej2-vue/chart/chart-appearance.md
@@ -13,7 +13,7 @@ domainurl: ##DomainURL##
## Custom color palette
You can customize the default color of series or points by providing a custom color palette of your choice by
-using the [`palettes`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#palettes) property.
+using the [`palettes`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#palettes) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -32,7 +32,7 @@ The color of individual data point or data points within a range can be customiz
### Point color mapping
-You can bind the color for the points from [`dataSource`](https://ej2.syncfusion.com/vue/documentation/api/chart/series/#datasource) for the series using [`pointColorMapping`](https://ej2.syncfusion.com/vue/documentation/api/chart/series/#pointcolormapping) property.
+You can bind the color for the points from [`dataSource`](https://ej2.syncfusion.com/vue/documentation/api/chart/series#datasource) for the series using [`pointColorMapping`](https://ej2.syncfusion.com/vue/documentation/api/chart/series#pointcolormapping) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -47,7 +47,7 @@ You can bind the color for the points from [`dataSource`](https://ej2.syncfusion
### Range color mapping
-You can differentiate data points based on their y values using [`rangeColorSettings`](https://ej2.syncfusion.com/vue/documentation/api/chart/rangeColorSetting/) in the chart.
+You can differentiate data points based on their y values using [`rangeColorSettings`](https://ej2.syncfusion.com/vue/documentation/api/chart/rangeColorSetting) in the chart.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -63,8 +63,8 @@ You can differentiate data points based on their y values using [`rangeColorSett
## Point level customization
Marker, datalabel and fill color of each data point can be customized with
-[`pointRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iPointRenderEventArgs/) and
-[`textRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iTextRenderEventArgs/) event.
+[`pointRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iPointRenderEventArgs) and
+[`textRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iTextRenderEventArgs) event.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -86,7 +86,7 @@ Marker, datalabel and fill color of each data point can be customized with
**Customize the chart background**
-Using [`background`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#background) and [`border`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#border) properties, you can change the background color and border of the chart.
+Using [`background`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#background) and [`border`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#border) properties, you can change the background color and border of the chart.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -101,7 +101,7 @@ Using [`background`](https://ej2.syncfusion.com/vue/documentation/api/chart/char
**Chart margin**
-You can set margin for chart from its container through [`margin`](https://ej2.syncfusion.com/vue/documentation/api/chart/margin/) property.
+You can set margin for chart from its container through [`margin`](https://ej2.syncfusion.com/vue/documentation/api/chart/margin) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -116,7 +116,7 @@ You can set margin for chart from its container through [`margin`](https://ej2.s
**Chart area customization**
-Using [`background`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartArea/#background) and [`border`](https://ej2.syncfusion.com/vue/documentation/api/chart/#border) properties, you can change the background color and border of the chart area. Width for the chart area can be customized using [`width`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartArea/#width) property.
+Using [`background`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartArea#background) and [`border`](https://ej2.syncfusion.com/vue/documentation/api/chart#border) properties, you can change the background color and border of the chart area. Width for the chart area can be customized using [`width`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartArea#width) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -131,7 +131,7 @@ Using [`background`](https://ej2.syncfusion.com/vue/documentation/api/chart/char
**Chart area margin**
-You can customize the space between the chart area from its chart container through [`margin`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartAreaModel/#margin) property.
+You can customize the space between the chart area from its chart container through [`margin`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartAreaModel#margin) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -146,7 +146,7 @@ You can customize the space between the chart area from its chart container thro
## Animation
-You can customize animation for a particular series using [`animation`](https://ej2.syncfusion.com/vue/documentation/api/chart/animationModel/) property. You can enable or disable animation of the series using `enable` property, `duration` specifies the duration of an animation and `delay` allows us to start the animation at desire time.
+You can customize animation for a particular series using [`animation`](https://ej2.syncfusion.com/vue/documentation/api/chart/animationModel) property. You can enable or disable animation of the series using `enable` property, `duration` specifies the duration of an animation and `delay` allows us to start the animation at desire time.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -172,92 +172,4 @@ Fluid animation used to animate series with updated dataSource continues animati
{% endhighlight %}
{% endtabs %}
-{% previewsample "page.domainurl/code-snippet/chart/series/column-cs11" %}
-
-## Chart title
-
-Chart can be given a title using [`title`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#title) property, to show the information about the data plotted.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs5/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs5/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs5" %}
-
-### Title position
-
-By using the [`position`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings/#position) property in [`titleStyle`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#titlestyle), you can position the [`title`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#title) at left, right, top or bottom of the chart. The title is positioned at the top of the chart, by default.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs8/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs8/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs8" %}
-
-* The custom option helps you to position the title anywhere in the chart using [`x`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings/#x) and [`y`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings/#y) coordinates.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs9/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs9/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs9" %}
-
-### Title alignment
-
-You can align the title to the near, far, or center of the chart using the [`textAlignment`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings/#textalignment) property.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs10/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs10/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs10" %}
-
-## Chart subTitle
-
-Chart can be given a subtitle using [`subTitle`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#subtitle) property, to show the information about the data plotted.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs6/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs6/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs6" %}
-
-### Title wrap
-
-Chart can be given a title using [`title`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#title) property, to show the information about the data plotted.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs7/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/chart-title-cs7/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs7" %}
\ No newline at end of file
+{% previewsample "page.domainurl/code-snippet/chart/series/column-cs11" %}
\ No newline at end of file
diff --git a/ej2-vue/chart/data-labels.md b/ej2-vue/chart/data-labels.md
index 7e47a16b7..85a37bb35 100644
--- a/ej2-vue/chart/data-labels.md
+++ b/ej2-vue/chart/data-labels.md
@@ -10,7 +10,7 @@ domainurl: ##DomainURL##
# Data labels in Vue Chart component
-Data label can be added to a chart series by enabling the [`visible`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings/#visible)
+Data label can be added to a chart series by enabling the [`visible`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings#visible)
option in the dataLabel. By default, the labels will arrange smartly without overlapping.
{% tabs %}
@@ -28,7 +28,7 @@ option in the dataLabel. By default, the labels will arrange smartly without o
## Position
-Using [`position`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings/#position) property, you can place the label either on
+Using [`position`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings#position) property, you can place the label either on
`Top`, `Middle`,`Bottom` or `Outer` (outer is applicable for column and bar type series).
{% tabs %}
@@ -46,7 +46,7 @@ Using [`position`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLa
## Data Label Template
-Label content can be formatted by using the template option. Inside the template, you can add the placeholder text `${point.x}` and `${point.y}` to display corresponding data points x & y value. Using [`template`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings/#template) property, you can set data label template in chart.
+Label content can be formatted by using the template option. Inside the template, you can add the placeholder text `${point.x}` and `${point.y}` to display corresponding data points x & y value. Using [`template`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings#template) property, you can set data label template in chart.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -76,7 +76,7 @@ Text from the data source can be mapped using `name` property.
## Format
-Data label for the chart can be formatted using [`format`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings/#format) property. You can use the global formatting options, such as 'n', 'p', and 'c'.
+Data label for the chart can be formatted using [`format`](https://ej2.syncfusion.com/vue/documentation/api/chart/dataLabelSettings#format) property. You can use the global formatting options, such as 'n', 'p', and 'c'.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -195,7 +195,7 @@ can be customized using `rx` and `ry` properties.
## Customizing Specific Point
-You can also customize the specific marker and label using [`pointRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iPointRenderEventArgs/)and[`textRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iTextRenderEventArgs/) event. `pointRender` event allows you to change the shape, color and border for a point, whereas the `textRender` event allows you to change the text for the point.
+You can also customize the specific marker and label using [`pointRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iPointRenderEventArgs)and[`textRender`](https://ej2.syncfusion.com/vue/documentation/api/chart/iTextRenderEventArgs) event. `pointRender` event allows you to change the shape, color and border for a point, whereas the `textRender` event allows you to change the text for the point.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -221,4 +221,40 @@ You can calculate the percentage value based on the sum for each series using th
{% endhighlight %}
{% endtabs %}
-{% previewsample "page.domainurl/code-snippet/chart/data-marker/datalabel-cs9" %}
\ No newline at end of file
+{% previewsample "page.domainurl/code-snippet/chart/data-marker/datalabel-cs9" %}
+
+## Last value label in Vue Chart component
+
+The `lastValueLabel` in a chart allows you to easily display the value of the last data point in a series. This feature provides an intuitive way to highlight the most recent or last data value in a series on your chart.
+
+### Enable last value label
+
+To show the last value label, make sure the `enable` property inside the `lastValueLabel` settings is set to `true` within the series configuration.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/last-value-label/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/last-value-label/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/last-value-label" %}
+
+> Note: To use the last value label feature, inject `LastValueLabel` module into the `provide`.
+
+### Customization
+
+The appearance of the last value label can be customized using style properties such as `font`, `background`, `border`, `dashArray`, `lineWidth`, `lineColor`, `rx`, and `ry` in the lastValueLabel property of the chart series. These settings allow you to tailor the label’s look to align with your desired visual presentation.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/last-value-label-customization/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/last-value-label-customization/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/last-value-label-customization" %}
\ No newline at end of file
diff --git a/ej2-vue/chart/lastvaluelabel.md b/ej2-vue/chart/lastvaluelabel.md
deleted file mode 100644
index d2c7f92eb..000000000
--- a/ej2-vue/chart/lastvaluelabel.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-layout: post
-title: Last value label in Vue Chart component | Syncfusion
-description: Learn here all about Last value label in Syncfusion Vue Chart component of Syncfusion Essential JS 2 and more.
-control: Last value label
-platform: ej2-vue
-documentation: ug
-domainurl: ##DomainURL##
----
-
-# Last value label in Vue Chart component
-
-The `lastValueLabel` in a chart allows you to easily display the value of the last data point in a series. This feature provides an intuitive way to highlight the most recent or last data value in a series on your chart.
-
-## Enable last value label
-
-To show the last value label, make sure the `enable` property inside the `lastValueLabel` settings is set to `true` within the series configuration.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/last-value-label/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/last-value-label/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/last-value-label" %}
-
-> Note: To use the last value label feature, inject `LastValueLabel` module into the `provide`.
-
-## Customization
-
-The appearance of the last value label can be customized using style properties such as `font`, `background`, `border`, `dashArray`, `lineWidth`, `lineColor`, `rx`, and `ry` in the lastValueLabel property of the chart series. These settings allow you to tailor the label’s look to align with your desired visual presentation.
-
-{% tabs %}
-{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
-{% include code-snippet/chart/last-value-label-customization/app-composition.vue %}
-{% endhighlight %}
-{% highlight html tabtitle="Options API (~/src/App.vue)" %}
-{% include code-snippet/chart/last-value-label-customization/app.vue %}
-{% endhighlight %}
-{% endtabs %}
-
-{% previewsample "page.domainurl/code-snippet/chart/last-value-label-customization" %}
\ No newline at end of file
diff --git a/ej2-vue/chart/selection.md b/ej2-vue/chart/selection.md
index b0c7a7701..2532a129c 100644
--- a/ej2-vue/chart/selection.md
+++ b/ej2-vue/chart/selection.md
@@ -84,7 +84,7 @@ To fetch the collection of data under a particular region, you have to set `sele
* DragX - Allows us to select data with respect to horizontal axis.
* DragY - Allows us to select data with respect to vertical axis.
-The selected data’s are returned as an array collection in the [`dragComplete`](https://ej2.syncfusion.com/vue/documentation/api/chart/iDragCompleteEventArgs/)
+The selected data’s are returned as an array collection in the [`dragComplete`](https://ej2.syncfusion.com/vue/documentation/api/chart/iDragCompleteEventArgs)
event.
{% tabs %}
@@ -130,7 +130,7 @@ To select multiple region on the chart, set the `allowMultiSelection` property t
## Selection type
-You can select multiple points or series, by enabling the [`isMultiSelect`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#ismultiselect) property.
+You can select multiple points or series, by enabling the [`isMultiSelect`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#ismultiselect) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -145,7 +145,7 @@ You can select multiple points or series, by enabling the [`isMultiSelect`](http
## Selection on load
-You can able to select a point or series programmatically on a chart using [`selectedDataIndexes`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel/#selecteddataindexes) property.
+You can able to select a point or series programmatically on a chart using [`selectedDataIndexes`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#selecteddataindexes) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -160,7 +160,9 @@ You can able to select a point or series programmatically on a chart using [`sel
## Selection through on legend
-You can able to select a point or series through on legend using [`toggleVisibility`](https://ej2.syncfusion.com/vue/documentation/api/chart/legendSettingsModel/#toggleVisibility) property. Also, use [`enableHighlight`](https://ej2.syncfusion.com/vue/documentation/api/chart/legendSettings/#enableHighlight) property for highlighting the series through legend.
+You can able to select a point or series through on legend using [`toggleVisibility`](https://ej2.syncfusion.com/vue/documentation/api/chart/legendSettingsModel#toggleVisibility) property. Also, use [`enableHighlight`](https://ej2.syncfusion.com/vue/documentation/api/chart/legendSettings#enableHighlight) property for highlighting the series through legend.
+
+>When [`highlightMode`](https://ej2.syncfusion.com/vue/documentation/api/stock-chart/highlightmode) is set to 'Series', 'Cluster' or 'Point', legend highlighting will still occur even when [`enableHighlight`](https://ej2.syncfusion.com/vue/documentation/api/chart/legendSettings#enableHighlight) is set to false. This is because, the [`highlightMode`](https://ej2.syncfusion.com/vue/documentation/api/stock-chart/highlightmode) takes precedence, so hovering over legend items will trigger highlighting of the corresponding series regardless of the legend’s [`enableHighlight`](https://ej2.syncfusion.com/vue/documentation/api/chart/legendSettings#enableHighlight) setting.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -175,7 +177,7 @@ You can able to select a point or series through on legend using [`toggleVisibil
## Customization for selection
-You can apply custom style to selected points or series with [`selectionStyle`](https://ej2.syncfusion.com/vue/documentation/api/chart/series/#selectionstyle) property.
+You can apply custom style to selected points or series with [`selectionStyle`](https://ej2.syncfusion.com/vue/documentation/api/chart/series#selectionstyle) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
diff --git a/ej2-vue/chart/title-subtitle.md b/ej2-vue/chart/title-subtitle.md
new file mode 100644
index 000000000..16f28a07b
--- /dev/null
+++ b/ej2-vue/chart/title-subtitle.md
@@ -0,0 +1,99 @@
+---
+layout: post
+title: Chart title in Vue Chart component | Syncfusion
+description: Learn here all about Chart title in Syncfusion Vue Chart component of Syncfusion Essential JS 2 and more.
+control: Chart title
+platform: ej2-vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Title and Subtitle in Vue Chart component
+
+## Chart title
+
+Chart can be given a title using [`title`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#title) property, to show the information about the data plotted.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs5/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs5/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs5" %}
+
+### Title position
+
+By using the [`position`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings#position) property in [`titleStyle`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#titlestyle), you can position the [`title`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#title) at left, right, top or bottom of the chart. The title is positioned at the top of the chart, by default.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs8/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs8/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs8" %}
+
+* The custom option helps you to position the title anywhere in the chart using [`x`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings#x) and [`y`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings#y) coordinates.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs9/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs9/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs9" %}
+
+### Title alignment
+
+You can align the title to the near, far, or center of the chart using the [`textAlignment`](https://ej2.syncfusion.com/vue/documentation/api/chart/titleSettings#textalignment) property.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs10/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs10/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs10" %}
+
+## Chart subTitle
+
+Chart can be given a subtitle using [`subTitle`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#subtitle) property, to show the information about the data plotted.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs6/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs6/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs6" %}
+
+### Title wrap
+
+Chart can be given a title using [`title`](https://ej2.syncfusion.com/vue/documentation/api/chart/chartModel#title) property, to show the information about the data plotted.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs7/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/chart/chart-title-cs7/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/chart/chart-title-cs7" %}
\ No newline at end of file
diff --git a/ej2-vue/chart/understanding-chart.md b/ej2-vue/chart/understanding-chart.md
new file mode 100644
index 000000000..20691dc50
--- /dev/null
+++ b/ej2-vue/chart/understanding-chart.md
@@ -0,0 +1,38 @@
+---
+layout: post
+title: Understanding Vue Chart component | Syncfusion
+description: Explore and understand the Syncfusion Vue Chart component in Essential JS 2 and discover its powerful features.
+control: Understanding
+platform: ej2-vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Understanding of Vue Chart
+
+To understand how Syncfusion Vue Chart works, it is important to learn about the various parts of a chart.
+The image below illustrates the main elements of the chart.
+
+
+## Title
+
+The title is the text that explains what the chart represents. It is usually displayed at the top of the chart.
+For more details, see [Title and Subtitle](./title-subtitle.md).
+
+## Series
+
+Each series represents a set of data values plotted on the chart. For more details, see [Series](./chart-types/line.md).
+
+## Tooltip
+
+Tooltips provide quick insights by showing value details when you hover over a data point or series on the chart.
+For more details, see [Tooltip](./tool-tip.md).
+
+## Legend
+
+A legend identifies each data series in the chart and provides options to toggle them on or off.
+For more details, see [Legend](./legend.md).
+
+## Axes
+
+Charts typically rely on axes to organize data. Standard Cartesian charts have two: an x-axis (horizontal) and a y-axis (vertical). Three-dimensional charts add a z-axis for depth, and polar charts feature one axis that wraps around the chart’s perimeter.
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/ai-assistview/toolbar-items/footer-position/app-composition.vue b/ej2-vue/code-snippet/ai-assistview/toolbar-items/footer-position/app-composition.vue
new file mode 100644
index 000000000..f120b2f70
--- /dev/null
+++ b/ej2-vue/code-snippet/ai-assistview/toolbar-items/footer-position/app-composition.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/chart/axis/category-cs46/app.vue b/ej2-vue/code-snippet/chart/axis/category-cs46/app.vue
new file mode 100644
index 000000000..a06fc86f3
--- /dev/null
+++ b/ej2-vue/code-snippet/chart/axis/category-cs46/app.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
Country :
+
${label}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/chart/axis/category-cs46/index.css b/ej2-vue/code-snippet/chart/axis/category-cs46/index.css
new file mode 100644
index 000000000..ad4de8167
--- /dev/null
+++ b/ej2-vue/code-snippet/chart/axis/category-cs46/index.css
@@ -0,0 +1,3 @@
+#container {
+ height: 350px;
+}
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/chart/axis/category-cs46/index.html b/ej2-vue/code-snippet/chart/axis/category-cs46/index.html
new file mode 100644
index 000000000..ec92199d1
--- /dev/null
+++ b/ej2-vue/code-snippet/chart/axis/category-cs46/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+ EJ2 Vue Sample
+
+
+
+
+
+
+
+
+
+
+
+
Loading....
+
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/chart/axis/category-cs46/index.js b/ej2-vue/code-snippet/chart/axis/category-cs46/index.js
new file mode 100644
index 000000000..f709a9d9e
--- /dev/null
+++ b/ej2-vue/code-snippet/chart/axis/category-cs46/index.js
@@ -0,0 +1,59 @@
+import Vue from "vue";
+import { ChartPlugin, ColumnSeries, Category, Legend } from "@syncfusion/ej2-vue-charts";
+
+Vue.use(ChartPlugin);
+
+;
+new Vue({
+ el: '#app',
+ template: `
+
+
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/app.vue b/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/app.vue
new file mode 100644
index 000000000..c300e8525
--- /dev/null
+++ b/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/app.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/datasource.js b/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/datasource.js
new file mode 100644
index 000000000..3e9415f52
--- /dev/null
+++ b/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/datasource.js
@@ -0,0 +1,285 @@
+define(["require", "exports"], function (require, exports) {
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.data = [
+ {
+ OrderID: 10248, CustomerID: 'VINET', EmployeeID: 5, OrderDate: new Date(8364186e5),
+ ShipName: 'Vins et alcools Chevalier', ShipCity: 'Reims', ShipAddress: '59 rue de l Abbaye',
+ ShipRegion: 'CJ', ShipPostalCode: '51100', ShipCountry: 'France', Freight: 32.38, Verified: !0
+ },
+ {
+ OrderID: 10249, CustomerID: 'TOMSP', EmployeeID: 6, OrderDate: new Date(836505e6),
+ ShipName: 'Toms Spezialitäten', ShipCity: 'Münster', ShipAddress: 'Luisenstr. 48',
+ ShipRegion: 'CJ', ShipPostalCode: '44087', ShipCountry: 'Germany', Freight: 11.61, Verified: !1
+ },
+ {
+ OrderID: 10250, CustomerID: 'HANAR', EmployeeID: 4, OrderDate: new Date(8367642e5),
+ ShipName: 'Hanari Carnes', ShipCity: 'Rio de Janeiro', ShipAddress: 'Rua do Paço, 67',
+ ShipRegion: 'RJ', ShipPostalCode: '05454-876', ShipCountry: 'Brazil', Freight: 65.83, Verified: !0
+ },
+ {
+ OrderID: 10251, CustomerID: 'VICTE', EmployeeID: 3, OrderDate: new Date(8367642e5),
+ ShipName: 'Victuailles en stock', ShipCity: 'Lyon', ShipAddress: '2, rue du Commerce',
+ ShipRegion: 'CJ', ShipPostalCode: '69004', ShipCountry: 'France', Freight: 41.34, Verified: !0
+ },
+ {
+ OrderID: 10252, CustomerID: 'SUPRD', EmployeeID: 2, OrderDate: new Date(8368506e5),
+ ShipName: 'Suprêmes délices', ShipCity: 'Charleroi', ShipAddress: 'Boulevard Tirou, 255',
+ ShipRegion: 'CJ', ShipPostalCode: 'B-6000', ShipCountry: 'Belgium', Freight: 51.3, Verified: !0
+ },
+ {
+ OrderID: 10253, CustomerID: 'HANAR', EmployeeID: 3, OrderDate: new Date(836937e6),
+ ShipName: 'Hanari Carnes', ShipCity: 'Rio de Janeiro', ShipAddress: 'Rua do Paço, 67',
+ ShipRegion: 'RJ', ShipPostalCode: '05454-876', ShipCountry: 'Brazil', Freight: 58.17, Verified: !0
+ },
+ {
+ OrderID: 10254, CustomerID: 'CHOPS', EmployeeID: 5, OrderDate: new Date(8370234e5),
+ ShipName: 'Chop-suey Chinese', ShipCity: 'Bern', ShipAddress: 'Hauptstr. 31',
+ ShipRegion: 'CJ', ShipPostalCode: '3012', ShipCountry: 'Switzerland', Freight: 22.98, Verified: !1
+ },
+ {
+ OrderID: 10255, CustomerID: 'RICSU', EmployeeID: 9, OrderDate: new Date(8371098e5),
+ ShipName: 'Richter Supermarkt', ShipCity: 'Genève', ShipAddress: 'Starenweg 5',
+ ShipRegion: 'CJ', ShipPostalCode: '1204', ShipCountry: 'Switzerland', Freight: 148.33, Verified: !0
+ },
+ {
+ OrderID: 10256, CustomerID: 'WELLI', EmployeeID: 3, OrderDate: new Date(837369e6),
+ ShipName: 'Wellington Importadora', ShipCity: 'Resende', ShipAddress: 'Rua do Mercado, 12',
+ ShipRegion: 'SP', ShipPostalCode: '08737-363', ShipCountry: 'Brazil', Freight: 13.97, Verified: !1
+ },
+ {
+ OrderID: 10257, CustomerID: 'HILAA', EmployeeID: 4, OrderDate: new Date(8374554e5),
+ ShipName: 'HILARION-Abastos', ShipCity: 'San Cristóbal', ShipAddress: 'Carrera 22 con Ave. Carlos Soublette #8-35',
+ ShipRegion: 'Táchira', ShipPostalCode: '5022', ShipCountry: 'Venezuela', Freight: 81.91, Verified: !0
+ },
+ {
+ OrderID: 10258, CustomerID: 'ERNSH', EmployeeID: 1, OrderDate: new Date(8375418e5),
+ ShipName: 'Ernst Handel', ShipCity: 'Graz', ShipAddress: 'Kirchgasse 6',
+ ShipRegion: 'CJ', ShipPostalCode: '8010', ShipCountry: 'Austria', Freight: 140.51, Verified: !0
+ },
+ {
+ OrderID: 10259, CustomerID: 'CENTC', EmployeeID: 4, OrderDate: new Date(8376282e5),
+ ShipName: 'Centro comercial Moctezuma', ShipCity: 'México D.F.', ShipAddress: 'Sierras de Granada 9993',
+ ShipRegion: 'CJ', ShipPostalCode: '05022', ShipCountry: 'Mexico', Freight: 3.25, Verified: !1
+ },
+ {
+ OrderID: 10260, CustomerID: 'OTTIK', EmployeeID: 4, OrderDate: new Date(8377146e5),
+ ShipName: 'Ottilies Käseladen', ShipCity: 'Köln', ShipAddress: 'Mehrheimerstr. 369',
+ ShipRegion: 'CJ', ShipPostalCode: '50739', ShipCountry: 'Germany', Freight: 55.09, Verified: !0
+ },
+ {
+ OrderID: 10261, CustomerID: 'QUEDE', EmployeeID: 4, OrderDate: new Date(8377146e5),
+ ShipName: 'Que Delícia', ShipCity: 'Rio de Janeiro', ShipAddress: 'Rua da Panificadora, 12',
+ ShipRegion: 'RJ', ShipPostalCode: '02389-673', ShipCountry: 'Brazil', Freight: 3.05, Verified: !1
+ },
+ {
+ OrderID: 10262, CustomerID: 'RATTC', EmployeeID: 8, OrderDate: new Date(8379738e5),
+ ShipName: 'Rattlesnake Canyon Grocery', ShipCity: 'Albuquerque', ShipAddress: '2817 Milton Dr.',
+ ShipRegion: 'NM', ShipPostalCode: '87110', ShipCountry: 'USA', Freight: 48.29, Verified: !0
+ }];
+ exports.employeeData = [{
+ 'EmployeeID': 1,
+ 'LastName': 'Davolio',
+ 'FirstName': 'Nancy',
+ 'Title': 'Sales Representative',
+ 'TitleOfCourtesy': 'Ms.',
+ 'BirthDate': new Date(-664743600000),
+ 'HireDate': new Date(704692800000),
+ 'Address': '507 - 20th Ave. E.\r\nApt. 2A',
+ 'City': 'Seattle',
+ 'Region': 'WA',
+ 'PostalCode': '98122',
+ 'Country': 'USA',
+ 'HomePhone': '(206) 555-9857',
+ 'Extension': '5467',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Education includes a BA in psychology from Colorado State University in 1970. She also completed\
+ \'The Art of the Cold Call.\' Nancy is a member of Toastmasters International.',
+ 'ReportsTo': 2,
+ 'PhotoPath': 'http://accweb/emmployees/davolio.bmp'
+ },
+ {
+ 'EmployeeID': 2,
+ 'LastName': 'Fuller',
+ 'FirstName': 'Andrew',
+ 'Title': 'Vice President, Sales',
+ 'TitleOfCourtesy': 'Dr.',
+ 'BirthDate': new Date(-563828400000),
+ 'HireDate': new Date(713764800000),
+ 'Address': '908 W. Capital Way',
+ 'City': 'Tacoma',
+ 'Region': 'WA',
+ 'PostalCode': '98401',
+ 'Country': 'USA',
+ 'HomePhone': '(206) 555-9482',
+ 'Extension': '3457',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Andrew received his BTS commercial in 1974 and a Ph.D. in international marketing from the University of \
+ Dallas in 1981. He is fluent in French and Italian and reads German. He joined the company as a sales representative, \
+ was promoted to sales manager in January 1992 and to vice president of sales in March 1993. Andrew is a member of the \
+ Sales Management Roundtable, the Seattle Chamber of Commerce, and the Pacific Rim Importers Association.',
+ 'ReportsTo': 0,
+ 'PhotoPath': 'http://accweb/emmployees/fuller.bmp'
+ },
+ {
+ 'EmployeeID': 3,
+ 'LastName': 'Leverling',
+ 'FirstName': 'Janet',
+ 'Title': 'Sales Representative',
+ 'TitleOfCourtesy': 'Ms.',
+ 'BirthDate': new Date(-200088000000),
+ 'HireDate': new Date(702104400000),
+ 'Address': '722 Moss Bay Blvd.',
+ 'City': 'Kirkland',
+ 'Region': 'WA',
+ 'PostalCode': '98033',
+ 'Country': 'USA',
+ 'HomePhone': '(206) 555-3412',
+ 'Extension': '3355',
+ 'Photo': { 'Length': 21722 },
+
+ 'Notes': 'Janet has a BS degree in chemistry from Boston College (1984). \
+ She has also completed a certificate program in food retailing management.\
+ Janet was hired as a sales associate in 1991 and promoted to sales representative in February 1992.',
+ 'ReportsTo': 2,
+ 'PhotoPath': 'http://accweb/emmployees/leverling.bmp'
+ },
+ {
+ 'EmployeeID': 4,
+ 'LastName': 'Peacock',
+ 'FirstName': 'Margaret',
+ 'Title': 'Sales Representative',
+ 'TitleOfCourtesy': 'Mrs.',
+ 'BirthDate': new Date(-1018814400000),
+ 'HireDate': new Date(736401600000),
+ 'Address': '4110 Old Redmond Rd.',
+ 'City': 'Redmond',
+ 'Region': 'WA',
+ 'PostalCode': '98052',
+ 'Country': 'USA',
+ 'HomePhone': '(206) 555-8122',
+ 'Extension': '5176',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Margaret holds a BA in English literature from Concordia College (1958) and an MA from the American \
+ Institute of Culinary Arts (1966). She was assigned to the London office temporarily from July through November 1992.',
+ 'ReportsTo': 2,
+ 'PhotoPath': 'http://accweb/emmployees/peacock.bmp'
+ },
+ {
+ 'EmployeeID': 5,
+ 'LastName': 'Buchanan',
+ 'FirstName': 'Steven',
+ 'Title': 'Sales Manager',
+ 'TitleOfCourtesy': 'Mr.',
+ 'BirthDate': new Date(-468010800000),
+ 'HireDate': new Date(750830400000),
+ 'Address': '14 Garrett Hill',
+ 'City': 'London',
+ 'Region': null,
+ 'PostalCode':
+ 'SW1 8JR',
+ 'Country': 'UK',
+ 'HomePhone': '(71) 555-4848',
+ 'Extension': '3453',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Steven Buchanan graduated from St. Andrews University, Scotland, with a BSC degree in 1976. Upon joining the company as \
+ a sales representative in 1992, he spent 6 months in an orientation program at the Seattle office and then returned to his permanent \
+ post in London. He was promoted to sales manager in March 1993. Mr. Buchanan has completed the courses \'Successful \
+ Telemarketing\' and \'International Sales Management.\' He is fluent in French.',
+ 'ReportsTo': 2,
+ 'PhotoPath': 'http://accweb/emmployees/buchanan.bmp'
+ },
+ {
+ 'EmployeeID': 6,
+ 'LastName': 'Suyama',
+ 'FirstName': 'Michael',
+ 'Title': 'Sales Representative',
+ 'TitleOfCourtesy': 'Mr.',
+ 'BirthDate': new Date(-205185600000),
+ 'HireDate': new Date(750830400000),
+ 'Address': 'Coventry House\r\nMiner Rd.',
+ 'City': 'London',
+ 'Region': null,
+ 'PostalCode': 'EC2 7JR',
+ 'Country': 'UK',
+ 'HomePhone': '(71) 555-7773',
+ 'Extension': '428',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Michael is a graduate of Sussex University (MA, economics, 1983) and the University of California at Los Angeles \
+ (MBA, marketing, 1986). He has also taken the courses \'Multi-Cultural Selling\' and \'Time Management for the Sales Professional.\' \
+ He is fluent in Japanese and can read and write French, Portuguese, and Spanish.',
+ 'ReportsTo': 5,
+ 'PhotoPath': 'http://accweb/emmployees/davolio.bmp'
+ },
+ {
+ 'EmployeeID': 7,
+ 'LastName': 'King',
+ 'FirstName': 'Robert',
+ 'Title': 'Sales Representative',
+ 'TitleOfCourtesy': 'Mr.',
+ 'BirthDate': new Date(-302731200000),
+ 'HireDate': new Date(757486800000),
+ 'Address': 'Edgeham Hollow\r\nWinchester Way',
+ 'City': 'London',
+ 'Region': null,
+ 'PostalCode': 'RG1 9SP',
+ 'Country': 'UK',
+ 'HomePhone': '(71) 555-5598',
+ 'Extension': '465',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Robert King served in the Peace Corps and traveled extensively before completing his degree in English at the \
+ University of Michigan in 1992, the year he joined the company. After completing a course entitled \'Selling in Europe,\' \
+ he was transferred to the London office in March 1993.',
+ 'ReportsTo': 5,
+ 'PhotoPath': 'http://accweb/emmployees/davolio.bmp'
+ },
+ {
+ 'EmployeeID': 8,
+ 'LastName': 'Callahan',
+ 'FirstName': 'Laura',
+ 'Title': 'Inside Sales Coordinator',
+ 'TitleOfCourtesy': 'Ms.',
+ 'BirthDate': new Date(-377982000000),
+ 'HireDate': new Date(762843600000),
+ 'Address': '4726 - 11th Ave. N.E.',
+ 'City': 'Seattle',
+ 'Region': 'WA',
+ 'PostalCode': '98105',
+ 'Country': 'USA',
+ 'HomePhone': '(206) 555-1189',
+ 'Extension': '2344',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Laura received a BA in psychology from the University of Washington. She has also completed a course in business \
+ French. She reads and writes French.',
+ 'ReportsTo': 2,
+ 'PhotoPath': 'http://accweb/emmployees/davolio.bmp'
+ },
+ {
+ 'EmployeeID': 9,
+ 'LastName': 'Dodsworth',
+ 'FirstName': 'Anne',
+ 'Title': 'Sales Representative',
+ 'TitleOfCourtesy': 'Ms.',
+ 'BirthDate': new Date(-123966000000),
+ 'HireDate': new Date(784875600000),
+ 'Address': '7 Houndstooth Rd.',
+ 'City': 'London',
+ 'Region': null,
+ 'PostalCode': 'WG2 7LT',
+ 'Country': 'UK',
+ 'HomePhone': '(71) 555-4444',
+ 'Extension': '452',
+ 'Photo': { 'Length': 21626 },
+
+ 'Notes': 'Anne has a BA degree in English from St. Lawrence College. She is fluent in French and German.',
+ 'ReportsTo': 5,
+ 'PhotoPath': 'http://accweb/emmployees/davolio.bmp'
+ }];
+});
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/index.html b/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/index.html
new file mode 100644
index 000000000..f27842a53
--- /dev/null
+++ b/ej2-vue/code-snippet/grid/hierarchy-grid/detail-row-events/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ EJ2 Vue Sample
+
+
+
+
+
+
+
+
+
+
+
The Rich Text Editor allows users to apply line-height (line-spacing) to elements like paragraphs, lists, headings, and table cells. You can set line height using a dedicated dropdown in the toolbar, and it is applied as inline style to the selected blocks. This feature makes text easier to read and gives better control over content layout.
Key features:
Provides a Line Height dropdown in the toolbar for easy access.
Supports applying line-height to paragraphs, headings, lists, and table cells.
Applies line-height as inline styles for consistent and precise text rendering.
Ensures consistent appearance across devices and print layouts.
Improves text readability and overall document aesthetics.
The Rich Text Editor allows users to apply line-height (line-spacing) to elements like paragraphs, lists, headings, and table cells. You can set line height using a dedicated dropdown in the toolbar, and it is applied as inline style to the selected blocks. This feature makes text easier to read and gives better control over content layout.
Key features:
Provides a Line Height dropdown in the toolbar for easy access.
Supports applying line-height to paragraphs, headings, lists, and table cells.
Applies line-height as inline styles for consistent and precise text rendering.
Ensures consistent appearance across devices and print layouts.
Improves text readability and overall document aesthetics.
We are thrilled to have you with us! Your unique promotional code for this month is: {{PromoCode}}.
+
Your current subscription plan is: {{SubscriptionPlan}}.
+
Your customer ID is: {{CustomerID}}.
+
Your promotional code expires on: {{ExpirationDate}}.
+
Feel free to browse our latest offerings and updates. If you need any assistance, don't hesitate to contact us at {{SupportEmail}} or call us at {{SupportPhoneNumber}}.
The Markdown Auto-Format feature automatically converts Markdown syntax into clean, semantic HTML within the Rich Text Editor. This capability streamlines content creation by allowing you to write using familiar Markdown patterns while ensuring consistent HTML output.
+
When enabled, the editor supports both inline formatting (such as bold and italic) and block-level elements (such as headings and lists). As you type, Markdown syntax is instantly transformed into its corresponding HTML tags, delivering a smooth and efficient editing experience.
+
It also supports checklists and to-do lists, allowing you to create interactive task lists using simple Markdown syntax.
+
+
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/treegrid/selection/default-cs7/app.vue b/ej2-vue/code-snippet/treegrid/selection/default-cs7/app.vue
new file mode 100644
index 000000000..676d79fc9
--- /dev/null
+++ b/ej2-vue/code-snippet/treegrid/selection/default-cs7/app.vue
@@ -0,0 +1,47 @@
+
+
+`,
+
+ data () {
+ var dataSource = [
+ {
+ nodeId: '01', nodeText: 'Music',
+ htmlAttributes: { class: 'child-node' },
+ nodeChild: [
+ { nodeId: '01-01', nodeText: 'Gouttes.mp3' }
+ ]
+ },
+ {
+ nodeId: '02', nodeText: 'Videos', expanded: true,
+ nodeChild: [
+ { nodeId: '02-01', nodeText: 'Naturals.mp4' },
+ { nodeId: '02-02', nodeText: 'Wild.mpeg' },
+ ]
+ },
+ {
+ nodeId: '03', nodeText: 'Documents',
+ nodeChild: [
+ { nodeId: '03-01', nodeText: 'Environment Pollution.docx' },
+ { nodeId: '03-02', nodeText: 'Global Water, Sanitation, & Hygiene.docx' },
+ { nodeId: '03-03', nodeText: 'Global Warming.ppt' },
+ { nodeId: '03-04', nodeText: 'Social Network.pdf' },
+ { nodeId: '03-05', nodeText: 'Youth Empowerment.pdf' },
+ ]
+ },
+ ];
+ return {
+ fields: { dataSource: dataSource, id: 'nodeId', text: 'nodeText', child: 'nodeChild', htmlAttributes: "htmlAttributes" },
+ }
+ },
+
+});
\ No newline at end of file
diff --git a/ej2-vue/code-snippet/treeview/node-style-cs1/systemjs.config.js b/ej2-vue/code-snippet/treeview/node-style-cs1/systemjs.config.js
new file mode 100644
index 000000000..dc14102c1
--- /dev/null
+++ b/ej2-vue/code-snippet/treeview/node-style-cs1/systemjs.config.js
@@ -0,0 +1,36 @@
+System.config({
+ transpiler: "typescript",
+ typescriptOptions: {
+ compilerOptions: {
+ target: "umd",
+ module: "commonjs",
+ moduleResolution: "node",
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true
+ }
+ },
+ paths: {
+ "syncfusion:": "https://cdn.syncfusion.com/ej2/20.3.56/"
+ },
+ map: {
+ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js",
+vue: "https://unpkg.com/vue@2.6.14/dist/vue.min.js",
+ "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js",
+ "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js",
+ "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js",
+ "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js",
+ "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js",
+ "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js",
+ "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js",
+ "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js",
+ "@syncfusion/ej2-vue-base": "syncfusion:ej2-vue-base/dist/ej2-vue-base.umd.min.js",
+ "@syncfusion/ej2-vue-data": "syncfusion:ej2-vue-data/dist/ej2-vue-data.umd.min.js",
+ "@syncfusion/ej2-vue-lists": "syncfusion:ej2-vue-lists/dist/ej2-vue-lists.umd.min.js",
+ "@syncfusion/ej2-vue-inputs": "syncfusion:ej2-vue-inputs/dist/ej2-vue-inputs.umd.min.js",
+ "@syncfusion/ej2-vue-popups": "syncfusion:ej2-vue-popups/dist/ej2-vue-popups.umd.min.js",
+ "@syncfusion/ej2-vue-buttons": "syncfusion:ej2-vue-buttons/dist/ej2-vue-buttons.umd.min.js",
+ "@syncfusion/ej2-vue-navigations": "syncfusion:ej2-vue-navigations/dist/ej2-vue-navigations.umd.min.js",
+ }
+});
+
+System.import('index.js');
\ No newline at end of file
diff --git a/ej2-vue/grid/aggregates/group-and-caption-aggregate.md b/ej2-vue/grid/aggregates/group-and-caption-aggregate.md
index 6e3598e1c..d1290791d 100644
--- a/ej2-vue/grid/aggregates/group-and-caption-aggregate.md
+++ b/ej2-vue/grid/aggregates/group-and-caption-aggregate.md
@@ -10,10 +10,10 @@ domainurl: ##DomainURL##
# Group and caption aggregate in Vue Grid component
-Group footer and caption aggregates in the Syncfusion® Vue Grid component allow you to calculate aggregate values based on the current group items. These aggregate values can be displayed in the group footer cells and group caption cells, respectively. To achieve this, you can use the [groupFooterTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective/#groupfootertemplate) and [groupCaptionTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective/#groupcaptiontemplate) properties of the [AggregateColumnDirective](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective).
+Group footer and caption aggregates in the Syncfusion® Vue Grid component allow you to calculate aggregate values based on the current group items. These aggregate values can be displayed in the group footer cells and group caption cells, respectively. To achieve this, you can use the [groupFooterTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective#groupfootertemplate) and [groupCaptionTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective#groupcaptiontemplate) properties of the [AggregateColumnDirective](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective).
-> When working with group aggregates in Syncfusion® Grid, it is important to set the property [allowGrouping](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#allowgrouping) of the [column](https://ej2.syncfusion.com/vue/documentation/api/grid/column) to **true**.
-> To maintain grouped columns in the grid after grouping, set [showGroupedColumn](https://ej2.syncfusion.com/vue/documentation/api/grid/groupSettings/#showgroupedcolumn) to **true**.
+> When working with group aggregates in Syncfusion® Grid, it is important to set the property [allowGrouping](https://ej2.syncfusion.com/vue/documentation/api/grid/column#allowgrouping) of the [column](https://ej2.syncfusion.com/vue/documentation/api/grid/column) to **true**.
+> To maintain grouped columns in the grid after grouping, set [showGroupedColumn](https://ej2.syncfusion.com/vue/documentation/api/grid/groupSettings#showgroupedcolumn) to **true**.
## Group footer aggregates
@@ -145,11 +145,11 @@ components: {
{% previewsample "page.domainurl/code-snippet/grid/aggregates/default-cs5" %}
-> * The aggregate values must be accessed inside the template using their corresponding [type](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective/#type) name.
+> * The aggregate values must be accessed inside the template using their corresponding [type](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective#type) name.
## Group caption aggregates
-Group caption aggregates are displayed in the caption cells of each group. These cells appear at the top of each group and provide a summary of the grouped data. To display group caption aggregates, you can use the [groupCaptionTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective/#groupcaptiontemplate) property. This property allows you to define a template that will be used to display the aggregate values in the group caption cells.
+Group caption aggregates are displayed in the caption cells of each group. These cells appear at the top of each group and provide a summary of the grouped data. To display group caption aggregates, you can use the [groupCaptionTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/aggregateColumnDirective#groupcaptiontemplate) property. This property allows you to define a template that will be used to display the aggregate values in the group caption cells.
Here's an example that demonstrates how to use group and caption aggregates in the Syncfusion® Vue Grid component:
@@ -278,11 +278,11 @@ components: {
{% previewsample "page.domainurl/code-snippet/grid/aggregates/default-cs12" %}
> The group total summary in Syncfusion® Grid is calculated based on the current page records for each group by default.
-> If you require aggregates for all the data in the grid, you can enable the [disablePageWiseAggregates](https://ej2.syncfusion.com/vue/documentation/api/grid/groupSettings/#disablepagewiseaggregates) property.
+> If you require aggregates for all the data in the grid, you can enable the [disablePageWiseAggregates](https://ej2.syncfusion.com/vue/documentation/api/grid/groupSettings#disablepagewiseaggregates) property.
## Disable page wise aggregates for grouping
-In some cases, you may want to disable the page-wise aggregates for grouping in the Syncfusion® Vue Grid component. By default, when grouping is enabled with paging, the grid calculates the aggregates for each page separately. However, you can choose to disable this behavior and calculate aggregates for the entire grouped data instead. This can be achieved by setting the [disablePageWiseAggregates](https://ej2.syncfusion.com/vue/documentation/api/grid/groupSettings/#disablepagewiseaggregates) property to **true**.
+In some cases, you may want to disable the page-wise aggregates for grouping in the Syncfusion® Vue Grid component. By default, when grouping is enabled with paging, the grid calculates the aggregates for each page separately. However, you can choose to disable this behavior and calculate aggregates for the entire grouped data instead. This can be achieved by setting the [disablePageWiseAggregates](https://ej2.syncfusion.com/vue/documentation/api/grid/groupSettings#disablepagewiseaggregates) property to **true**.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -431,4 +431,4 @@ components: {
## See also
-* [How to format aggregate value in Vue grid](footer-aggregate.md#format-the-aggregate-value)
\ No newline at end of file
+* [How to format aggregate value in Vue grid](footer-aggregate#format-the-aggregate-value)
\ No newline at end of file
diff --git a/ej2-vue/grid/connecting-to-adaptors/url-adaptor.md b/ej2-vue/grid/connecting-to-adaptors/url-adaptor.md
index e44f2a40d..23aa4a539 100644
--- a/ej2-vue/grid/connecting-to-adaptors/url-adaptor.md
+++ b/ej2-vue/grid/connecting-to-adaptors/url-adaptor.md
@@ -9,7 +9,7 @@ documentation: ug
domainurl: ##DomainURL##
---
-# UrlAdaptor in Syncfusion® Vue Grid Component
+# UrlAdaptor in Syncfusion Vue Grid Component
The UrlAdaptor serves as the base adaptor for facilitating communication between remote data services and an UI component. It enables seamless data binding and interaction with custom API services or any remote service through URLs. The UrlAdaptor is particularly useful for the scenarios where a custom API service with unique logic for handling data and CRUD operations is in place. This approach allows for custom handling of data and CRUD operations, and the resultant data returned in the `result` and `count` format for display in the Syncfusion® Vue Grid component.
@@ -789,7 +789,7 @@ public object Post([FromBody] DataManagerRequest DataManagerRequest)
The Syncfusion® Vue Grid Component seamlessly integrates CRUD (Create, Read, Update, Delete) operations with server-side controller actions through specific properties: [insertUrl](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DataManager.html#Syncfusion_EJ2_DataManager_InsertUrl), [removeUrl](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DataManager.html#Syncfusion_EJ2_DataManager_RemoveUrl), [updateUrl](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DataManager.html#Syncfusion_EJ2_DataManager_UpdateUrl), [crudUrl](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DataManager.html#Syncfusion_EJ2_DataManager_CrudUrl), and [batchUrl](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DataManager.html#Syncfusion_EJ2_DataManager_BatchUrl). These properties enable the grid to communicate with the data service for every grid action, facilitating server-side operations.
-**CRUD Operations Mapping**
+**CRUD Operations Mapping:**
CRUD operations within the grid can be mapped to server-side controller actions using specific properties:
@@ -799,7 +799,7 @@ CRUD operations within the grid can be mapped to server-side controller actions
4. **crudUrl**: Specifies a single URL for all CRUD operations.
5. **batchUrl**: Specifies the URL for batch editing.
-To enable editing in Vue Grid component, refer to the editing [documentation](https://ej2.syncfusion.com/vue/documentation/grid/editing/edit). In the below example, the inline edit [mode](https://ej2.syncfusion.com/vue/documentation/api/grid/editSettings/#mode) is enabled and [toolbar](https://helpej2.syncfusion.com/vue/documentation/api/grid/#toolbar) property is configured to display toolbar items for editing purposes.
+To enable editing in Vue Grid component, refer to the editing [documentation](https://ej2.syncfusion.com/vue/documentation/grid/editing/edit). In the below example, the inline edit [mode](https://ej2.syncfusion.com/vue/documentation/api/grid/editSettings#mode) is enabled and [toolbar](https://helpej2.syncfusion.com/vue/documentation/api/grid#toolbar) property is configured to display toolbar items for editing purposes.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -901,7 +901,7 @@ To enable editing in Vue Grid component, refer to the editing [documentation](ht
{% endtabs %}
-> Normal/Inline editing is the default edit [mode](https://ej2.syncfusion.com/vue/documentation/api/grid/editSettings/#mode) for the Grid component. To enable CRUD operations, ensure that the [isPrimaryKey](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#isprimarykey) property is set to **true** for a specific Grid column, ensuring that its value is unique.
+> Normal/Inline editing is the default edit [mode](https://ej2.syncfusion.com/vue/documentation/api/grid/editSettings#mode) for the Grid component. To enable CRUD operations, ensure that the [isPrimaryKey](https://ej2.syncfusion.com/vue/documentation/api/grid/column#isprimarykey) property is set to **true** for a specific Grid column, ensuring that its value is unique.
The below class is used to structure data sent during CRUD operations.
@@ -977,7 +977,7 @@ public void Update([FromBody] CRUDModel updatedRecord)
}
```
-**Delete operation**
+**Delete operation:**
To delete existing records, use the [removeUrl](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.DataManager.html#Syncfusion_EJ2_DataManager_RemoveUrl) property to specify the controller action mapping URL for the delete operation. The primary key value of the deleted record is bound to the **deletedRecord** parameter.
@@ -1007,7 +1007,7 @@ public void Remove([FromBody] CRUDModel deletedRecord)
> You can find the complete sample for the UrlAdaptor in [GitHub](https://github.com/SyncfusionExamples/Binding-data-from-remote-service-to-vue-data-grid) link.
-**Single method for performing all CRUD operations**
+**Single method for performing all CRUD operations:**
Using the `crudUrl` property, the controller action mapping URL can be specified to perform all the CRUD operation at server-side using a single method instead of specifying separate controller action method for CRUD (insert, update and delete) operations.
@@ -1137,9 +1137,9 @@ public void CrudUpdate([FromBody] CRUDModel request)
}
```
-**Batch operation**
+**Batch operation:**
-To perform batch operation, define the edit [mode](https://ej2.syncfusion.com/vue/documentation/api/grid/editSettings/#mode) as **Batch** and specify the `batchUrl` property in the DataManager. Use the **Add** toolbar button to insert new row in batch editing mode. To edit a cell, double-click the desired cell and update the value as required. To delete a record, simply select the record and press the **Delete** toolbar button. Now, all CRUD operations will be executed in single request. Clicking the **Update** toolbar button will update the newly added, edited, or deleted records from the OrdersDetails table using a single API POST request.
+To perform batch operation, define the edit [mode](https://ej2.syncfusion.com/vue/documentation/api/grid/editSettings#mode) as **Batch** and specify the `batchUrl` property in the DataManager. Use the **Add** toolbar button to insert new row in batch editing mode. To edit a cell, double-click the desired cell and update the value as required. To delete a record, simply select the record and press the **Delete** toolbar button. Now, all CRUD operations will be executed in single request. Clicking the **Update** toolbar button will update the newly added, edited, or deleted records from the OrdersDetails table using a single API POST request.
{% tabs%}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -1273,4 +1273,253 @@ if (batchOperation.deleted != null)
return Json(batchOperation);
}
```
-
\ No newline at end of file
+
+
+## Foreign key column with UrlAdaptor
+
+Configuration of foreign key column with remote data using `UrlAdaptor` requires assigning the DataManager instance with the endpoint URL to the particular column dataSource along with foreign key field and foreign key value properties. When both grid and foreign key column uses a `UrlAdaptor`, the grid data and the foreign key data are fetched separately from their respective remote endpoints. During operations such as filtering or sorting, the grid sends requests to the server based on the foreign key field and its corresponding value.
+
+### Handling Filter operation on foreign key column
+
+Filter operation on a foreign key column ensures that the displayed value ("CustomerName") is automatically mapped to the underlying foreign key field ("CustomerID"). This ensures the filter request sent to the server uses the value from the foreign key field ("CustomerID"), applying the filter correctly to the main dataset.
+
+
+
+```csharp
+[HttpPost]
+public object Post([FromBody] DataManagerRequest DataManagerRequest)
+{
+ // Retrieve data from the data source.
+ IQueryable DataSource = GetOrderData().AsQueryable();
+
+ QueryableOperation queryableOperation = new QueryableOperation(); // Initialize QueryableOperation instance.
+
+ // Handling filtering operation
+ if (DataManagerRequest.Where != null && DataManagerRequest.Where.Count > 0)
+ {
+ DataSource = operation.PerformFiltering(DataSource, DataManagerRequest.Where, DataManagerRequest.Where[0].Operator);
+ }
+
+ // Get the total count of records.
+ int totalRecordsCount = DataSource.Count();
+
+ // Return data based on the request.
+ return new { result = DataSource, count = totalRecordsCount };
+```
+### Handling Sort operation on foreign key column
+
+Sort operation on a foreign key column orders records based on the underlying field ("CustomerID"). The sorting query sent to the server includes the corresponding foreign key value. To sort by the foreign key value, supply the foreign key's data source to the sorted query within the performSorting method.
+
+
+
+```csharp
+[HttpPost]
+public object Post([FromBody] DataManagerRequest DataManagerRequest)
+{
+ // Retrieve data from the data source (e.g., database).
+ IQueryable DataSource = GetOrderData().AsQueryable();
+
+ QueryableOperation queryableOperation = new QueryableOperation(); // Initialize QueryableOperation instance.
+
+ if (DataManagerRequest.Sorted != null && DataManagerRequest.Sorted.Count > 0) //Sorting
+ {
+ for (int i = 0; i < DataManagerRequest.Sorted.Count; i++)
+ {
+ if (DataManagerRequest.Sorted[i].ForeignKeyValue == "CustomerName")
+ {
+ DataManagerRequest.Sorted[i].ForeignKeyDataSource = GetCustomerData().AsQueryable();
+ }
+ }
+ DataSource = operation.PerformSorting(DataSource, DataManagerRequest.Sorted);
+ }
+ // Get the total count of records.
+ int totalRecordsCount = DataSource.Count();
+
+ // Return data based on the request.
+ return new { result = DataSource, count = totalRecordsCount };
+}
+```
+> Sort operation for a foreign key column based on its foreign key value mandates including the foreign key DataSource in the sorted query of the DataManager request on the server. If the foreign key DataSource is not passed, the sorting operation will be performed based on the column field.
+
+### Handling search operation on foreign key column
+
+Search process in a grid with foreign key columns produces a filter query for each column using the provided search term. For foreign key columns specifically, the grid first queries the associated foreign key data source to retrieve the underlying field value that matches the search term. It then constructs a filter query using that value and the column's field, applying it to the main dataset.
+
+### Client side configuration for a foreign key column with UrlAdaptor
+
+The following example demonstrates how to configure a foreign key column using the `UrlAdaptor`.
+
+
+{% tabs%}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+
+
+
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
\ No newline at end of file
diff --git a/ej2-vue/grid/hierarchy-grid.md b/ej2-vue/grid/hierarchy-grid.md
index d2cca2c13..213924a2c 100644
--- a/ej2-vue/grid/hierarchy-grid.md
+++ b/ej2-vue/grid/hierarchy-grid.md
@@ -12,7 +12,7 @@ domainurl: ##DomainURL##
The Hierarchy Grid in an Vue Grid component is typically used when you need to display hierarchical data in a tabular format with expandable and collapsible rows. It allows you to represent parent and child relationships within the grid, making it easier for you to navigate and understand the data.
-This feature can be enabled by utilizing the [childGrid](https://ej2.syncfusion.com/vue/documentation/api/grid/#childgrid) and [childGrid.queryString](https://ej2.syncfusion.com/vue/documentation/api/grid/#querystring) properties of the grid component.
+This feature can be enabled by utilizing the [childGrid](https://ej2.syncfusion.com/vue/documentation/api/grid#childgrid) and [childGrid.queryString](https://ej2.syncfusion.com/vue/documentation/api/grid#querystring) properties of the grid component.
To enable the Hierarchy Grid feature:
@@ -36,13 +36,13 @@ The following example demonstrates how to enable the hierarchy feature in the gr
{% previewsample "page.domainurl/code-snippet/grid/hierarchy-grid/default-cs2" %}
> * Grid supports n level of child grids.
-> * Hierarchical binding is not supported when [DetailTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/#detailtemplate) is enabled.
+> * Hierarchical binding is not supported when [DetailTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid#detailtemplate) is enabled.
## Bind hierarchy grid with different field
By default, the parent and child grids have the same field name to map and render a hierarchical grid. However, the component supports establishing a parent-child relationship between grids with different field names. This feature is beneficial when you want to create a parent-child relationship between grids but need to use distinct field names for mapping the data. As a result, you can easily establish the desired relationship between the parent and child grids, even with different field names for data mapping.
-By default, the parent and child grid relation is maintained using the [queryString](https://ej2.syncfusion.com/vue/documentation/api/grid/#querystring) property, which requires the same field name for both grids. However, to achieve the parent and child relation with different fields, you need to modify the mapping value in the [load](https://ej2.syncfusion.com/vue/documentation/api/grid/#load) event of child grid.
+By default, the parent and child grid relation is maintained using the [queryString](https://ej2.syncfusion.com/vue/documentation/api/grid#querystring) property, which requires the same field name for both grids. However, to achieve the parent and child relation with different fields, you need to modify the mapping value in the [load](https://ej2.syncfusion.com/vue/documentation/api/grid#load) event of child grid.
In the following example, the `load` event is utilized to customize the mapping value for the child grid. By accessing the `parentDetails` property and its **parentKeyFieldValue**, you can set the desired mapping value. The `parentRowData` property contains the data of the parent row, and by using the **EmployeeID** field name, you can extract the corresponding value from the parent row data.
@@ -63,7 +63,7 @@ In the following example, the `load` event is utilized to customize the mapping
Expanding the child grid initially in the Syncfusion® Vue Grid component is helpful when you want to display the child rows of the hierarchical grid expanded by default upon grid load. This can be beneficial in scenarios where you want to provide immediate visibility into the hierarchical data without requiring you to manually expand each child row.
-To achieve this, you can use the [expand](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow/#expand) method with the desired target index (number) in the [dataBound](https://ej2.syncfusion.com/vue/documentation/api/grid/#databound) event of the grid.
+To achieve this, you can use the [expand](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow#expand) method with the desired target index (number) in the [dataBound](https://ej2.syncfusion.com/vue/documentation/api/grid#databound) event of the grid.
In the provided example, expand the third record of the grid by utilizing the `expand` method within the `dataBound` event.
@@ -84,7 +84,7 @@ In the provided example, expand the third record of the grid by utilizing the `e
Dynamically load child grid data in Syncfusion® Vue Grid helps improve performance, optimize data transmission, and enhance the your experience by providing on-demand access to relevant information. Additionally, it offers flexibility in data presentation, which helps improve the overall efficiency of your application.
-To dynamically load the `dataSource` of a child grid in the Grid, you can utilize the [load](https://ej2.syncfusion.com/vue/documentation/api/grid/#load) event of parent grid. This event allows you to customize the loading behavior of the child grid based on the data of parent grid.
+To dynamically load the `dataSource` of a child grid in the Grid, you can utilize the [load](https://ej2.syncfusion.com/vue/documentation/api/grid#load) event of parent grid. This event allows you to customize the loading behavior of the child grid based on the data of parent grid.
The following example demonstrates how to dynamically load child grid data using the `load` event.
@@ -103,7 +103,7 @@ The following example demonstrates how to dynamically load child grid data using
Dynamically binding data to a child grid based on the parent row data in the Syncfusion® Vue Grid component is useful when you want to display child grid data that is specific to each parent row. This feature allows for a dynamic and contextual representation of data within the child grid.
-To dynamically bind data to the child grid based on the parent row data instead of using the [queryString](https://ej2.syncfusion.com/vue/documentation/api/grid/#querystring) property, you can utilize the [detailDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid/#detaildatabound) event of the grid. This event is triggered when expanding the child grid.
+To dynamically bind data to the child grid based on the parent row data instead of using the [queryString](https://ej2.syncfusion.com/vue/documentation/api/grid#querystring) property, you can utilize the [detailDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid#detaildatabound) event of the grid. This event is triggered when expanding the child grid.
In the `detailDataBound` event handler, you can filter the child grid's dataSource based on the **EmployeeID** column value of the parent row data. This can be achieved by using the `DataManager` plugin and applying a filter to the child grid's dataSource. The filtered data can be assigned as the new dataSource for the child grid. This can be demonstrated by the following sample.
@@ -122,7 +122,7 @@ In the `detailDataBound` event handler, you can filter the child grid's dataSour
Adding a record in a child grid within the Syncfusion® Vue Grid component is useful when you want to provide the ability to add new records to the child grid. This feature allows you to input and save additional data specific to each parent row.
-To maintain the parent-child relationship in the Grid when adding a record to the child grid, you need to set the value for the `queryString` in the added data. This can be done using the [actionBegin](https://ej2.syncfusion.com/vue/documentation/api/grid/#actionbegin) event.
+To maintain the parent-child relationship in the Grid when adding a record to the child grid, you need to set the value for the `queryString` in the added data. This can be done using the [actionBegin](https://ej2.syncfusion.com/vue/documentation/api/grid#actionbegin) event.
In the following example, the parent and child grids are related by the **EmployeeID** field. To add a new record in the child grid, the **EmployeeID** field needs to be set with the value of the parent record's `queryString` in the `actionBegin` event.
@@ -141,7 +141,7 @@ In the following example, the parent and child grids are related by the **Employ
A template column in a child grid within the Syncfusion® Vue Grid component is valuable when you want to customize the appearance and functionality of specific columns in the child grid. It is useful for incorporating interactive elements, custom formatting, or complex data representation within specific columns of the child grid.
-To achieve this, you can utilize the [template](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#template) property of a column to display a custom element instead of a field value in the Grid.
+To achieve this, you can utilize the [template](https://ej2.syncfusion.com/vue/documentation/api/grid/column#template) property of a column to display a custom element instead of a field value in the Grid.
The following example demonstrates, how to show a custom image in the **Employee Image** column of the child grid by utilizing the `template` property of the column.
@@ -160,7 +160,7 @@ The following example demonstrates, how to show a custom image in the **Employee
Getting parent details in a child grid in an Vue Grid component is useful when you want to display and utilize information from the parent row within the child grid. This can be beneficial in scenarios where you need to provide additional context or perform calculations based on the parent row's data
-To achieve this, you can utilize the [created](https://ej2.syncfusion.com/vue/documentation/api/grid/#created) event. This event is triggered when the child grid is created and can be used to handle the child grid.
+To achieve this, you can utilize the [created](https://ej2.syncfusion.com/vue/documentation/api/grid#created) event. This event is triggered when the child grid is created and can be used to handle the child grid.
The following example demonstrates how to obtain parent details in a child grid using the `created` event. Within the `created` event, you can access the parent row data using `this.parentDetails.parentRowData` and display the desired details in the message.
@@ -198,7 +198,7 @@ The following example demonstrates how to render aggregates in a child grid to d
The Hierarchy Grid in the Syncfusion® Vue Grid component allows you to expand all child grid rows using an external button. This feature provides you with a convenient overview of all the hierarchical data within the grid, eliminating the need to manually expand each row individually.
-By default, Grid renders all child grid rows in collapsed state. To expand all child grid rows in the Grid using an external button, you can utilize the [expandAll](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow/#expandall) method provided by the DetailRow module. Similarly, to collapse all grid rows, you can use the [collapseAll](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow/#collapseall) method.
+By default, Grid renders all child grid rows in collapsed state. To expand all child grid rows in the Grid using an external button, you can utilize the [expandAll](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow#expandall) method provided by the DetailRow module. Similarly, to collapse all grid rows, you can use the [collapseAll](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow#collapseall) method.
The following example demonstrates how to expand and collapse the hierarchy grid using an external button click function.
@@ -219,7 +219,7 @@ The following example demonstrates how to expand and collapse the hierarchy grid
The Syncfusion® Vue Grid allows you to hide the expand/collapse icon in the parent row when there are no records in the child grid. However, in certain scenarios, you may want to hide the expand/collapse icon for parent rows that do not have any child records, providing a cleaner and more intuitive interface by eliminating unnecessary icons in empty parent rows.
-To achieve this, you can utilize the [rowDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid/#rowdatabound) event to hide the icon when there are no records in the child grid.
+To achieve this, you can utilize the [rowDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid#rowdatabound) event to hide the icon when there are no records in the child grid.
To hide the expand/collapse icon in parent row when no records in child grid, follow the given steps:
@@ -293,6 +293,29 @@ In the demo below, the expand/collapse icons have been changed to arrow-down and
{% previewsample "page.domainurl/code-snippet/grid/hierarchy-grid/default-icon" %}
+## Detail row events
+
+The Grid component provides the `detailExpand` and `detailCollapse` events, which are triggered when a detail row is about to expand or collapse. These events fire before the detail row actually expands or collapses, allowing you to control whether the action should proceed.
+
+`detailExpand` – This event is triggered before a detail row begins to expand. You can access the expansion details through the event arguments and optionally prevent the expansion by setting:
+`args.cancel = true`;
+
+`detailCollapse` – This event is triggered before a detail row begins to collapse. You can access the collapse details through the event arguments and optionally prevent the collapse by setting:
+`args.cancel = true`;
+
+In the example below, expansion is prevented for the **Nancy** row, and collapse is prevented for the **Andrew** row.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/grid/hierarchy-grid/detail-row-events/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/grid/hierarchy-grid/detail-row-events/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/grid/hierarchy-grid/ddetail-row-events" %}
+
## Customize the child grid
The Syncfusion® Vue Grid component offers various ways to customize the child grid appearance using both default CSS and custom themes. To access the child grid elements, you can use the **.e-detailcell** class selector, which targets the child grid.
@@ -303,7 +326,7 @@ You can customize the appearance of the header elements in the child grid using
**Customizing the child grid header**
-To customize the appearance of the chid grid header root element, you can use the following CSS code:
+To customize the appearance of the child grid header root element, you can use the following CSS code:
```css
.e-detailcell .e-grid .e-headercontent{
diff --git a/ej2-vue/grid/images/foreign-key-filter.png b/ej2-vue/grid/images/foreign-key-filter.png
new file mode 100644
index 000000000..e5ba33cf7
Binary files /dev/null and b/ej2-vue/grid/images/foreign-key-filter.png differ
diff --git a/ej2-vue/grid/images/foreign-key-sorting.png b/ej2-vue/grid/images/foreign-key-sorting.png
new file mode 100644
index 000000000..1484a71ed
Binary files /dev/null and b/ej2-vue/grid/images/foreign-key-sorting.png differ
diff --git a/ej2-vue/grid/row/detail-template.md b/ej2-vue/grid/row/detail-template.md
index b5ff56e1a..315869932 100644
--- a/ej2-vue/grid/row/detail-template.md
+++ b/ej2-vue/grid/row/detail-template.md
@@ -10,7 +10,7 @@ domainurl: ##DomainURL##
# Detail template in Vue Grid component
-The detail template in the Grid component allows you to display additional information about a specific row in the grid by expanding or collapsing detail content. This feature is useful when you need to show additional data or custom content that is specific to each row in the grid. You can use the [detailTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/#detailtemplate) property to define an HTML template for the detail row. This template can include any HTML element or Vue component that you want to display as detail content.
+The detail template in the Grid component allows you to display additional information about a specific row in the grid by expanding or collapsing detail content. This feature is useful when you need to show additional data or custom content that is specific to each row in the grid. You can use the [detailTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid#detailtemplate) property to define an HTML template for the detail row. This template can include any HTML element or Vue component that you want to display as detail content.
Here's an example of using the `detailTemplate` property in the grid component:
@@ -319,9 +319,9 @@ td {
The Grid component provides a powerful feature that allows you to render custom components inside the detail row. This feature is helpful when you need to add additional information or functionality for a specific row in the grid.
-To render a custom component inside the detail row, you need to define a template using the [detailTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/#detailtemplate) property and handle the [detailDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid/#detaildatabound) event.This template can include any HTML element or Vue component that you want to display as the detail content.
+To render a custom component inside the detail row, you need to define a template using the [detailTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid#detailtemplate) property and handle the [detailDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid#detaildatabound) event.This template can include any HTML element or Vue component that you want to display as the detail content.
-The `detailDataBound` event is an event that is triggered after a detail row is bound to data. This event provides an object of type [DetailDataBoundEventArgs](https://ej2.syncfusion.com/vue/documentation/api/grid/detaildataboundeventargs/) as a parameter.
+The `detailDataBound` event is an event that is triggered after a detail row is bound to data. This event provides an object of type [DetailDataBoundEventArgs](https://ej2.syncfusion.com/vue/documentation/api/grid/detaildataboundeventargs) as a parameter.
For example, to render grid inside the detail row, place an HTML div element as the `detailTemplate` and render the DIV element as grid component in the `detailDataBound` event.
@@ -340,7 +340,7 @@ For example, to render grid inside the detail row, place an HTML div element as
The Grid provides a feature that allows you to expand the detail row of a grid using an external button. By default, detail rows render in a collapsed state, but this feature enables users to view additional details associated with a particular row.
-To achieve expanding the detail row of a grid using an external button, you need to invoke the [expand](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow/#expand) method provided by the **detailRowModule** object of the Syncfusion® Grid library. This method will expand the detail row of a specific grid row.
+To achieve expanding the detail row of a grid using an external button, you need to invoke the [expand](https://ej2.syncfusion.com/vue/documentation/api/grid/detailRow#expand) method provided by the **detailRowModule** object of the Syncfusion® Grid library. This method will expand the detail row of a specific grid row.
Here is an example of how to use the `expand` method to expand a detail row:
@@ -989,4 +989,8 @@ Detail template is not supported with the following features:
* Row spanning
* Column spanning
* Lazy load grouping
-* State persistence
\ No newline at end of file
+* State persistence
+
+## See also
+
+* [Detail row events](../hierarchy-grid#detail-row-events)
\ No newline at end of file
diff --git a/ej2-vue/grid/selection/check-box-selection.md b/ej2-vue/grid/selection/check-box-selection.md
index 040695c81..24a78caa0 100644
--- a/ej2-vue/grid/selection/check-box-selection.md
+++ b/ej2-vue/grid/selection/check-box-selection.md
@@ -12,7 +12,7 @@ domainurl: ##DomainURL##
Checkbox selection in the Grid component allows you to provide an option to select multiple records by using a checkbox in each row. This feature is particularly useful when you need to perform bulk actions or operations on selected records within the Grid.
-To render checkbox in each grid row, you need to use checkbox column with type as **checkbox** using column [type](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#type) property.
+To render checkbox in each grid row, you need to use checkbox column with type as **checkbox** using column [type](https://ej2.syncfusion.com/vue/documentation/api/grid/column#type) property.
Here's an example of how to enable check box selection using `type` property in the Grid component:
@@ -27,12 +27,12 @@ Here's an example of how to enable check box selection using `type` property in
{% previewsample "page.domainurl/code-snippet/grid/select/selection-checkbox" %}
->* By default selection is allowed by clicking a grid row or checkbox in that row. To allow selection only through checkbox, you can set [selectionSettings.checkboxOnly](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings/#checkboxonly) property to **true**.
-> * Selection can be persisted on all the operations using [selectionSettings.persistSelection](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings/#persistselection) property. For persisting selection on the Grid, any one of the column should be defined as a primary key using [columns.isPrimaryKey](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#isprimarykey) property.
+>* By default selection is allowed by clicking a grid row or checkbox in that row. To allow selection only through checkbox, you can set [selectionSettings.checkboxOnly](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings#checkboxonly) property to **true**.
+> * Selection can be persisted on all the operations using [selectionSettings.persistSelection](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings#persistselection) property. For persisting selection on the Grid, any one of the column should be defined as a primary key using [columns.isPrimaryKey](https://ej2.syncfusion.com/vue/documentation/api/grid/column#isprimarykey) property.
## Checkbox selection mode
-The checkbox selection mode in the Grid allows you to select rows either by clicking on checkboxes or by clicking on the rows themselves. This feature provides two types of checkbox selection modes that can be set using the [selectionSettings.checkboxMode](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings/#checkboxmode) property. The available modes are:
+The checkbox selection mode in the Grid allows you to select rows either by clicking on checkboxes or by clicking on the rows themselves. This feature provides two types of checkbox selection modes that can be set using the [selectionSettings.checkboxMode](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings#checkboxmode) property. The available modes are:
* **Default**: This is the default value of the `checkboxMode`. In this mode, you can select multiple rows by clicking rows one by one. When you click on a row, the checkbox associated with that row also switches to the **checked** state.
* **ResetOnRowClick**: In `ResetOnRowClick` mode, when clicking on row it will reset previously selected row. Also you can perform multiple-selection in this mode by press and hold CTRL key and click the desired rows. To select range of rows, press and hold the SHIFT key and click the rows.
@@ -54,7 +54,7 @@ In the following example, it demonstrates how to dynamically enable and change t
You can hide the select all checkbox in the column header of the Syncfusion® Grid. This is a useful feature in various scenarios where you want to customize the appearance and behavior of the checkboxes within the grid.
-By default, when you set the column type as [checkbox](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#type), it renders a column with checkboxes for selection purposes. However, if you want to hide the header checkbox, you can achieve this by defining an empty [headerTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/column/#headertemplate) in the grid Column.
+By default, when you set the column type as [checkbox](https://ej2.syncfusion.com/vue/documentation/api/grid/column#type), it renders a column with checkboxes for selection purposes. However, if you want to hide the header checkbox, you can achieve this by defining an empty [headerTemplate](https://ej2.syncfusion.com/vue/documentation/api/grid/column#headertemplate) in the grid Column.
Here's an example of how to hide selectall checkbox in column header using empty `headerTemplate` in the Grid component:
@@ -73,7 +73,7 @@ Here's an example of how to hide selectall checkbox in column header using empty
The checkbox selection mode allows you to select rows either by clicking on checkboxes or by clicking on the rows themselves. However, there might be scenarios where you want to prevent specific rows from being selected based on certain conditions or business requirements.
-To achieve this, you can use the [rowDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid/#rowdatabound) event of the Grid. The `rowDataBound` event is triggered for each row after it is bound to the data source. In this event, you can check the row data and determine whether the row should be selectable or not. If you want to prevent the row from being selected, you can set the [isSelectable](https://ej2.syncfusion.com/vue/documentation/api/grid/rowDataBoundEventArgs/#isselectable) argument of the event to **false**.
+To achieve this, you can use the [rowDataBound](https://ej2.syncfusion.com/vue/documentation/api/grid#rowdatabound) event of the Grid. The `rowDataBound` event is triggered for each row after it is bound to the data source. In this event, you can check the row data and determine whether the row should be selectable or not. If you want to prevent the row from being selected, you can set the [isSelectable](https://ej2.syncfusion.com/vue/documentation/api/grid/rowDataBoundEventArgs#isselectable) argument of the event to **false**.
In the following sample, the selection of specific rows has been prevented based on the `isSelectable` argument in the `rowDataBound` event.
@@ -88,13 +88,32 @@ In the following sample, the selection of specific rows has been prevented based
{% previewsample "page.domainurl/code-snippet/grid/select/selection-checkbox-prevent" %}
+## Partial selection using isRowSelectable
+
+The `isRowSelectable` callback in Syncfusion's EJ2 Grid allows control over which rows users can select. It uses a simple callback that runs before the grid loads the data. This callback checks each row data and returns **true** if the row can be selected, or **false** for non-selectable rows.
+
+For local data, the callback checks all items just once when the grid first loads. For remote data, it only checks the rows shown on the current page when the grid first appears. It re-checks them every time an action occurs, such as changing pages, filtering, or sorting.
+
+In the example below, it prevents selection of rows with canceled orders.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/grid/select/prevent-checkbox-selection/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/grid/select/prevent-checkbox-selection/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/grid/select/prevent-checkbox-selection" %}
+
## How to select single row in checkbox selection mode
The Vue Grid allows you to select only one row at a time within the Grid. This feature is particularly useful when you want to ensure that only a single row is selected, and any previous selections are cleared when a new row is selected.
-To achieve single-row selection in checkbox selection mode within the Grid, you can handle the [rowSelecting](https://ej2.syncfusion.com/vue/documentation/api/grid/#rowselecting) event and use the [clearSelection](https://ej2.syncfusion.com/vue/documentation/api/grid/#clearselection) method to clear any previous selections before selecting a new row. This ensures that only one row is selected at a time, and any prior selections are deselected when a new row is chosen.
+To achieve single-row selection in checkbox selection mode within the Grid, you can handle the [rowSelecting](https://ej2.syncfusion.com/vue/documentation/api/grid#rowselecting) event and use the [clearSelection](https://ej2.syncfusion.com/vue/documentation/api/grid#clearselection) method to clear any previous selections before selecting a new row. This ensures that only one row is selected at a time, and any prior selections are deselected when a new row is chosen.
->* When you set the [checkboxMode](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings/#checkboxmode) property to **ResetOnRowClick**, it will reset the previously selected row when you click on a new row. Please note that this behavior applies to rows and not checkboxes, and it is the default behavior of the grid.
+>* When you set the [checkboxMode](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings#checkboxmode) property to **ResetOnRowClick**, it will reset the previously selected row when you click on a new row. Please note that this behavior applies to rows and not checkboxes, and it is the default behavior of the grid.
Here's an example of how to select a single row in checkbox selection mode using the `clearSelection` method along with the `rowSelecting` event:
@@ -111,7 +130,7 @@ Here's an example of how to select a single row in checkbox selection mode using
## Allow selection only through checkbox click
-By default, the Grid component allows selection by clicking either a grid row or the checkbox within that row. If you want to restrict selection so that it can only be done by clicking the checkboxes, you can set the [selectionSettings.checkboxOnly](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings/#checkboxonly) property to **true**.
+By default, the Grid component allows selection by clicking either a grid row or the checkbox within that row. If you want to restrict selection so that it can only be done by clicking the checkboxes, you can set the [selectionSettings.checkboxOnly](https://ej2.syncfusion.com/vue/documentation/api/grid/selectionSettings#checkboxonly) property to **true**.
Here's an example of how to enable selection only through checkbox click using `checkboxOnly` property:
diff --git a/ej2-vue/image-editor/how-to/clear-image.md b/ej2-vue/image-editor/how-to/clear-image.md
index 9c41d02f5..234f51111 100644
--- a/ej2-vue/image-editor/how-to/clear-image.md
+++ b/ej2-vue/image-editor/how-to/clear-image.md
@@ -2,7 +2,7 @@
layout: post
title: Clear an Image in ##Platform_Name## Image editor control | Syncfusion
description: Learn here all about Clear an Image in Syncfusion ##Platform_Name## Image editor control of Syncfusion Essential JS 2 and more.
-platform: ej2-javascript
+platform: ej2-vue
control: Clear an Image
publishingplatform: ##Platform_Name##
documentation: ug
@@ -11,7 +11,7 @@ domainurl: ##DomainURL##
# Clear an Image in the Vue Image Editor component
-The [`clearImage`](https://ej2.syncfusion.com/vue/documentation/api/image-editor/#clearimage) method in the image editor control is indeed useful for scenarios where you need to ensure that the image editor is emptied before reopening it, especially if the editor is used within a dialog. By using `clearImage` before closing the dialog, you can ensure that the editor does not retain the previously loaded image when the dialog is reopened. This allows users to start fresh with a new image selection.
+The [`clearImage`](https://ej2.syncfusion.com/vue/documentation/api/image-editor/index-default#clearimage) method in the image editor control is indeed useful for scenarios where you need to ensure that the image editor is emptied before reopening it, especially if the editor is used within a dialog. By using `clearImage` before closing the dialog, you can ensure that the editor does not retain the previously loaded image when the dialog is reopened. This allows users to start fresh with a new image selection.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
diff --git a/ej2-vue/image-editor/how-to/fit-to-width-and-height.md b/ej2-vue/image-editor/how-to/fit-to-width-and-height.md
new file mode 100644
index 000000000..b10497d81
--- /dev/null
+++ b/ej2-vue/image-editor/how-to/fit-to-width-and-height.md
@@ -0,0 +1,27 @@
+---
+layout: post
+title: Fit to Width and Height in ##Platform_Name## Image Editor | Syncfusion
+description: Learn here all about Fit to Width and Height in Syncfusion Vue Image editor component of Syncfusion Essential JS 2 and more.
+platform: ej2-vue
+control: Fit to Width and Height
+publishingplatform: ##Platform_Name##
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Fit Image to Editor Width and Height
+
+The Image Editor's [`zoom`](https://ej2.syncfusion.com/vue/documentation/api/image-editor/index-default#zoom) method to fit an image to the editor by width or height. Programmatically increase the zoom level until the image dimension matches the editor container's width or height.
+
+This example demonstrates scenarios that include buttons for fitting the image to its width (Fit Width) or height (Fit Height).
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/image-editor/getting-started-cs37/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/image-editor/getting-started-cs37/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/image-editor/getting-started-cs37" %}
diff --git a/ej2-vue/image-editor/how-to/render-dialog.md b/ej2-vue/image-editor/how-to/render-dialog.md
index 05ef5735c..429e54ab5 100644
--- a/ej2-vue/image-editor/how-to/render-dialog.md
+++ b/ej2-vue/image-editor/how-to/render-dialog.md
@@ -1,15 +1,15 @@
---
layout: post
-title: Render Image Editor in Dialog in ##Platform_Name## Image editor control | Syncfusion
+title: Render Editor in Dialog in ##Platform_Name## Image editor | Syncfusion
description: Learn here all about Render Image Editor in Dialog in Syncfusion ##Platform_Name## Image editor control of Syncfusion Essential JS 2 and more.
-platform: ej2-javascript
+platform: ej2-vue
control: Render Image Editor in Dialog
publishingplatform: ##Platform_Name##
documentation: ug
domainurl: ##DomainURL##
---
-### Render Image Editor in Dialog
+# Render Image Editor in Dialog
Rendering the Image Editor in a dialog involves displaying the image editor component within a modal dialog window, allowing users to edit images in a pop-up interface. This can be useful for maintaining a clean layout and providing a focused editing experience without navigating away from the current page.
diff --git a/ej2-vue/image-editor/how-to/reset-image.md b/ej2-vue/image-editor/how-to/reset-image.md
index 32a736294..bdee7b8ee 100644
--- a/ej2-vue/image-editor/how-to/reset-image.md
+++ b/ej2-vue/image-editor/how-to/reset-image.md
@@ -2,7 +2,7 @@
layout: post
title: Reset an image in ##Platform_Name## Image editor control | Syncfusion
description: Learn here all about Reset an image in Syncfusion ##Platform_Name## Image editor control of Syncfusion Essential JS 2 and more.
-platform: ej2-javascript
+platform: ej2-vue
control: Reset an image
publishingplatform: ##Platform_Name##
documentation: ug
@@ -11,6 +11,6 @@ domainurl: ##DomainURL##
# Reset an image in the Vue Image Editor component
-The [`reset`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#reset) method in the Image Editor control provides the capability to undo all the changes made to an image and revert it back to its original state. This method is particularly useful when multiple adjustments, annotations, or transformations have been applied to an image and you want to start over with the original, unmodified version of the image.
+The [`reset`](https://ej2.syncfusion.com/vue/documentation/api/image-editor/index-default#reset) method in the Image Editor control provides the capability to undo all the changes made to an image and revert it back to its original state. This method is particularly useful when multiple adjustments, annotations, or transformations have been applied to an image and you want to start over with the original, unmodified version of the image.
By invoking the `reset` method, any modifications or edits made to the image will be undone, and the image will be restored to its initial state. This allows you to easily discard any changes and begin again with the fresh, unaltered image.
\ No newline at end of file
diff --git a/ej2-vue/images/chart_elements.png b/ej2-vue/images/chart_elements.png
new file mode 100644
index 000000000..b0492c47c
Binary files /dev/null and b/ej2-vue/images/chart_elements.png differ
diff --git a/ej2-vue/rich-text-editor/clipboard-cleanup.md b/ej2-vue/rich-text-editor/clipboard-cleanup.md
new file mode 100644
index 000000000..a9cf95e57
--- /dev/null
+++ b/ej2-vue/rich-text-editor/clipboard-cleanup.md
@@ -0,0 +1,60 @@
+---
+layout: post
+title: Clipboard cleanup in Vue Rich text editor component | Syncfusion
+description: Learn here all about Clipboard cleanup in Syncfusion Vue Rich text editor component of Syncfusion Essential JS 2 and more.
+control: Clipboard cleanup
+platform: ej2-vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Clipboard Cleanup in Vue Rich Text Editor Component
+
+The Rich Text Editor supports automatic cleanup of clipboard content during copy (`Ctrl + C`) and cut (`Ctrl + X`) operations. When this feature is enabled, unwanted inline styles are automatically removed from the clipboard content while preserving important structural elements such as tables, lists, and images. You can enable this behavior using the [enableClipboardCleanup](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor#enableClipboardCleanup) property.
+
+> To use Clipboard cleanup feature, inject `ClipboardCleanup` in the provider section.
+
+When `enableClipboardCleanup` is set to `true`, copy and cut operations are intercepted to remove unwanted inline styles. When set to `false` the browser’s default copy and cut behavior applies.
+
+> For a cleaner editing experience, `enableClipboardCleanup` is `true` by default.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/clipboard-cleanup/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/clipboard-cleanup/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/clipboard-cleanup" %}
+
+## Customizing Copied/Cut Content
+
+You can use the [beforeClipboardWrite](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor#beforeClipboardWrite) event, which fires before content is written to the clipboard during copy or cut operations. This event lets you to modify the HTML and plain-text representations of the content and also determine whether the action is a copy or a cut.
+
+In this example, the `beforeClipboardWrite` event is used to customize the selected content only during a copy operation, while the cut operation remains unaffected. To observe this behavior, try copying any text within the Rich Text Editor.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/clipboard-cleanup-customize/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/clipboard-cleanup-customize/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/clipboard-cleanup-customize" %}
+
+## Best Practices & Troubleshooting
+
+### Best Practices
+
+- Always include `ClipboardCleanup` in production application - it’s the #1 way to prevent style explosion.
+- Combine with Paste Cleanup module for even stricter incoming paste handling.
+- Use `beforeClipboardWrite` sparingly — heavy processing can slightly delay `Ctrl+C`.
+
+### Common Issues
+
+- “Copied content still has inline styles” → Confirm `ClipboardCleanup` is in providers.
+- “Event not firing” → Make sure you’re using the correct event name `beforeClipboardWrite` (camelCase in Vue).
diff --git a/ej2-vue/rich-text-editor/import-and-export.md b/ej2-vue/rich-text-editor/import-and-export.md
index 182a8cf31..b8b12aaf8 100644
--- a/ej2-vue/rich-text-editor/import-and-export.md
+++ b/ej2-vue/rich-text-editor/import-and-export.md
@@ -14,7 +14,7 @@ domainurl: ##DomainURL##
The Rich Text Editor provides functionality to import content directly from Microsoft Word documents, preserving the original formatting and structure. This feature ensures a smooth transition of content from Word to the editor, maintaining elements such as headings, lists, tables, and text styles.
-To integrate an `ImportWord` option into the Rich Text Editor toolbar, you can add it as a custom toolbar [items](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/toolbarSettings/#items) using the items property in toolbarSettings.
+To integrate an `ImportWord` option into the Rich Text Editor toolbar, you can add it as a custom toolbar [items](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/toolbarsettings#items) using the items property in toolbarSettings.
The following example illustrates how to set up the `ImportWord` in the Rich Text Editor to facilitate content importation from Word documents:
@@ -29,7 +29,62 @@ The following example illustrates how to set up the `ImportWord` in the Rich Tex
{% previewsample "page.domainurl/code-snippet/rich-text-editor/import-word-cs1" %}
-Here’s how to handle the server-side action for importing content from Word.
+## Secure importing with authentication
+
+The Rich Text Editor provides functionality to import Word documents with authentication for secure importing.
+
+The [wordImporting](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/index-default#wordimporting) event provides [UploadingEventArgs](https://ej2.syncfusion.com/vue/documentation/api/uploader/uploadingeventargs) for secure Word file import. Use `currentRequest` to add authentication headers and `customFormData` to include extra parameters in the POST body along with the uploaded file. On the server, read headers and form data from the request to validate and process the import securely.
+
+The following example demonstrates how to configure `wordImporting` for secure importing:
+
+```typescript
+
+
+
+
+
+
+
+```
+
+Here’s how to handle the server-side action for importing content from Word with authentication.
```csharp
@@ -43,6 +98,10 @@ public class RichTextEditorController : Controller
[Route("ImportFromWord")]
public IActionResult ImportFromWord(IList UploadFiles)
{
+ // Read headers (e.g., Authorization)
+ var authorization = Request.Headers["Authorization"].ToString();
+ // Read custom form data (from args.customFormData)
+ var formData = Request.Form("userId").ToString();
string HtmlString = string.Empty;
if (UploadFiles != null)
{
@@ -99,7 +158,7 @@ public class RichTextEditorController : Controller
The Rich Text Editor's export functionality allows users to convert their edited content into PDF or Word documents with a single click, preserving all text styles, images, tables, and other formatting elements.
-You can add `ExportWord` and `ExportPdf` tools to the Rich Text Editor toolbar using the toolbarSettings [items](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/toolbarSettings/#items) property.
+You can add `ExportWord` and `ExportPdf` tools to the Rich Text Editor toolbar using the toolbarSettings [items](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/toolbarsettings#items) property.
The following example demonstrates how to configure the `ExportWord` and `ExportPdf` tools in the Rich Text Editor, facilitating the export of content into Word or PDF documents:
@@ -114,7 +173,83 @@ The following example demonstrates how to configure the `ExportWord` and `Export
{% previewsample "page.domainurl/code-snippet/rich-text-editor/export-wordPdf-cs1" %}
-Here’s how to handle the server-side action for exporting content to PDF and Microsoft Word
+## Secure exporting with authentication
+
+The Rich Text Editor provides functionality to export Word or PDF documents with authentication for secure exporting.
+
+The [documentExporting](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/index-default#documentexporting) event provides `ExportingEventArgs` for secure export of Word or PDF files. Use `exportType` to identify the format, `currentRequest` to add authentication headers, and `customFormData` to send extra parameters in the POST body. On the server, read headers and custom data to validate and process the export securely.
+
+The following example demonstrates how to configure `documentExporting` for secure exporting:
+
+```typescript
+
+
+
+
+
+
+
+```
+
+Here’s how to handle the server-side action for exporting content to PDF and Microsoft Word with authentication for exporting content to PDF and Microsoft Word
```csharp
@@ -128,6 +263,10 @@ public class RichTextEditorController : Controller
[Route("ExportToPdf")]
public ActionResult ExportToPdf([FromBody] ExportParam args)
{
+ // Read headers (e.g., Authorization)
+ var authorization = Request.Headers["Authorization"].ToString();
+ // Read custom form data (from args.customFormData)
+ var formData = args.CustomFormData;
string htmlString = args.html;
if (htmlString == null && htmlString == "")
{
@@ -202,6 +341,8 @@ public class RichTextEditorController : Controller
public class ExportParam
{
public string html { get; set; }
+ // For receiving custom form data
+ public List> CustomFormData { get; set; }
}
}
diff --git a/ej2-vue/rich-text-editor/module.md b/ej2-vue/rich-text-editor/module.md
index ef2816755..b5451805c 100644
--- a/ej2-vue/rich-text-editor/module.md
+++ b/ej2-vue/rich-text-editor/module.md
@@ -59,7 +59,9 @@ The following example demonstrates how to import and inject modules.
| `SlashMenu` | Injecting this module allows users to apply formats, open dialogs by typing "/" in the Rich Text Editor. |
| `ImportExport` | Injecting this module allows users to import content from Word documents into the Rich Text Editor and export the Rich Text Editor's content into Word and PDF files |
| `CodeBlock` | Injecting this module allows users to format the selected text as inline code, highlighting code snippets within the text in the Rich Text Editor. |
+| `AutoFormat` | Injecting this module automatically converts Markdown syntax into HTML as you type, supporting inline and block-level formatting for a seamless editing experience. |
| `Audio` | Injecting this module allows users to insert and manage audios in the Rich Text Editor. |
| `Video` | Injecting this module allows users to insert and manage videos in the Rich Text Editor. |
+| `ClipboardCleanup` | Injecting this module allows to automatically clean clipboard content during copy and cut—removing unwanted inline styles while preserving structure. |
These modules should be injected into the `provide` section and use `richtexteditor` as a key of the object.
diff --git a/ej2-vue/rich-text-editor/selection.md b/ej2-vue/rich-text-editor/selection.md
index 90958d1fd..db4b9c2d4 100644
--- a/ej2-vue/rich-text-editor/selection.md
+++ b/ej2-vue/rich-text-editor/selection.md
@@ -14,7 +14,186 @@ domainurl: ##DomainURL##
The Rich Text Editor supports character range-based text selection using the **Syncfusion Slider** component. This feature allows users to select a specific range of characters (e.g., 33–45) within the editor content, which is then automatically highlighted.
-This functionality is useful for scenarios where precise text selection is needed for operations such as copying, formatting, or analysis.
+### Adding a Slider for character range selection
+
+The Rich Text Editor can be integrated with the **Slider** component to enable precise character range-based text selection. The slider is configured in `range` type, allowing users to select a start and end index within the editor content. When the slider values change, the corresponding text range is highlighted automatically.
+
+This approach is particularly useful for scenarios where exact character-level selection is required for operations such as copying, formatting, or analysis.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+### Dynamic range adjustment based on content
+
+When the editor is created, the actual length of the text content is calculated, and the slider’s maximum value is updated dynamically to match this length. This ensures that the slider range always reflects the current content size. The editor is also focused programmatically to make the selection visible, and an initial selection is applied based on the slider’s default values.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+### Precise selection using DOM range
+
+The selection logic is implemented in the [change](https://ej2.syncfusion.com/vue/documentation/api/slider/index-default#change) event of the slider. It retrieves the start and end positions from the slider and ensures they are within valid bounds. The code then uses a helper function, `getTextNodeAtOffset()`, which employs a `TreeWalker` to traverse text nodes and locate the exact node and offset for the given character positions.
+
+A Range object is created using these offsets and applied to the current selection using the browser’s `Selection` API. This guarantees accurate highlighting even when the content spans multiple text nodes.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+### Helper function for accurate offset calculation
+
+The `getTextNodeAtOffset()` function uses a `TreeWalker` to traverse text nodes inside the editor and determine the exact node and offset for a given character index. This ensures that even complex content structures are handled correctly.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+{% endhighlight %}
+{% endtabs %}
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -63,7 +242,7 @@ The following example demonstrates how to select a table cell programmatically u
## Select all content
-To select all content within the Rich Text Editor, use the [selectAll](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/index-default#selectall/) method. This method highlights all the text and elements inside the editor, allowing users to perform actions such as formatting or deleting the entire content.
+To select all content within the Rich Text Editor, use the [selectAll](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/index-default#selectall) method. This method highlights all the text and elements inside the editor, allowing users to perform actions such as formatting or deleting the entire content.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
diff --git a/ej2-vue/rich-text-editor/smart-editing/mail-merge.md b/ej2-vue/rich-text-editor/smart-editing/mail-merge.md
index 25c7288f2..48ba2263e 100644
--- a/ej2-vue/rich-text-editor/smart-editing/mail-merge.md
+++ b/ej2-vue/rich-text-editor/smart-editing/mail-merge.md
@@ -8,12 +8,219 @@ documentation: ug
domainurl: ##DomainURL##
---
-# Mail merge in Vue Rich Text Editor Component
+# Mail merge in Vue Rich Text Editor component
The Rich Text Editor can be customized to implement **Mail Merge** functionality by inserting placeholders into the editor using custom toolbar items. These placeholders are later replaced with actual data to generate personalized content such as letters, invoices, and reports.
This feature simplifies the creation of dynamic documents by allowing users to insert merge fields that are automatically populated with real data during content generation.
+## Adding custom toolbar items for inserting merge fields
+
+To enable mail merge functionality, the Rich Text Editor toolbar is extended with two custom buttons: `Insert Field` and `Merge Data`. These buttons are added using the `template` property in [toolbarSettings.items](https://helpej2.syncfusion.com/vue/documentation/api/rich-text-editor/toolbarSettingsModel#items), which points to custom HTML elements (#insertField and #merge_data).
+
+- **Insert Field:** Opens a dropdown list of merge fields for inserting placeholders like `{{FirstName}}` into the editor.
+- **Merge Data:** Replaces all placeholders in the editor with actual values from a predefined data source.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+## Using DropDownButton for selecting placeholders
+
+The **DropDownButton** component displays a list of merge fields such as First Name, Last Name, and Company Name. When a user selects an item, the corresponding placeholder (e.g., {{FirstName}}) is inserted at the current cursor position using the `insertHTML` command.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+## Populating merge fields using Mention
+
+The **Mention** component provides an alternative way to insert placeholders by typing the {{ character inside the editor. A popup list of merge fields appears, allowing quick selection without using the toolbar.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+ {{ formatMentionTemplate(data.value) }}
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
+## Replacing placeholders with actual data dynamically
+
+When the **Merge Data** button is clicked, the editor content is processed to replace all placeholders with actual values from the `placeholderData` object. This is done using a regular expression in the `replacePlaceholders()` function.
+
+{% tabs %}
+{% highlight html tabtitle="~/src/App.vue" %}
+
+
+
+
+
+
+
+{% endhighlight %}
+{% endtabs %}
+
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
{% include code-snippet/rich-text-editor/mail-merge/app-composition.vue %}
@@ -21,4 +228,6 @@ This feature simplifies the creation of dynamic documents by allowing users to i
{% highlight html tabtitle="Options API (~/src/App.vue)" %}
{% include code-snippet/rich-text-editor/mail-merge/app.vue %}
{% endhighlight %}
-{% endtabs %}
\ No newline at end of file
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/mail-merge-cs1" %}
\ No newline at end of file
diff --git a/ej2-vue/rich-text-editor/tools/text-formatting.md b/ej2-vue/rich-text-editor/tools/text-formatting.md
index 4b762224d..101af85aa 100644
--- a/ej2-vue/rich-text-editor/tools/text-formatting.md
+++ b/ej2-vue/rich-text-editor/tools/text-formatting.md
@@ -344,6 +344,44 @@ While the toolbar does not provide a direct method to apply blockquote formattin
{% previewsample "page.domainurl/code-snippet/rich-text-editor/nesting-blockquote" %}
+## Line Height
+
+The Rich Text Editor supports line height feature which allows users to adjust the vertical spacing between lines of text. To change the line height, select the text you want to modify and click the Line Height icon in the toolbar. Choose from the available spacing options to apply the desired vertical spacing. This feature is especially useful for creating visually appealing paragraphs and ensuring consistent formatting across your document.
+
+### Built-in line height
+
+You can add the `LineHeight` tool to the toolbar in the Rich Text Editor using [toolbarSettings.items](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/toolbarSettings#items) property.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/line-height/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/line-height/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/line-height" %}
+
+The Rich Text Editor comes with a pre-configured set of [`lineHeight`](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor#lineheight) property.
+
+### Custom line height
+
+The Rich Text Editor supports custom line height along with the existing line height dropdown list. To add additional line height to the line height dropdown, you can configure the items field of the [`lineHeight`](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor#lineheight) property. This allows you to extend the available line height options beyond the default selection.
+
+The [`supportAllValues`](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor#supportAllValues) setting enables the line height dropdown to display and retain line-height values that are not part of the predefined options. When `supportAllValues` property is turned on, the dropdown will show the current line-height value from the selection, even if that value is not present in the configured lineHeights array. By default, `supportAllValues` will be set to false.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/line-height-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/line-height-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/line-height-cs1" %}
+
## Horizontal line
The Rich Text Editor enables users to insert horizontal dividers using the `HorizontalLine` tool available in the toolbar. Horizontal lines () help visually separate sections of content, enhancing readability and structural clarity.
@@ -481,4 +519,48 @@ Using `Clear Format` makes it easy to undo styling changes and keep your text lo
{% endhighlight %}
{% endtabs %}
-{% previewsample "page.domainurl/code-snippet/rich-text-editor/remove-formatting-cs2" %}
\ No newline at end of file
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/remove-formatting-cs2" %}
+
+## Markdown Auto Format
+
+The Rich Text Editor supports automatic conversion of Markdown syntax into HTML using the [enableMarkdownAutoFormat](https://ej2.syncfusion.com/vue/documentation/api/rich-text-editor/index-default#enablemarkdownautoformat) property. This feature simplifies content creation by transforming Markdown elements into their corresponding HTML tags, ensuring consistency and improving efficiency.
+
+By default, Markdown Auto-Format is enabled. The editor supports both inline formatting and block-level elements. As you type, Markdown syntax is automatically converted into semantic HTML tags, ensuring a smooth and efficient editing experience.
+|Commands|Syntax Example| Description |
+|--------|------------------------------------------|------------|
+| Bold | `**`Bold Text`**` or `__`Bold Text`__` | Makes text bold by wrapping it with `**` or `__`. |
+| Italic | `*`Italic Text`*` or `_`Italic Text`_` | Makes text italic by wrapping it with `*`or `_`. |
+| Bold and Italics | `***`bold and Italic text`***`. | Combines bold and italic by wrapping text with `***`. |
+| Strike Through | `~~`Strikethrough`~~` | Adds a strikethrough effect by wrapping text with `~~`. |
+| Inline Code (Single line) | \`Inline Code\` | Displays inline code by wrapping text with \`. |
+| Heading 1 | `#` Heading 1 | Creates an H1 heading by starting the line with `#`. |
+| Heading 2 | `##` Heading 2 | Creates an H2 heading by starting the line with `##`. |
+| Heading 3 | `###` Heading 3 | Creates an H2 heading by starting the line with `###`. |
+| Heading 4 | `####` Heading 4 | Creates an H2 heading by starting the line with `####` |
+| Heading 5 | `#####` Heading 5 | Creates an H2 heading by starting the line with `#####` |
+| Heading 6 | `######` Heading 6 | Creates an H2 heading by starting the line with `######` |
+| Blockquotes | `>` Blockquotes text | Adds a blockquote by starting the line with `>`. |
+| Code block (Multi Line) | \`\`\` Multi line code text Multi line code text \`\`\` | Creates a code block by starting the line with \`\`\` |
+| Ordered List | `1.` First `1.` Second | Creates a numbered list by starting lines with `1.` or `i.`. |
+| Unordered List | `*` First `*` second | Creates a bulleted list by starting lines with `*` or `-`. |
+| Check List | `[]` Task `[x]` Completed Task | Creates a checklist using `[]` for check list and `[x]` for checked checklist.|
+| Horizontal Line | `---` or `___` | Inserts a horizontal line using `---` or `___` on a new line.|
+
+### How Markdown auto-formatting works
+#### Inline Formats
+Elements such as **bold**, *italic*, ~~strikethrough~~, and `inline code` are converted **immediately after the closing marker is typed**.
+**Example:** Typing `**bold**` will render as **bold** the moment you enter the second `*`.
+#### Block Formats
+Elements such as headings, lists, blockquotes, and code block are converted **only after a space is typed following the marker**.
+**Example:** Typing `# Title` will render as a heading only after you type the space following `#`.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/markdown-autoformat-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/rich-text-editor/markdown-autoformat-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/rich-text-editor/markdown-autoformat-cs1" %}
\ No newline at end of file
diff --git a/ej2-vue/treegrid/columns/column-spanning.md b/ej2-vue/treegrid/columns/column-spanning.md
new file mode 100644
index 000000000..203f317b4
--- /dev/null
+++ b/ej2-vue/treegrid/columns/column-spanning.md
@@ -0,0 +1,74 @@
+---
+layout: post
+title: Column spanning in Vue TreeGrid | Syncfusion
+description: Learn here all about Column spanning in Syncfusion Vue TreeGrid of Syncfusion Essential JS 2 and more.
+control: Column spanning
+platform: ej2-vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Column spanning in Vue TreeGrid
+
+The column spanning feature in the Syncfusion® Vue TreeGrid allows merging adjacent cells horizontally, creating a visually appealing and informative layout. By defining the `colSpan` attribute in the [queryCellInfo](https://ej2.syncfusion.com/vue/documentation/api/treegrid/index-default#querycellinfo) event, cells can be easily spanned and the appearance of the TreeGrid can be customized.
+
+In the following example, Employee **Davolio** is scheduled for analysis from "9.00 AM" to "10.00 AM", so those cells have been spanned.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/columns/column-spanning-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/columns/column-spanning-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/treegrid/columns/column-spanning-cs1" %}
+
+## Limitations
+
+Column spanning in the Vue TreeGrid has the following limitations:
+
+* The [updateCell](https://ej2.syncfusion.com/vue/documentation/api/treegrid/index-default#updatecell) method does not support column spanning.
+* Column spanning is not compatible with the following features:
+ 1. Virtual scrolling
+ 2. Infinite scrolling
+
+> When using column spanning, ensure that the spanned cells do not interfere with TreeGrid operations such as sorting, filtering, or editing, as this may lead to unexpected behavior.
+
+## Column spanning using enableColumnSpan property
+
+The Syncfusion Vue TreeGrid introduces a simplified approach to horizontally merge cells with identical values in the same row across adjacent columns.
+
+The column spanning feature in the Syncfusion Vue TreeGrid can be enabled using `enableColumnSpan` property which significantly enhances readability and delivers a clean, professional look by eliminating repetitive data in columns such as "Status", "Permit Status", "Inspection Status" and "Punch List Status".
+
+To enable column spanning, set the `enableColumnSpan` property to **true** in the TreeGrid configuration.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/columns/column-spanning-cs2/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/columns/column-spanning-cs2/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/treegrid/columns/column-spanning-cs2" %}
+
+> In the sample, column spanning is disabled at the column level for the price based columns such as "Planned Budget" and "Actual Spend" by setting each column's `enableColumnSpan` property to **false**.
+
+### Limitations
+
+Column spanning feature is not compatible with all the features which are available in TreeGrid and it has limited features support. Here we have listed out the features which are not compatible with column spanning feature.
+
+* Virtualization
+* Infinite Scrolling
+* Row Drag and Drop
+* Column Virtualization
+* Detail Template
+* Editing
+* Export
+
+## See Also
+
+* [Row spanning in Syncfusion® TreeGrid](https://ej2.syncfusion.com/vue/documentation/treegrid/row/row-spanning)
\ No newline at end of file
diff --git a/ej2-vue/treegrid/row/row-spanning.md b/ej2-vue/treegrid/row/row-spanning.md
new file mode 100644
index 000000000..35c50e3fd
--- /dev/null
+++ b/ej2-vue/treegrid/row/row-spanning.md
@@ -0,0 +1,74 @@
+---
+layout: post
+title: Row spanning in Vue TreeGrid | Syncfusion
+description: Learn here all about Row spanning in Syncfusion Vue TreeGrid of Syncfusion Essential JS 2 and more.
+control: Row spanning
+platform: ej2-Vue
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Row spanning in Vue TreeGrid
+
+The row spanning feature in the Syncfusion® Vue TreeGrid allows merging cells in the same column vertically, creating a visually appealing and informative layout. By defining the `rowSpan` attribute in the [queryCellInfo](https://ej2.syncfusion.com/vue/documentation/api/treegrid/index-default#querycellinfo) event, cells can be easily spanned and the appearance of the TreeGrid can be customized.
+
+In the following demo, the **Lunch Break** cell spans multiple rows in the "1:00 PM" column.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/row/row-spanning-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/row/row-spanning-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/treegrid/row/row-spanning-cs1" %}
+
+## Limitations
+
+Row spanning in the Vue TreeGrid has the following limitations:
+
+* The [updateCell](https://ej2.syncfusion.com/vue/documentation/api/treegrid/index-default#updatecell) method does not support row spanning.
+* Rowx spanning is not compatible with the following features:
+ 1. Virtual scrolling
+ 2. Infinite scrolling
+
+> When using row spanning, ensure that the spanned cells do not interfere with TreeGrid operations such as sorting, filtering, or editing, as this may lead to unexpected behavior.
+
+## Row spanning using enableRowSpan property
+
+The Syncfusion Vue TreeGrid introduces a simplified approach to vertically merge cells with identical values in the same column across consecutive rows.
+
+The row spanning feature in the Syncfusion Vue TreeGrid can be enabled using `enableRowSpan` property which significantly enhances readability and delivers a clean, professional look by eliminating repetitive data in columns such as "Status", "Permit Status", "Inspection Status" and "Punch List Status".
+
+To enable row spanning, set the `enableRowSpan` property to **true** in the TreeGrid configuration.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/row/row-spanning-cs2/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/row/row-spanning-cs2/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/treegrid/row/row-spanning-cs2" %}
+
+> In the sample, row spanning is disabled at the column level for the price based columns such as "Planned Budget" and "Actual Spend" by setting each column's `enableRowSpan` property to **false**.
+
+### Limitations
+
+Row spanning feature is not compatible with all the features which are available in TreeGrid and it has limited features support. Here we have listed out the features which are not compatible with row spanning feature.
+
+* Virtualization
+* Infinite Scrolling
+* Row Drag and Drop
+* Column Virtualization
+* Detail Template
+* Editing
+* Export
+
+## See Also
+
+* [Column spanning in Syncfusion® TreeGrid](https://ej2.syncfusion.com/vue/documentation/treegrid/columns/column-spanning)
\ No newline at end of file
diff --git a/ej2-vue/treegrid/selection/check-box-selection.md b/ej2-vue/treegrid/selection/check-box-selection.md
index 4caf7ad9e..2afeac428 100644
--- a/ej2-vue/treegrid/selection/check-box-selection.md
+++ b/ej2-vue/treegrid/selection/check-box-selection.md
@@ -13,7 +13,7 @@ domainurl: ##DomainURL##
Checkbox Selection provides an option to select multiple TreeGrid records with help of checkbox in each row.
To render checkbox in each treegrid row, you need to use checkbox column with type as `CheckBox` using
-column [`type`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/column/#type) property.
+column [`type`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/column#type) property.
{% tabs %}
{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
@@ -27,16 +27,16 @@ column [`type`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/column
{% previewsample "page.domainurl/code-snippet/treegrid/selection/default-cs2" %}
> By default selection is allowed by clicking a treegrid row or checkbox in that row. To allow Selection only through checkbox, you can set
-[`selectionSettings.checkboxOnly`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/selectionSettings/#checkboxonly) property to true.
+[`selectionSettings.checkboxOnly`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/selectionSettings#checkboxonly) property to true.
> Selection can be persisted on all the operations
-using [`selectionSettings.persistSelection`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/selectionSettings/#persistselection) property.
+using [`selectionSettings.persistSelection`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/selectionSettings#persistselection) property.
For persisting selection on the TreeGrid, any one of the column should be defined as a primary key
-using [`columns.isPrimaryKey`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/column/#isprimarykey) property.
+using [`columns.isPrimaryKey`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/column#isprimarykey) property.
## Checkbox selection mode
In checkbox selection, selection can also be done by clicking on rows. This selection provides two types of Checkbox Selection mode which can be set by using the following API,
-[`selectionSettings.checkboxMode`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/selectionSettings/#checkboxmode). The modes are;
+[`selectionSettings.checkboxMode`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/selectionSettings#checkboxmode). The modes are;
* **`Default`**: This is the default value of the checkboxMode. In this mode, user can select multiple rows by clicking rows one by one.
* **`ResetOnRowClick`**: In ResetOnRowClick mode, when user clicks on a row it will reset previously selected row. Also you can perform multiple-selection in this mode by press and hold CTRL key and click the desired rows. To select range of rows, press and hold the SHIFT key and click the rows.
@@ -52,4 +52,53 @@ In checkbox selection, selection can also be done by clicking on rows. This sele
{% previewsample "page.domainurl/code-snippet/treegrid/selection/default-cs3" %}
-> Checkbox Selection feature is intended for row selection only; it is not compatible with cell selection mode.
\ No newline at end of file
+> Checkbox Selection feature is intended for row selection only; it is not compatible with cell selection mode.
+
+## Conditional row selection
+
+The TreeGrid supports conditional row selection through the [isRowSelectable](https://ej2.syncfusion.com/vue/documentation/api/treegrid#isRowSelectable) property. This feature enables dynamic business logic to determine which rows can be selected, ensuring that only rows meeting specific conditions are selectable. The `isRowSelectable` property accepts a function that evaluates each row’s data and returns **true** to enable selection or **false** to disable it. The function is executed for the entire data source before rendering, making it suitable for scenarios where selection must be restricted based on criteria.
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/selection/default-cs7/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/treegrid/selection/default-cs7/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+In this sample, checkbox selection is disabled for rows where the "Progress" column has the value **"Completed"**.
+
+## Checkbox Selection In Tree Column
+
+1. ### Enable checkboxes in tree column
+
+ To render checkboxes in tree column, you need to set `columns.showCheckbox` property as `true`.
+
+ It is possible to select rows hierarchically using checkboxes in TreeGrid by enabling the `autoCheckHierarchy` property. When a parent record’s checkbox is checked, the checkboxes of its child records are automatically selected and vice-versa.
+
+ {% tabs %}
+ {% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+ {% include code-snippet/treegrid/columns/default-cs13/app-composition.vue %}
+ {% endhighlight %}
+ {% highlight html tabtitle="Options API (~/src/App.vue)" %}
+ {% include code-snippet/treegrid/columns/default-cs13/app.vue %}
+ {% endhighlight %}
+ {% endtabs %}
+
+ {% previewsample "page.domainurl/code-snippet/treegrid/columns/default-cs13" %}
+
+2. ### Column cell checkbox support for row selection in virtualization
+
+ The TreeGrid component is designed to handle large datasets while providing flexible checkbox selection with virtualization enabled. The [`showCheckbox`](https://ej2.syncfusion.com/vue/documentation/api/treegrid/columnmodel#showcheckbox) property property displays checkboxes in tree column cells, allowing users to select or deselect them directly. This functionality is enabled by setting the property to "**true**". Similarly, the [`enableVirtualization`](https://ej2.syncfusion.com/vue/documentation/api/treegrid#enablevirtualization) property enhances performance by rendering only the visible rows and columns during scrolling. This feature is activated by setting the property to "**true**".
+
+ {% tabs %}
+ {% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+ {% include code-snippet/treegrid/selection/default-cs8/app-composition.vue %}
+ {% endhighlight %}
+ {% highlight html tabtitle="Options API (~/src/App.vue)" %}
+ {% include code-snippet/treegrid/selection/default-cs8/app.vue %}
+ {% endhighlight %}
+ {% endtabs %}
+
+ {% previewsample "page.domainurl/code-snippet/treegrid/selection/default-cs8" %}
\ No newline at end of file
diff --git a/ej2-vue/treeview/images/customize-based-on-level.png b/ej2-vue/treeview/images/customize-based-on-level.png
new file mode 100644
index 000000000..e40aed3a5
Binary files /dev/null and b/ej2-vue/treeview/images/customize-based-on-level.png differ
diff --git a/ej2-vue/treeview/images/customize-checkbox.png b/ej2-vue/treeview/images/customize-checkbox.png
new file mode 100644
index 000000000..7db280d36
Binary files /dev/null and b/ej2-vue/treeview/images/customize-checkbox.png differ
diff --git a/ej2-vue/treeview/images/customize-expand-collapse-icon.png b/ej2-vue/treeview/images/customize-expand-collapse-icon.png
new file mode 100644
index 000000000..3b47ce5b3
Binary files /dev/null and b/ej2-vue/treeview/images/customize-expand-collapse-icon.png differ
diff --git a/ej2-vue/treeview/images/customize-html-attribute.png b/ej2-vue/treeview/images/customize-html-attribute.png
new file mode 100644
index 000000000..7bb65fd3f
Binary files /dev/null and b/ej2-vue/treeview/images/customize-html-attribute.png differ
diff --git a/ej2-vue/treeview/images/customize-node-height.png b/ej2-vue/treeview/images/customize-node-height.png
new file mode 100644
index 000000000..25a1301e6
Binary files /dev/null and b/ej2-vue/treeview/images/customize-node-height.png differ
diff --git a/ej2-vue/treeview/images/customize-treeview-text.png b/ej2-vue/treeview/images/customize-treeview-text.png
new file mode 100644
index 000000000..5ed3c3ae7
Binary files /dev/null and b/ej2-vue/treeview/images/customize-treeview-text.png differ
diff --git a/ej2-vue/treeview/style.md b/ej2-vue/treeview/style.md
new file mode 100644
index 000000000..3c9384be1
--- /dev/null
+++ b/ej2-vue/treeview/style.md
@@ -0,0 +1,107 @@
+---
+layout: post
+title: Styles and Appearance in Vue TreeView component | Syncfusion
+description: Checkout and learn here all about styles and appearance in Syncfusion Vue TreeView component of Syncfusion Essential JS 2 and more.
+platform: ej2-vue
+control: TreeView
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Styles and Appearance in Vue TreeView Component
+
+The following content provides the exact CSS structure that can be used to modify the component's appearance based on the user preference.
+
+## Customizing the height of TreeView nodes
+
+Use the following CSS to customize the TreeView nodes.
+
+```css
+.e-treeview .e-list-item {
+ line-height: 45px;
+}
+.e-treeview .e-fullrow {
+ height: 45px;
+}
+```
+
+
+## Customizing the text of TreeView nodes
+
+Use the following CSS to customize the text of TreeView nodes.
+
+```css
+.e-treeview .e-list-text {
+ font-weight: bold;
+ color:yellow !important;
+}
+```
+
+
+## Customizing the TreeView expand and collapse icons
+
+Use the following CSS to customize the TreeView expand and collapse icons.
+
+```css
+.e-treeview .e-icon-expandable {
+ color: red;
+}
+.e-treeview .e-icon-collapsible {
+ color: black;
+}
+```
+
+
+## Customizing the TreeView checkboxes
+
+Use the following CSS to customize the TreeView checkboxes.
+
+```css
+.e-checkbox-wrapper .e-frame {
+ border:aqua solid 2px !important;
+ border-radius: 50% !important;
+}
+.e-checkbox-wrapper:hover .e-frame{
+ border:black solid 2px !important;
+ border-radius:50% !important;
+}
+```
+
+
+## Customizing the TreeView nodes based on levels
+
+Use the following CSS to customize the TreeView nodes based on levels.
+
+```css
+.e-treeview .e-level-2 > .e-text-content {
+ background: #E6F4FF;
+ border: 1px solid #99C9FF;
+}
+```
+
+
+## Customizing the TreeView using HtmlAttributes
+
+The [htmlAttributes](https://ej2.syncfusion.com/vue/documentation/api/treeview/fieldssettingsmodel#htmlattributes) property of the TreeView component allows you to define a mapping field for applying custom HTML attributes to individual TreeView nodes.
+
+By using attributes, you can customize specific nodes effectively. For instance, in the given example, a 'child-node' class is added to a specific node, allowing you to customize the corresponding node via CSS.
+
+```css
+.child-node {
+ font-weight: bold;
+ background-color: aqua;
+}
+```
+
+Here is the summarized code for the above steps in the **src/App.vue** file:
+
+{% tabs %}
+{% highlight html tabtitle="Composition API (~/src/App.vue)" %}
+{% include code-snippet/treeview/node-style-cs1/app-composition.vue %}
+{% endhighlight %}
+{% highlight html tabtitle="Options API (~/src/App.vue)" %}
+{% include code-snippet/treeview/node-style-cs1/app.vue %}
+{% endhighlight %}
+{% endtabs %}
+
+{% previewsample "page.domainurl/code-snippet/treeview/node-style-cs1" %}
diff --git a/ej2-vue/visual-studio-code-integration/images/frameworktype.png b/ej2-vue/visual-studio-code-integration/images/frameworktype.png
index afd3b9fab..aa93bc25a 100644
Binary files a/ej2-vue/visual-studio-code-integration/images/frameworktype.png and b/ej2-vue/visual-studio-code-integration/images/frameworktype.png differ
diff --git a/ej2-vue/visual-studio-code-integration/images/run.png b/ej2-vue/visual-studio-code-integration/images/run.png
index b60892a0c..a8c54dd3f 100644
Binary files a/ej2-vue/visual-studio-code-integration/images/run.png and b/ej2-vue/visual-studio-code-integration/images/run.png differ
diff --git a/ej2-vue/visual-studio-code-integration/images/vue-styles.png b/ej2-vue/visual-studio-code-integration/images/vue-styles.png
index e000b64ff..98990d23c 100644
Binary files a/ej2-vue/visual-studio-code-integration/images/vue-styles.png and b/ej2-vue/visual-studio-code-integration/images/vue-styles.png differ
diff --git a/ej2-vue/visual-studio-code-integration/images/vue-versions.png b/ej2-vue/visual-studio-code-integration/images/vue-versions.png
index 567e83205..3af7bce52 100644
Binary files a/ej2-vue/visual-studio-code-integration/images/vue-versions.png and b/ej2-vue/visual-studio-code-integration/images/vue-versions.png differ
diff --git a/ej2-vue/visual-studio-code-integration/overview.md b/ej2-vue/visual-studio-code-integration/overview.md
index 82327ac60..d818c4841 100644
--- a/ej2-vue/visual-studio-code-integration/overview.md
+++ b/ej2-vue/visual-studio-code-integration/overview.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Overview in Vue Visual studio code integration component | Syncfusion
+title: Overview in Vue Visual studio code integration | Syncfusion
description: Learn here all about Overview in Syncfusion Vue Visual studio code integration component of Syncfusion Essential JS 2 and more.
control: Overview
platform: ej2-vue
@@ -12,7 +12,7 @@ domainurl: ##DomainURL##
## Overview
-The Syncfusion® Essential® Studio Web extension for Visual Studio Code allows you to use the Syncfusion® JavaScript components(React, Angular, and Vue) easily by configuring the Syncfusion® NPM packages and themes.
+The Syncfusion® Essential® Studio Web extension for Visual Studio Code allows you to use the Syncfusion® JavaScript components(React, Pure React, Angular, and Vue) easily by configuring the Syncfusion® NPM packages and themes.
The Syncfusion® Web Extension provides the following support in Visual Studio Code:
diff --git a/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/create-project.md b/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/create-project.md
index 1531bfc07..d9d00282f 100644
--- a/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/create-project.md
+++ b/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/create-project.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Create project in Vue Visual studio code integration component | Syncfusion
+title: Create Vue project in Visual studio code | Syncfusion
description: Learn here all about Create project in Syncfusion Vue Visual studio code integration component of Syncfusion Essential JS 2 and more.
control: Create project
platform: ej2-vue
@@ -12,7 +12,7 @@ domainurl: ##DomainURL##
## Create project
-Syncfusion® provides **project templates** for **Visual Studio Code** to create Syncfusion® Web applications. The Syncfusion® Web Project template creates applications with the selected Framework (React, Angular, and Vue), required Syncfusion® NPM packages, component render code for the Grid, Chart, and Scheduler components, and a style to make development with Syncfusion® components easier.
+Syncfusion® provides **project templates** for **Visual Studio Code** to create Syncfusion® Web applications. The Syncfusion® Web Project template creates applications with the selected Framework (React, Pure React, Angular, and Vue), required Syncfusion® NPM packages, component render code for the Grid, Chart, and Scheduler components, and a style to make development with Syncfusion® components easier.
> The Syncfusion® Visual Studio Code project template provides support for Web project templates from v18.3.0.47.
@@ -22,12 +22,13 @@ The steps below help you to create **Syncfusion®<

-2. Select **Syncfusion® Web Template Studio: Launch** and then press enter, Template Studio wizard for configuring the Syncfusion® Web app will appear. Provide the require Project Name and Path to create the new Syncfusion® Web application along with any one of the Framework (React, Angular, and Vue).
+2. Select **Syncfusion® Web Template Studio: Launch** and then press enter, Template Studio wizard for configuring the Syncfusion® Web app will appear. Provide the require Project Name and Path to create the new Syncfusion® Web application along with any one of the Framework (React, Pure React, Angular, and Vue).

3. Click either **Next** or **Framework** tab, and the Framework types will be appears. Choose any one of the Framework:
* React
+ * Pure React
* Angular
* Vue
diff --git a/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/download-and-installation.md b/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/download-and-installation.md
index 13656bec5..5959ad04d 100644
--- a/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/download-and-installation.md
+++ b/ej2-vue/visual-studio-code-integration/visual-studio-code-extensions/download-and-installation.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Download and installation in Vue Visual studio code integration component | Syncfusion
+title: Download and installation in Visual studio code | Syncfusion
description: Learn here all about Download and installation in Syncfusion Vue Visual studio code integration component of Syncfusion Essential JS 2 and more.
control: Download and installation
platform: ej2-vue
@@ -14,7 +14,7 @@ Syncfusion® publishes the Visual Studio Cod
## Prerequisites
-The following prerequisites software needs to be installed for the Syncfusion® Web extension installation and for creating the Syncfusion® Web applications along with any one of the Framework(React, Angular, and Vue).
+The following prerequisites software needs to be installed for the Syncfusion® Web extension installation and for creating the Syncfusion® Web applications along with any one of the Framework(React, Pure React, Angular, and Vue).
* [Visual Studio Code](https://code.visualstudio.com/download)