ea7F)-Ht{rlZ*o(INrj_d35!ooteWXTdWefo6uf8oOiqkmN$I(@5MyLKtP
zII)__b>Nwlb|0l3epesC!NHsg4j(>DiHV84N|7GMj2Xi#&<@S|LGh{_Hf$K_2gq#z
zDJUW$f}T8iLhs+d=QM;6KVZNBYTv%S)r%-7D2Up&ZEOAH;_chFboJ_0_Ac$(wX<4X
z*QCWs9XfR2e`td!ap%q*HoRH@Jf=;XHf<;@ER3|M=*N#AR%>8TqeczV!lMlvHgMGT
z1yb?Wty`&Y-@aB$`S4p5Hg)UP;
zK4#6DMS4YXHS^`m7Zy;97A>ewojTUpy@N^C5sCXke>6_uby~G*#bfFy!-g1X31zc$
zY
|I|4Lp
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
Date: Tue, 11 Jun 2024 13:57:47 +0530
Subject: [PATCH 015/145] 889657: To add documentation for the feature 'Default
item added in font-size and font-family' in the Rich Text Editor in all
platforms
---
ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.MVC/styling.md | 4 ++--
ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.NETCORE/styling.md | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.MVC/styling.md b/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.MVC/styling.md
index fe9779913b..f9efa49844 100644
--- a/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.MVC/styling.md
+++ b/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.MVC/styling.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Styling in ##Platform_Name## Rich Text Editor Component
+title: Styling in ##Platform_Name## Rich Text Editor Component | Syncfusion
description: Learn all about Styling in Syncfusion ##Platform_Name## Rich Text Editor component of Syncfusion Essential JS 2 and more.
platform: ej2-asp-core-mvc
control: Styling
@@ -9,7 +9,7 @@ documentation: ug
---
-# Styling
+# Styling in ##Platform_Name## Rich Text Editor component
## Font Name and Font Size
diff --git a/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.NETCORE/styling.md b/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.NETCORE/styling.md
index 83f48b737a..13641167c3 100644
--- a/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.NETCORE/styling.md
+++ b/ej2-asp-core-mvc/rich-text-editor/EJ2_ASP.NETCORE/styling.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Styling in ##Platform_Name## Rich Text Editor Component
+title: Styling in ##Platform_Name## Rich Text Editor Component | Syncfusion
description: Learn all about Styling in Syncfusion ##Platform_Name## Rich Text Editor component of Syncfusion Essential JS 2 and more.
platform: ej2-asp-core-mvc
control: Styling
@@ -9,7 +9,7 @@ documentation: ug
---
-# Styling
+# Styling in ##Platform_Name## Rich Text Editor component
## Font Name and Font Size
From cacaf824e2b97b6bbe7f03415c0aa57c1bbcb9a4 Mon Sep 17 00:00:00 2001
From: Mukilan Sethuraman
Date: Tue, 11 Jun 2024 14:02:26 +0530
Subject: [PATCH 016/145] 889448: Removed the deprecated APIs from the maps UG
documentation.
---
.../maps/bing/bingsublayer/tagHelper | 2 +-
.../code-snippet/maps/drilldown/tagHelper | 4 +-
.../maps/markers/marker-zoom/razor | 2 +-
.../maps/markers/marker-zoom/tagHelper | 3 +-
.../maps/print-export/export-tile/razor | 2 +-
.../maps/print-export/export-tile/tagHelper | 2 +-
.../user-interactions/tooltip-duration/razor | 55 ++++++++++++++++++
.../tooltip-duration/tagHelper | 57 +++++++++++++++++++
.../tooltip-duration/tooltip-duration.cs | 31 ++++++++++
.../maps/EJ2_ASP.MVC/ej1-api-migration.md | 20 +++----
.../maps/EJ2_ASP.NETCORE/ej1-api-migration.md | 20 +++----
ej2-asp-core-mvc/maps/user-interactions.md | 27 +++++++++
12 files changed, 198 insertions(+), 27 deletions(-)
create mode 100644 ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/razor
create mode 100644 ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper
create mode 100644 ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs
diff --git a/ej2-asp-core-mvc/code-snippet/maps/bing/bingsublayer/tagHelper b/ej2-asp-core-mvc/code-snippet/maps/bing/bingsublayer/tagHelper
index e0d1536af6..3924f9a9c4 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/bing/bingsublayer/tagHelper
+++ b/ej2-asp-core-mvc/code-snippet/maps/bing/bingsublayer/tagHelper
@@ -3,7 +3,7 @@
-
+
diff --git a/ej2-asp-core-mvc/code-snippet/maps/drilldown/tagHelper b/ej2-asp-core-mvc/code-snippet/maps/drilldown/tagHelper
index f93e9201f9..1ebb86f0d4 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/drilldown/tagHelper
+++ b/ej2-asp-core-mvc/code-snippet/maps/drilldown/tagHelper
@@ -23,7 +23,7 @@
-
@@ -32,7 +32,7 @@
-
+
diff --git a/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/razor b/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/razor
index 64cc0b1f46..c9e3071605 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/razor
+++ b/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/razor
@@ -12,7 +12,7 @@
{
Enable = true,
ShouldZoomInitially = true,
- HorizontalAlignment = Alignment.Near
+ ToolbarSettings = new {horizontalAlignment = "Near"}
}).Layers(new List
{
new Syncfusion.EJ2.Maps.MapsLayer
diff --git a/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/tagHelper b/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/tagHelper
index 38f2e00fc9..2c59597c42 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/tagHelper
+++ b/ej2-asp-core-mvc/code-snippet/maps/markers/marker-zoom/tagHelper
@@ -9,13 +9,14 @@
{
new MapsMarker{Visible=true, DataSource=data}
};
+ var toolbarSettings = new { horizontalAlignment = "Near"};
}
@using Syncfusion.EJ2.Maps;
@using Syncfusion.EJ2;
-
+
diff --git a/ej2-asp-core-mvc/code-snippet/maps/print-export/export-tile/razor b/ej2-asp-core-mvc/code-snippet/maps/print-export/export-tile/razor
index 11d0c44d90..004a63027b 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/print-export/export-tile/razor
+++ b/ej2-asp-core-mvc/code-snippet/maps/print-export/export-tile/razor
@@ -1,7 +1,7 @@
@using Syncfusion.EJ2;
@Html.EJS().Button("togglebtn").IconCss("e-icons e-play-icon").Content("Export").CssClass("e-flat").Render()
@Html.EJS().Maps("maps").AllowImageExport(true).Layers(l=> {
- l.LayerType(Syncfusion.EJ2.Maps.ShapeLayerType.OSM).Add();
+ l.UrlTemplate("https://tile.openstreetmap.org/level/tileX/tileY.png").Add();
}).Render()
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper
new file mode 100644
index 0000000000..f37f4fc438
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper
@@ -0,0 +1,57 @@
+@using Syncfusion.EJ2.Maps;
+
+@{
+ var tooltip = new Syncfusion.EJ2.Maps.MapsTooltipSettings
+ {
+ Visible = true,
+ ValuePath = "name",
+ Format = "${name}: ${value1}",
+ Fill = "#D0D0D0",
+ TextStyle = new MapsFont
+ {
+ Color = "green",
+ FontFamily = "Times New Roman",
+ FontStyle = "Sans-serif"
+ },
+ Duration = 3000
+ };
+ var colormapping = new List {
+ new MapsColorMapping{ Color = "#b3daff",Value= "1" },
+ new MapsColorMapping { Color= "#80c1ff", Value = "2" },
+ new MapsColorMapping { Color= "#1a90ff", Value = "3" },
+ new MapsColorMapping { Color= "#005cb3", Value = "7" }
+ };
+ var data = new[]
+ {
+ new { name= "India", value1= "3", value2="2", country="India" },
+ new { name= "Dominican Rep.", value1= "3", value2="2", country="West Indies" },
+ new { name= "Cuba", value1= "3", value2="2", country="West Indies" },
+ new { name= "Jamaica", value1= "3", value2="2", country="West Indies" },
+ new { name= "Haiti", value1= "3", value2="2", country="West Indies" },
+ new { name= "Guyana", value1= "3", value2="2", country="West Indies" },
+ new { name= "Suriname", value1= "3", value2="2", country="West Indies" },
+ new { name= "Trinidad and Tobago", value1= "3", value2="2", country="West Indies" },
+ new { name= "Sri Lanka", value1= "3", value2="1", country="Sri Lanka" },
+ new { name= "United Kingdom", value1= "3", value2="0", country="England" },
+ new { name= "Pakistan", value1= "2", value2="1", country="Pakistan" },
+ new { name= "New Zealand", value1= "1", value2="0", country="New Zealand" },
+ new { name= "Australia", value1= "7", value2="5", country="Australia" },
+ };
+}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs
new file mode 100644
index 0000000000..90f18076ed
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using EJ2_Core_Application.Models;
+using Newtonsoft.Json;
+
+namespace EJ2_Core_Application.Controllers
+{
+ public class HomeController : Controller
+ {
+ public IActionResult Index()
+ {
+ ViewBag.worldmap = GetWorldMap();
+ ViewBag.worldMap = GetMap();
+ return View();
+ }
+ public object GetWorldMap()
+ {
+ string allText = System.IO.File.ReadAllText("./wwwroot/scripts/MapsData/WorldMap.js");
+ return JsonConvert.DeserializeObject(allText);
+ }
+ public object GetMap()
+ {
+ string allText = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/WorldMap.json"));
+ return JsonConvert.DeserializeObject(allText, typeof(object));
+ }
+ }
+}
diff --git a/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md b/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md
index a73f2650cf..307bcd9f19 100644
--- a/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md
+++ b/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md
@@ -36,11 +36,11 @@ This article describes the API migration process of Maps component from Essentia
| **Behavior** | **API in Essential JS 1** | **API in Essential JS 2** |
| --- | --- | --- |
| Type | Not Applicable | **Property:** *layers.type*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.Type('Layer')}).Render()`|
-| Layer Type | **Property:** *layers.layerType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(LayerType.Geometry)}))`| **Property:** *layers.layerType*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.LayerType('Geometry')}).Render()`|
+| Layer Type | **Property:** *layers.layerType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(LayerType.Geometry)}))`| **To render shape maps, you can use the shapeData property alone.**
**Property:** *layers.shapeData*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.ShapeData('usmap')}).Render()`
**To render OSM maps, you can use the urlTemplate property alone.**
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://tile.openstreetmap.org/level/tileX/tileY.png' }).Render()`|
| Visible | Not Applicable | **Property:** *layers.visible*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.Visible(true)}).Render()`|
-| Bing Map Type | **Property:** *layers.bingMapType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(Syncfusion.JavaScript.DataVisualization.Models.LayerType.Bing)}))`| **Property:** *layers.bingMapType*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.BingMapType('Aerial')}).Render()`|
+| Bing Map Type | **Property:** *layers.bingMapType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(Syncfusion.JavaScript.DataVisualization.Models.LayerType.Bing)}))`| **To render Bingmap, you can use the urlTemplate property by specifying the Bing map type directly in the URL**
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?' }).Render()`|
| Bing Map Key | **Property:** *layers.key*
`@(Html.EJ().Map("container").Layers(lr =>{lr.Key("")}))`
-| **Property:** *layers.key*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.Key('')}).Render()`|
+| **You can use the urlTemplate property by specifying the Bing map key directly in the URL**
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?' }).Render()`|
| URL Template | **Property:** *layers.urltemplate*
`@(Html.EJ().Map("container").Layers(lr =>{ir.Urltemplate:'http://a.tile.openstreetmap.org/level/tileX/tileY.png' }))`| **Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'http://a.tile.openstreetmap.org/level/tileX/tileY.png' }).Render()`|
| Shape Data | **Property:** *layers.shapeData*
`@(Html.EJ().Map("container").Layers(lr =>{lr.ShapeData(usmap).Add}))`| **Property:** *layers.shapeData*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.ShapeData('usmap')}).Render()`|
| Data Source | **Property:** *layers.dataSource*
`@(Html.EJ().Map("container").Layers(lr =>{lr.dataSource('PopulationData')}))`| **Property:** *layers.dataSource*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.DataSource('')}).Render()`|
@@ -166,13 +166,13 @@ This article describes the API migration process of Maps component from Essentia
| Pinch Zoom | Not Applicable | **Property:** *zoomSettings.pinchZooming*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{PinchZooming=true}).Render()`|
| Single Click Zoom | **Property:** *zoomSettings.enableZoomOnSelection*
`@(Html.EJ().Map("container").ZoomSettings(zm=>{zm.EnableZoomOnSelection(true)}))`| **Property:** *zoomSettings.zoomOnClick*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ZoomOnClick=true}).Render()`|
| Zoom Factor | **Property:** *zoomSettings.factor*
`@(Html.EJ().Map("container").ZoomSettings(zm=>{zm.Factor(2)}))`| **Property:** *zoomSettings.zoomFactor*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ ZoomFactor=2,}).Render()`|
-| Toolbars | Not Applicable | **Property:** *zoomSettings.toolbars*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{Toolbars =['ZoomIn']}).Render()`|
-| Toolbar Orientation | Not Applicable | **Property:** *zoomSettings.toolBarOrientation*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolBarOrientation= Syncfusion.EJ2.Maps.Orientation.Horizontal}).Render()`|
-| Toolbar Vertical Alignment | Not Applicable | **Property:** *zoomSettings.verticalAlignment*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{VerticalAlignment = Syncfusion.EJ2.Maps.Alignment.Center}).Render()`|
-| Toolbar Horizontal Alignment | Not Applicable | **Property:** *zoomSettings.horizontalAlignment*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{HorizontalAlignment=Syncfusion.EJ2.Maps.Alignment.Center}).Render()`|
-| Toolbar Highlight Color | Not Applicable | **Property:** *zoomSettings.highlightColor*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{HighlightColor="#e61576"}).Render()`|
-| Toolbar Selection Color | Not Applicable | **Property:** *zoomSettings.selectionColor*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{SelectionColor="#e61576"}).Render()`|
-| Toolbar Fill Color | Not Applicable | **Property:** *zoomSettings.color*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{Color="#e61576"}).Render()`|
+| Toolbars | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.toolbarItems*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new { buttonSettings = new { toolbarItems = new string[] { "ZoomIn" } } }}).Render()`|
+| Toolbar Orientation | Not Applicable | **Property:** *zoomSettings.toolbarSettings.orientation*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new {orientation = "Horizontal"}}).Render()`|
+| Toolbar Vertical Alignment | Not Applicable | **Property:** *zoomSettings.toolbarSettings.verticalAlignment*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new {verticalAlignment = "Center"}}).Render()`|
+| Toolbar Horizontal Alignment | Not Applicable | **Property:** *zoomSettings.toolbarSettings.horizontalAlignment*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new {horizontalAlignment = "Center"}}).Render()`|
+| Toolbar Highlight Color | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.highlightColor*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new { buttonSettings = new { highlightColor = "#e61576" } }}).Render()`|
+| Toolbar Selection Color | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.selectionColor*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new { buttonSettings = new { selectionColor = "#e61576" } }}).Render()`|
+| Toolbar Fill Color | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.color*
`@Html.EJS().Maps("container").ZoomSettings(new Syncfusion.EJ2.Maps.MapsZoomSettings{ToolbarSettings = new { buttonSettings = new { color = "#e61576"}).Render()`|
## Highlight And Selection Customization
diff --git a/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md b/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md
index 13a907e340..afcb90a358 100644
--- a/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md
+++ b/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md
@@ -43,23 +43,23 @@ This article describes the API migration process of Maps component from Essentia
| Pinch Zoom | Not Applicable | **Property:** *zoomSettings.pinchZooming*
``|
| Single Click Zoom | **Property:** *zoomSettings.enableZoomOnSelection*
`` | **Property:** *zoomSettings.zoomOnClick*
``|
| Zoom Factor | **Property:** *zoomSettings.factor*
`` | **Property:** *zoomSettings.zoomFactor*
``|
-| Toolbars | Not Applicable | **Property:** *zoomSettings.toolbars*
var toolBarCollection = new[] { "", "", "" };
``
``
``
``|
-| Toolbar Orientation | Not Applicable | **Property:** *zoomSettings.toolBarOrientation*
``|
-| Toolbar Vertical Alignment | Not Applicable | **Property:** *zoomSettings.verticalAlignment*
``|
-| Toolbar Horizontal Alignment | Not Applicable | **Property:** *zoomSettings.horizontalAlignment*
``|
-| Toolbar Highlight Color | Not Applicable | **Property:** *zoomSettings.highlightColor*
``|
-| Toolbar Selection Color | Not Applicable | **Property:** *zoomSettings.selectionColor*
``|
-| Toolbar Fill Color | Not Applicable | **Property:** *zoomSettings.color*
``|
+| Toolbars | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.toolbarItems*
var toolbarSettings = new { buttonSettings = new { toolbarItems = new string[] { "Zoom", "ZoomIn", "Pan", "Reset" } } };
``
``
``
``|
+| Toolbar Orientation | Not Applicable | **Property:** *zoomSettings.toolbarSettings.orientation*
var toolbarSettings = new { orientation = "Horizontal" };
``|
+| Toolbar Vertical Alignment | Not Applicable | **Property:** *zoomSettings.toolbarSettings.verticalAlignment*
var toolbarSettings = new { verticalAlignment = "Center" };
``|
+| Toolbar Horizontal Alignment | Not Applicable | **Property:** *zoomSettings.toolbarSettings.horizontalAlignment*
var toolbarSettings = new { horizontalAlignment = "Center" };
``|
+| Toolbar Highlight Color | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.highlightColor*
var toolbarSettings = new { buttonSettings = new { highlightColor = "#e61576" } };
``|
+| Toolbar Selection Color | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.selectionColor*
var toolbarSettings = new { buttonSettings = new { selectionColor = "#e61576" } };
``|
+| Toolbar Fill Color | Not Applicable | **Property:** *zoomSettings.toolbarSettings.buttonSettings.color*
var toolbarSettings = new { buttonSettings = new { color = "#e61576" } };
``|
## Layer Customization
| **Behavior** | **API in Essential JS 1** | **API in Essential JS 2** |
| --- | --- | --- |
| Type | Not Applicable | **Property:** *layers.type*
` `|
-| Layer Type | **Property:** *layers.layerType*
`` | **Property:** *layers.layerType*
` `|
+| Layer Type | **Property:** *layers.layerType*
`` | **To render shape maps, you can use the shapeData property alone.**
**Property:** *layers.shapeData*
` `
**To render OSM maps, you can use the urlTemplate property alone.**
**Property:** *layers.urlTemplate*
` `|
| Visible | Not Applicable | **Property:** *layers.visible*
` `|
-| Bing Map Type | **Property:** *layers.bingMapType*
`` | **Property:** *layers.bingMapType*
` `|
-| Bing Map Key | **Property:** *layers.key*
`` | **Property:** *layers.key*
` `|
+| Bing Map Type | **Property:** *layers.bingMapType*
`` | **To render Bingmap, you can use the urlTemplate property by specifying the Bing map type directly in the URL**
**Property:** *layers.urlTemplate*
` `|
+| Bing Map Key | **Property:** *layers.key*
`` | **You can use the urlTemplate property by specifying the Bing map key directly in the URL**
**Property:** *layers.urlTemplate*
` `|
| URL Template | **Property:** *layers.urltemplate*
`` | **Property:** *layers.urlTemplate*
` `|
| Shape Data | **Property:** *layers.shapeData*
`` | **Property:** *layers.shapeData*
` `|
| Data Source | **Property:** *layers.dataSource*
`` | **Property:** *layers.dataSource*
` `|
diff --git a/ej2-asp-core-mvc/maps/user-interactions.md b/ej2-asp-core-mvc/maps/user-interactions.md
index 52b39cd74c..39e939b569 100644
--- a/ej2-asp-core-mvc/maps/user-interactions.md
+++ b/ej2-asp-core-mvc/maps/user-interactions.md
@@ -901,6 +901,33 @@ The following properties are available in the `MapsTooltipSettings` to customize

+### Tooltip in mobile mode
+
+The **duration** property in `MapsTooltipSettings` allows you to change the duration of tooltips in mobile mode. By default, this property is set to **2000** milliseconds. Setting the value to **0** will keep the tooltip visible indefinitely. If it is greater than **0**, the tooltip will be removed after the specified time.
+
+{% if page.publishingplatform == "aspnet-core" %}
+
+{% tabs %}
+{% highlight cshtml tabtitle="CSHTML" %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/tagHelper %}
+{% endhighlight %}
+{% highlight c# tabtitle="Tooltip-duration.cs" %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs %}
+{% endhighlight %}
+{% endtabs %}
+
+{% elsif page.publishingplatform == "aspnet-mvc" %}
+
+{% tabs %}
+{% highlight razor tabtitle="CSHTML" %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/razor %}
+{% endhighlight %}
+{% highlight c# tabtitle="Tooltip-duration.cs" %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs %}
+{% endhighlight %}
+{% endtabs %}
+{% endif %}
+
### Tooltip template
The HTML element can be rendered in the tooltip of the Maps using the `Template` property of the `MapsTooltipSettings`. In the following example, ${value1} and ${value2} are the place holders in the HTML element to display the value1 and value2 values of the corresponding shape.
From 9b68ff06bbbc0487f911a50b83f00088cb342849 Mon Sep 17 00:00:00 2001
From: DinakarSF4212 <147583019+DinakarSF4212@users.noreply.github.com>
Date: Tue, 11 Jun 2024 16:15:06 +0530
Subject: [PATCH 017/145] 890332: Added typescript codes for open and save.
---
ej2-asp-core-mvc/spreadsheet/open-save.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/ej2-asp-core-mvc/spreadsheet/open-save.md b/ej2-asp-core-mvc/spreadsheet/open-save.md
index c5e6dd61d7..cb807c5909 100644
--- a/ej2-asp-core-mvc/spreadsheet/open-save.md
+++ b/ej2-asp-core-mvc/spreadsheet/open-save.md
@@ -146,6 +146,10 @@ Previously, when opening a workbook JSON object into the Spreadsheet using the `
Now, you have the option to selectively ignore some features during the opening of the JSON object by configuring deserialization options and passing them as arguments to the `openFromJson` method. This argument is optional, and if not configured, the entire workbook JSON object will be loaded without ignoring any features.
+```ts
+spreadsheet.openFromJson({ file: file }, { ignoreStyle: true });
+```
+
| Options | Description |
| ----- | ----- |
| onlyValues | If **true**, only the cell values will be loaded. |
@@ -331,6 +335,10 @@ Previously, when saving the Spreadsheet as a workbook JSON object using the `sav
Now, you have the option to selectively ignore some features while saving the Spreadsheet as a JSON object by configuring serialization options and passing them as arguments to the `saveAsJson` method. This argument is optional, and if not configured, the entire workbook JSON object will be saved without ignoring any features.
+```ts
+spreadsheet.saveAsJson({ onlyValues: true });
+```
+
| Options | Description |
| ----- | ----- |
| onlyValues | If **true**, includes only the cell values in the JSON output. |
From 3e4ee5450fbd66edd7f3adb4e1fb352d8374049d Mon Sep 17 00:00:00 2001
From: Indrajith <93306904+IndrajithSrinivasan@users.noreply.github.com>
Date: Tue, 11 Jun 2024 18:28:47 +0530
Subject: [PATCH 018/145] 885109: Updated casing changes
---
ej2-asp-core-mvc/otp-input/EJ2_ASP.MVC/getting-started.md | 2 +-
ej2-asp-core-mvc/otp-input/EJ2_ASP.NETCORE/getting-started.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ej2-asp-core-mvc/otp-input/EJ2_ASP.MVC/getting-started.md b/ej2-asp-core-mvc/otp-input/EJ2_ASP.MVC/getting-started.md
index 05adc85a94..ae84ff12d7 100644
--- a/ej2-asp-core-mvc/otp-input/EJ2_ASP.MVC/getting-started.md
+++ b/ej2-asp-core-mvc/otp-input/EJ2_ASP.MVC/getting-started.md
@@ -8,7 +8,7 @@ publishingplatform: ##Platform_Name##
documentation: ug
---
-# Getting Started with ASP.NET MVC OTP Input Control
+# Getting Started with ASP.NET MVC OTP Input control
This section briefly explains about how to include `ASP.NET MVC OTP Input` control in your ASP.NET MVC application using Visual Studio.
diff --git a/ej2-asp-core-mvc/otp-input/EJ2_ASP.NETCORE/getting-started.md b/ej2-asp-core-mvc/otp-input/EJ2_ASP.NETCORE/getting-started.md
index cf6bace5a0..c22f73835f 100644
--- a/ej2-asp-core-mvc/otp-input/EJ2_ASP.NETCORE/getting-started.md
+++ b/ej2-asp-core-mvc/otp-input/EJ2_ASP.NETCORE/getting-started.md
@@ -8,7 +8,7 @@ publishingplatform: ##Platform_Name##
documentation: ug
---
-# Getting Started with ASP.NET Core OTP Input Control
+# Getting Started with ASP.NET Core OTP Input control
This section briefly explains about how to include `ASP.NET Core OTP Input` control in your ASP.NET Core application using Visual Studio.
From 710ebc78c8d63910efab5d47fb49968885dde84e Mon Sep 17 00:00:00 2001
From: Mukilan Sethuraman
Date: Tue, 11 Jun 2024 18:42:35 +0530
Subject: [PATCH 019/145] 889448: Removed the deprecated APIs from the maps UG
documentation.
---
.../user-interactions/tooltip-duration/razor | 36 +---------------
.../tooltip-duration/tagHelper | 38 ++---------------
.../maps/EJ2_ASP.MVC/ej1-api-migration.md | 6 +--
.../maps/EJ2_ASP.NETCORE/ej1-api-migration.md | 6 +--
ej2-asp-core-mvc/maps/user-interactions.md | 42 +++++++++----------
5 files changed, 32 insertions(+), 96 deletions(-)
diff --git a/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/razor b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/razor
index 857ebc2376..5727d01a28 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/razor
+++ b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/razor
@@ -6,7 +6,6 @@
{
Visible = true,
ValuePath = "name",
- Format = "${name}: ${value1}",
Fill = "#D0D0D0",
TextStyle = new MapsFont
{
@@ -16,40 +15,9 @@
},
Duration = 3000
};
- var colormapping = new List {
- new MapsColorMapping{ Color = "#b3daff",Value= "1" },
- new MapsColorMapping { Color= "#80c1ff", Value = "2" },
- new MapsColorMapping { Color= "#1a90ff", Value = "3" },
- new MapsColorMapping { Color= "#005cb3", Value = "7" }
- };
- var data = new[]
- {
- new { name= "India", value1= "3", value2="2", country="India" },
- new { name= "Dominican Rep.", value1= "3", value2="2", country="West Indies" },
- new { name= "Cuba", value1= "3", value2="2", country="West Indies" },
- new { name= "Jamaica", value1= "3", value2="2", country="West Indies" },
- new { name= "Haiti", value1= "3", value2="2", country="West Indies" },
- new { name= "Guyana", value1= "3", value2="2", country="West Indies" },
- new { name= "Suriname", value1= "3", value2="2", country="West Indies" },
- new { name= "Trinidad and Tobago", value1= "3", value2="2", country="West Indies" },
- new { name= "Sri Lanka", value1= "3", value2="1", country="Sri Lanka" },
- new { name= "United Kingdom", value1= "3", value2="0", country="England" },
- new { name= "Pakistan", value1= "2", value2="1", country="Pakistan" },
- new { name= "New Zealand", value1= "1", value2="0", country="New Zealand" },
- new { name= "Australia", value1= "7", value2="5", country="Australia" },
- };
}
@Html.EJS().Maps("maps").TooltipRender("tooltipRender").Layers(l =>
{
- l.ShapeSettings(shape => shape.Fill("#E5E5E5").ColorValuePath("value1").ColorMapping(colormapping))
- .ShapeDataPath("name").ShapePropertyPath("name").DataSource(data).TooltipSettings(tooltip).ShapeData(ViewBag.worldMap).Add();
-}).Render()
-
-
\ No newline at end of file
+ l.TooltipSettings(tooltip).ShapeData(ViewBag.worldMap).Add();
+}).Render()
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper
index f37f4fc438..edc5a3dc7f 100644
--- a/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper
+++ b/ej2-asp-core-mvc/code-snippet/maps/user-interactions/tooltip-duration/tagHelper
@@ -5,7 +5,6 @@
{
Visible = true,
ValuePath = "name",
- Format = "${name}: ${value1}",
Fill = "#D0D0D0",
TextStyle = new MapsFont
{
@@ -15,43 +14,12 @@
},
Duration = 3000
};
- var colormapping = new List {
- new MapsColorMapping{ Color = "#b3daff",Value= "1" },
- new MapsColorMapping { Color= "#80c1ff", Value = "2" },
- new MapsColorMapping { Color= "#1a90ff", Value = "3" },
- new MapsColorMapping { Color= "#005cb3", Value = "7" }
- };
- var data = new[]
- {
- new { name= "India", value1= "3", value2="2", country="India" },
- new { name= "Dominican Rep.", value1= "3", value2="2", country="West Indies" },
- new { name= "Cuba", value1= "3", value2="2", country="West Indies" },
- new { name= "Jamaica", value1= "3", value2="2", country="West Indies" },
- new { name= "Haiti", value1= "3", value2="2", country="West Indies" },
- new { name= "Guyana", value1= "3", value2="2", country="West Indies" },
- new { name= "Suriname", value1= "3", value2="2", country="West Indies" },
- new { name= "Trinidad and Tobago", value1= "3", value2="2", country="West Indies" },
- new { name= "Sri Lanka", value1= "3", value2="1", country="Sri Lanka" },
- new { name= "United Kingdom", value1= "3", value2="0", country="England" },
- new { name= "Pakistan", value1= "2", value2="1", country="Pakistan" },
- new { name= "New Zealand", value1= "1", value2="0", country="New Zealand" },
- new { name= "Australia", value1= "7", value2="5", country="Australia" },
- };
}
-
+
-
-
+
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md b/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md
index 307bcd9f19..7aff18e010 100644
--- a/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md
+++ b/ej2-asp-core-mvc/maps/EJ2_ASP.MVC/ej1-api-migration.md
@@ -36,11 +36,11 @@ This article describes the API migration process of Maps component from Essentia
| **Behavior** | **API in Essential JS 1** | **API in Essential JS 2** |
| --- | --- | --- |
| Type | Not Applicable | **Property:** *layers.type*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.Type('Layer')}).Render()`|
-| Layer Type | **Property:** *layers.layerType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(LayerType.Geometry)}))`| **To render shape maps, you can use the shapeData property alone.**
**Property:** *layers.shapeData*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.ShapeData('usmap')}).Render()`
**To render OSM maps, you can use the urlTemplate property alone.**
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://tile.openstreetmap.org/level/tileX/tileY.png' }).Render()`|
+| Layer Type | **Property:** *layers.layerType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(LayerType.Geometry)}))`| To render shape maps, there is no need to mention the layer type. You can use the `shapeData` property alone.
**Property:** *layers.shapeData*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.ShapeData('usmap')}).Render()`
To render online maps, there is no need to mention the layer type. You can use the `urlTemplate` property alone.
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://tile.openstreetmap.org/level/tileX/tileY.png' }).Render()`|
| Visible | Not Applicable | **Property:** *layers.visible*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.Visible(true)}).Render()`|
-| Bing Map Type | **Property:** *layers.bingMapType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(Syncfusion.JavaScript.DataVisualization.Models.LayerType.Bing)}))`| **To render Bingmap, you can use the urlTemplate property by specifying the Bing map type directly in the URL**
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?' }).Render()`|
+| Bing Map Type | **Property:** *layers.bingMapType*
`@(Html.EJ().Map("container").Layers(lr =>{lr.LayerType(Syncfusion.JavaScript.DataVisualization.Models.LayerType.Bing)}))`| There is no need to mention the type of Bing Maps. The type of Bing Maps will be available in the URL that you mention in the `getBingUrlTemplate` method.
**Property:** *getBingUrlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(layer =>{layer.Add(); }).Render()`
function load(args) {
args.maps.getBingUrlTemplate("https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?").then(function(url) {
args.maps.layers[0].urlTemplate= url;
});
}|
| Bing Map Key | **Property:** *layers.key*
`@(Html.EJ().Map("container").Layers(lr =>{lr.Key("")}))`
-| **You can use the urlTemplate property by specifying the Bing map key directly in the URL**
**Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?' }).Render()`|
+| There is no need to mention the key for the online maps. The key will be available in the URL that you mention in the `urlTemplate` property. For Bing Maps, the key will be available in the URL that you mention in the `getBingUrlTemplate` method.
**Property:** *getBingUrlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(layer =>{layer.Add(); }).Render()`
function load(args) {
args.maps.getBingUrlTemplate("https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?").then(function(url) {
args.maps.layers[0].urlTemplate= url;
});
}|
| URL Template | **Property:** *layers.urltemplate*
`@(Html.EJ().Map("container").Layers(lr =>{ir.Urltemplate:'http://a.tile.openstreetmap.org/level/tileX/tileY.png' }))`| **Property:** *layers.urlTemplate*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.UrlTemplate:'http://a.tile.openstreetmap.org/level/tileX/tileY.png' }).Render()`|
| Shape Data | **Property:** *layers.shapeData*
`@(Html.EJ().Map("container").Layers(lr =>{lr.ShapeData(usmap).Add}))`| **Property:** *layers.shapeData*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.ShapeData('usmap')}).Render()`|
| Data Source | **Property:** *layers.dataSource*
`@(Html.EJ().Map("container").Layers(lr =>{lr.dataSource('PopulationData')}))`| **Property:** *layers.dataSource*
`@Html.EJS().Maps("container").Load("load").Layers(lr =>{lr.DataSource('')}).Render()`|
diff --git a/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md b/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md
index afcb90a358..3b0d018e36 100644
--- a/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md
+++ b/ej2-asp-core-mvc/maps/EJ2_ASP.NETCORE/ej1-api-migration.md
@@ -56,10 +56,10 @@ This article describes the API migration process of Maps component from Essentia
| **Behavior** | **API in Essential JS 1** | **API in Essential JS 2** |
| --- | --- | --- |
| Type | Not Applicable | **Property:** *layers.type*
` `|
-| Layer Type | **Property:** *layers.layerType*
`` | **To render shape maps, you can use the shapeData property alone.**
**Property:** *layers.shapeData*
` `
**To render OSM maps, you can use the urlTemplate property alone.**
**Property:** *layers.urlTemplate*
` `|
+| Layer Type | **Property:** *layers.layerType*
`` | To render shape maps, there is no need to mention the layer type. You can use the `shapeData` property alone.
**Property:** *layers.shapeData*
` `
To render online maps, there is no need to mention the layer type. You can use the `urlTemplate` property alone.
**Property:** *layers.urlTemplate*
` `|
| Visible | Not Applicable | **Property:** *layers.visible*
` `|
-| Bing Map Type | **Property:** *layers.bingMapType*
`` | **To render Bingmap, you can use the urlTemplate property by specifying the Bing map type directly in the URL**
**Property:** *layers.urlTemplate*
` `|
-| Bing Map Key | **Property:** *layers.key*
`` | **You can use the urlTemplate property by specifying the Bing map key directly in the URL**
**Property:** *layers.urlTemplate*
` `|
+| Bing Map Type | **Property:** *layers.bingMapType*
`` | There is no need to mention the type of Bing Maps. The type of Bing Maps will be available in the URL that you mention in the `getBingUrlTemplate` method.
**Property:** *getBingUrlTemplate*
` `
function load(args) {
args.maps.getBingUrlTemplate("https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?").then(function(url) {
args.maps.layers[0].urlTemplate= url;
});
}|
+| Bing Map Key | **Property:** *layers.key*
`` | There is no need to mention the key for the online maps. The key will be available in the URL that you mention in the `urlTemplate` property. For Bing Maps, the key will be available in the URL that you mention in the `getBingUrlTemplate` method.
**Property:** *getBingUrlTemplate*
` `
function load(args) {
args.maps.getBingUrlTemplate("https://dev.virtualearth.net/REST/V1/Imagery/Metadata/Aerial?output=json&uriScheme=https&key=?").then(function(url) {
args.maps.layers[0].urlTemplate= url;
});
}|
| URL Template | **Property:** *layers.urltemplate*
`` | **Property:** *layers.urlTemplate*
` `|
| Shape Data | **Property:** *layers.shapeData*
`` | **Property:** *layers.shapeData*
` `|
| Data Source | **Property:** *layers.dataSource*
`` | **Property:** *layers.dataSource*
` `|
diff --git a/ej2-asp-core-mvc/maps/user-interactions.md b/ej2-asp-core-mvc/maps/user-interactions.md
index 39e939b569..8a5a00d00a 100644
--- a/ej2-asp-core-mvc/maps/user-interactions.md
+++ b/ej2-asp-core-mvc/maps/user-interactions.md
@@ -901,18 +901,18 @@ The following properties are available in the `MapsTooltipSettings` to customize

-### Tooltip in mobile mode
+### Tooltip template
-The **duration** property in `MapsTooltipSettings` allows you to change the duration of tooltips in mobile mode. By default, this property is set to **2000** milliseconds. Setting the value to **0** will keep the tooltip visible indefinitely. If it is greater than **0**, the tooltip will be removed after the specified time.
+The HTML element can be rendered in the tooltip of the Maps using the `Template` property of the `MapsTooltipSettings`. In the following example, ${value1} and ${value2} are the place holders in the HTML element to display the value1 and value2 values of the corresponding shape.
{% if page.publishingplatform == "aspnet-core" %}
{% tabs %}
{% highlight cshtml tabtitle="CSHTML" %}
-{% include code-snippet/maps/user-interactions/tooltip-duration/tagHelper %}
+{% include code-snippet/maps/user-interactions/tooltip-template/tagHelper %}
{% endhighlight %}
-{% highlight c# tabtitle="Tooltip-duration.cs" %}
-{% include code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs %}
+{% highlight c# tabtitle="Tooltip-template.cs" %}
+{% include code-snippet/maps/user-interactions/tooltip-template/tooltip-template.cs %}
{% endhighlight %}
{% endtabs %}
@@ -920,26 +920,30 @@ The **duration** property in `MapsTooltipSettings` allows you to change the dura
{% tabs %}
{% highlight razor tabtitle="CSHTML" %}
-{% include code-snippet/maps/user-interactions/tooltip-duration/razor %}
+{% include code-snippet/maps/user-interactions/tooltip-template/razor %}
{% endhighlight %}
-{% highlight c# tabtitle="Tooltip-duration.cs" %}
-{% include code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs %}
+{% highlight c# tabtitle="Tooltip-template.cs" %}
+{% include code-snippet/maps/user-interactions/tooltip-template/tooltip-template.cs %}
{% endhighlight %}
{% endtabs %}
{% endif %}
-### Tooltip template
-The HTML element can be rendered in the tooltip of the Maps using the `Template` property of the `MapsTooltipSettings`. In the following example, ${value1} and ${value2} are the place holders in the HTML element to display the value1 and value2 values of the corresponding shape.
+
+
+
+### Changing duration in mobile devices
+
+To change the duration of the tooltips and tooltip templates in mobile devices, you can use the `duration` property in `MapsTooltipSettings`. By default, this property is set to **2000** milliseconds. Setting the value to **0** will keep the tooltip visible indefinitely. If it is greater than **0**, the tooltip will be removed after the specified time.
{% if page.publishingplatform == "aspnet-core" %}
{% tabs %}
{% highlight cshtml tabtitle="CSHTML" %}
-{% include code-snippet/maps/user-interactions/tooltip-template/tagHelper %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/tagHelper %}
{% endhighlight %}
-{% highlight c# tabtitle="Tooltip-template.cs" %}
-{% include code-snippet/maps/user-interactions/tooltip-template/tooltip-template.cs %}
+{% highlight c# tabtitle="Tooltip-duration.cs" %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs %}
{% endhighlight %}
{% endtabs %}
@@ -947,14 +951,10 @@ The HTML element can be rendered in the tooltip of the Maps using the `Template`
{% tabs %}
{% highlight razor tabtitle="CSHTML" %}
-{% include code-snippet/maps/user-interactions/tooltip-template/razor %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/razor %}
{% endhighlight %}
-{% highlight c# tabtitle="Tooltip-template.cs" %}
-{% include code-snippet/maps/user-interactions/tooltip-template/tooltip-template.cs %}
+{% highlight c# tabtitle="Tooltip-duration.cs" %}
+{% include code-snippet/maps/user-interactions/tooltip-duration/tooltip-duration.cs %}
{% endhighlight %}
{% endtabs %}
-{% endif %}
-
-
-
-
\ No newline at end of file
+{% endif %}
\ No newline at end of file
From bf86a6a0244741ba88630e78684a257cc04c1543 Mon Sep 17 00:00:00 2001
From: Jaganaath24-Baskaran
Date: Tue, 11 Jun 2024 18:48:56 +0530
Subject: [PATCH 020/145] 890682: committed ug for IE and QB new features
---
.../image-editor/z-order/default.cs | 4 +
.../code-snippet/image-editor/z-order/razor | 36 +++++++++
.../image-editor/z-order/tagHelper | 36 +++++++++
.../query-builder/drag-and-drop/default.cs | 68 ++++++++++++++++
.../query-builder/drag-and-drop/razor | 13 +++
.../query-builder/drag-and-drop/tagHelper | 14 ++++
.../separate-connector/default.cs | 76 ++++++++++++++++++
.../query-builder/separate-connector/razor | 14 ++++
.../separate-connector/tagHelper | 14 ++++
.../image-editor/images/z-order.png | Bin 0 -> 101702 bytes
ej2-asp-core-mvc/image-editor/z-order.md | 53 ++++++++++++
.../query-builder/drag-and-drop.md | 41 ++++++++++
.../query-builder/images/drag-and-drop.png | Bin 0 -> 31313 bytes
.../images/separate-connector.png | Bin 0 -> 35954 bytes
.../query-builder/separate-connector.md | 41 ++++++++++
ej2-asp-core-toc.html | 3 +
ej2-asp-mvc-toc.html | 3 +
17 files changed, 416 insertions(+)
create mode 100644 ej2-asp-core-mvc/code-snippet/image-editor/z-order/default.cs
create mode 100644 ej2-asp-core-mvc/code-snippet/image-editor/z-order/razor
create mode 100644 ej2-asp-core-mvc/code-snippet/image-editor/z-order/tagHelper
create mode 100644 ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/default.cs
create mode 100644 ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/razor
create mode 100644 ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/tagHelper
create mode 100644 ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/default.cs
create mode 100644 ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/razor
create mode 100644 ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/tagHelper
create mode 100644 ej2-asp-core-mvc/image-editor/images/z-order.png
create mode 100644 ej2-asp-core-mvc/image-editor/z-order.md
create mode 100644 ej2-asp-core-mvc/query-builder/drag-and-drop.md
create mode 100644 ej2-asp-core-mvc/query-builder/images/drag-and-drop.png
create mode 100644 ej2-asp-core-mvc/query-builder/images/separate-connector.png
create mode 100644 ej2-asp-core-mvc/query-builder/separate-connector.md
diff --git a/ej2-asp-core-mvc/code-snippet/image-editor/z-order/default.cs b/ej2-asp-core-mvc/code-snippet/image-editor/z-order/default.cs
new file mode 100644
index 0000000000..aa9ed51b46
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/image-editor/z-order/default.cs
@@ -0,0 +1,4 @@
+public ActionResult Default()
+{
+ return View();
+}
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/image-editor/z-order/razor b/ej2-asp-core-mvc/code-snippet/image-editor/z-order/razor
new file mode 100644
index 0000000000..b4f14b4ad2
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/image-editor/z-order/razor
@@ -0,0 +1,36 @@
+
+ @Html.EJS().ImageEditor("image-editor").Created("created").Render()
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/image-editor/z-order/tagHelper b/ej2-asp-core-mvc/code-snippet/image-editor/z-order/tagHelper
new file mode 100644
index 0000000000..93c571c8ec
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/image-editor/z-order/tagHelper
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/default.cs b/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/default.cs
new file mode 100644
index 0000000000..93a950f403
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/default.cs
@@ -0,0 +1,68 @@
+public ActionResult Index()
+ {
+ QueryBuilderRule rule = new QueryBuilderRule()
+ {
+ Condition = "and",
+ Rules = new List()
+ {
+ new QueryBuilderRule { Label="Employee ID", Field="EmployeeID", Type="number", Operator="equal", Value = 1 },
+ new QueryBuilderRule { Label="Title", Field="Title", Type="string", Operator="equal", Value = "Sales Manager" }
+ }
+ };
+
+ ViewBag.rule = rule;
+ ViewBag.dataSource = EmployeeView.GetAllRecords();
+ return View();
+ }
+
+public class EmployeeView
+ {
+ public EmployeeView()
+ {
+
+ }
+ public EmployeeView(int EmployeeID, string FirstName, string LastName, string Title, DateTime BirthDate, DateTime HireDate, int ReportsTo, string Address, string PostalCode, string Phone, string City, string Country)
+ {
+ this.EmployeeID = EmployeeID;
+ this.FirstName = FirstName;
+ this.LastName = LastName;
+ this.Title = Title;
+ this.BirthDate = BirthDate;
+ this.HireDate = HireDate;
+ this.ReportsTo = ReportsTo;
+ this.Address = Address;
+ this.PostalCode = PostalCode;
+ this.Phone = Phone;
+ this.City = City;
+ this.Country = Country;
+
+ }
+ public int EmployeeID { get; set; }
+ public string FirstName { get; set; }
+ public string LastName { get; set; }
+ public string Title { get; set; }
+ public DateTime BirthDate { get; set; }
+ public DateTime HireDate { get; set; }
+
+ public int ReportsTo { get; set; }
+
+ public string Address { get; set; }
+ public string PostalCode { get; set; }
+ public string Phone { get; set; }
+ public string City { get; set; }
+ public string Country { get; set; }
+ public static List GetAllRecords()
+ {
+ List Emp = new List();
+ Emp.Add(new EmployeeView(1, "Nancy", "Davolio", "Sales Representative", new DateTime(1948, 12, 08), new DateTime(1992, 05, 01), 2, "507 - 20th Ave. E.Apt. 2A ", " 98122", "(206) 555-9857 ", "Seattle ", "USA"));
+ Emp.Add(new EmployeeView(2, "Andrew", "Fuller", "Vice President, Sales", new DateTime(1952, 02, 19), new DateTime(1992, 08, 14), 4, "908 W. Capital Way", "98401 ", "(206) 555-9482 ", "Kirkland ", "USA"));
+ Emp.Add(new EmployeeView(3, "Janet", "Leverling", "Sales Representative", new DateTime(1963, 08, 30), new DateTime(1992, 04, 01), 3, " 4110 Old Redmond Rd.", "98052 ", "(206) 555-8122", "Redmond ", "USA "));
+ Emp.Add(new EmployeeView(4, "Margaret", "Peacock", "Sales Representative", new DateTime(1937, 09, 19), new DateTime(1993, 05, 03), 6, "14 Garrett Hill ", "SW1 8JR ", "(71) 555-4848 ", "London ", "UK "));
+ Emp.Add(new EmployeeView(5, "Steven", "Buchanan", "Sales Manager", new DateTime(1955, 03, 04), new DateTime(1993, 10, 17), 8, "Coventry HouseMiner Rd. ", "EC2 7JR ", " (206) 555-8122", "Tacoma ", " USA"));
+ Emp.Add(new EmployeeView(6, "Michael", "Suyama", "Sales Representative", new DateTime(1963, 07, 02), new DateTime(1993, 10, 17), 2, " 7 Houndstooth Rd.", " WG2 7LT", "(71) 555-4444 ", "London ", "UK "));
+ Emp.Add(new EmployeeView(7, "Robert", "King", "Sales Representative", new DateTime(1960, 05, 29), new DateTime(1994, 01, 02), 7, "Edgeham HollowWinchester Way ", "RG1 9SP ", "(71) 555-5598 ", "London ", " UK"));
+ Emp.Add(new EmployeeView(8, "Laura", "Callahan", "Inside Sales Coordinator", new DateTime(1958, 01, 09), new DateTime(1994, 03, 05), 9, "722 Moss Bay Blvd. ", "98033 ", " (206) 555-3412", "Seattle ", "USA "));
+ Emp.Add(new EmployeeView(9, "Anne", "Dodsworth", "Sales Representative", new DateTime(1966, 01, 27), new DateTime(1994, 11, 15), 5, "4726 - 11th Ave. N.E. ", "98105 ", "(71) 555-5598 ", " London", "UK "));
+ return Emp;
+ }
+ }
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/razor b/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/razor
new file mode 100644
index 0000000000..e1ede20874
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/razor
@@ -0,0 +1,13 @@
+ @Html.EJS().QueryBuilder("querybuilder").Width("72%").Columns(col =>
+ {
+ col.Field("EmployeeID").Label("Employee ID").Type("number").Add();
+ col.Field("FirstName").Label("First Name").Type("string").Add();
+ col.Field("TitleOfCourtesy").Label("Title Of Courtesy").Type("boolean").Values(new List { "Mr.", "Mrs." }).Add();
+ col.Field("Title").Label("Title").Type("string").Add();
+ col.Field("HireDate").Label("Hire Date").Type("date").Format("dd/MM/yyyy").Add();
+ col.Field("Country").Label("Country").Type("string").Add();
+ col.Field("City").Label("City").Type("string").Add();
+ }).Rule(ViewBag.rule).AllowDragAndDrop(true).Render()
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/tagHelper b/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/tagHelper
new file mode 100644
index 0000000000..d61ca1852a
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/query-builder/drag-and-drop/tagHelper
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/default.cs b/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/default.cs
new file mode 100644
index 0000000000..173ff919be
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/default.cs
@@ -0,0 +1,76 @@
+public ActionResult Index()
+ {
+ QueryBuilderRule rule = new QueryBuilderRule()
+ {
+ Condition = "",
+ Rules = new List()
+ {
+ new QueryBuilderRule { Label="First Name", Field="FirstName", Type="string", Operator="startswith", Value="Andre", Condition = "and" },
+ new QueryBuilderRule { Label="Last Name", Field="LastName", Type="string", Operator="in", Value = new List { "Davolio", "Buchanan" }, Condition = "or" },
+ new QueryBuilderRule { Label="Employee ID", Field="EmployeeID", Type="number", Operator="greaterthan", Value=30, Condition = "and" },
+ new QueryBuilderRule { Condition="or", Rules = new List()
+ {
+ new QueryBuilderRule { Label="Title", Field="Title", Type="string", Operator="startswith", Value="Sales Manager", Condition = "and" },
+ new QueryBuilderRule { Label="Country", Field="Country", Type="string", Operator="equal", Value="USA" }
+ }},
+ new QueryBuilderRule { Label="Hire Date", Field="HireDate", Type="date", Operator="between", Value=new List { "11/28/2023", "11/30/2023" } }
+
+ }
+ };
+
+ ViewBag.rule = rule;
+ ViewBag.dataSource = EmployeeView.GetAllRecords();
+ return View();
+ }
+
+public class EmployeeView
+ {
+ public EmployeeView()
+ {
+
+ }
+ public EmployeeView(int EmployeeID, string FirstName, string LastName, string Title, DateTime BirthDate, DateTime HireDate, int ReportsTo, string Address, string PostalCode, string Phone, string City, string Country)
+ {
+ this.EmployeeID = EmployeeID;
+ this.FirstName = FirstName;
+ this.LastName = LastName;
+ this.Title = Title;
+ this.BirthDate = BirthDate;
+ this.HireDate = HireDate;
+ this.ReportsTo = ReportsTo;
+ this.Address = Address;
+ this.PostalCode = PostalCode;
+ this.Phone = Phone;
+ this.City = City;
+ this.Country = Country;
+
+ }
+ public int EmployeeID { get; set; }
+ public string FirstName { get; set; }
+ public string LastName { get; set; }
+ public string Title { get; set; }
+ public DateTime BirthDate { get; set; }
+ public DateTime HireDate { get; set; }
+
+ public int ReportsTo { get; set; }
+
+ public string Address { get; set; }
+ public string PostalCode { get; set; }
+ public string Phone { get; set; }
+ public string City { get; set; }
+ public string Country { get; set; }
+ public static List GetAllRecords()
+ {
+ List Emp = new List();
+ Emp.Add(new EmployeeView(1, "Nancy", "Davolio", "Sales Representative", new DateTime(1948, 12, 08), new DateTime(1992, 05, 01), 2, "507 - 20th Ave. E.Apt. 2A ", " 98122", "(206) 555-9857 ", "Seattle ", "USA"));
+ Emp.Add(new EmployeeView(2, "Andrew", "Fuller", "Vice President, Sales", new DateTime(1952, 02, 19), new DateTime(1992, 08, 14), 4, "908 W. Capital Way", "98401 ", "(206) 555-9482 ", "Kirkland ", "USA"));
+ Emp.Add(new EmployeeView(3, "Janet", "Leverling", "Sales Representative", new DateTime(1963, 08, 30), new DateTime(1992, 04, 01), 3, " 4110 Old Redmond Rd.", "98052 ", "(206) 555-8122", "Redmond ", "USA "));
+ Emp.Add(new EmployeeView(4, "Margaret", "Peacock", "Sales Representative", new DateTime(1937, 09, 19), new DateTime(1993, 05, 03), 6, "14 Garrett Hill ", "SW1 8JR ", "(71) 555-4848 ", "London ", "UK "));
+ Emp.Add(new EmployeeView(5, "Steven", "Buchanan", "Sales Manager", new DateTime(1955, 03, 04), new DateTime(1993, 10, 17), 8, "Coventry HouseMiner Rd. ", "EC2 7JR ", " (206) 555-8122", "Tacoma ", " USA"));
+ Emp.Add(new EmployeeView(6, "Michael", "Suyama", "Sales Representative", new DateTime(1963, 07, 02), new DateTime(1993, 10, 17), 2, " 7 Houndstooth Rd.", " WG2 7LT", "(71) 555-4444 ", "London ", "UK "));
+ Emp.Add(new EmployeeView(7, "Robert", "King", "Sales Representative", new DateTime(1960, 05, 29), new DateTime(1994, 01, 02), 7, "Edgeham HollowWinchester Way ", "RG1 9SP ", "(71) 555-5598 ", "London ", " UK"));
+ Emp.Add(new EmployeeView(8, "Laura", "Callahan", "Inside Sales Coordinator", new DateTime(1958, 01, 09), new DateTime(1994, 03, 05), 9, "722 Moss Bay Blvd. ", "98033 ", " (206) 555-3412", "Seattle ", "USA "));
+ Emp.Add(new EmployeeView(9, "Anne", "Dodsworth", "Sales Representative", new DateTime(1966, 01, 27), new DateTime(1994, 11, 15), 5, "4726 - 11th Ave. N.E. ", "98105 ", "(71) 555-5598 ", " London", "UK "));
+ return Emp;
+ }
+ }
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/razor b/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/razor
new file mode 100644
index 0000000000..2fb11230d6
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/razor
@@ -0,0 +1,14 @@
+ @Html.EJS().QueryBuilder("querybuilder").Width("72%").Columns(col =>
+ {
+ col.Field("EmployeeID").Label("Employee ID").Type("number").Add();
+ col.Field("FirstName").Label("First Name").Type("string").Add();
+ col.Field("TitleOfCourtesy").Label("Title Of Courtesy").Type("boolean").Values(new List { "Mr.", "Mrs." }).Add();
+ col.Field("Title").Label("Title").Type("string").Add();
+ col.Field("HireDate").Label("Hire Date").Type("date").Format("dd/MM/yyyy").Add();
+ col.Field("Country").Label("Country").Type("string").Add();
+ col.Field("City").Label("City").Type("string").Add();
+ }).Rule(ViewBag.rule).EnableSeparateConnector(true).Render()
+
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/tagHelper b/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/tagHelper
new file mode 100644
index 0000000000..c84fe1c83b
--- /dev/null
+++ b/ej2-asp-core-mvc/code-snippet/query-builder/separate-connector/tagHelper
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ej2-asp-core-mvc/image-editor/images/z-order.png b/ej2-asp-core-mvc/image-editor/images/z-order.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b13de9e2641864c5498819346f8d48b050e3ef0
GIT binary patch
literal 101702
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