From 72b22776fbc9f992939ad8d2a8be0aa51ab48316 Mon Sep 17 00:00:00 2001 From: ManoMurugan Date: Fri, 3 Oct 2025 09:54:49 +0530 Subject: [PATCH 01/21] 984868: Update screen reader support in UG documentation --- blazor/common/accessibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/common/accessibility.md b/blazor/common/accessibility.md index dd0e23b53b..db37eb65d0 100644 --- a/blazor/common/accessibility.md +++ b/blazor/common/accessibility.md @@ -1004,7 +1004,7 @@ DocumentEditor Intermediate -No +Yes Yes From c422eb07ac70abc9cb3cccd2a0f576f8e6da54e5 Mon Sep 17 00:00:00 2001 From: TamilRamGanesan-SF5080 Date: Mon, 13 Oct 2025 13:11:59 +0530 Subject: [PATCH 02/21] 986172: updated concerns in md file --- .../ai-integrations/gemini-integration.md | 51 ++++++++++++------- .../ai-integrations/openai-integration.md | 42 +++++++++++---- 2 files changed, 65 insertions(+), 28 deletions(-) diff --git a/blazor/ai-assistview/ai-integrations/gemini-integration.md b/blazor/ai-assistview/ai-integrations/gemini-integration.md index 3b2189b3d1..1215854c74 100644 --- a/blazor/ai-assistview/ai-integrations/gemini-integration.md +++ b/blazor/ai-assistview/ai-integrations/gemini-integration.md @@ -7,25 +7,31 @@ control: AI AssistView documentation: ug --- -# Gemini AI With Blazor AI AssistView component +# Integrate Gemini AI With Blazor AI AssistView component -The Syncfusion AI AssistView supports integration with [Gemini](https://ai.google.dev/gemini-api/docs/quickstart), enabling advanced conversational AI features in applications. +The AI AssistView component integrates seamlessly with Google’s [Gemini](https://ai.google.dev/gemini-api/docs/quickstart) API to enable conversational interfaces. It supports natural language understanding, maintains context across interactions, and delivers relevant responses. To activate these capabilities, configure the component with proper authentication and secure data handling for smooth communication with the Gemini API. ## Prerequisites -* Google account to generate an API key for accessing [Gemini AI](https://ai.google.dev/gemini-api/docs/quickstart) -* Syncfusion AI AssistView for Blazor package [Syncfusion.Blazor.InteractiveChat](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed in the project. -* [Markdig](https://www.nuget.org/packages/Markdig) package available in the project for Markdown-to-HTML conversion (required by the sample code). +Before starting, ensure you have the following: -## Getting Started with the AI AssistView Component +* Google Account: For generating a Gemini API key. -Before integrating Gemini AI, ensure that the Syncfusion AI AssistView renders correctly in the application and that prerequisites are met: +* Syncfusion AI AssistView: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. + +* [Markdig](https://www.nuget.org/packages/Markdig) package: For parsing Markdown responses. + +## Set Up the AI AssistView Component + +Follow the Syncfusion AI AssistView Getting Started guide to configure and render the AI AssistView component in the application and that prerequisites are met: [Blazor Getting Started Guide](../getting-started) ## Install Dependencies -Install the Syncfusion Blazor package in the application. +Install the required packages: + +1. Syncfusion Blazor package: ```bash @@ -33,7 +39,7 @@ Nuget\Install-Package Syncfusion.Blazor.InteractiveChat ``` -Install the Gemini AI package in the application. +2. Install the `Gemini AI` nuget package in the application. ```bash @@ -41,21 +47,29 @@ Nuget\Install-Package Mscc.GenerativeAI ``` +3. Install the `Markdig` nuget packages in the application. + +```bash + +Nuget\Install-Package Markdig + +``` + ## Generate API Key -1. Go to [Google AI Studio](https://aistudio.google.com/app/api-keys) and sign in with a google account. Create a new account if needed. +1. Access Google AI Studio: Instructs users to sign into [Google AI Studio](https://aistudio.google.com/app/apikey) with a Google account or create a new account if needed. -2. Select `Get API key` from the left menu or the top-right of the dashboard. +2. Navigate to API Key Creation: Go to the `Get API Key` option in the left-hand menu or top-right corner of the dashboard. Click the `Create API Key` button. -3. Choose `Create API key`. Select an existing google cloud project or create a new one, then proceed. +3. Project Selection: Choose an existing Google Cloud project or create a new one. -4. After creating or selecting a project, an API key is generated and displayed. Copy the key and store it securely, as it may be shown only once. +4. API Key Generation: After project selection, the API key is generated. Users are instructed to copy and store the key securely, as it is shown only once. -> Security note: Do not commit API keys to version control. Use environment variables, a secret manager, or a server-side proxy in production. +> Security note: Advises against committing the API key to version control and recommends using environment variables or a secret manager in production. ## Gemini AI with AI AssistView -* Add the generated API key in the following line. +* Add your Gemini API key securely in the configuration: ```bash @@ -72,6 +86,7 @@ const string GeminiApiKey = 'Place your API key here'; @using Markdig
+// Initializes the AI Assist component @@ -98,13 +113,15 @@ const string GeminiApiKey = 'Place your API key here'; "What are the best tools for organizing my tasks?", "How can I maintain work-life balance effectively?" }; + // Initialize Gemini API private readonly string geminiApiKey = ""; + // Handle user prompt: call Gemini model private async Task OnPromptRequest(AssistViewPromptRequestedEventArgs args) { try { - var gemini = new GoogleAI(apiKey: geminiApiKey); - var model = gemini.GenerativeModel(model: "gemini-1.5-flash"); + var gemini = new GoogleAI(apiKey: geminiApiKey); // Replace with your Gemini API key + var model = gemini.GenerativeModel(model: "gemini-2.5-flash"); // Select the Gemini model (update model name as needed) var response = await model.GenerateContent(args.Prompt); var responseText = response.Text; var pipeline = new MarkdownPipelineBuilder() diff --git a/blazor/ai-assistview/ai-integrations/openai-integration.md b/blazor/ai-assistview/ai-integrations/openai-integration.md index 57b85c5649..81e76401c4 100644 --- a/blazor/ai-assistview/ai-integrations/openai-integration.md +++ b/blazor/ai-assistview/ai-integrations/openai-integration.md @@ -7,24 +7,30 @@ control: AI AssistView documentation: ug --- -# Azure OpenAI With Blazor AI AssistView component +# Integrate Azure OpenAI with Blazor AI AssistView component -The Syncfusion AI AssistView supports integration with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai), enabling advanced conversational AI features in your applications. +The AI AssistView component integrates seamlessly with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your Angular applications. The component acts as a user interface for a support bot, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. ## Prerequisites +Before starting, ensure you have the following: -- An Azure account with access to [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. -- Syncfusion AI AssistView for Blazor [Syncfusion.Blazor.InteractiveChat](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed in the project +* An Azure account: with access to [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. -## Getting Started with the AI AssistView Component +* Syncfusion AI AssistView: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. -Before integrating Azure OpenAI, ensure the Syncfusion AI AssistView component renders correctly in the application: +* [Markdig](https://www.nuget.org/packages/Markdig) package available in the project for Markdown-to-HTML conversion (required by the sample code). + +## Set Up the AI AssistView Component + +Follow the Syncfusion AI AssistView Getting Started guide to configure and render the AI AssistView component in the application and that prerequisites are met: [Blazor Getting Started Guide](../getting-started) ## Install Dependencies -Install the Syncfusion Blazor package in the application. +Install the required packages: + +1. Syncfusion Blazor package: ```bash @@ -32,13 +38,20 @@ Nuget\Install-Package Syncfusion.Blazor.InteractiveChat ``` -Install the `Open AI` and `Markdig` nuget packages in the application. +2. Install the `Open AI` and `Azure` nuget packages in the application. ```bash NuGet\Install-Package OpenAI NuGet\Install-Package Azure.AI.OpenAI NuGet\Install-Package Azure.Core + +``` + +3. Install the `Markdig` nuget packages in the application. + +```bash + Nuget\Install-Package Markdig ``` @@ -49,9 +62,13 @@ Note: The sample below uses HttpClient directly and does not require the Azure/O 1. Log in to the [Azure Portal](https://portal.azure.com/#home) and navigate to your Azure Open AI resource. -2. Under Resource Management, select keys and endpoint to retrieve your API key and endpoint URL. +2. Under resource Management, select keys and endpoint to retrieve your API key and endpoint URL. -3. Copy the API key, endpoint, and deployment name (e.g., gpt-4o-mini). Ensure the API version matches your resource configuration. +3. Note the following values: + - API key + - Endpoint (for example, https://.openai.azure.com/) + - API version (must be supported by your resource) + - Deployment name (for example, gpt-4o-mini) 4. Store these values securely, as they will be used in your application. @@ -73,6 +90,7 @@ Note: The sample below uses HttpClient directly and does not require the Azure/O @using Syncfusion.Blazor.Navigations @inject AzureOpenAIService OpenAIService +// Initialize AI AssistView component
@@ -101,7 +119,8 @@ Note: The sample below uses HttpClient directly and does not require the Azure/O "What are the best tools for organizing my tasks?", "How can I maintain work-life balance effectively?" }; - + + // Handle user prompt: call Azure OpenAI Chat Completions private async Task PromptRequest(AssistViewPromptRequestedEventArgs args) { // Reset the response for this prompt @@ -233,6 +252,7 @@ namespace AIAssistView_AzureAI.Components.Services {% endhighlight %} {% highlight c# tabtitle="Server(~/_Program.cs)" %} +// Initialize Azure OpenAI var endpoint = "https://azure-testresource.openai.azure.com"; var apiKey = ""; // Replace with your API key; var deploymentName = "gpt-4o-mini"; From 93d544e168b82c3a85f5aca11b9c391fdf43bac4 Mon Sep 17 00:00:00 2001 From: TamilRamGanesan-SF5080 Date: Mon, 13 Oct 2025 15:08:00 +0530 Subject: [PATCH 03/21] Update openai-integration.md --- blazor/ai-assistview/ai-integrations/openai-integration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blazor/ai-assistview/ai-integrations/openai-integration.md b/blazor/ai-assistview/ai-integrations/openai-integration.md index 81e76401c4..e629ae8291 100644 --- a/blazor/ai-assistview/ai-integrations/openai-integration.md +++ b/blazor/ai-assistview/ai-integrations/openai-integration.md @@ -9,7 +9,7 @@ documentation: ug # Integrate Azure OpenAI with Blazor AI AssistView component -The AI AssistView component integrates seamlessly with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your Angular applications. The component acts as a user interface for a support bot, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. +The AI AssistView component integrates seamlessly with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your applications. The component acts as a user interface for a support bot, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. ## Prerequisites Before starting, ensure you have the following: @@ -260,4 +260,4 @@ var deploymentName = "gpt-4o-mini"; {% endhighlight %} {% endtabs %} -![Blazor AI AssistView Azure Open AI Integration](../images/openai-integration.png) \ No newline at end of file +![Blazor AI AssistView Azure Open AI Integration](../images/openai-integration.png) From ba06450b4432cb4d6fb9ff031dd2ec27f631265b Mon Sep 17 00:00:00 2001 From: TamilRamGanesan-SF5080 Date: Mon, 13 Oct 2025 17:32:19 +0530 Subject: [PATCH 04/21] 986172: updated the latest changes --- .../ai-integrations/gemini-integration.md | 30 +++++++------------ .../ai-integrations/openai-integration.md | 22 ++++---------- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/blazor/ai-assistview/ai-integrations/gemini-integration.md b/blazor/ai-assistview/ai-integrations/gemini-integration.md index 1215854c74..34d6fc30cf 100644 --- a/blazor/ai-assistview/ai-integrations/gemini-integration.md +++ b/blazor/ai-assistview/ai-integrations/gemini-integration.md @@ -9,37 +9,27 @@ documentation: ug # Integrate Gemini AI With Blazor AI AssistView component -The AI AssistView component integrates seamlessly with Google’s [Gemini](https://ai.google.dev/gemini-api/docs/quickstart) API to enable conversational interfaces. It supports natural language understanding, maintains context across interactions, and delivers relevant responses. To activate these capabilities, configure the component with proper authentication and secure data handling for smooth communication with the Gemini API. +The AI AssistView component integrates with Google’s [Gemini](https://ai.google.dev/gemini-api/docs/quickstart) API to deliver intelligent conversational interfaces. It leverages advanced natural language understanding to interpret user input, maintain context throughout interactions, and provide accurate, relevant responses. By configuring secure authentication and data handling, developers can unlock powerful AI-driven communication features that elevate user engagement and streamline support experiences. ## Prerequisites Before starting, ensure you have the following: -* Google Account: For generating a Gemini API key. +* **Google Account**: For generating a Gemini API key. -* Syncfusion AI AssistView: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. +* **Syncfusion AI AssistView**: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. * [Markdig](https://www.nuget.org/packages/Markdig) package: For parsing Markdown responses. ## Set Up the AI AssistView Component -Follow the Syncfusion AI AssistView Getting Started guide to configure and render the AI AssistView component in the application and that prerequisites are met: - -[Blazor Getting Started Guide](../getting-started) +Follow the Syncfusion AI AssistView [Getting Started](../getting-started) guide to configure and render the AI AssistView component in the application and that prerequisites are met. ## Install Dependencies Install the required packages: -1. Syncfusion Blazor package: - -```bash - -Nuget\Install-Package Syncfusion.Blazor.InteractiveChat - -``` - -2. Install the `Gemini AI` nuget package in the application. +1. Install the `Gemini AI` nuget package in the application. ```bash @@ -47,7 +37,7 @@ Nuget\Install-Package Mscc.GenerativeAI ``` -3. Install the `Markdig` nuget packages in the application. +2. Install the `Markdig` nuget packages in the application. ```bash @@ -57,13 +47,13 @@ Nuget\Install-Package Markdig ## Generate API Key -1. Access Google AI Studio: Instructs users to sign into [Google AI Studio](https://aistudio.google.com/app/apikey) with a Google account or create a new account if needed. +1. **Access Google AI Studio**: Instructs users to sign into [Google AI Studio](https://aistudio.google.com/app/apikey) with a Google account or create a new account if needed. -2. Navigate to API Key Creation: Go to the `Get API Key` option in the left-hand menu or top-right corner of the dashboard. Click the `Create API Key` button. +2. **Navigate to API Key Creation**: Go to the `Get API Key` option in the left-hand menu or top-right corner of the dashboard. Click the `Create API Key` button. -3. Project Selection: Choose an existing Google Cloud project or create a new one. +3. **Project Selection**: Choose an existing Google Cloud project or create a new one. -4. API Key Generation: After project selection, the API key is generated. Users are instructed to copy and store the key securely, as it is shown only once. +4. **API Key Generation**: After project selection, the API key is generated. Users are instructed to copy and store the key securely, as it is shown only once. > Security note: Advises against committing the API key to version control and recommends using environment variables or a secret manager in production. diff --git a/blazor/ai-assistview/ai-integrations/openai-integration.md b/blazor/ai-assistview/ai-integrations/openai-integration.md index e629ae8291..a40f5f6149 100644 --- a/blazor/ai-assistview/ai-integrations/openai-integration.md +++ b/blazor/ai-assistview/ai-integrations/openai-integration.md @@ -9,36 +9,26 @@ documentation: ug # Integrate Azure OpenAI with Blazor AI AssistView component -The AI AssistView component integrates seamlessly with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your applications. The component acts as a user interface for a support bot, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. +The AI AssistView component integrates with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your applications. The component acts as a user interface, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. ## Prerequisites Before starting, ensure you have the following: -* An Azure account: with access to [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. +* **An Azure account**: with access to [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. -* Syncfusion AI AssistView: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. +* **Syncfusion AI AssistView**: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. * [Markdig](https://www.nuget.org/packages/Markdig) package available in the project for Markdown-to-HTML conversion (required by the sample code). ## Set Up the AI AssistView Component -Follow the Syncfusion AI AssistView Getting Started guide to configure and render the AI AssistView component in the application and that prerequisites are met: - -[Blazor Getting Started Guide](../getting-started) +Follow the Syncfusion AI AssistView [Getting Started](../getting-started) guide to configure and render the AI AssistView component in the application and that prerequisites are met. ## Install Dependencies Install the required packages: -1. Syncfusion Blazor package: - -```bash - -Nuget\Install-Package Syncfusion.Blazor.InteractiveChat - -``` - -2. Install the `Open AI` and `Azure` nuget packages in the application. +1. Install the `Open AI` and `Azure` nuget packages in the application. ```bash @@ -48,7 +38,7 @@ NuGet\Install-Package Azure.Core ``` -3. Install the `Markdig` nuget packages in the application. +2. Install the `Markdig` nuget packages in the application. ```bash From a580019accd6285bdc1b9c01f8907c4270231428 Mon Sep 17 00:00:00 2001 From: TamilRamGanesan-SF5080 Date: Mon, 13 Oct 2025 19:23:00 +0530 Subject: [PATCH 05/21] 986172: updated UG concerns --- blazor/ai-assistview/ai-integrations/openai-integration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/blazor/ai-assistview/ai-integrations/openai-integration.md b/blazor/ai-assistview/ai-integrations/openai-integration.md index a40f5f6149..78ea5758e7 100644 --- a/blazor/ai-assistview/ai-integrations/openai-integration.md +++ b/blazor/ai-assistview/ai-integrations/openai-integration.md @@ -12,6 +12,7 @@ documentation: ug The AI AssistView component integrates with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your applications. The component acts as a user interface, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. ## Prerequisites + Before starting, ensure you have the following: * **An Azure account**: with access to [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. From 49f174eeb81e902c30756766ff5339d9b4f3e37f Mon Sep 17 00:00:00 2001 From: TamilRamGanesan-SF5080 Date: Tue, 14 Oct 2025 11:41:02 +0530 Subject: [PATCH 06/21] 986172: remove space between openAI --- blazor-toc.html | 2 +- .../ai-integrations/gemini-integration.md | 4 +++- .../ai-integrations/openai-integration.md | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/blazor-toc.html b/blazor-toc.html index 15a31b60c1..0602ff390d 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -496,7 +496,7 @@
  • AI Integrations
  • Toolbar items
  • diff --git a/blazor/ai-assistview/ai-integrations/gemini-integration.md b/blazor/ai-assistview/ai-integrations/gemini-integration.md index 34d6fc30cf..e144fa6af0 100644 --- a/blazor/ai-assistview/ai-integrations/gemini-integration.md +++ b/blazor/ai-assistview/ai-integrations/gemini-integration.md @@ -59,7 +59,9 @@ Nuget\Install-Package Markdig ## Gemini AI with AI AssistView -* Add your Gemini API key securely in the configuration: +Modify the razor file to integrate the Gemini AI with the AI AssistView component. + +* update your Gemini API key securely in the configuration: ```bash diff --git a/blazor/ai-assistview/ai-integrations/openai-integration.md b/blazor/ai-assistview/ai-integrations/openai-integration.md index 78ea5758e7..efb6c0cbd7 100644 --- a/blazor/ai-assistview/ai-integrations/openai-integration.md +++ b/blazor/ai-assistview/ai-integrations/openai-integration.md @@ -1,7 +1,7 @@ --- layout: post -title: Azure Open AI with Blazor AI AssistView Component | Syncfusion -description: Checkout and learn about Azure Open AI with Blazor AI AssistView component in Blazor WebAssembly Application. +title: Azure OpenAI with Blazor AI AssistView Component | Syncfusion +description: Checkout and learn about Azure OpenAI with Blazor AI AssistView component in Blazor WebAssembly Application. platform: Blazor control: AI AssistView documentation: ug @@ -9,13 +9,13 @@ documentation: ug # Integrate Azure OpenAI with Blazor AI AssistView component -The AI AssistView component integrates with [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your applications. The component acts as a user interface, where user prompts are sent to the Azure Open AI service via API calls, providing natural language understanding and context-aware responses. +The AI AssistView component integrates with [Azure OpenAI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) to enable advanced conversational AI features in your applications. The component acts as a user interface, where user prompts are sent to the Azure OpenAI service via API calls, providing natural language understanding and context-aware responses. ## Prerequisites Before starting, ensure you have the following: -* **An Azure account**: with access to [Azure Open AI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. +* **An Azure account**: with access to [Azure OpenAI](https://microsoft.github.io/PartnerResources/skilling/ai-ml-academy/resources/openai) services and a generated API key. * **Syncfusion AI AssistView**: Package [Syncfusion Blazor package](https://www.nuget.org/packages/Syncfusion.Blazor.InteractiveChat) installed. @@ -29,7 +29,7 @@ Follow the Syncfusion AI AssistView [Getting Started](../getting-started) guide Install the required packages: -1. Install the `Open AI` and `Azure` nuget packages in the application. +1. Install the `OpenAI` and `Azure` nuget packages in the application. ```bash @@ -49,9 +49,9 @@ Nuget\Install-Package Markdig Note: The sample below uses HttpClient directly and does not require the Azure/OpenAI SDKs. -## Configure Azure Open AI +## Configure Azure OpenAI -1. Log in to the [Azure Portal](https://portal.azure.com/#home) and navigate to your Azure Open AI resource. +1. Log in to the [Azure Portal](https://portal.azure.com/#home) and navigate to your Azure OpenAI resource. 2. Under resource Management, select keys and endpoint to retrieve your API key and endpoint URL. @@ -73,6 +73,8 @@ Note: The sample below uses HttpClient directly and does not require the Azure/O - Inject and use the service in your Razor component. +Modify the razor file to integrate the Azure OpenAI with the AI AssistView component. + {% tabs %} {% highlight c# tabtitle="razor" %} @@ -251,4 +253,4 @@ var deploymentName = "gpt-4o-mini"; {% endhighlight %} {% endtabs %} -![Blazor AI AssistView Azure Open AI Integration](../images/openai-integration.png) +![Blazor AI AssistView Azure OpenAI Integration](../images/openai-integration.png) From 243c847251d545b45330b8f01c0193620555f4bd Mon Sep 17 00:00:00 2001 From: Backiaraj Date: Tue, 14 Oct 2025 14:06:31 +0530 Subject: [PATCH 07/21] Cleared the automation conflicts --- blazor/button/getting-started-with-web-app.md | 53 ++-- .../check-box/getting-started-with-web-app.md | 52 ++-- blazor/chip/customization.md | 50 +-- .../optimize-performance-blazor-wasm.md | 40 +-- .../reduce-size-of-blazor-wasm.md | 26 +- .../add-blazor-component-to-the-toolbox.md | 21 +- .../getting-started-with-web-app.md | 57 ++-- blazor/diagram/annotations/labels.md | 60 ++-- blazor/diagram/interaction.md | 99 +++--- .../amazon-S3-cloud-file-provider.md | 18 +- .../getting-started-with-server-app.md | 40 +-- .../getting-started-with-wasm-app.md | 39 ++- .../getting-started-with-web-app.md | 56 ++-- blazor/getting-started/blazor-web-app.md | 4 +- blazor/image-editor/annotation.md | 290 ++++++++---------- .../getting-started-with-web-app.md | 53 ++-- blazor/image-editor/localization.md | 7 +- blazor/image-editor/open-save.md | 287 +++++++++-------- .../get-selected-items-from-listview.md | 13 +- blazor/ribbon/keytip.md | 32 +- blazor/rich-text-editor/tools/audio.md | 2 +- .../rich-text-editor/tools/styling-tools.md | 37 +++ blazor/scheduler/clipboard.md | 22 +- blazor/scheduler/getting-started-webapp.md | 56 ++-- .../getting-started-with-server-app.md | 44 +-- blazor/scheduler/getting-started.md | 53 ++-- blazor/scheduler/scheduler-styling.md | 132 ++------ blazor/smart-ai-solutions/ai/azure-openai.md | 2 +- .../ai/custom-ai-service.md | 74 ++--- blazor/smart-ai-solutions/ai/overview.md | 3 +- blazor/smart-paste/claude-service.md | 2 +- blazor/smart-paste/deepseek-service.md | 2 +- blazor/smart-paste/gemini-service.md | 2 +- blazor/smart-paste/groq-service.md | 2 +- blazor/smart-textarea/claude-service.md | 2 +- blazor/smart-textarea/deepseek-service.md | 2 +- blazor/smart-textarea/gemini-service.md | 2 +- blazor/smart-textarea/groq-service.md | 2 +- blazor/timepicker/getting-started-webapp.md | 59 ++-- blazor/toast/getting-started-webapp.md | 163 ++++------ blazor/toast/getting-started.md | 115 +++---- blazor/treegrid/editing/batch-editing.md | 3 +- blazor/treegrid/print.md | 2 - blazor/treegrid/rows/row-drag-and-drop.md | 2 - 44 files changed, 1027 insertions(+), 1055 deletions(-) diff --git a/blazor/button/getting-started-with-web-app.md b/blazor/button/getting-started-with-web-app.md index 2bb14059a5..4f0228b3b1 100644 --- a/blazor/button/getting-started-with-web-app.md +++ b/blazor/button/getting-started-with-web-app.md @@ -3,13 +3,13 @@ layout: post title: Getting Started with Syncfusion Button Component in Blazor Web App description: Checkout and learn about the documentation for getting started with Blazor Button Component in Blazor Web App. platform: Blazor -component: Button +control: Button documentation: ug --- # Getting Started with Blazor Button Component in Blazor Web App -This section briefly explains about how to include [Blazor Button](https://www.syncfusion.com/blazor-components/blazor-button) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section briefly explains how to include the [Blazor Button](https://www.syncfusion.com/blazor-components/blazor-button) component in a Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) or Visual Studio Code. {% tabcontents %} @@ -21,17 +21,17 @@ This section briefly explains about how to include [Blazor Button](https://www.s ## Create a new Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the appropriate [interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) when creating a Blazor Web Application. ## Install Syncfusion® Blazor Buttons and Themes NuGet in the App -To add **Blazor Button** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor Button** component, open the NuGet Package Manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search for and install [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If you use `WebAssembly` or `Auto` render modes in the Blazor Web App, install the Syncfusion® Blazor component NuGet packages in the client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, use the following Package Manager commands: {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -42,7 +42,7 @@ Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the list of available packages and component details. {% endtabcontent %} @@ -54,9 +54,9 @@ N> Syncfusion® Blazor components are availa ## Create a new Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). +Create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. +Configure the appropriate [interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) when creating a Blazor Web Application. For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. @@ -70,15 +70,15 @@ cd BlazorWebApp.Client {% endhighlight %} {% endtabs %} -N> For more information on creating a **Blazor Web App** with various interactive modes and locations, refer to this [link](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). +N> For more information on creating a **Blazor Web App** with various interactive modes and locations, refer to this [guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). ## Install Syncfusion® Blazor Buttons and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If you use `WebAssembly` or `Auto` render modes in the Blazor Web App, install the Syncfusion® Blazor component NuGet packages in the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure you are in the project root directory where your `.csproj` file is located. +* Run the following commands to install [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) and ensure all dependencies are installed. {% tabs %} @@ -92,7 +92,7 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the list of available packages and component details. {% endtabcontent %} @@ -102,10 +102,10 @@ N> Syncfusion® Blazor components are availa | Interactive Render Mode | Description | | -- | -- | -| WebAssembly or Auto | Open **~/_Imports.razor** file from the client project.| -| Server | Open **~/_import.razor** file, which is located in the `Components` folder.| +| WebAssembly or Auto | Open **~/_Imports.razor** in the client project. | +| Server | Open **~/Components/_Imports.razor** in the `Components` folder. | -Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Buttons` namespace. +Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Buttons` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -116,9 +116,9 @@ Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Buttons` namespace. {% endhighlight %} {% endtabs %} -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Now, register the Syncfusion® Blazor service in the **~/Program.cs** file(s) of your Blazor Web App. -If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, you need to register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. +If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -152,7 +152,7 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -If the **Interactive Render Mode** is set to `Server`, your project will contain a single **~/Program.cs** file. So, you should register the Syncfusion® Blazor Service only in that **~/Program.cs** file. +If the **Interactive Render Mode** is set to `Server`, your project contains a single **~/Program.cs** file. In this case, register the Syncfusion® Blazor service only in that **~/Program.cs** file. {% tabs %} {% highlight c# tabtitle="~/_Program.cs" hl_lines="2 9" %} @@ -189,11 +189,11 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, see [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) for different approaches to adding script references. ## Add Syncfusion® Blazor Button component -Add the Syncfusion® Blazor Button component in the **~Pages/.razor** file. If an interactivity location as `Per page/component` in the web app, define a render mode at the top of the `~Pages/.razor` component, as follows: +Add the Syncfusion® Blazor Button component in the **~/Pages/YourPage.razor** file. If the interactivity location is `Per page/component` in the web app, define a render mode at the top of the `~/Pages/YourPage.razor` component, as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -202,7 +202,7 @@ Add the Syncfusion® Blazor Button component | | Server | @rendermode InteractiveServer | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly` or `Server`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is `Auto`, `WebAssembly`, or `Server`, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -221,7 +221,7 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Button component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This renders the Syncfusion® Blazor Button component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/LjLftsrepgKpagFy?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Button Component](./images/blazor-button-component.png)" %} @@ -234,5 +234,4 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- 1. [Getting Started with Syncfusion® Blazor Web Assembly App in Visual Studio or .NET CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) 2. [Getting Started with Syncfusion® Blazor Web App in Visual Studio or .NET CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) -N> You can also explore our [Blazor Button example](https://blazor.syncfusion.com/demos/buttons/default-functionalities?) that shows you how to render and configure the button. - +N> You can also explore our [Blazor Button example](https://blazor.syncfusion.com/demos/buttons/default-functionalities?) that shows you how to render and configure the button. \ No newline at end of file diff --git a/blazor/check-box/getting-started-with-web-app.md b/blazor/check-box/getting-started-with-web-app.md index aabee81635..45d3ac90a2 100644 --- a/blazor/check-box/getting-started-with-web-app.md +++ b/blazor/check-box/getting-started-with-web-app.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Blazor CheckBox Component in Web App -This section briefly explains about how to include [Blazor CheckBox](https://www.syncfusion.com/blazor-components/blazor-checkbox) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section explains how to include the [Blazor CheckBox](https://www.syncfusion.com/blazor-components/blazor-checkbox) component in a Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. {% tabcontents %} @@ -21,17 +21,17 @@ This section briefly explains about how to include [Blazor CheckBox](https://www ## Create a new Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. ## Install Syncfusion® Blazor Buttons and Themes NuGet in the Blazor Web App -To add **Blazor CheckBox** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor CheckBox** component, open the NuGet Package Manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search for and install [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using `WebAssembly` or `Auto` render modes in a Blazor Web App, install Syncfusion® Blazor component NuGet packages in the Client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, use the following Package Manager commands: {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -42,7 +42,7 @@ Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on NuGet. See the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the full list and component details. {% endtabcontent %} @@ -54,9 +54,9 @@ N> Syncfusion® Blazor components are availa ## Create a new Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). +Create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. +Configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. @@ -70,15 +70,15 @@ cd BlazorWebApp.Client {% endhighlight %} {% endtabs %} -N> For more information on creating a **Blazor Web App** with various interactive modes and locations, refer to this [link](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). +N> For details on creating a **Blazor Web App** with various interactive modes and locations, refer to [Render interactive modes](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). ## Install Syncfusion® Blazor Buttons and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using `WebAssembly` or `Auto` render modes in a Blazor Web App, install Syncfusion® Blazor component NuGet packages in the Client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the terminal is in the project directory containing the `.csproj` file. +* Run the following commands to install [Syncfusion.Blazor.Buttons](https://www.nuget.org/packages/Syncfusion.Blazor.Buttons) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). {% tabs %} @@ -92,7 +92,7 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on NuGet. See the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the full list and component details. {% endtabcontent %} @@ -102,10 +102,10 @@ N> Syncfusion® Blazor components are availa | Interactive Render Mode | Description | | -- | -- | -| WebAssembly or Auto | Open **~/_Imports.razor** file from the client project.| -| Server | Open **~/_import.razor** file, which is located in the `Components` folder.| +| WebAssembly or Auto | Open Components/_Imports.razor from the Client project. | +| Server | Open Components/_Imports.razor in the Server project (Components folder). | -Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Buttons` namespace. +Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Buttons` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -116,9 +116,9 @@ Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Buttons` namespace. {% endhighlight %} {% endtabs %} -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Now, register the Syncfusion® Blazor service in the **~/Program.cs** file of the Blazor Web App. -If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, you need to register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. +If the **Interactive Render Mode** is `WebAssembly` or `Auto`, register the service in both **~/Program.cs** files (Server and Client) of the Blazor Web App. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -152,7 +152,7 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -If the **Interactive Render Mode** is set to `Server`, your project will contain a single **~/Program.cs** file. So, you should register the Syncfusion® Blazor Service only in that **~/Program.cs** file. +If the **Interactive Render Mode** is `Server`, the project contains a single **~/Program.cs** file. In this case, register the Syncfusion® Blazor service only in that **~/Program.cs** file. {% tabs %} {% highlight c# tabtitle="~/_Program.cs" hl_lines="2 9" %} @@ -175,7 +175,7 @@ var app = builder.Build(); ## Add stylesheet and script resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: +The theme stylesheet and script are provided via NuGet using [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Add the stylesheet reference in the `` and the script reference at the end of the `` in **~/Components/App.razor** as shown: ```html @@ -189,11 +189,11 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Refer to [Blazor themes](https://blazor.syncfusion.com/documentation/appearance/themes) for Static Web Assets, CDN, and CRG options. See [Adding script references](https://blazor.syncfusion.com/documentation/common/adding-script-references) for script reference approaches. ## Add Syncfusion® Blazor CheckBox component -Add the Syncfusion® Blazor CheckBox component in `.razor` file inside the `Pages` folder. If an interactivity location as `Per page/component` in the web app, define a render mode at top of the component, as follows: +Add the Syncfusion® Blazor CheckBox component in a `.razor` file inside the `Pages` folder. If the interactivity location is `Per page/component`, define a render mode at the top of the component, as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -202,7 +202,7 @@ Add the Syncfusion® Blazor CheckBox compone | | Server | @rendermode InteractiveServer | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly` or `Server`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is `Global` and the **Render Mode** is `Auto`, `WebAssembly`, or `Server`, the render mode is configured in `App.razor` by default. {% tabs %} {% highlight razor %} @@ -226,11 +226,11 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor CheckBox component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This renders the Syncfusion® Blazor CheckBox component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/hDhpNsLuinxRTsQp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor CheckBox Component](./images/blazor-checkbox-component.png)" %} -N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/CheckBox). +N> [View sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/CheckBox). ## See also diff --git a/blazor/chip/customization.md b/blazor/chip/customization.md index 0987e3277b..a5292bb75c 100644 --- a/blazor/chip/customization.md +++ b/blazor/chip/customization.md @@ -9,19 +9,21 @@ documentation: ug # Customization in Blazor Chip Component -This section explains the customization of styles, leading icons, avatar, and trailing icons in Chip control. +This section explains how to customize the Chip component, including predefined styles, leading icons and avatars, trailing icons, and templates. ## Styles -The Chip control has the following predefined styles that can be defined using the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.SfChip.html#Syncfusion_Blazor_Buttons_SfChip_CssClass) property. +The Chip component provides predefined visual styles that can be applied using the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.SfChip.html#Syncfusion_Blazor_Buttons_SfChip_CssClass) property. Apply `CssClass` on: +- SfChip: to affect all chips in the list +- ChipItem: to style a specific chip | Class | Description | | -------- | -------- | | e-primary | Represents a primary chip. | | e-success | Represents a positive chip. | -| e-info | Represents an informative chip. | -| e-warning | Represents a chip with caution. | -| e-danger | Represents a negative chip. | +| e-info | Represents an informative chip. | +| e-warning | Represents a chip that requires caution. | +| e-danger | Represents a negative or destructive chip. | ```cshtml @using Syncfusion.Blazor.Buttons @@ -40,11 +42,13 @@ The Chip control has the following predefined styles that can be defined using t {% previewsample "https://blazorplayground.syncfusion.com/embed/BXLKsrBcBIwnwbXs?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -![Customizing Blazor Chip Styles](./images/blazor-chip-style.png) +![Customizing Blazor Chip styles with predefined variants](./images/blazor-chip-style.png) + +N> Multiple style classes can be combined (for example, `e-outline e-primary`) to achieve the desired appearance. ## Leading icon -You can add and customize the leading icon of chip using the [`LeadingIconCss`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_LeadingIconCss) property. +Add and customize a leading icon for a chip using the [`LeadingIconCss`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_LeadingIconCss) property. ```cshtml @using Syncfusion.Blazor.Buttons @@ -79,11 +83,13 @@ You can add and customize the leading icon of chip using the [`LeadingIconCss`]( {% previewsample "https://blazorplayground.syncfusion.com/embed/hZLeDksEzbMVhnKc?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -![Customizing LeadingIcon of Blazor Chip](./images/blazor-chip-leading-icon.gif) +![Customizing the leading icon in a Blazor Chip](./images/blazor-chip-leading-icon.gif) + +N> Ensure that each icon has clear text content in the chip (`Text`) for accessible names. When using decorative icons, consider appropriate CSS background images and contrast. ## Avatar -You can add and customize the avatar of chip using the [`LeadingIconCss`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_LeadingIconCss) property. +Display an avatar as the leading visual using the [`LeadingIconCss`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_LeadingIconCss) property. ```csharp @@ -118,11 +124,11 @@ You can add and customize the avatar of chip using the [`LeadingIconCss`](https: {% previewsample "https://blazorplayground.syncfusion.com/embed/BZrItusapbhiLdgI?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} - +N> Avatars are typically circular thumbnails. Provide meaningful chip text or an `aria-label` if the avatar conveys essential context. ## Leading content -You can add and customize the avatar content of chip using the [`LeadingText`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_LeadingText) property. +Show text content inside the leading avatar area using the [`LeadingText`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_LeadingText) property (for example, user initials). ```cshtml @using Syncfusion.Blazor.Buttons @@ -138,12 +144,11 @@ You can add and customize the avatar content of chip using the [`LeadingText`](h ``` {% previewsample "https://blazorplayground.syncfusion.com/embed/VXrqCLrQrovxnFxf?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} - -![Customizing Avatar Text of Blazor Chip](./images/blazor-chip-avatar-content.gif) +![Customizing avatar text for a Blazor Chip](./images/blazor-chip-avatar-content.gif) ## Trailing icon -You can add and customize the trailing icon of chip using the [`TrailingIconCss`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_TrailingIconCss) property. +Add and customize a trailing icon for a chip using the [`TrailingIconCss`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_TrailingIconCss) property (commonly used for secondary actions, such as delete). ```cshtml @using Syncfusion.Blazor.Buttons @@ -160,12 +165,13 @@ You can add and customize the trailing icon of chip using the [`TrailingIconCss` {% previewsample "https://blazorplayground.syncfusion.com/embed/hZVUiBhwBekjUuOz?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} +![Customizing the trailing icon in a Blazor Chip](./images/blazor-chip-trailing-icon.png) -![Customizing Blazor Chip TrailingIcon](./images/blazor-chip-trailing-icon.png) +N> Deletable chips can also be configured using `EnableDelete="true"`. Ensure the trailing icon and delete affordance do not conflict. ## Outline chip -Outline chip has the border with the background transparent. It can be set using the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.SfChip.html#Syncfusion_Blazor_Buttons_SfChip_CssClass) property. +An outline chip has a visible border and a transparent background. Apply the outline style using the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.SfChip.html#Syncfusion_Blazor_Buttons_SfChip_CssClass) property. ```cshtml @using Syncfusion.Blazor.Buttons @@ -181,15 +187,13 @@ Outline chip has the border with the background transparent. It can be set using ``` {% previewsample "https://blazorplayground.syncfusion.com/embed/VtVgshrQrokgrCJD?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} - - -![Blazor Outline Chip with Transparent Background](./images/blazor-outline-chip-transparent-background.gif) +![Blazor outline chips with transparent background](./images/blazor-outline-chip-transparent-background.gif) ## Template -The Chips Template property allows users to customize the layout and design of each chip. Users can include any custom HTML elements, icons, links, or additional content by specifying them in the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_Template) or as direct child content inside the [ChipItem](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem) of the SfChip component. +The ChipItem `Template` property enables full control over the chip’s layout and content. Custom HTML elements, icons, links, or additional content can be provided via the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem_Template) property or as direct child content of the [ChipItem](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Buttons.ChipItem.html#Syncfusion_Blazor_Buttons_ChipItem). -The following code example demonstrates how to customize the layout and design of chips by adding direct child content inside the `ChipItem`. +The following example customizes the layout and design by adding direct child content inside each `ChipItem`. ```cshtml @@ -248,4 +252,6 @@ The following code example demonstrates how to customize the layout and design o ``` -![Template in Blazor Chip component](./images/blazor-chip-template.png) \ No newline at end of file +![Using a custom template in the Blazor Chip component](./images/blazor-chip-template.png) + +N> When adding interactive elements (links, buttons) inside chip templates, ensure keyboard focus order, accessible names, and sufficient contrast are maintained. \ No newline at end of file diff --git a/blazor/common/aot-compilation/optimize-performance-blazor-wasm.md b/blazor/common/aot-compilation/optimize-performance-blazor-wasm.md index 47383e55f2..1d2a3abada 100644 --- a/blazor/common/aot-compilation/optimize-performance-blazor-wasm.md +++ b/blazor/common/aot-compilation/optimize-performance-blazor-wasm.md @@ -1,23 +1,25 @@ --- layout: post -title: Optimize Performance in Blazor WASM using AOT Compilation - Syncfusion -description: Check out the documentation for Optimize Performance using AOT Compilation in Blazor WebAssembly in Blazor +title: Optimize Blazor WASM performance with AOT compilation - Syncfusion +description: Enable AOT compilation in Blazor WebAssembly to improve performance, understand trade-offs, and review size versus performance considerations and more details. platform: Blazor -component: Common +control: Common documentation: ug --- -# Optimize Performance in Blazor WebAssembly using AOT Compilation +# Optimize Blazor WebAssembly performance with AOT compilation -This article explains how to improve the performance of **Blazor WebAssembly (WASM)** applications using **Ahead-of-Time (AOT) compilation**, specifically for applications using **Syncfusion® Blazor components**. +This article explains how to improve the performance of Blazor WebAssembly (WASM) Apps using **Ahead-of-Time (AOT) compilation**, including apps that use Syncfusion® Blazor components. ## AOT Compilation Overview -Blazor WebAssembly applications run entirely in the browser via WebAssembly. By default, the app’s .NET assemblies are downloaded and executed using a **Just-In-Time (JIT)** interpreter. However, enabling **AOT compilation** ahead of time converts the .NET Intermediate Language (IL) into native WebAssembly at build time, resulting in significant performance gains. +Blazor WebAssembly Apps run entirely in the browser via WebAssembly. By default, the app’s .NET assemblies are downloaded and executed using a **Just-In-Time (JIT)** interpreter. Enabling AOT compilation converts .NET Intermediate Language (IL) into native WebAssembly at build time, which can provide significant performance gains. ## Enable AOT Compilation -Follow the steps below to configure AOT for your Blazor WASM project. +Follow these steps to configure AOT for a Blazor WebAssembly App. + +**Prerequisites:** Target .NET 8 or later and publish in Release configuration. ### Step 1: Target .NET 8+ @@ -62,7 +64,7 @@ bin/Release/net8.0/publish/wwwroot/ --- ## Size vs Performance Tradeoff -The following table compares performance and size metrics for Blazor WebAssembly with and without AOT, using a Syncfusion® Grid with paging enabled. +The following sample metrics compare performance and size for Blazor WebAssembly with and without AOT, using a Syncfusion® Grid with paging enabled. | Metric | Without AOT | With AOT | |----------------------------|----------------------|----------------------| @@ -71,32 +73,32 @@ The following table compares performance and size metrics for Blazor WebAssembly | Bundle Size (Brotli) | ~114 MB | ~192 MB | | Memory Usage | Slightly lower | Slightly higher | -> [AOT compilation](https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot?view=aspnetcore-9.0#ahead-of-time-aot-compilation) increases the application size but significantly improves load time, interactivity and overall runtime performance in Blazor WebAssembly applications. +> [AOT compilation](https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot#ahead-of-time-aot-compilation) increases app size but can significantly improve load time, interactivity, and overall runtime performance in Blazor WebAssembly apps. --- ## Limitations -- **Longer Build Time:** AOT compilation is slower compared to standard builds. -- **Increased Bundle Size:** Final WebAssembly size is larger. -- **Higher Memory Usage:** While AOT improves performance, it may result in slightly higher memory usage at runtime due to native code execution. -- **Reduced Flexibility:** Dynamic features (e.g., reflection) may require additional handling. -- **More Complex Debugging:** Source map support is limited. -- **Slower Iterations:** Any code change needs full rebuild, affecting dev productivity. +- **Longer build time:** compared to standard builds. +- **Increased bundle size:** Final WebAssembly size is larger. +- **Higher memory usage:** While AOT improves performance, it may result in slightly higher memory usage at runtime due to native code execution. +- **Reduced flexibility:** Dynamic features (e.g., reflection) may require additional handling. +- **More complex debugging:** Source map support is limited. +- **Slower iterations:** Any code change needs full rebuild, affecting dev productivity. --- ## Considerations -- **Better Performance:** Native WebAssembly improves execution speed and UI responsiveness. -- **Enhanced Security:** Native code is harder to reverse-engineer than Intermediate Language code. -- **Cross-Platform Consistency:** Consistent behavior across browsers and devices. +- **Better performance:** Native WebAssembly improves execution speed and UI responsiveness. +- **Enhanced security:** Native code is harder to reverse-engineer than Intermediate Language code. +- **Cross-platform consistency:** Consistent behavior across browsers and devices. --- ## Specific Recommendations -To further reduce published output size, [enable linker and trimming](https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trimming-options#enable-trimming) options in your `.csproj`: +To further reduce published output size, [enable linker and trimming](https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trimming-options#enable-trimming) options in the `.csproj`. ```xml true diff --git a/blazor/common/aot-compilation/reduce-size-of-blazor-wasm.md b/blazor/common/aot-compilation/reduce-size-of-blazor-wasm.md index 06aed7ced6..1f1bdf8e16 100644 --- a/blazor/common/aot-compilation/reduce-size-of-blazor-wasm.md +++ b/blazor/common/aot-compilation/reduce-size-of-blazor-wasm.md @@ -1,23 +1,23 @@ --- layout: post -title: Reduce Size of Blazor WebAssembly Application - Syncfusion -description: Check out the documentation for reduce size of blazor webassembly application in blazor using various techniques +title: Reduce size of Blazor WebAssembly Applications - Syncfusion +description: Learn here all about how to reduce Syncfusion Blazor WebAssembly (WASM) App size using trimming and linker configuration. Explore here to more details. platform: Blazor -component: Common +control: Common documentation: ug --- -# Reduce Size of Blazor WebAssembly Application +# Reduce size of Blazor WebAssembly Application -This article explains how to reduce the size of **Blazor WebAssembly (WASM)** applications. Although [Ahead-of-Time (AOT)](https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot?view=aspnetcore-9.0#ahead-of-time-aot-compilation) compilation improves performance, it also increases the app size. To help reduce this, you can enable code trimming options in our projects. Trimming automatically removes unused code from the final output, which helps lower the bundle size without affecting functionality. This is especially helpful when using large projects. +This article explains how to reduce the size of **Blazor WebAssembly (WASM)** applications. Although [Ahead-of-Time (AOT) compilation](https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot#ahead-of-time-aot-compilation) improves performance, it also increases app size. To reduce size, enable code trimming options in projects. Trimming removes unused code from the final output, helping lower the bundle size without affecting functionality. ## Configure the Linker for ASP.NET Core Blazor -Blazor WebAssembly uses [Intermediate Language (IL) linking](https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot?view=aspnetcore-9.0#trim-net-il-after-ahead-of-time-aot-compilation) to trim unused code from the final output during build. This process is **only enabled in Release builds** and is **disabled in Debug configuration** by default. To take full advantage of trimming and reduce the size of the published application, it is recommended to **build your app in Release mode** before deployment. +Blazor WebAssembly uses [Intermediate Language (IL) linking](https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot#trim-net-il-after-ahead-of-time-aot-compilation) to trim unused code from the final output during build. This process is only enabled in Release builds and is disabled in Debug by default. To take full advantage of trimming and reduce the size of the published app, publish in Release mode before deployment. > Always publish your Blazor WebAssembly app using the `Release` configuration to enable trimming and optimize performance. -### Disable Intermediate Language Linking (Optional) +### Disable Intermediate Language linking (optional) To manually disable Intermediate Language linking, add the following MSBuild property in your `.csproj` file: @@ -28,7 +28,7 @@ To manually disable Intermediate Language linking, add the following MSBuild pro ``` ## Enable trimming -**PublishTrimmed** property enables code trimming for self-contained publishing.It automatically disables features that aren’t compatible with trimming and provides warnings about trimming conflicts during build. +The **PublishTrimmed** property enables code trimming for self-contained publishing. It automatically disables features that are not compatible with trimming and provides warnings about trimming conflicts during build. To [enable trimming](https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trimming-options#enable-trimming), add the following to your `.csproj` file: @@ -40,11 +40,11 @@ To [enable trimming](https://learn.microsoft.com/en-us/dotnet/core/deploying/tri ## Trim mode -For all assemblies in a Blazor application, trimming is enabled by default from the.NET 8 target framework. Trim warnings may cause problems for applications that have previously used `PublishTrimmed=true` and `TrimMode=partial`. However, if your application compiles without any trim warnings, this default behavior shouldn't interfere with functionality or cause issues. For more information, refer to the [trim configuration](https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/configure-trimmer?view=aspnetcore-9.0) documentation to achieve this. +For all assemblies in a Blazor application, trimming is enabled by default starting with the .NET 8 target framework. Trim warnings may occur for apps that previously used `PublishTrimmed=true` and `TrimMode=partial`. If the app compiles without trim warnings, this default behavior should not affect functionality. For more information, refer to the [trim configuration](https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/configure-trimmer) documentation. ### To Resolve trim warnings -Partial trimming is less aggressive and may be safer for applications that use reflection. To ensure smooth builds, resolve all trim warnings in our application, make the below changes in our `.csproj` to resolve the trim warnings +Partial trimming is less aggressive and may be safer for applications that use reflection. To ensure smooth builds, resolve all trim warnings in the application. If needed, make the following change in the `.csproj` file: ```xml partial @@ -52,9 +52,9 @@ Partial trimming is less aggressive and may be safer for applications that use r ## Enable Link Trimming -To control **Intermediate Language (IL)** trimming on a per-assembly basis by supplying an XML configuration file. This approach allows you to explicitly preserve assemblies, types, or members that may be trimmed, even if they are not directly referenced in your application code. +Control Intermediate Language (IL) trimming on a per-assembly basis by supplying an XML configuration file. This approach allows explicitly preserving assemblies, types, or members that may be trimmed, even if they are not directly referenced in application code. -To [enable Intermediate Language trimming](https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming#enable-project-specific-trimming) in a Syncfusion® Blazor application, update the project file as shown below. This example demonstrates how to safely configure trimming using the Grid paging feature. +To [enable Intermediate Language trimming](https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming#enable-project-specific-trimming) in a Syncfusion® Blazor application, update the project file as shown below. This example demonstrates how to configure trimming using the Grid paging feature. #### How to Enable Intermediate Language Trimming Safely for Syncfusion® Blazor Grid @@ -107,7 +107,7 @@ To [enable Intermediate Language trimming](https://learn.microsoft.com/en-us/dot ``` -3. Prevent Trimming of .NET Core Runtime Types. If your app uses reflection, LINQ expressions, or dynamic operations, consider including a LinkerConfig.xml to preserve critical system libraries. It is completely optional. +3. Prevent trimming of .NET runtime types. If the app uses reflection, LINQ expressions, or dynamic operations, consider including a LinkerConfig.xml to preserve critical system libraries (optional). ```xml diff --git a/blazor/common/how-to/add-blazor-component-to-the-toolbox.md b/blazor/common/how-to/add-blazor-component-to-the-toolbox.md index fb92846351..4bffcc612a 100644 --- a/blazor/common/how-to/add-blazor-component-to-the-toolbox.md +++ b/blazor/common/how-to/add-blazor-component-to-the-toolbox.md @@ -1,31 +1,32 @@ --- layout: post -title: Adding Blazor component to the toolbox - Syncfusion -description: Checkout and learn here all about the documentation for adding Syncfusion Blazor component to the toolbox in Blazor +title: Add Syncfusion Blazor components to the Toolbox | Syncfusion +description: Learn how to add the Syncfusion Blazor component snippets to the Visual Studio Toolbox in a Blazor project on Windows and explore here to more details. platform: Blazor -component: Common +control: Common documentation: ug --- -# How to add Syncfusion® Component to the toolbox in Blazor Application +# Add Syncfusion® Blazor components to the Visual Studio Toolbox -This section provides step-by-step guidance on how to add Syncfusion® Blazor components to the Visual Studio Toolbox. By default, the Toolbox displays HTML elements and Bootstrap snippets. To customize it for Blazor development, open the Toolbox by pressing `Ctrl + Alt + X` or by navigating to **View → Toolbox** from the top menu. +This guide explains how to add Syncfusion® Blazor component snippets to the Visual Studio Toolbox on Windows. By default, the Toolbox shows HTML elements and Bootstrap snippets. Open the Toolbox with Ctrl+Alt+X or navigate to **View → Toolbox**. To include Syncfusion® components for Blazor in the Toolbox, follow these steps: -1. Right-click anywhere within the Visual Studio Toolbox window, select **Add Tab** from the context menu. Enter a name for the new tab such as Syncfusion® Blazor Components and press Enter to create it. +1. Right-click anywhere within the Visual Studio Toolbox, select **Add Tab**, then name the tab (for example, "Syncfusion Blazor Components") and press Enter. ![Add new tab in toolbox](images/new-tab-toolbox.png) -2. In the code editor, **write or paste a Blazor component snippet**, such as the Syncfusion® SfCalendar. Once the code is in place, **select the entire code snippet**, then **drag and drop it** into the newly created tab in the Visual Studio Toolbox. +2. In the code editor, write or paste a Blazor component snippet (for example, the Syncfusion® `SfCalendar`). Select the entire snippet, then drag and drop it into the new tab in the Toolbox. ![Add code snippet to toolbox](images/add-snippet.gif) -3. Once the code snippet is added, the Toolbox will automatically assign it a default name based on the snippet content. -To improve clarity, right-click the item, select **Rename**, and enter a more descriptive name—such as **SfCalendar**. +3. After the snippet is added, the Toolbox assigns a default name. Right-click the item, select **Rename**, and enter a descriptive name (for example, "SfCalendar"). ![Update name](images/update-name.png) -4. After adding the component to the Toolbox, simply **drag the component from the Toolbox into your code editor** to seamlessly use it into your Blazor project. +4. Drag the component from the Toolbox into the code editor to insert the snippet into your Blazor project. + +N> Dragging a Toolbox item inserts code into the editor. Ensure required namespaces and services are present in the project (for example, `@using Syncfusion.Blazor` and registering Syncfusion services in Program.cs). ![Drag component to editor](images/drag-component.gif) diff --git a/blazor/datepicker/getting-started-with-web-app.md b/blazor/datepicker/getting-started-with-web-app.md index ecf66d95f5..06c344ca8e 100644 --- a/blazor/datepicker/getting-started-with-web-app.md +++ b/blazor/datepicker/getting-started-with-web-app.md @@ -1,6 +1,6 @@ --- layout: post -title: Getting Started with Syncfusion Blazor DatePicker Component in WebApp +title: Getting Started with Syncfusion Blazor DatePicker Component in Web App description: Checkout and learn about the documentation for getting started with Blazor DatePicker Component in Blazor Web App. platform: Blazor component: DatePicker @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Blazor DatePicker Component in Web App -This section briefly explains about how to include [Blazor DatePicker](https://www.syncfusion.com/blazor-components/blazor-datepicker) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section explains how to include the [Blazor DatePicker](https://www.syncfusion.com/blazor-components/blazor-datepicker) component in a Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. {% tabcontents %} @@ -21,17 +21,17 @@ This section briefly explains about how to include [Blazor DatePicker](https://w ## Create a new Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the appropriate [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) when creating the application. ## Install Syncfusion® Blazor Calendars and Themes NuGet in the Blazor Web App -To add **Blazor DatePicker** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor DatePicker** component, open the NuGet Package Manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search for and install [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using `WebAssembly` or `Auto` render modes, install the Syncfusion® Blazor packages in the client project of the Blazor Web App. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, use the following Package Manager commands: {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -42,7 +42,7 @@ Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on NuGet. For the full package list and component details, see [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages). {% endtabcontent %} @@ -54,11 +54,11 @@ N> Syncfusion® Blazor components are availa ## Create a new Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). +Create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. +Configure the appropriate [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) when creating the application. -For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. +For example, for a Blazor Web App with the `Auto` interactive render mode, use the following commands: {% tabs %} {% highlight c# tabtitle="Blazor Web App" %} @@ -70,15 +70,15 @@ cd BlazorWebApp.Client {% endhighlight %} {% endtabs %} -N> For more information on creating a **Blazor Web App** with various interactive modes and locations, refer to this [link](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). +N> For details on creating a **Blazor Web App** with various interactive modes and locations, refer to the [render interactive modes](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes) topic. ## Install Syncfusion® Blazor Calendars and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using `WebAssembly` or `Auto` render modes, install the Syncfusion® Blazor component NuGet packages in the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the command is run in the project directory that contains the `.csproj` file. +* Run the following commands to install [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/): {% tabs %} @@ -92,7 +92,7 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on NuGet. For the full package list and component details, see [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages). {% endtabcontent %} @@ -102,10 +102,10 @@ N> Syncfusion® Blazor components are availa | Interactive Render Mode | Description | | -- | -- | -| WebAssembly or Auto | Open **~/_Imports.razor** file from the client project.| -| Server | Open **~/_import.razor** file, which is located in the `Components` folder.| +| WebAssembly or Auto | Open **~/_Imports.razor** from the client project. | +| Server | Open **~/_Imports.razor** in the `Components` folder. | -Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Calendar` namespace. +Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Calendars` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -116,9 +116,9 @@ Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Calendar` namespace. {% endhighlight %} {% endtabs %} -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Now, register the Syncfusion® Blazor service in the **~/Program.cs** file of the Blazor Web App. -If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, you need to register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. +If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, register the Syncfusion® Blazor service in both **~/Program.cs** files (server and client) of the Blazor Web App. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -152,7 +152,7 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -If the **Interactive Render Mode** is set to `Server`, your project will contain a single **~/Program.cs** file. So, you should register the Syncfusion® Blazor Service only in that **~/Program.cs** file. +If the **Interactive Render Mode** is set to `Server`, the project contains a single **~/Program.cs** file. In this case, register the Syncfusion® Blazor service only in that file. {% tabs %} {% highlight c# tabtitle="~/_Program.cs" hl_lines="2 9" %} @@ -173,6 +173,8 @@ var app = builder.Build(); {% endhighlight %} {% endtabs %} +N> A valid Syncfusion license is required. For details on generating and registering a license, refer to the [License key registration](https://blazor.syncfusion.com/documentation/common/essential-studio/licensing/overview) documentation. + ## Add stylesheet and script resources The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: @@ -189,11 +191,11 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> See [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) for different ways to reference themes ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)). For script reference options, see [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references). ## Add Syncfusion® Blazor DatePicker component -Add the Syncfusion® Blazor DatePicker component in `.razor` file inside the `Pages` folder. If an interactivity location as `Per page/component` in the web app, define a render mode at top of the component, as follows: +Add the Syncfusion® Blazor DatePicker component in a `.razor` file inside the `Pages` folder. If the interactivity location is set to `Per page/component`, define a render mode at the top of the component as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -202,7 +204,7 @@ Add the Syncfusion® Blazor DatePicker compo | | Server | @rendermode InteractiveServer | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly` or `Server`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is `Auto`, `WebAssembly`, or `Server`, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -221,13 +223,13 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor DatePicker component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This renders the Syncfusion® Blazor DatePicker component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/LXVptWruKtEfoXQa?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor DatePicker Component](./images/blazor-datepicker-component.png)" %} ## Setting the Value and Min and Max dates -The following example demonstrates how to set the [Value](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.CalendarBase-1.html#Syncfusion_Blazor_Calendars_CalendarBase_1_Value) and [Min](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.SfDatePicker-1.html) and [Max](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.CalendarBase-1.html#Syncfusion_Blazor_Calendars_CalendarBase_1_Max) dates on initializing the DatePicker. Here, you can select a date within the range from 5th to 27th of this month. `TValue` specifies the type of the DatePicker component. +The following example demonstrates how to set the [Value](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.CalendarBase-1.html#Syncfusion_Blazor_Calendars_CalendarBase_1_Value), [Min](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.CalendarBase-1.html#Syncfusion_Blazor_Calendars_CalendarBase_1_Min), and [Max](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.CalendarBase-1.html#Syncfusion_Blazor_Calendars_CalendarBase_1_Max) dates when initializing the DatePicker. In this example, a date can be selected within the range from the 5th to the 27th of the current month. `TValue` specifies the type of the DatePicker component. {% tabs %} {% highlight razor %} @@ -252,4 +254,3 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- 1. [Getting Started with Syncfusion® Blazor for client-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) 2. [Getting Started with Syncfusion® Blazor for client-side in Visual Studio](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-visual-studio) 3. [Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) - diff --git a/blazor/diagram/annotations/labels.md b/blazor/diagram/annotations/labels.md index 25fc1063fe..bea1f635a3 100644 --- a/blazor/diagram/annotations/labels.md +++ b/blazor/diagram/annotations/labels.md @@ -1,7 +1,7 @@ --- layout: post title: Annotation in Blazor Diagram Component | Syncfusion -description: Checkout and learn here all about actions of annotation in Syncfusion Blazor Diagram component and more. +description: Checkout and Learn how to create, add, remove, and update annotation for nodes and connectors in Syncfusion Blazor Diagram component and more. platform: Blazor control: Diagram Component documentation: ug @@ -9,18 +9,18 @@ documentation: ug # Annotation in Blazor Diagram Component -The [Annotation](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Annotation.html) is a block of text that can be displayed over a node or connector and it is used to textually represent an object with a string that can be edited at run time. Multiple annotations can be added to a node or connector. +The [Annotation](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Annotation.html) is a block of text that can be displayed over a node or connector and it is used to textually represent an object with a string that can be edited at run time. Multiple annotations can be added to a single node or connector. -## How to Create Annotation +## How to Create an Annotation -An annotation can be added to a node or connector by defining the annotation object and adding it to the annotation collection of the node or connector. The [Content](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Annotation.html#Syncfusion_Blazor_Diagram_Annotation_Content) property of the annotation defines the text to be displayed. +An annotation can be added to a node or connector by defining the annotation object and adding it to the `Annotation` collection of the parent object. The [Content](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Annotation.html#Syncfusion_Blazor_Diagram_Annotation_Content) property of the annotation defines the text to be displayed. -To create and add annotation to Nodes and Connectors using the Blazor Diagram, refer to the below video link, +To create and add annotations to nodes and connectors using the Blazor Diagram, refer to the following video: {% youtube "youtube:https://www.youtube.com/watch?v=f7Jnl5hSy7I" %} -The following code explains how to create an annotation. +The following code example demonstrates how to create an annotation for a node and a connector. ```cshtml @using Syncfusion.Blazor.Diagram @@ -69,18 +69,20 @@ The following code explains how to create an annotation. } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/CreateAnnotation/CreateAnnotation) +{% previewsample "https://blazorplayground.syncfusion.com/embed/LjroijNRrQAsIOIt?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/CreateAnnotation/CreateAnnotation) ![Blazor Diagram Node with Annotation](../images/blazor-diagram-node-with-annotation.png) -N>* [ID](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Annotation.html#Syncfusion_Blazor_Diagram_Annotation_ID) for each annotation should be unique and so it is further used to find the annotation at runtime and do any customization. -
    * By default, node’s annotation positioned in center point of the shape. -
    * By default, connector’s path annotation positioned in center point of its path. +N>* Each annotation's [ID](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Annotation.html#Syncfusion_Blazor_Diagram_Annotation_ID) should be unique. It can be used to find and customize the annotation at runtime. +
    * By default, a node's annotation is positioned at the center of the shape. +
    * By default, a connector’s path annotation positioned at the center of its path. >**Note:** Do not use underscores(_) for annotation's id. -## How to Add Annotation at Runtime +## How to Add an Annotation at Runtime -You can add an annotation at runtime to the Annotations collection of the node/connector in the diagram component by using the `Add` method. +An annotation can be added to the `Annotations` collection of a node or connector at runtime by using the `Add` method. The following code explains how to add an annotation to a node at runtime by using `Add` method. @@ -122,7 +124,9 @@ The following code explains how to add an annotation to a node at runtime by usi } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/AddAnnotationAtRunTime) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VNLIMjtxrwUyoCqW?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/AddAnnotationAtRunTime) Also, the annotations can be added at runtime by using the [AddAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramObjectCollection-1.html#Syncfusion_Blazor_Diagram_DiagramObjectCollection_1_AddAsync__0_) method. The `await` operator suspends the evaluation of the enclosing async method until the asynchronous operation represented by its operand completes. @@ -136,13 +140,13 @@ public async void AddLabel() await(diagram.Nodes[0].Annotations as DiagramObjectCollection).AddAsync(annotation); } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations) +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations) ![Adding Annotation in Blazor Diagram](../images/blazor-diagram-add-annotation.png) -## How to Remove Annotation at Runtime +## How to Remove an Annotation at Runtime -A collection of annotations can be removed from a node by using the `RemoveAt` method. The following code explains how to remove an annotation from a node. +An annotation can be removed from a node or connector's `Annotations` collection by using the `RemoveAt` method. The following code explains how to remove an annotation from a node. ```cshtml @using Syncfusion.Blazor.Diagram @@ -186,9 +190,11 @@ A collection of annotations can be removed from a node by using the `RemoveAt` m } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/RemoveAnnotation/RemoveAnnotation) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BjByiXZHBwzKleyR?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -Also, a collection of annotations can be removed from the node by using the `Remove` method. +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/RemoveAnnotation/RemoveAnnotation) + +Also, The `Remove` method can also be used to remove a specific annotation object. ```cshtml // Method to remove annotation at runtime using Remove method. @@ -200,13 +206,13 @@ Also, a collection of annotations can be removed from the node by using the `Rem ``` N>* You can delete multiple annotations from a node to pass the collection of annotation objects as argument. -
    * The `Add`, `Remove`, and `RemoveAt` methods are applicable for connectors too. +
    * The `Add`, `AddAsync`, `Remove`, and `RemoveAt` methods are applicable for connectors too. -## How to Update Annotation at Runtime +## How to Update an Annotation at Runtime -You can get the annotation directly from the node’s annotations collection property and you can change any annotation properties at runtime. +An annotation can be updated at runtime by retrieving it from the node or connector's Annotations collection and modifying its properties. -The following code sample shows how the annotation of the node changed at runtime. +The following code sample shows how to change the content of a node's annotation at runtime. ```cshtml @using Syncfusion.Blazor.Diagram @@ -250,7 +256,9 @@ The following code sample shows how the annotation of the node changed at runtim } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/UpdateAnnotation/UpdateAnnotation) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VtBIitZxBcSXRxWo?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Annotations/UpdateAnnotation/UpdateAnnotation) ## See also @@ -258,9 +266,9 @@ You can download a complete working sample from [GitHub](https://github.com/Sync * [How to customize the annotation](./appearance) -* [How to animate connectors using annotationtemplate in angular diagram](https://support.syncfusion.com/kb/article/20265/how-to-animate-connectors-using-annotationtemplate-in-angular-diagram ) +* [How to animate connectors using annotation template in angular diagram](https://support.syncfusion.com/kb/article/20265/how-to-animate-connectors-using-annotation template-in-angular-diagram ) * [How to dynamically create and connect diagram nodes with annotations via ports in syncfusion® blazor diagram](https://support.syncfusion.com/kb/article/19001/how-to-dynamically-create-and-connect-diagram-nodes-with-annotations-via-ports-in-syncfusion-blazor-diagram)  -* [How to Prevent Text Overflow and Display Excess Content on Hover in a Diagram?](https://support.syncfusion.com/kb/article/18726/how-to-prevent-text-overflow-and-display-excess-content-on-hover-in-a-diagram) +* [How to Prevent text Overflow and display excess Content on hover in a diagram](https://support.syncfusion.com/kb/article/18726/how-to-prevent-text-overflow-and-display-excess-content-on-hover-in-a-diagram) -* [How to generate a hierarchical layout with annotation at runtime?](https://support.syncfusion.com/kb/article/17884/how-to-generate-a-hierarchical-layout-with-annotation-at-runtime) \ No newline at end of file +* [How to generate a hierarchical layout with annotations at runtime](https://support.syncfusion.com/kb/article/17884/how-to-generate-a-hierarchical-layout-with-annotation-at-runtime) \ No newline at end of file diff --git a/blazor/diagram/interaction.md b/blazor/diagram/interaction.md index 988f95ff85..ba96e062c7 100644 --- a/blazor/diagram/interaction.md +++ b/blazor/diagram/interaction.md @@ -1,7 +1,7 @@ --- layout: post title: Connector Interactions in Blazor Diagram Component | Syncfusion -description: Checkout and learn here all about connector interaction in Syncfusion Blazor Diagram component and much more details. +description: Checkout and learn here all about diagram interaction in Syncfusion Blazor Diagram component and much more details. platform: Blazor control: Diagram Component documentation: ug @@ -11,16 +11,16 @@ documentation: ug ## Selection -[DiagramSelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html) provides a visual representation of selected elements. It behaves like a container and allows to update the size, position, and rotation angle of the selected elements through interaction and by using program. Single or multiple elements can be selected at a time. +[DiagramSelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html) provides the visual representation of selected elements. It behaves like a container and allows to update the size, position, and rotation angle of the selected elements through interaction or programmatic changes. Single or multiple elements can be selected at a time. ## How to Perform Single Selection -An element can be selected by clicking that element. During single click, all previously selected items are cleared. The following image shows how the selected elements are visually represented. +Select an element by clicking it. A single click clears any previous selection and selects the clicked item. The following image shows the selected elements are visually represented. ![Single Selection in Blazor Diagram](images/blazor-diagram-single-selection.gif) -* While selecting the diagram elements, the following events can be used to do your customization. -* When selecting/unselecting the diagram elements, the following events get triggered and do customization on those events. +* Use the following events to customize selection behavior: +* When selecting or unselecting the diagram elements, the following events get triggered and do customization on those events. | Events | EventArgs | Description | |----------------|--------------|--------------| @@ -62,15 +62,17 @@ An element can be selected by clicking that element. During single click, all pr } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramSelectionEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/hXLSMDtPLbKuecIg?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramSelectionEvent) ## How to Select a Group -When a child element of any group is clicked, its contained group is selected instead of the child element. With consecutive clicks on the selected element, the selection is changed from top to bottom in the hierarchy of the parent group to its children. +When a child element of a group is clicked, its contained group is selected instead of the child element. With consecutive clicks on the selected element, the selection is changed from top to bottom in the hierarchy of the parent group to its children. ## How to Perform Multiple Selection -Multiple elements can be selected with the following ways: +Multiple elements can be selected in the following ways: * Ctrl+Click @@ -84,11 +86,11 @@ Clicking and dragging the diagram area allows to create a rectangular region. Th The Diagram Element Highlighter feature enhances the selection process by visually distinguishing selected elements and indicating which elements are part of a selection when performing multiple selection actions. -* Rubber Band Selection: The first added diagram element will be highlighted with a 2px stroke width, while other selected elements will have a 1px stroke width. +* Rubber band selection: The first added diagram element will be highlighted with a 2px stroke width, while other selected elements will have a 1px stroke width. * Ctrl+Click: The first selected element will have a 2px stroke width, while other selected elements will have a 1px stroke width. -* Single Selection: The selection highlighter is not applicable. +* Single Selection: The selection highlighter does not apply. For more information about customizing the Diagram Element Highlighter, refer [Customize Highlights for Selected Diagram Elements](./style#how-to-customize-highlights-for-selected-diagram-elements). @@ -96,13 +98,13 @@ For more information about customizing the Diagram Element Highlighter, refer [C ## How to Select and Unselect Elements Using Program -The [Select](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_Select_System_Collections_ObjectModel_ObservableCollection_Syncfusion_Blazor_Diagram_IDiagramObject__System_Nullable_System_Boolean__) and [ClearSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_ClearSelection) methods help to select or clear the selection of the elements at runtime. +Use [Select](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_Select_System_Collections_ObjectModel_ObservableCollection_Syncfusion_Blazor_Diagram_IDiagramObject__System_Nullable_System_Boolean__) to programmatically select elements and [ClearSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_ClearSelection) methods help to select or clear the selection of the elements at runtime. Get the currently selected items from the [Nodes](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_Nodes) and [Connectors](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_Connectors) collection of the [SelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_SelectionSettings) property of the diagram model. ## How to Toggle Selection of Elements at Runtime -You can toggle the selection state of diagram elements, including nodes, connectors, groups, and swimlanes, by clicking on them at runtime. The [CanToggleSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html#Syncfusion_Blazor_Diagram_DiagramSelectionSettings_CanToggleSelection) property in [DiagramSelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html) determines whether the selection state of a diagram element should toggle with a mouse click at runtime. By default, this property is set to false. +Toggle selection state of diagram elements, including nodes, connectors, groups, and swimlanes, by clicking on them at runtime. The [CanToggleSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html#Syncfusion_Blazor_Diagram_DiagramSelectionSettings_CanToggleSelection) property in [DiagramSelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html) determines whether the selection state of a diagram element should toggle with a mouse click at runtime. By default, this property is set to false. In the following example, the node can be selected with the first click and unselected with the second click. ```cshtml @@ -132,7 +134,9 @@ In the following example, the node can be selected with the first click and unse } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/UnSelectSample) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rXLSiNDbBbpTKpzu?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/UnSelectSample) ![Toggle Selection in Blazor Diagram](images/UnselectSample.gif) @@ -148,16 +152,16 @@ The [RubberBandSelectionMode](https://help.syncfusion.com/cr/blazor/Syncfusion.B **1. CompleteIntersect Mode** When RubberBandSelectionMode is set to [CompleteIntersect](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.RubberBandSelectionMode.html#Syncfusion_Blazor_Diagram_RubberBandSelectionMode_CompleteIntersect): -* Only elements that are completely covered by the rubber band selection rectangle are selected +* Only elements completely covered by the rubber band selection rectangle are selected * Elements that are partially intersected by the selection rectangle are excluded from selection * This provides precise selection control, ensuring only fully enclosed elements are selected **2. PartialIntersect Mode** When RubberBandSelectionMode is set to [PartialIntersect](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.RubberBandSelectionMode.html#Syncfusion_Blazor_Diagram_RubberBandSelectionMode_PartialIntersect): -* Elements that are partially intersected by the rubber band selection are included in the selection +* Elements partially intersected by the rubber band selection are included in the selection * Any element that touches or overlaps with the selection rectangle, even partially, gets selected -* his provides more flexible selection, making it easier to select multiple elements +* This provides more flexible selection, making it easier to select multiple elements. **Implementation Example** @@ -168,7 +172,7 @@ When RubberBandSelectionMode is set to [PartialIntersect](https://help.syncfusio @using System.Collections.ObjectModel @using Syncfusion.Blazor.Buttons - + @functions { @@ -258,10 +262,12 @@ When RubberBandSelectionMode is set to [PartialIntersect](https://help.syncfusio } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/RubberBandSelectionMode) +{% previewsample "https://blazorplayground.syncfusion.com/embed/hthysXZvLFILllHo?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/RubberBandSelectionMode) ## Getting Current Selected Objects -You can access all currently selected elements through the diagram's SelectionSettings property. +Access all currently selected elements through the diagram's SelectionSettings property. The DiagramSelectionSettings provides access to: @@ -365,10 +371,13 @@ The DiagramSelectionSettings provides access to: } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/CurrentSelection) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rNBSsDjFhlxZSZvL?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/CurrentSelection) ### How to clone the selected nodes and connector at runtime -Clone is a virtual method of the node that is used to create a copy of a diagram object. After cloning, it is necessary to set a unique ID for the cloned nodes and connectors. The following code demonstrates how to clone selected nodes during runtime. + +Clone is a virtual method of the node used to create a copy of a diagram object. After cloning, it is necessary to set a unique ID for the cloned nodes and connectors. The following code demonstrates how to clone selected nodes during runtime. ```cshtml @using Syncfusion.Blazor.Diagram @using System.Collections.ObjectModel @@ -377,7 +386,7 @@ Clone is a virtual method of the node that is used to create a copy of a diagram - + @functions { public string ID = "diagram"; @@ -570,11 +579,13 @@ Clone is a virtual method of the node that is used to create a copy of a diagram } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/CloneSelectedItems) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VZVICNXlrlnvNlVu?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/CloneSelectedItems) ![Grouping in Blazor Diagram](images/CloneSelection.gif) ### How to Access and Modify Selected Nodes and Connectors at Runtime -You can access and update the properties of selected nodes and connectors using the [SelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_SelectionSettings) API in Syncfusion® Blazor's [SfDiagramComponent](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html). This allows you to respond to user selections and dynamically modify diagram elements at runtime. The following code demonstrates how to access and modify the selected Node and selected connector during runtime. +Access and update the properties of selected nodes and connectors using the [SelectionSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_SelectionSettings) API in Syncfusion® Blazor's [SfDiagramComponent](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html). This allows to respond to user selections and dynamically modify diagram elements at runtime. The following code demonstrates how to access and modify the selected Node and selected connector during runtime. ``` @page "/" @using Syncfusion.Blazor.Diagram @@ -625,7 +636,9 @@ SelectionChanged="OnSelectionChanged"> } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/SelectedElements) +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNBIMDNbBPcaeybR?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/SelectedElements) ## How to Drag Elements * An object can be dragged by clicking and dragging it. When multiple elements are selected, dragging any one of the selected elements moves every selected element. @@ -671,7 +684,9 @@ You can download a complete working sample from [GitHub](https://github.com/Sync } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramPositionEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/htLosXtvrPFdHwTo?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramPositionEvent) For more information about dragging, refer [Node Drag](./nodes/interaction#how-to-drag-the-node) ## How to Resize Elements @@ -721,7 +736,9 @@ For more information about dragging, refer [Node Drag](./nodes/interaction#how-t } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramSizeEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rDVostNPrvOZhuso?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramSizeEvent) For more information about resizing, refer [Node Resize](./nodes/interaction#how-to-resize-the-node) @@ -775,7 +792,9 @@ N> While dragging and resizing, the objects are snapped towards the nearest obje } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramRotateEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BtBIiZZlhvYIDpvh?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramRotateEvent) For more information about resizing, refer [Node Rotate](./nodes/interaction#how-to-rotate-the-node) @@ -785,12 +804,12 @@ For more information about resizing, refer [Node Rotate](./nodes/interaction#how ## How to Adjust Connector End Point Handles -Source and target points of the selected connectors are represented by two handles. Clicking and dragging those handles help you to adjust the source and target points. +Source and target points of the selected connectors are represented by two handles. Clicking and dragging those handles helps to adjust the source and target points. For more information, refer [End Point Dragging](./connectors/interactions#end-point-dragging) -* If you drag the connector end points, then the following events can be used to do your customization. -* When you connect connector with ports/node or disconnect from it, the following events are triggered. +* Drag the connector end points, then the following events can be used to do your customization. +* Connect connector with ports or node or disconnect from it, the following events are triggered. | Events | EventArgs | Description | |----------------|--------------|--------------| @@ -869,7 +888,9 @@ For more information, refer [End Point Dragging](./connectors/interactions#end-p } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramConnectionEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rDLIiDDFLkXDqWqS?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/DiagramConnectionEvent) ## How to Edit Straight Connector Segments @@ -951,7 +972,9 @@ For more information about straight segment editing, refer [Straight Segment Edi } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/SegmentEditing) +{% previewsample "https://blazorplayground.syncfusion.com/embed/LNLoiNXFhEtTKrJy?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/SegmentEditing) For more information about orthogonal segment editing, refer [Orthogonal Segment Editing](./connectors/segments/orthogonal#orthogonal-segment-editing). @@ -966,7 +989,7 @@ User handles can be aligned relative to the node boundaries. It has [Margin](htt ## How to Position User Handle -The [Offset](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Offset) property of a [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html) is used to align the user handle based on fractions. 0 represents top/left corner, 1 represents bottom/right corner, and 0.5 represents half of width/height. +The [Offset](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Offset) property of a [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html) is used to align the user handle based on fractions. 0 represents top or left corner, 1 represents bottom or right corner, and 0.5 represents half of width or height. ## HHow to Align User Handles Based on Connector Boundary @@ -1023,15 +1046,17 @@ The diagram component notifies the mouse button clicked. For example, whenever t } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/MouseClick) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rXVoWNtPgqsPzFca?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Interaction/MouseClick) ## How to Customize the Appearance of User Handle -The appearance of the user handle can be customized by using the [Size](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Size), [BorderColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BorderColor), [BackgroundColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BackgroundColor), [Visible](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Visible), [PathData](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_PathData), and [PathColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_PathColor) properties of the [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html). +The appearance of the user handle can be customized using the [Size](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Size), [BorderColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BorderColor), [BackgroundColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BackgroundColor), [Visible](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Visible), [PathData](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_PathData), and [PathColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_PathColor) properties of the [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html). ## How to Zoom and Pan the Diagram -* When a large diagram is loaded, only certain portion of the diagram is visible. The remaining portions are clipped. Clipped portions can be explored by scrolling the scrollbars or panning the diagram. +* When a large diagram is loaded, only certain portion of the diagram is visible. The remaining portions are clipped. Clipped portions can be explored by scrolling the scrollbars or panning the diagram. * The diagram can be zoomed in or out by using Ctrl + mouse wheel. ![Zoom Pan in Blazor Diagram](images/blazor-diagram-zoom-pan.gif) diff --git a/blazor/file-manager/amazon-S3-cloud-file-provider.md b/blazor/file-manager/amazon-S3-cloud-file-provider.md index fc3445200f..372730aaac 100644 --- a/blazor/file-manager/amazon-S3-cloud-file-provider.md +++ b/blazor/file-manager/amazon-S3-cloud-file-provider.md @@ -1,15 +1,15 @@ --- layout: post -title: Amazon S3 cloud Provider in Blazor File Manager Component | Syncfusion +title: Amazon S3 Cloud Provider in Blazor File Manager Component | Syncfusion description: Checkout and learn here all about Amazon S3 cloud file provider in Syncfusion Blazor File Manager component and more. platform: Blazor control: File Manager documentation: ug --- -# Amazon S3 cloud file provider +# Amazon S3 Cloud File Provider -The Amazon ***S3*** (*Simple Storage Service*) cloud file provider allows the users to access and manage a server hosted file system as collection of objects stored in the Amazon S3 Bucket. To get started, clone the [Amazon S3 File Provider](https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provider) using the following command +The Amazon ***S3*** (*Simple Storage Service*) cloud file provider enables users to access and manage a server-hosted file system as a collection of objects stored in an Amazon S3 bucket. To get started, clone the [Amazon S3 File Provider](https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provider) using the following command ``` @@ -17,9 +17,9 @@ git clone https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provi ``` -N> To learn more about creating and configuring an Amazon S3 bucket, refer to this [link](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). +N> To learn more about creating and configuring an Amazon S3 bucket, refer to the [link](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). -After cloning, open the project in Visual Studio and restore the NuGet packages. Now, register Amazon S3 client account details like *awsAccessKeyId*, *awsSecretKeyId* and *awsRegion* details in **RegisterAmazonS3** method in the File Manager controller to perform the file operations. +After cloning, open the project in Visual Studio and restore the NuGet packages. Now, register Amazon S3 client account details, including *awsAccessKeyId*, *awsSecretKeyId* and *awsRegion* details in **RegisterAmazonS3** method within the File Manager controller to enable file operations. ```csharp @@ -27,7 +27,7 @@ After cloning, open the project in Visual Studio and restore the NuGet packages. ``` -After registering the Amazon client account details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}:{port}` and just mapping the **ajaxSettings** property of the File Manager component to the appropriate controller methods allows to manage the Amazon ***S3*** (*Simple Storage Service*) bucket's objects storage. +Once the Amazon client account details are registered, build and run the project. The application will be hosted at `http://localhost:{port}`. Map the `ajaxSettings` property of the File Manager component to the appropriate controller methods to manage the Amazon S3 bucket's object storage. ```cshtml @@ -45,8 +45,8 @@ After registering the Amazon client account details, just build and run the proj ``` -To perform file operations (Read, Create, Rename, Delete, Get file details, Search, Copy, Move, Upload, Download, GetImage) in the Syncfusion® Blazor File Manager component using the Amazon S3 cloud file provider, you need to initialize the Amazon S3 cloud file provider in the controller. +To perform file operations such as read, create, rename, delete, get file details, search, copy, move, upload, download, and get image in the Syncfusion® Blazor File Manager component using the Amazon S3 cloud file provider, initialize the provider in the controller. -To initialize a local service with the above-mentioned file operations, create a new folder named `Controllers` inside the server part of the project. Then, create a new file with the extension `.cs` inside the Controllers folder and add the necessary file operations code available in the `AmazonS3ProviderController.cs` found at this [link](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Controllers/AmazonS3ProviderController.cs). Additionally, you can check out all the necessary file operation method details for this provider in the same GitHub repository. +To set up a local service for these file operations, create a folder named `Controllers` in the server project. Add a new `.cs` file inside the `Controllers` folder and include the necessary file operations code from the `AmazonS3ProviderController.cs` available at this [GitHub link](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Controllers/AmazonS3ProviderController.cs). Refer to the repository for details on all supported file operation methods. -N> To learn more about the file actions that can be performed with Amazon S3 Cloud File provider, refer to this [link](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider#key-features) \ No newline at end of file +N> For more information about the file actions available with the Amazon S3 Cloud File Provider, see the [feature list](https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provider.git#key-features). \ No newline at end of file diff --git a/blazor/file-manager/getting-started-with-server-app.md b/blazor/file-manager/getting-started-with-server-app.md index 83e878e5ca..09a686c7aa 100644 --- a/blazor/file-manager/getting-started-with-server-app.md +++ b/blazor/file-manager/getting-started-with-server-app.md @@ -11,7 +11,7 @@ documentation: ug # Getting Started with Blazor File Manager Component in Server App -This section briefly explains about how to include [Blazor FileManager](https://www.syncfusion.com/blazor-components/blazor-file-manager) component in your Blazor Server App using Visual Studio, Visual Studio Code and .NET CLI. +This section explains how to integrate the Syncfusion [Blazor FileManager](https://www.syncfusion.com/blazor-components/blazor-file-manager) component into a Blazor Server App using Visual Studio, Visual Studio Code and .NET CLI. {% tabcontents %} @@ -23,7 +23,7 @@ This section briefly explains about how to include [Blazor FileManager](https:// ## Create a new Blazor App in Visual Studio -You can create a **Blazor Server App** using **Blazor Web App** template in Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=windows) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) documentation. +Create a **Blazor Server App** using **Blazor Web App** template in Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=windows) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) documentation. ## Install Syncfusion® Blazor File Manager and Themes NuGet in the App @@ -48,11 +48,11 @@ N> Syncfusion® Blazor components are availa * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor App in Visual Studio Code +## Create a New Blazor Server App in Visual Studio Code -You can create a **Blazor Server App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio?tabcontent=visual-studio-code) documentation. +A **Blazor Server App** can be created using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio?tabcontent=visual-studio-code) documentation. -Alternatively, you can create a Server application using the following command in the terminal(Ctrl+`). +Alternatively, a Server application can be created using the following command in the terminal (Ctrl+`): {% tabs %} @@ -68,7 +68,7 @@ cd BlazorApp ## Install Syncfusion® Blazor File Manager and Themes NuGet in the App * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. +* Ensure the current directory is the project root directory where the `.csproj` file is located. * Run the following command to install a [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -91,7 +91,7 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK was previously installed, the installed version can be determined by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -114,7 +114,7 @@ cd BlazorApp {% endhighlight %} {% endtabs %} -This command creates new Blazor Server App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. +This command creates new Blazor Server App and places it in a new directory called `BlazorApp` inside the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. ## Install Syncfusion® Blazor FileManager and Themes NuGet in the App @@ -130,7 +130,7 @@ dotnet restore {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages with component details. {% endtabcontent %} @@ -151,7 +151,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Server App. +Register the Syncfusion® Blazor Service in the **~/Program.cs** file of the Blazor Server App. {% tabs %} {% highlight C# tabtitle="~/Program.cs" hl_lines="3 10" %} @@ -172,9 +172,9 @@ builder.Services.AddSyncfusionBlazor(); {% endhighlight %} {% endtabs %} -## Add stylesheet and script resources +## Add Stylesheet and Script Resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script in the `` and the script reference at the end of the `` in the **App.razor** file as shown below: +The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet in the `` and the script reference at the end of the `` in the **App.razor** file as shown below: ```html @@ -191,11 +191,11 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. -## Add Blazor File Manager component +## Add Blazor File Manager Component -Add the Syncfusion® Blazor File Manager component in the **~/Components/Pages/Home.razor** file. If an interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. +Add the Syncfusion® Blazor File Manager component in the **~/Components/Pages/Home.razor** file. If an interactivity location is set to `per page/component`, define a render mode at the top of the `Home.razor` page. N> If an Interactivity Location is set to `Global` and the **Render Mode** is set to `Server`, the render mode is configured in the `App.razor` file by default. @@ -228,7 +228,7 @@ Create a new folder named `Models` in the server project. Add the necessary mode To initialize a local service, create a new folder name with `Controllers` inside the server part of the project. Then, create a new file `FileManagerController` with extension `.cs` inside the `Controllers` folder. -Make sure your controller `FileManagerController.cs` uses the model classes you've created. Import the model namespace at the top of your controller file +Make sure the controller `FileManagerController.cs` uses the model classes that were created. Import the model namespace at the top of the controller file. File Manager's base functions are available in the below namespace. ```cshtml @@ -327,7 +327,7 @@ app.UseRouting(); app.MapControllers(); ``` -This will configure and map the controller in your Blazor App. +This configures and maps the controller in the Blazor App. ## Create Web Server App @@ -349,9 +349,9 @@ Add the Syncfusion® Blazor File Manager com {% endhighlight %} {% endtabs %} -Add your required files and folders under the `wwwroot\Files` directory. -* In your project, the `wwwroot` directory is where static files are served from. It is typically found at the root level of your server project. -* Inside the `wwwroot` directory, create a new folder named `Files`. This will be used to store static files like images, documents, or other resources that you want to serve directly. +Add required files and folders under the `wwwroot\Files` directory. +* In the project, the `wwwroot` directory is where static files are served from. It is typically found at the root level of the server project. +* Inside the `wwwroot` directory, create a new folder named `Files`. This is used to store static files like images, documents, or other resources that are served directly. * Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor File Manager component in your default web browser. ![Blazor File Manager Component](images/blazor-filemanager-component.png) diff --git a/blazor/file-manager/getting-started-with-wasm-app.md b/blazor/file-manager/getting-started-with-wasm-app.md index 5742e2c33e..2a13be0d20 100644 --- a/blazor/file-manager/getting-started-with-wasm-app.md +++ b/blazor/file-manager/getting-started-with-wasm-app.md @@ -11,7 +11,7 @@ documentation: ug # Getting Started with Blazor File Manager Component in WASM App -This section briefly explains about how to include [Blazor File Manager](https://www.syncfusion.com/blazor-components/blazor-file-manager) component in your Blazor WebAssembly App using Visual Studio, Visual Studio Code and .NET CLI. +This section explains how to integrate the Syncfusion [Blazor File Manager](https://www.syncfusion.com/blazor-components/blazor-file-manager) component into a Blazor WebAssembly App using Visual Studio, Visual Studio Code and .NET CLI. {% tabcontents %} @@ -23,7 +23,7 @@ This section briefly explains about how to include [Blazor File Manager](https:/ ## Create a new Blazor App in Visual Studio -You can create a **Blazor WebAssembly App** using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app). +A **Blazor WebAssembly App** can be created using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app). ## Install Syncfusion® Blazor File Manager and Themes NuGet in the App @@ -50,9 +50,9 @@ N> Syncfusion® Blazor components are availa ## Create a new Blazor App in Visual Studio Code -You can create a **Blazor WebAssembly App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app?tabcontent=visual-studio-code). +A **Blazor WebAssembly App** can be created using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app?tabcontent=visual-studio-code). -Alternatively, you can create a WebAssembly application using the following command in the terminal(Ctrl+`). +Alternatively, a WebAssembly application can be created using the following command in the terminal (Ctrl+`): {% tabs %} @@ -68,7 +68,7 @@ cd BlazorApp ## Install Syncfusion® Blazor File Manager and Themes NuGet in the App * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. +* Ensure the current directory is the project root directory where the `.csproj` file is located. * Run the following command to install a [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -91,7 +91,7 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK was previously installed, the installed version can be determined by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -114,7 +114,7 @@ cd BlazorApp {% endhighlight %} {% endtabs %} -This command creates new Blazor WebAssembly App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. +This command creates new Blazor WebAssembly App and places it in a new directory called `BlazorApp` inside the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. ## Install Syncfusion® Blazor FileManager and Themes NuGet in the App @@ -173,9 +173,9 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -## Add stylesheet and script resources +## Add Stylesheet and Script Resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Reference the stylesheet and script in the `` of the main page as follows: +The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet references within the `` section and script references in `` section of the **~/index.html** file. * For Blazor WebAssembly app, include it in the **~/index.html** file. @@ -183,12 +183,16 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A .... - +.... + + .... + + ``` N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. -## Add Blazor File Manager component +## Add Blazor File Manager Component Add the Syncfusion® Blazor File Manager component in the **~/Pages/Index.razor** file. @@ -212,7 +216,7 @@ Add the Syncfusion® Blazor File Manager com Create a new folder named `Models` in the server project. Add the necessary model files to this folder for handling file operations. Download the `PhysicalFileProvider.cs` and `Base` folder from this [repository](https://github.com/SyncfusionExamples/ej2-aspcore-file-provider/tree/master/Models) and place them in the Models folder. -## Create a new folder controller +## Create a New Folder Controller To initialize a local service, create a new folder name with `Controllers` inside the server part of the project. Then, create a new file `FileManagerController` with extension `.cs` inside the `Controllers` folder. @@ -231,7 +235,7 @@ using Syncfusion.EJ2.FileManager.PhysicalFileProvider; File Manager supports the basic file actions like Read, Delete, Copy, Move, Get Details, Search, Rename, and Create New Folder. -For standalone Blazor WASM applications, you can use the service from this [link](https://github.com/SyncfusionExamples/ej2-aspcore-file-provider/). For other types of applications like ASP hosted applications, create a new folder name with `Controllers` inside the server part of the project. Then, create a new file `FileManagerController` with extension `.cs` inside the `Controllers` folder and add the following code in that file. +For standalone Blazor WASM applications, a service from this [link](https://github.com/SyncfusionExamples/ej2-aspcore-file-provider/) can be used. For other types of applications like ASP hosted applications, create a new folder name with `Controllers` inside the server part of the project. Then, create a new file `FileManagerController` with extension `.cs` inside the `Controllers` folder and add the following code in that file. {% tabs %} {% highlight cs tabtitle="Controllers/FileManagerController.cs" %} @@ -326,10 +330,11 @@ Add the Syncfusion® Blazor File Manager com {% endhighlight %} {% endtabs %} -Add your required files and folders under the `wwwroot\Files` directory. -* In your project, the `wwwroot` directory is where static files are served from. It is typically found at the root level of your server project. -* Inside the `wwwroot` directory, create a new folder named `Files`. This will be used to store static files like images, documents, or other resources that you want to serve directly. -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor File Manager component in your default web browser. +Add required files and folders under the `wwwroot\Files` directory. + +* In the project, the `wwwroot` directory is where static files are served from. It is typically found at the root level of the server project. +* Inside the `wwwroot` directory, create a new folder named `Files`. This will be used to store static files like images, documents, or other resources that are served directly. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor File Manager component in default web browser. ![Blazor File Manager Component](images/blazor-filemanager-component.png) diff --git a/blazor/file-manager/getting-started-with-web-app.md b/blazor/file-manager/getting-started-with-web-app.md index ce73a6b78c..5bbffb9161 100644 --- a/blazor/file-manager/getting-started-with-web-app.md +++ b/blazor/file-manager/getting-started-with-web-app.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Blazor File Manager Component in Web App -This section briefly explains about how to include [Blazor FileManager](https://www.syncfusion.com/blazor-components/blazor-file-manager) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/), Visual Studio Code and .NET CLI. +This section explains how to integrate the Syncfusion [Blazor FileManager](https://www.syncfusion.com/blazor-components/blazor-file-manager) component into a Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/), Visual Studio Code and .NET CLI. {% tabcontents %} @@ -19,11 +19,13 @@ This section briefly explains about how to include [Blazor FileManager](https:// * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor Web App in Visual Studio +## Create a New Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) documentation. +A **Blazor Web App** can be created using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) documentation. -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +The corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) need to be configured while creating a Blazor Web Application. + +![Create Blazor Web App](images/blazor-create-web-app.png) ![Create Blazor Web App](images/blazor-create-web-app.png) @@ -31,9 +33,9 @@ You need to configure the corresponding [Interactive render mode](https://learn. To add **Blazor FileManager** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If `WebAssembly` or `Auto` render modes are used in the Blazor Web App, the Syncfusion Blazor components NuGet packages need to be installed within the client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, the Package Manager Console can be used to install the required NuGet package {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -54,11 +56,11 @@ N> Syncfusion® Blazor components are availa * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor Web App in Visual Studio Code +## Create a New Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code) documentation. +A **Blazor Web App** can be created using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code) documentation. -Configure the appropriate interactive render mode and interactivity location when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). +The appropriate interactive render mode and interactivity location should be configured when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. @@ -74,11 +76,11 @@ cd BlazorWebApp.Client ## Install Syncfusion® Blazor File Manager and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If `WebAssembly` or `Auto` render modes are used in the Blazor Web App, the Syncfusion® Blazor components NuGet packages need to be installed within the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the current directory is the project root directory where the `.csproj` file is located. +* Run the following command to install the [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -100,7 +102,7 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK was previously installed, the installed version can be determined by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -114,7 +116,7 @@ dotnet --version Run the following command to create a new Blazor Web App in a command prompt (Windows) or terminal (macOS) or command shell (Linux). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=.net-cli) documentation. -Configure the appropriate interactive render mode and interactivity location when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). +The appropriate interactive render mode and interactivity location should be configured when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). For example, in a Blazor Web App with `Auto` interactive render mode, use the following commands: @@ -128,13 +130,13 @@ cd BlazorApp.Client {% endhighlight %} {% endtabs %} -This command creates new Blazor Web App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. +This command creates new Blazor Web App and places it in a new directory called `BlazorApp` inside the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. ## Install Syncfusion® Blazor FileManager and Themes NuGet in the App -Here's an example of how to add **Blazor FileManager** component in the application using the following command in the command prompt (Windows) or terminal (Linux and macOS) to install a [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package. See [Install and manage packages using the dotnet CLI](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) topics for more details. +Here's an example of how to add **Blazor FileManager** component to the application using the following command in the command prompt (Windows) or terminal (Linux and macOS) to install the [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package. See [Install and manage packages using the dotnet CLI](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) topics for more details. -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If `WebAssembly` or `Auto` render modes are used in the Blazor Web App, the Syncfusion® Blazor components NuGet packages need to be installed within the client project. {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -167,9 +169,9 @@ Open the **~/_Imports.razor** file from the client project and import the `Syncf ## Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Register the Syncfusion® Blazor Service in the **~/Program.cs** file of the Blazor Web App. -If your Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, you must register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. +If your Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, the Syncfusion® Blazor service must be registered in the **~/Program.cs** files of the main `server` project and associated `.Client` project. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -219,7 +221,7 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. ## Add Syncfusion® Blazor File Manager component @@ -266,7 +268,7 @@ Create a new folder named `Models` in the server project. Add the necessary mode To initialize a local service, create a new folder name with `Controllers` inside the server part of the project. Then, create a new file `FileManagerController` with extension `.cs` inside the `Controllers` folder. -Make sure your controller `FileManagerController.cs` uses the model classes you've created. Import the model namespace at the top of your controller file +Make sure the controller `FileManagerController.cs` uses the model classes that were created. Import the model namespace at the top of the controller file. File Manager's base functions are available in the below namespace. ```cshtml @@ -368,7 +370,7 @@ app.MapControllers(); ``` -This will configure and map the controller in your Blazor App. +This configures and maps the controller in the Blazor App. ## Create Web App @@ -396,7 +398,7 @@ Blazor supports different interactive modes for server-side rendering: * Interactive Server Render Mode: This mode allows Blazor components to be rendered on the server, sending the HTML to the client while maintaining interactive capabilities. It provides a balance between server-side processing and client-side responsiveness. -* To enable this mode, configure the `Program.cs` file in your Blazor project using the `AddInteractiveServerRenderMode` method. +* To enable this mode, configure the `Program.cs` file in the Blazor project using the `AddInteractiveServerRenderMode` method. ````cshtml builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); @@ -412,11 +414,11 @@ Define a render mode at top of the component, as follows: {% endhighlight %} {% endtabs %} -Add your required files and folders under the `wwwroot\Files` directory. +Add required files and folders under the `wwwroot\Files` directory. -* In your project, the `wwwroot` directory is where static files are served from. It is typically found at the root level of your server project. -* Inside the `wwwroot` directory, create a new folder named `Files`. This will be used to store static files like images, documents, or other resources that you want to serve directly. -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor File Manager component in your default web browser. +* In the project, the `wwwroot` directory is where static files are served from. It is typically found at the root level of the server project. +* Inside the `wwwroot` directory, create a new folder named `Files`. This will be used to store static files like images, documents, or other resources that are served directly. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion Blazor File Manager component in the default web browser. ![Blazor File Manager Component](images/blazor-filemanager-component.png) diff --git a/blazor/getting-started/blazor-web-app.md b/blazor/getting-started/blazor-web-app.md index d59932937c..ac69afd96a 100644 --- a/blazor/getting-started/blazor-web-app.md +++ b/blazor/getting-started/blazor-web-app.md @@ -129,7 +129,7 @@ dotnet --version {% endhighlight %} {% endtabs %} -### Create a Blazor Web App using .NET CLI +## Create a Blazor Web App using .NET CLI Run the following command to create a new Blazor Web App in a command prompt (Windows) or terminal (macOS) or command shell (Linux). @@ -147,7 +147,7 @@ cd BlazorWebApp.Client {% endhighlight %} {% endtabs %} -This command creates new Blazor Web App and places it in a new directory called `BlazorWebApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. +This command creates new Blazor Web App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. ### Install Syncfusion® Blazor Navigations and Themes NuGet in the App diff --git a/blazor/image-editor/annotation.md b/blazor/image-editor/annotation.md index 0df7350817..d30f2bbaef 100644 --- a/blazor/image-editor/annotation.md +++ b/blazor/image-editor/annotation.md @@ -1,7 +1,7 @@ --- layout: post title: Annotation with Blazor Image Editor Component | Syncfusion -description: Checkout the Annotation available in Blazor Image Editor component in Blazor Server App and Blazor WebAssembly App. +description: Explore annotation features in the Blazor Image Editor component for Blazor Server and WebAssembly applications. platform: Blazor control: Image Editor documentation: ug @@ -9,55 +9,53 @@ documentation: ug # Annotations in the Blazor Image Editor component -The [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component allows adding annotations to the image, including text, freehand drawings, and shapes like rectangles, ellipses, arrows, paths, and lines. This gives the flexibility to mark up the image with notes, sketches, and other visual elements as needed. These annotation tools can help to communicate and share ideas more effectively. Users are allowed to draw multiple annotations simultaneously, enhancing creative flexibility. Furthermore, every action, including customizations, will be tracked in the undo/redo collection, ensuring a seamless user experience and making it easier to experiment with different designs. +The [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component supports annotations including text, freehand drawings, and shapes such as rectangles, ellipses, arrows, paths, and lines. These tools enable effective visual markup for notes and sketches. Multiple annotations can be drawn simultaneously. All actions, including customizations, are tracked in the undo/redo collection to support iterative editing. ## Text annotation -Text annotation feature in the Blazor Image Editor component provides the capability to add and customize labels, captions, and other text elements directly onto the image. With this feature, you can easily insert text at specific locations within the image and customize various aspects of the text to meet your requirements. +The text annotation feature enables adding labels, captions, and other text elements directly on the image with customizable options. -You have control over the customization options including text content, font family, font style, font color, fill color, stroke color, stroke width and font size for the text annotation. +Customization options include text content, font family, font style, font color, fill color, stroke color, stroke width, and font size. ### Add a text -The [`DrawTextAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method in the Blazor Image Editor component allows you to insert a text annotation into the image with specific customization options. This method accepts the following parameters: +The [DrawTextAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method inserts a text annotation into the image with specific customization options. Parameters: -* x - Specifies the x-coordinate of the text, determining its horizontal position within the image. +- x - Specifies the x-coordinate of the text, determining its horizontal position within the image. -* y - Specifies the y-coordinate of the text, determining its vertical position within the image. +- y - Specifies the y-coordinate of the text, determining its vertical position within the image. -* text - Specifies the actual text content to be added to the image. +- text - Specifies the actual text content to be added to the image. -* fontFamily - Specifies the font family of the text, allowing you to choose a specific typeface or style for the text. +- fontFamily - Specifies the font family of the text. -* fontSize - Specifies the font size of the text, determining its relative size within the image. +- fontSize - Specifies the font size of the text. -* bold - Specifies whether the text should be displayed in bold style. Set to true for bold text, and false for regular text. +- bold - Specifies whether the text is displayed in bold style. Set to true for bold text, and false for regular text. -* italic - Specifies whether the text should be displayed in italic style. Set to true for italic text, and false for regular text. +- italic - Specifies whether the text is displayed in italic style. Set to true for italic text, and false for regular text. -* color - Specifies the font color of the text, allowing you to define the desired color using appropriate color values or names. +- color - Specifies the font color of the text. -* isSelected: Specifies to show the text in the selected state. +- isSelected - Specifies whether the text is shown in the selected state. -* degree: Specifies the degree to rotate the text. +- degree - Specifies the degree to rotate the text. -* fillColor: Specifies the background color of the text. +- fillColor - Specifies the background color of the text. -* strokeColor: Specifies the outline color of the text annotation. +- strokeColor - Specifies the outline color of the text annotation. -* strokeWidth: Specifies the outline stroke width of the text annotation. +- strokeWidth - Specifies the outline stroke width of the text annotation. -* transformCollection: Specifies the transform collection of the text annotation. +- transformCollection - Specifies the transform collection of the text annotation. -* underline — Specifies whether the text should be underlined. +- underline - Specifies whether the text is underlined. -* strikethrough — Specifies whether the text should have a strikethrough. +- strikethrough - Specifies whether the text has a strikethrough. -By utilizing the `DrawTextAsync` method with these parameters, you can precisely position and customize text annotations within the image. This provides the flexibility to add labels, captions, or other text elements with specific font styles, sizes, and colors, enhancing the visual presentation and clarity of the image. +By using `DrawTextAsync`, text annotations can be precisely positioned and customized to enhance clarity and presentation. -Here is an example of adding a text in a button click using `DrawTextAsync` method. - -In the following example, you can using the DrawTextAsync method in the button click event. +Here is an example of adding a text in a button click using `DrawTextAsync`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -101,13 +99,13 @@ In the following example, you can using the DrawTextAsync method in the button c } ``` -![Blazor Image Editor with Draw text an image](./images/blazor-image-editor-draw-text.png) +![Blazor Image Editor with text annotation](./images/blazor-image-editor-draw-text.png) ### Multiline text -The [`DrawTextAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method in the Blazor Image Editor component is commonly used to insert text annotations into an image. If the provided text parameter contains a newline character (\n), the text will be automatically split into multiple lines, with each line appearing on a separate line in the annotation. +The [DrawTextAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method supports multiline text when the provided text contains newline characters (\n). Each line is rendered on a separate line in the annotation. -Here is an example of adding a multiline text in a button click using `DrawTextAsync` method. +Here is an example of adding a multiline text in a button click using `DrawTextAsync`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -137,17 +135,15 @@ Here is an example of adding a multiline text in a button click using `DrawTextA } ``` -![Blazor Image Editor with Draw multiline text an image](./images/blazor-image-editor-draw-multiline-text.png) +![Blazor Image Editor with multiline text annotation](./images/blazor-image-editor-draw-multiline-text.jpg) ### Delete a text -The [`DeleteShapeAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DeleteShapeAsync_System_String_) method allows you to remove a text annotation from the Blazor Image Editor component. To use this method, you need to pass the [`ID`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html#Syncfusion_Blazor_ImageEditor_ShapeSettings_ID) of the annotation as a parameter. - -The `ID` is a unique identifier assigned to each text annotation within the Blazor Image Editor. It serves as a reference to a specific annotation, enabling targeted deletion of the desired text element. By specifying the `ID` associated with the text annotation you want to remove, you can effectively delete it from the image editor. +The [DeleteShapeAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DeleteShapeAsync_System_String_) method removes a text annotation by passing its [ID](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html#Syncfusion_Blazor_ImageEditor_ShapeSettings_ID). -To retrieve the inserted text annotations, you can utilize the [`GetShapesAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetShapesAsync) method, which provides a collection of annotations represented by [`ShapeSettings`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html). This method allows you to access and work with the annotations that have been inserted into the image. +The `ID` is a unique identifier assigned to each text annotation in the Image Editor and enables targeted deletion. The [GetShapesAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetShapesAsync) method returns a collection of annotations represented by [ShapeSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html). -Here is an example of deleting a text in a button click using `DeleteShapeAsync` method. +Here is an example of deleting a text in a button click using `DeleteShapeAsync`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -183,15 +179,13 @@ Here is an example of deleting a text in a button click using `DeleteShapeAsync` } ``` -![Blazor Image Editor with Delete text an image](./images/blazor-image-editor-delete-text.png) +![Blazor Image Editor deleting a text annotation](./images/blazor-image-editor-delete-text.jpg) ### Customize font family and text color -The [`ShapeChanging`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_ShapeChanging) event in the Blazor Image Editor component is triggered when a text annotation is being modified or changed through the toolbar interaction. This event provides an opportunity to make alterations to the text's color and font family by adjusting the relevant properties. +The [ShapeChanging](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_ShapeChanging) event triggers when a text annotation is modified through toolbar interaction. This event enables customization of text color and font family by updating the relevant properties. -By leveraging the `ShapeChanging` event, you can enhance the customization options for text annotations and provide a more tailored and interactive experience within the Image Editor component. - -Here is an example of changing the text color using the `ShapeChanging` event. +Here is an example of changing the text color and font family using `ShapeChanging`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -218,19 +212,16 @@ Here is an example of changing the text color using the `ShapeChanging` event. } ``` -![Blazor Image Editor with Custom text an image](./images/blazor-image-editor-custom-text.png) - -### Add additional font family +![Blazor Image Editor with custom text styling](./images/blazor-image-editor-custom-text.jpg) -The [`ImageEditorFontFamily`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorFontFamily.html) option in the Blazor Image Editor component provides the flexibility to incorporate supplementary font families, expanding your options for text styling and ensuring a broader range of fonts can be utilized within your design or content. +### Add additional font families -This enhancement offers a more personalized and dynamic interaction, empowering users to tailor their text styles for a truly engaging editing experience. +The [ImageEditorFontFamily](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorFontFamily.html) option allows adding additional font families for broader text styling choices. -Here is an example of adding additional font family using the `ImageEditorFontFamily` options in an image editor component. +Here is an example of adding additional font families using `ImageEditorFontFamily`. ```cshtml @using Syncfusion.Blazor.ImageEditor -@using Syncfusion.Blazor.Buttons @@ -254,16 +245,13 @@ Here is an example of adding additional font family using the `ImageEditorFontFa } ``` -![Blazor Image Editor with Custom font family in an image](./images/blazor-image-editor-font.png) - -### Formatting Text with Bold, Italic, Underline, and Strikethrough - -The [`DrawTextAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method in the Blazor Image Editor component allows you to insert a text annotation into the image with specific customization options. Applying these styles enhances the text by improving readability and emphasizing key information, where bold increases visual weight to highlight important points, italic adds a slanted emphasis or creative touch, underline draws a line beneath the text for clarity or separation, and strikethrough places a line through text to indicate removal or outdated content. These formatting options enable users to make their annotations more visually distinctive and effective in conveying information +![Blazor Image Editor with custom font family](./images/blazor-image-editor-font.jpg) +### Formatting text with bold, italic, underline, and strikethrough -Here is an example of adding a text in a button click using `DrawTextAsync` method. +The [DrawTextAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method inserts a text annotation with customization options. Bold increases visual weight to highlight important content, italic adds slanted emphasis, underline draws a line beneath text, and strikethrough indicates removal or outdated content. These options enhance readability and emphasis. -In the following example, you can using the DrawTextAsync method in the button click event. +Here is an example of adding a formatting text in a button click using `DrawTextAsync`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -406,19 +394,19 @@ In the following example, you can using the DrawTextAsync method in the button c } ``` -![Blazor Image Editor with Draw text an image](./images/blazor-image-editor-formatting-text.png) +![Blazor Image Editor with formatted text](./images/blazor-image-editor-formatting-text.jpg) ## Freehand drawing -The Freehand Draw annotation tool in the Blazor Image Editor component is a versatile feature that allows users to draw and sketch directly on the image using mouse or touch input. This tool provides a flexible and creative way to add freehand drawings or annotations to the image. +The Freehand Draw annotation tool enables drawing and sketching directly on the image using mouse or touch input. -To enable or disable the freehand drawing option, the Blazor Image Editor component provides two methods: +Freehand drawing can be enabled or disabled using the following methods: -[`EnableFreehandDrawAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_EnableFreehandDrawAsync): This method is used to enable the freehand drawing option in the Image Editor. Once enabled, users can start drawing freely on the image using their mouse or touch input. +- [EnableFreehandDrawAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_EnableFreehandDrawAsync) - Enables freehand drawing. -[`DisableFreehandDrawAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DisableFreehandDrawAsync): This method is used to disable the freehand drawing option in the Image Editor. When disabled, users will no longer be able to perform freehand drawings on the image. +- [DisableFreehandDrawAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DisableFreehandDrawAsync) - Disables freehand drawing. -Here is an example of using the `EnableFreehandDrawAsync` and `DisableFreehandDrawAsync` methods in a button click event. +Here is an example of using `EnableFreehandDrawAsync` and `DisableFreehandDrawAsync` in button click events. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -450,15 +438,13 @@ Here is an example of using the `EnableFreehandDrawAsync` and `DisableFreehandDr } ``` -![Blazor Image Editor with Freehandraw](./images/blazor-image-editor-Freehanddraw.png) +![Blazor Image Editor with freehand drawing](./images/blazor-image-editor-Freehanddraw.jpg) -### Adjust a stroke width and color +### Adjust stroke width and color -The [`ShapeChanging`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_ShapeChanging) event in the Blazor Image Editor component is triggered when a freehand annotation is being modified or changed through the toolbar interaction. This event provides an opportunity to make alterations to the freehand annotation’s color and stroke width by adjusting the relevant properties. +The [ShapeChanging](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_ShapeChanging) event triggers when a freehand annotation is modified through toolbar interaction. Use this event to update stroke color and stroke width. -By leveraging the `ShapeChanging` event, you can enhance the customization options for freehand annotations and provide a more tailored and interactive experience within the Blazor Image Editor component. - -Here is an example of changing the freehand draw stroke width and color using the `ShapeChanging` event. +Here is an example of changing the freehand draw stroke width and color using `ShapeChanging`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -484,18 +470,13 @@ Here is an example of changing the freehand draw stroke width and color using th } ``` -![Blazor Image Editor with Adjust the stroke width and color](./images/blazor-image-editor-adjust-stroke-color.png) +![Blazor Image Editor adjusting stroke width and color](./images/blazor-image-editor-adjust-stroke-color.jpg) ### Delete a freehand drawing -The [`DeleteShapeAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DeleteShapeAsync_System_String_) method allows you to remove a freehand annotation from the Blazor Image Editor component. To use this method, you need to pass the [`ID`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html#Syncfusion_Blazor_ImageEditor_ShapeSettings_ID) of the annotation as a parameter. - -The `ID` is a unique identifier assigned to each freehand annotation within the Blazor Image Editor. It serves as a reference to a specific annotation, enabling targeted deletion of the desired text element. By specifying the `ID` associated with the text annotation you want to remove, you can effectively delete it from the image editor. - -To retrieve the inserted freehand drawings, you can utilize the [`GetShapesAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetShapesAsync) method, which provides a collection of annotations represented by [`ShapeSettings`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html). This method allows you to access and work with the annotations that have been inserted into the image. - -Here is an example of deleting a freehand annotation in a button click using `DeleteShapeAsync` method. +The [DeleteShapeAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DeleteShapeAsync_System_String_) method removes a freehand annotation by passing its [ID](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html#Syncfusion_Blazor_ImageEditor_ShapeSettings_ID). The `ID` uniquely identifies each freehand annotation and enables targeted deletion. The [GetShapesAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetShapesAsync) method returns a collection of annotations represented by [ShapeSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html). +Here is an example of deleting a freehand annotation in a button click using `DeleteShapeAsync`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -527,113 +508,113 @@ Here is an example of deleting a freehand annotation in a button click using `De } ``` -![Blazor Image Editor with Delete Freehanddraw an image](./images/blazor-image-editor-delete-shape.png) +![Blazor Image Editor deleting a freehand drawing](./images/blazor-image-editor-delete-freehanddraw.jpg) ## Shape annotation -The Blazor Image Editor component provides the ability to add shape annotations to an image. These shape annotations include rectangles, ellipses, arrows, paths, and lines, allowing you to highlight, emphasize, or mark specific areas or elements within the image. +The Image Editor provides the ability to add shape annotations including rectangles, ellipses, arrows, paths, and lines. -### Add a rectangle /ellipse / line / arrow / path +### Add a rectangle / ellipse / line / arrow / path -The [`DrawRectangleAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawRectangleAsync_System_Double_System_Double_System_Int32_System_Int32_System_Int32_System_String_System_String_System_Double_System_Boolean_System_Double_) method is used to draw rectangle in the Blazor Image Editor component. Rectangle annotations are valuable tools for highlighting, emphasizing, or marking specific areas of an image to draw attention or provide additional context. +The [DrawRectangleAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawRectangleAsync_System_Double_System_Double_System_Int32_System_Int32_System_Int32_System_String_System_String_System_Double_System_Boolean_System_Double_) method draws a rectangle. -The `DrawRectangleAsync` method in the Image Editor component takes ten parameters to define the properties of the rectangle annotation: +Parameters: -* x: Specifies the x-coordinate of the top-left corner of the rectangle. +- x - Specifies the x-coordinate of the top-left corner. -* y: Specifies the y-coordinate of the top-left corner of the rectangle. +- y - Specifies the y-coordinate of the top-left corner. -* width: Specifies the width of the rectangle. +- width - Specifies the width of the rectangle. -* height: Specifies the height of the rectangle. +- height - Specifies the height of the rectangle. -* strokeWidth: Specifies the stroke width of the rectangle's border. +- strokeWidth - Specifies the stroke width of the border. -* strokeColor: Specifies the stroke color of the rectangle's border. +- strokeColor - Specifies the stroke color of the border. -* fillColor: Specifies the fill color of the rectangle. +- fillColor - Specifies the fill color of the rectangle. -* degree: Specifies the degree to rotate the rectangle. +- degree - Specifies the degree to rotate the rectangle. -* isSelected: Specifies to show the rectangle in the selected state. +- isSelected - Specifies whether the rectangle is shown in the selected state. -* borderRadius: Specifies the radius to apply border radius to rectangle. +- borderRadius - Specifies the radius to apply border radius to the rectangle. -The [`DrawEllipseAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawEllipseAsync_System_Double_System_Double_System_Double_System_Double_System_Double_System_String_System_String_System_Double_System_Boolean_) method in the Blazor Image Editor component is used to draw an ellipse. Ellipse annotations are valuable for highlighting, emphasizing, or marking specific areas of an image. +The [DrawEllipseAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawEllipseAsync_System_Double_System_Double_System_Double_System_Double_System_Double_System_String_System_String_System_Double_System_Boolean_) method draws an ellipse. -The `DrawEllipseAsync` method in the Image Editor component takes seven parameters to define the properties of the ellipse annotation: +Parameters: -* x: Specifies the x-coordinate of the center of the ellipse. +- x - Specifies the x-coordinate of the center of the ellipse. -* y: Specifies the y-coordinate of the center of the ellipse. +- y - Specifies the y-coordinate of the center of the ellipse. -* radiusX: Specifies the horizontal radius (radiusX) of the ellipse. +- radiusX - Specifies the horizontal radius of the ellipse. -* radiusY: Specifies the vertical radius (radiusY) of the ellipse. +- radiusY - Specifies the vertical radius of the ellipse. -* strokeWidth: Specifies the width of the ellipse's stroke (border). +- strokeWidth - Specifies the width of the ellipse stroke. -* strokeColor: Specifies the color of the ellipse's stroke (border). +- strokeColor - Specifies the color of the ellipse stroke. -* fillColor: Specifies the fill color of the ellipse. +- fillColor - Specifies the fill color of the ellipse. -* degree: Specifies the degree to rotate the ellipse. +- degree - Specifies the degree to rotate the ellipse. -* isSelected: Specifies to show the ellipse in the selected state. +- isSelected - Specifies whether the ellipse is shown in the selected state. -The [`DrawLineAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawLineAsync_System_Double_System_Double_System_Double_System_Double_System_Double_System_String_System_Boolean_) method is used to draw line in the Blazor Image Editor component. Line annotations are valuable for highlighting, emphasizing, or marking specific areas of an image. +The [DrawLineAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawLineAsync_System_Double_System_Double_System_Double_System_Double_System_Double_System_String_System_Boolean_) method draws a line. -The `DrawLineAsync` method in the Image Editor component takes seven parameters to define the properties of the ellipse annotation: +Parameters: -* startX - Specifies the x-coordinate of the start point. +- startX - Specifies the x-coordinate of the start point. -* startY - Specifies the y-coordinate of the start point. +- startY - Specifies the y-coordinate of the start point. -* endX - Specifies the x-coordinate of the end point. +- endX - Specifies the x-coordinate of the end point. -* endY - Specifies the y-coordinate of the end point. +- endY - Specifies the y-coordinate of the end point. -* strokeWidth - Specifies the stroke width of the line. +- strokeWidth - Specifies the stroke width of the line. -* strokeColor - Specifies the stroke color of the line. +- strokeColor - Specifies the stroke color of the line. -* isSelected: Specifies to show the line in the selected state. +- isSelected - Specifies whether the line is shown in the selected state. -The [`DrawArrowAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawArrowAsync_System_Double_System_Double_System_Double_System_Double_System_Double_System_String_Syncfusion_Blazor_ImageEditor_ImageEditorArrowHeadType_Syncfusion_Blazor_ImageEditor_ImageEditorArrowHeadType_System_Boolean_) method is used to draw arrow in the Blazor Image Editor component. Arrow annotations are valuable for highlighting, emphasizing, or marking specific areas of an image. +The [DrawArrowAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawArrowAsync_System_Double_System_Double_System_Double_System_Double_System_Double_System_String_Syncfusion_Blazor_ImageEditor_ImageEditorArrowHeadType_Syncfusion_Blazor_ImageEditor_ImageEditorArrowHeadType_System_Boolean_) method draws an arrow. -The `DrawArrowAsync` method in the Image Editor component takes seven parameters to define the properties of the ellipse annotation: +Parameters: -* startX - Specifies the x-coordinate of the start point. +- startX - Specifies the x-coordinate of the start point. -* startY - Specifies the y-coordinate of the start point. +- startY - Specifies the y-coordinate of the start point. -* endX - Specifies the x-coordinate of the end point. +- endX - Specifies the x-coordinate of the end point. -* endY - Specifies the y-coordinate of the end point. +- endY - Specifies the y-coordinate of the end point. -* strokeWidth - Specifies the stroke width of the arrow. +- strokeWidth - Specifies the stroke width of the arrow. -* strokeColor - Specifies the stroke color of the arrow. +- strokeColor - Specifies the stroke color of the arrow. -* arrowStart - Specifies the arrowhead as ImageEditorArrowHeadType at the start of arrow. +- arrowStart - Specifies the arrowhead type at the start of the arrow. -* arrowEnd - Specifies the arrowhead as ImageEditorArrowHeadType at the end of the arrow. +- arrowEnd - Specifies the arrowhead type at the end of the arrow. -* isSelected: Specifies to show the arrow in the selected state. +- isSelected - Specifies whether the arrow is shown in the selected state. -The [`DrawPathAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawPathAsync_Syncfusion_Blazor_ImageEditor_ImageEditorPoint___System_Double_System_String_System_Boolean_) method is used to draw path in the Blazor Image Editor component. Line annotations are valuable for highlighting, emphasizing, or marking specific areas of an image. +The [DrawPathAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawPathAsync_Syncfusion_Blazor_ImageEditor_ImageEditorPoint___System_Double_System_String_System_Boolean_) method draws a path. -The `DrawPathAsync` method in the Image Editor component takes three parameters to define the properties of the ellipse annotation: +Parameters: -* points - Specifies collection of x and y coordinates as ImageEditorPoint to draw a path. +- points - Specifies a collection of coordinates `ImageEditorPoint` to draw a path. -* strokeWidth - Specifies the stroke width of the path. +- strokeWidth - Specifies the stroke width of the path. -* strokeColor - Specifies the stroke color of the path. +- strokeColor - Specifies the stroke color of the path. -* isSelected: Specifies to show the path in the selected state. +- isSelected - Specifies whether the path is shown in the selected state. -Here is an example of inserting rectangle, ellipse, arrow, path, and line in a button click event. +Here is an example of inserting rectangle, ellipse, arrow, path, and line in button click events. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -695,17 +676,13 @@ Here is an example of inserting rectangle, ellipse, arrow, path, and line in a b } ``` -![Blazor Image Editor with Annotation an image](./images/blazor-image-editor-annotation.png) +![Blazor Image Editor with shape annotations](./images/blazor-image-editor-annotation.jpg) -### Delete a shape +### Delete a shape -The [`DeleteShapeAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DeleteShapeAsync_System_String_) method allows you to remove a shape annotation from the Blazor Image Editor component. To use this method, you need to pass the [`ID`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html#Syncfusion_Blazor_ImageEditor_ShapeSettings_ID) of the annotation as a parameter. +The [DeleteShapeAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DeleteShapeAsync_System_String_) method removes a shape annotation by passing its [ID](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html#Syncfusion_Blazor_ImageEditor_ShapeSettings_ID). The `ID` uniquely identifies each shape annotation and enables targeted deletion. The [GetShapesAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetShapesAsync) method returns a collection of annotations represented by [ShapeSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html). -The `ID` is a unique identifier assigned to each shape annotation within the Blazor Image Editor. It serves as a reference to a specific annotation, enabling targeted deletion of the desired text element. By specifying the `ID` associated with the text annotation you want to remove, you can effectively delete it from the image editor. - -To retrieve the inserted shapes, you can utilize the [`GetShapesAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetShapesAsync) method, which provides a collection of annotations represented by [`ShapeSettings`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeSettings.html). This method allows you to access and work with the annotations that have been inserted into the image. - -Here is an example of deleting rectangle, ellipse, arrow, path, and line in a button click event. +Here is an example of deleting ellipse in a button click event. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -738,11 +715,11 @@ Here is an example of deleting rectangle, ellipse, arrow, path, and line in a bu } ``` -![Blazor Image Editor with Delete text an image](./images/blazor-image-editor-delete-shape.jpg) +![Blazor Image Editor deleting a shape](./images/blazor-image-editor-delete-shape.jpg) -### Customize default stroke color for shapes +### Customize default stroke color for shapes -We provide default settings for stroke color, stroke width, fill color, and other customizations. If users wish to modify only the default options while preserving their previously selected customizations, they can do so by utilizing the [`ShapeChanging`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_ShapeChanging) event. Within this event, users can update the values in the [`CurrentShapeSettings`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeChangeEventArgs.html#Syncfusion_Blazor_ImageEditor_ShapeChangeEventArgs_CurrentShapeSettings) object to apply their own preferences instead of the defaults. This approach allows conditional updates to the `CurrentShapeSettings`, ensuring that only the desired defaults are changed while maintaining the other settings. +Default settings are provided for stroke color, stroke width, fill color, and other options. To modify only the default options while preserving previously selected customizations, handle the [ShapeChanging](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_ShapeChanging) event and update values in [CurrentShapeSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ShapeChangeEventArgs.html#Syncfusion_Blazor_ImageEditor_ShapeChangeEventArgs_CurrentShapeSettings). This approach conditionally updates defaults while maintaining other settings. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -757,7 +734,7 @@ We provide default settings for stroke color, stroke width, fill color, and othe { await ImageEditor.OpenAsync("https://ej2.syncfusion.com/react/demos/src/image-editor/images/bridge.png"); } - private async void ShapeChangingAsync(ShapeChangeEventArgs args) + private void ShapeChangingAsync(ShapeChangeEventArgs args) { if (args.Action == "insert" && args.CurrentShapeSettings?.Type == ShapeType.Rectangle) { @@ -766,37 +743,37 @@ We provide default settings for stroke color, stroke width, fill color, and othe } } ``` -![Blazor Image Editor with Default Color](./images/blazor-image-editor-default-stroke-color.jpg) +![Blazor Image Editor with default stroke color customization](./images/blazor-image-editor-default-stroke-color.jpg) ## Image annotation -The image annotation feature in the Image Editor provides the capability to add and customize images directly onto the image. With this feature, you can easily insert image or icons at specific locations within the image and customize various aspects of the image to meet your requirements. You have control over the customization options including rotate, flip, transparency for the image annotation. +Image annotation enables inserting and customizing images or icons directly on the image. Options include rotate, flip, and transparency. ### Add an image annotation -The [`DrawImageAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawImageAsync_System_String_System_Double_System_Double_System_Int32_System_Int32_System_Boolean_System_Double_System_Double_System_Boolean_) method serves the purpose of inserting an image into the Image Editor control, allowing for image annotations to be added. These image annotations can be used for various purposes, such as adding logos, watermarks, or decorative elements to the image. +The [DrawImageAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawImageAsync_System_String_System_Double_System_Double_System_Int32_System_Int32_System_Boolean_System_Double_System_Double_System_Boolean_) method inserts an image for adding logos, watermarks, or decorative elements. -The `DrawImageAsync` method in the Image Editor control takes six parameters to define the properties of the Image annotation: +Parameters: -* data: Specified the image data or url of the image to be inserted. +- data - Specifies the image data or URL of the image to be inserted. -* x: Specifies the x-coordinate of the top-left corner of the image. +- x - Specifies the x-coordinate of the top-left corner of the image. -* y: Specifies the y-coordinate of the top-left corner of the image. +- y - Specifies the y-coordinate of the top-left corner of the image. -* width: Specifies the width of the image. +- width - Specifies the width of the image. -* height: Specifies the height of the image. +- height - Specifies the height of the image. -* isAspectRatio: Specifies whether the image is rendered with aspect ratio or not. +- isAspectRatio - Specifies whether the image maintains aspect ratio. -* degree: Specifies the degree to rotate the image. +- degree - Specifies the degree to rotate the image. -* opacity: Specifies the value for the image. +- opacity - Specifies the opacity value for the image. -* isSelected: Specifies to show the image in the selected state. +- isSelected - Specifies whether the image is shown in the selected state. -In the following example, you can use the `DrawImageAsync` method in the button click event. +Here is an example of adding a image in a button click using `DrawImageAsync`. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -825,11 +802,11 @@ In the following example, you can use the `DrawImageAsync` method in the button } ``` -![Blazor Image Editor with Add Image in an image](./images/blazor-image-editor-add-image.png) +![Blazor Image Editor with an image annotation](./images/blazor-image-editor-add-image.jpg) ## Show or hide the annotation options -Using the [`Toolbar`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_Toolbar) property of image editor component, you can hide or show the annotation options from annotation dropdown menu. +Using the [Toolbar](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_Toolbar) property, annotation options can be shown or hidden from the annotation dropdown. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -865,8 +842,9 @@ Using the [`Toolbar`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Im } ``` -![Blazor Image Editor with annotation option](./images/blazor-image-editor-annotation-option.png) + +![Blazor Image Editor with annotation options](./images/blazor-image-editor-annotation-option.jpg) ## See Also -* [Identify Inserted Annotations](https://support.syncfusion.com/kb/article/21449/how-to-identify-inserted-annotations-in-blazor-image-editor) \ No newline at end of file +- [Identify Inserted Annotations](https://support.syncfusion.com/kb/article/21449/how-to-identify-inserted-annotations-in-blazor-image-editor) diff --git a/blazor/image-editor/getting-started-with-web-app.md b/blazor/image-editor/getting-started-with-web-app.md index 94b41a70b3..0679b8ad2f 100644 --- a/blazor/image-editor/getting-started-with-web-app.md +++ b/blazor/image-editor/getting-started-with-web-app.md @@ -1,7 +1,7 @@ --- layout: post title: Getting Started with Syncfusion Blazor ImageEditor Component in WebApp -description: Checkout and learn about the documentation for getting started with Blazor Image Editor Component in Blazor Web App. +description: Learn how to add and configure the Syncfusion Blazor Image Editor component in a Blazor Web App using Visual Studio or Visual Studio Code. platform: Blazor component: Image Editor documentation: ug @@ -9,9 +9,9 @@ documentation: ug # Getting Started with Blazor Image Editor Component in Web App -This section briefly explains about how to include [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section explains how to include the [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component in a Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) or Visual Studio Code. -To get start quickly with the Blazor Image Editor component, you can check on this video or [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/imageEditor) sample: +To get started quickly with the Blazor Image Editor component, refer to this video or the [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/imageEditor) sample: {% youtube "youtube:https://www.youtube.com/watch?v=lBB8oHvTuII"%} @@ -25,17 +25,17 @@ To get start quickly with the Blazor Image Editor component, you can check on th ## Create a new Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating the Blazor Web App. ## Install Syncfusion® Blazor ImageEditor and Themes NuGet in the Blazor Web App -To add **Blazor Image Editor** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.ImageEditor](https://www.nuget.org/packages/Syncfusion.Blazor.ImageEditor/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor Image Editor** component, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), then search for and install [Syncfusion.Blazor.ImageEditor](https://www.nuget.org/packages/Syncfusion.Blazor.ImageEditor/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +When using `WebAssembly` or `Auto` render modes in a Blazor Web App, install Syncfusion® Blazor component NuGet packages in the client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, use the following package manager commands to install the packages. {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -46,7 +46,7 @@ Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the list of available packages and component details. {% endtabcontent %} @@ -58,9 +58,9 @@ N> Syncfusion® Blazor components are availa ## Create a new Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). +Create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. +Configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating the Blazor Web App. For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. @@ -78,11 +78,11 @@ N> For more information on creating a **Blazor Web App** with various interactiv ## Install Syncfusion® Blazor ImageEditor and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +When using `WebAssembly` or `Auto` render modes in a Blazor Web App, install Syncfusion® Blazor component NuGet packages in the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.ImageEditor](https://www.nuget.org/packages/Syncfusion.Blazor.ImageEditor) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the current directory is the project root where the `.csproj` file is located. +* Run the following commands to install [Syncfusion.Blazor.ImageEditor](https://www.nuget.org/packages/Syncfusion.Blazor.ImageEditor) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) and ensure all dependencies are restored. {% tabs %} @@ -96,7 +96,7 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the list of available packages and component details. {% endtabcontent %} @@ -106,10 +106,10 @@ N> Syncfusion® Blazor components are availa | Interactive Render Mode | Description | | -- | -- | -| WebAssembly or Auto | Open **~/_Imports.razor** file from the client project.| -| Server | Open **~/_import.razor** file, which is located in the `Components` folder.| +| WebAssembly or Auto | Open **~/_Imports.razor** from the client project.| +| Server | Open **~/Components/_Imports.razor** located in the `Components` folder.| -Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.ImageEditor` namespace. +Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.ImageEditor` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -120,9 +120,9 @@ Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.ImageEditor` namespace. {% endhighlight %} {% endtabs %} -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of the Blazor Web App. -If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, you need to register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. +If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, register the Syncfusion® Blazor service in both **~/Program.cs** files of the Blazor Web App. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -156,7 +156,7 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -If the **Interactive Render Mode** is set to `Server`, your project will contain a single **~/Program.cs** file. So, you should register the Syncfusion® Blazor Service only in that **~/Program.cs** file. +If the **Interactive Render Mode** is set to `Server`, the project contains a single **~/Program.cs** file. In this case, register the Syncfusion® Blazor service only in that **~/Program.cs** file. {% tabs %} {% highlight c# tabtitle="~/_Program.cs" hl_lines="2 9" %} @@ -193,11 +193,11 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Refer to the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in a Blazor application. Also, refer to the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references. ## Add Syncfusion® Blazor Image Editor component -Add the Syncfusion® Blazor Image Editor component in `.razor` file inside the `Pages` folder. If an interactivity location as `Per page/component` in the web app, define a render mode at top of the component, as follows: +Add the Syncfusion® Blazor Image Editor component in a `.razor` file inside the `Pages` folder. If the interactivity location is `Per page/component` in the web app, define a render mode at the top of the component, as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -206,7 +206,7 @@ Add the Syncfusion® Blazor Image Editor com | | Server | @rendermode InteractiveServer | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly` or `Server`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto`, `WebAssembly`, or `Server`, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -225,12 +225,11 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Image Editor component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This renders the Syncfusion® Blazor Image Editor component in the default web browser. -{% previewsample "https://blazorplayground.syncfusion.com/embed/BtLfZMhEziJhvXKH?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Image Editor Component](./images/blazor-image-editor-component.jpg)" %} +{% previewsample "https://blazorplayground.syncfusion.com/embed/rXrICNDYqKacaGsS?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Image Editor Component](./images/blazor-image-editor-component.jpg)" %} ## See also 1. [Getting Started with Syncfusion® Blazor Web Assembly App in Visual Studio or .NET CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) 2. [Getting Started with Syncfusion® Blazor Web App in Visual Studio or .NET CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) - diff --git a/blazor/image-editor/localization.md b/blazor/image-editor/localization.md index 32b91c70a1..bad0747e6b 100644 --- a/blazor/image-editor/localization.md +++ b/blazor/image-editor/localization.md @@ -1,15 +1,14 @@ --- layout: post title: Localization with Blazor Image Editor Component | Syncfusion -description: Checkout the Localization available in Blazor Image Editor component in Blazor Server App and Blazor WebAssembly App. +description: Explore the localization support available in the Blazor Image Editor component for Blazor Server and WebAssembly applications. platform: Blazor control: Image Editor documentation: ug --- - # Localization in the Blazor Image Editor component -[Blazor Image editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component can be localized. Refer to [Blazor Localization](https://blazor.syncfusion.com/documentation/common/localization) topic to localize Syncfusion® Blazor components. +The [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component supports localization. Refer to the [Blazor localization](https://blazor.syncfusion.com/documentation/common/localization) topic to localize Syncfusion® Blazor components. -N> You can also explore our [Blazor Image editor example](https://blazor.syncfusion.com/demos/image-editor/default-functionalities?theme=bootstrap5) to know how to render and configure the image editor. \ No newline at end of file +N> Explore the [Blazor Image Editor example](https://blazor.syncfusion.com/demos/image-editor/default-functionalities?theme=bootstrap5) to see how to render and configure the Image Editor. \ No newline at end of file diff --git a/blazor/image-editor/open-save.md b/blazor/image-editor/open-save.md index 774c3af6d7..b1ecf37b70 100644 --- a/blazor/image-editor/open-save.md +++ b/blazor/image-editor/open-save.md @@ -1,32 +1,31 @@ --- layout: post title: Open save with Blazor Image Editor Component | Syncfusion -description: Checkout the Open save available in Blazor Image Editor component in Blazor Server App and Blazor WebAssembly App. +description: Learn how to open, edit, and save images in the Blazor Image Editor component in Blazor Server and WebAssembly applications. platform: Blazor control: Image Editor documentation: ug --- - # Open and Save in the Blazor Image Editor component -The [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component supports to import an image into the canvas, it must first be converted into a blob object. The Uploader component can be used to facilitate the process of uploading an image from the user interface. Once the image has been uploaded, it can then be converted into a blob and drawn onto the canvas. +The [Blazor Image Editor](https://www.syncfusion.com/blazor-components/blazor-image-editor) component supports importing an image into the canvas by converting it into a blob object. The Uploader component facilitates uploading an image from the user interface. After the upload, the image can be converted into a blob and drawn onto the canvas. ## Supported image formats -The Image Editor control supports five common image formats: PNG, JPEG, SVG, WEBP and BMP. These formats allow you to work with a wide range of image files within the Image Editor. +The Image Editor control supports five common image formats: PNG, JPEG, SVG, WEBP, and BMP. These formats enable working with a wide range of image files within the Image Editor. -When it comes to saving the edited image, the default file type is set as PNG. This means that when you save the edited image without specifying a different file type, it will be saved as a PNG file. However, it's important to note that the Image Editor typically provides options or methods to specify a different file type if desired. This allows you to save the edited image in formats other than the default PNG, such as JPEG, SVG, and WEBP based on your specific requirements or preferences. +When saving an edited image, the default file type is PNG. If a different format is required, specify another file type such as JPEG, SVG, or WEBP. ## Open an image -The [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method in the Blazor Image Editor component offers the capability to open an image by providing it in different formats. This method accepts various types of arguments, such as a base64-encoded string, raw image data, or a hosted/online URL. You can pass either the file name or the actual image data as an argument to the `OpenAsync` method, and it will load the specified image into the image editor component. This flexibility allows you to work with images from different sources and formats, making it easier to integrate and manipulate images within the Image Editor component. +The [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method in the Blazor Image Editor component opens an image provided in different formats. This method accepts a base64-encoded string, raw image data, or a hosted/online URL. Pass either the file name or the actual image data as an argument to `OpenAsync` to load the image into the Image Editor component. This flexibility supports images from various sources and formats. ### Opening local images in the Blazor Image Editor -Users can easily open local images in the Image Editor. Simply place the image in the same folder as the sample. By specifying the local file name directly in the open method, the image will be loaded seamlessly into the editor. +Local images can be opened in the Image Editor by placing the image in the same folder as the sample and specifying the local file name directly in the open method. -Note: To load the image in the image editor, the image is placed within the application's "wwwroot" folder. +Note: To load an image in the Image Editor, place the image within the application's "wwwroot" folder. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -41,7 +40,7 @@ Note: To load the image in the image editor, the image is placed within the appl private async void OpenAsync() { - await ImageEditor.OpenAsync("nature.png"); + await ImageEditor.OpenAsync("bridge.png"); } } ``` @@ -50,9 +49,9 @@ Note: To load the image in the image editor, the image is placed within the appl ### Open an image from base64 format -Users can easily open images in the Image Editor using a Base64-encoded string. This method allows you to load images directly from their Base64 representation, ensuring seamless integration and flexibility in your application. Simply pass the Base64 string to the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method, and the image will be loaded into the editor. +Images can be opened in the Image Editor using a Base64-encoded string. Pass the Base64 string to the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method to load the image into the editor. -`Note:` You can obtain the Base64 representation of an image from the Image Editor using the [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method. This process will be explained in the upcoming section. +`Note:` The Base64 representation of an image can be obtained from the Image Editor using the [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method. This process is explained in a later section. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -96,13 +95,14 @@ Users can easily open images in the Image Editor using a Base64-encoded string. ### Open an image from Blob storage -User can easily open images in the Image Editor from Blob storage. This method allows you to load images directly from Blob storage, ensuring seamless integration and flexibility in your application. Simply retrieve the image Blob from storage and pass it to the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method, and the image will be loaded into the editor. +Images can be opened in the Image Editor from Blob storage. Retrieve the image Blob from storage and pass it to the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method to load the image into the editor. -`Note:` You can obtain the Blob URL representation of an image from the Image Editor using the [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method. This process will be explained in the upcoming section. +`Note:` The Blob URL representation of an image can be obtained from the Image Editor using the [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method. This process is explained in a later section. ```cshtml @using Syncfusion.Blazor.ImageEditor @using Syncfusion.Blazor.Buttons +@using System.IO
    Save Blob @@ -148,7 +148,7 @@ User can easily open images in the Image Editor from Blob storage. This method a ### Open an image from File Uploader -User can easily open images in the Image Editor using a file uploader. This method allows users to upload an image file from their device and load it directly into the editor. Once the image is selected through the file uploader, pass the file to the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method, and the image will be seamlessly loaded into the editor. +Images can be opened in the Image Editor using a file uploader. After selecting an image file from a device, pass the file to the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method to load it into the editor. ```cshtml @using Syncfusion.Blazor.Inputs @@ -188,37 +188,48 @@ User can easily open images in the Image Editor using a file uploader. This meth ### Open an image from File Manager -User can easily open images in the Image Editor using the File Manager. This method allows you to browse and select an image file directly from the File Manager and load it into the editor. Once the image is selected, pass the file to the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method, and the image will be seamlessly loaded into the editor. +Images can be opened in the Image Editor using the File Manager. After selecting an image from the File Manager, pass the file to the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method to load it into the editor. ```cshtml @using Syncfusion.Blazor.FileManager @using Syncfusion.Blazor.ImageEditor @inject NavigationManager UriHelper -
    -
    - - - - +
    +
    +
    + + + + +
    +
    + + +
    -
    + @code { private SfImageEditor imageEditor; private SfFileManager fileManager; public FileManagerService FileService = new FileManagerService(); + public async Task OnReadAsync(ReadEventArgs args) { args.Response = await FileService.ReadAsync(args.Path, args.Folder); } + public void BeforeImageLoadAsync(BeforeImageLoadEventArgs args) { string relativePath = $"https://ej2.syncfusion.com/react/demos/src/image-editor/images/{args.FileDetails.Name}"; args.ImageUrl = UriHelper.ToAbsoluteUri(relativePath).ToString(); } + private async Task OnFileOpenAsync(FileOpenEventArgs args) { if (args.FileDetails != null && args.FileDetails.IsFile) @@ -227,6 +238,7 @@ User can easily open images in the Image Editor using the File Manager. This met await imageEditor.OpenAsync(relativePath); } } + public void BeforePopupOpenAsync(BeforePopupOpenCloseEventArgs args) { args.Cancel = true; @@ -235,86 +247,86 @@ User can easily open images in the Image Editor using the File Manager. This met public class FileManagerService { public List Data = new List(); + public FileManagerService() { this.GetData(); } + private void GetData() { Data.Add(new FileManagerDirectoryContent() { - CaseSensitive = false, - DateCreated = new DateTime(2022, 1, 2), - DateModified = new DateTime(2022, 2, 3), - FilterPath = "", - FilterId = "", - HasChild = true, Id = "0", - IsFile = false, Name = "Pictures", + IsFile = false, + HasChild = true, ParentId = null, - ShowHiddenItems = false, + FilterPath = "", + FilterId = "", + Type = "folder", Size = 1779448, - Type = "folder" + DateCreated = new DateTime(2022, 1, 2), + DateModified = new DateTime(2022, 2, 3), + CaseSensitive = false, + ShowHiddenItems = false }); + Data.Add(new FileManagerDirectoryContent() { - CaseSensitive = false, - DateCreated = new DateTime(2022, 1, 2), - DateModified = new DateTime(2022, 2, 3), - FilterId = "0/", - FilterPath = "/Pictures/", - HasChild = false, Id = "1", - IsFile = true, Name = "bridge.png", + IsFile = true, + HasChild = false, ParentId = "0", - ShowHiddenItems = false, - Size = 680786, + FilterPath = "/Pictures/", + FilterId = "0/", Type = ".png", + Size = 680786, + DateCreated = new DateTime(2022, 1, 2), + DateModified = new DateTime(2022, 2, 3), + CaseSensitive = false, + ShowHiddenItems = false }); + Data.Add(new FileManagerDirectoryContent() { - CaseSensitive = false, - DateCreated = new DateTime(2022, 1, 2), - DateModified = new DateTime(2022, 2, 3), - FilterId = "0/", - FilterPath = "/Pictures/", - HasChild = false, - Id = "1", - IsFile = true, + Id = "2", Name = "flower.png", + IsFile = true, + HasChild = false, ParentId = "0", - ShowHiddenItems = false, - Size = 680786, + FilterPath = "/Pictures/", + FilterId = "0/", Type = ".png", + Size = 680786, + DateCreated = new DateTime(2022, 1, 2), + DateModified = new DateTime(2022, 2, 3), + CaseSensitive = false, + ShowHiddenItems = false }); } - public async Task> ReadAsync(string path, - List fileDetails) + public async Task> ReadAsync(string path, List fileDetails) { - FileManagerResponse response = new FileManagerResponse(); + var response = new FileManagerResponse(); + if (path == "/") { - string ParentId = Data - .Where(x => x.FilterPath == string.Empty) - .Select(x => x.Id).First(); - response.CWD = Data - .Where(x => x.FilterPath == string.Empty).First(); - response.Files = Data - .Where(x => x.ParentId == ParentId).ToList(); + var parentId = Data.First(x => x.FilterPath == "").Id; + response.CWD = Data.First(x => x.FilterPath == ""); + response.Files = Data.Where(x => x.ParentId == parentId).ToList(); } else { - var id = fileDetails.Count > 0 && fileDetails[0] != null ? fileDetails[0].Id : Data - .Where(x => x.FilterPath == path) - .Select(x => x.ParentId).First(); - response.CWD = Data - .Where(x => x.Id == (fileDetails.Count > 0 && fileDetails[0] != null ? fileDetails[0].Id : id)).First(); - response.Files = Data - .Where(x => x.ParentId == (fileDetails.Count > 0 && fileDetails[0] != null ? fileDetails[0].Id : id)).ToList(); + var id = fileDetails.Count > 0 && fileDetails[0] != null + ? fileDetails[0].Id + : Data.First(x => x.FilterPath == path).ParentId; + + response.CWD = Data.First(x => x.Id == id); + response.Files = Data.Where(x => x.ParentId == id).ToList(); } + await Task.Yield(); return await Task.FromResult(response); } @@ -326,51 +338,70 @@ User can easily open images in the Image Editor using the File Manager. This met ### Open an image from Treeview -Users can open images in the Syncfusion® Image Editor by selecting a node from a tree view. When a user clicks on an image node, the corresponding image is loaded into the editor using the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method. This allows for a seamless image editing experience directly from the TreeView component. +Images can be opened in the Syncfusion® Image Editor by selecting a node from a tree view. When an image node is selected, the corresponding image is loaded into the editor using the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method. ```cshtml @using Syncfusion.Blazor.Navigations @using Syncfusion.Blazor.ImageEditor +@inject NavigationManager UriHelper -@inject Microsoft.AspNetCore.Components.NavigationManager UriHelper - -
    -
    - - - - +
    +
    +
    + + + + + + +
    +
    + + +
    -
    @code { private SfImageEditor imageEditor; private SfTreeView treeView; - private string selectedId; - List TreeDataSource = new List(); + List TreeDataSource = new(); protected override void OnInitialized() { - base.OnInitialized(); TreeDataSource.Add(new TreeItem { NodeId = "01", NodeText = "Pictures", Icon = "folder", Expanded = true, - Child = new List() + Child = new List { - new TreeItem { NodeId = "01-01", NodeText = "Flower", ImageUrl = "https://ej2.syncfusion.com/react/demos/src/image-editor/images/flower.png" }, - new TreeItem { NodeId = "01-02", NodeText = "Bridge", ImageUrl = "https://ej2.syncfusion.com/react/demos/src/image-editor/images/bridge.png" }, - }, + new TreeItem + { + NodeId = "01-01", + NodeText = "Flower", + ImageUrl = "https://ej2.syncfusion.com/react/demos/src/image-editor/images/flower.png" + }, + new TreeItem + { + NodeId = "01-02", + NodeText = "Bridge", + ImageUrl = "https://ej2.syncfusion.com/react/demos/src/image-editor/images/bridge.png" + } + } }); } public async void NodeSelected(NodeSelectEventArgs args) { - List selectedNodes = treeView.GetTreeData(args.NodeData.Id); + var selectedNodes = treeView.GetTreeData(args.NodeData.Id); if (selectedNodes.Count > 0 && selectedNodes[0].ImageUrl != null) { await imageEditor.OpenAsync(selectedNodes[0].ImageUrl); @@ -389,14 +420,15 @@ Users can open images in the Syncfusion® Im } ``` -![Blazor Image Editor with File uploader](./images/blazor-image-editor-treeview.jpg) +![Blazor Image Editor with Treeview](./images/blazor-image-editor-treeview.jpg) ### Add watermarks while opening an image -You can utilize the [`FileOpenEventArgs`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html) event, which triggers once the image is loaded into the image editor. After this event, you can use the [`DrawTextAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method to add a watermark. This approach allows the watermark to be automatically drawn on the canvas every time an image is opened in the editor, making it useful for handling copyright-related content. +The [FileOpenEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html) event triggers once the image is loaded into the Image Editor. After this event, use the [DrawTextAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_DrawTextAsync_System_Double_System_Double_System_String_System_String_System_Int32_System_Boolean_System_Boolean_System_String_System_Boolean_System_Int32_System_String_System_String_System_Int32_) method to add a watermark. This approach draws the watermark on the canvas each time an image is opened, which is useful for copyright-related content. ```cshtml -@using Syncfusion.Blazor.ImageEditor +@using Syncfusion.Blazor.ImageEditor + @@ -412,24 +444,24 @@ You can utilize the [`FileOpenEventArgs`](https://help.syncfusion.com/cr/blazor/ private async void FileOpenedAsync() { ImageDimension Dimension = await ImageEditor.GetImageDimensionAsync(); - await ImageEditor.DrawTextAsync(Dimension.X.Value, Dimension.Y.Value, "Enter\nText", "Arial", 40, false, false, "#80330075"); + await ImageEditor.DrawTextAsync(Dimension.X.Value, Dimension.Y.Value, "Syncfusion", "Arial", 40, false, false, "#80330075"); } } ``` -![Blazor Image Editor with Adding Watermark](./images/blazor-image-editor-add-watermark.jpeg) +![Blazor Image Editor with Adding Watermark](./images/blazor-image-editor-add-watermark.jpg) ### Opening Images with Custom Width and Height -Users can now open images with specific width and height values using the optional parameters in the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method. This enhancement introduces three optional parameters: `width`, `height`, and `isAspectRatio`These options allow precise control over the image dimensions, with the flexibility to preserve the original aspect ratio if needed. This feature is especially useful when rendering high-resolution images or when fitting images into fixed-size layouts or canvas areas. +Images can be opened with specific width and height values using optional parameters in the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method. The optional parameters `width`, `height`, and `isAspectRatio` allow control over image dimensions with the option to preserve the original aspect ratio. The following behaviors are supported through these properties: -- Contains behavior: By specifying only one dimension (either `width` or `height`) and enabling `isAspectRatio`, the other dimension is automatically calculated to maintain the image’s original proportions. +- Contains behavior - When a single dimension (`width` or `height`) is provided with `isAspectRatio` enabled, the other dimension is calculated automatically to maintain the original proportions. -- Cover behavior: When both `width` and `height` are specified with `isAspectRatio` set to `true`, the image scales proportionally to fit within the given dimensions while preserving its aspect ratio. +- Cover behavior - When both `width` and `height` are specified with `isAspectRatio` set to `true`, the image scales proportionally to fit within the given dimensions while preserving the aspect ratio. -- Stretch or Shrink behavior: Setting `isAspectRatio` to `false` forces the image to strictly follow the specified `width` and `height`, allowing it to stretch or shrink regardless of its original aspect ratio. +- Stretch or Shrink behavior - When `isAspectRatio` is `false`, the image strictly follows the specified `width` and `height`, allowing stretching or shrinking regardless of the original aspect ratio. -The following example showcases how all three behaviors can be achieved using the OpenAsync method. +The following example demonstrates all three behaviors using the OpenAsync method. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -467,13 +499,13 @@ The following example showcases how all three behaviors can be achieved using th } ``` -![Blazor Image Editor with Opening an image](./images/blazor-image-editor-custom-height-width.png) +![Blazor Image Editor with Opening an image](./images/blazor-image-editor-custom-height-width.jpg) ## Save as image -The [`ExportAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_ExportAsync_System_String_Syncfusion_Blazor_ImageEditor_ImageEditorFileType_System_Double_) method in the Blazor Image Editor component is used to save the modified image as an image, and it accepts a file name and file type as parameters. The file type parameter supports PNG, JPEG, SVG, and WEBP the default file type is PNG. Users are allowed to save an image with a specified file name, file type, and image quality. This enhancement provides more control over the output, ensuring that users can save their work exactly as they need it. +The [ExportAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_ExportAsync_System_String_Syncfusion_Blazor_ImageEditor_ImageEditorFileType_System_Double_) method in the Blazor Image Editor component saves the modified image as an image and accepts a file name and file type as parameters. The file type parameter supports PNG, JPEG, SVG, and WEBP; the default file type is PNG. Images can be saved with a specified file name, file type, and image quality. -In the following example, the `ExportAsync` method is used in the button click event. +In the following example, the `ExportAsync` method is invoked on a button click. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -502,11 +534,11 @@ In the following example, the `ExportAsync` method is used in the button click e } ``` -![Blazor Image Editor with Save an image](./images/blazor-image-editor-export.png) +![Blazor Image Editor with Save an image](./images/blazor-image-editor-export.jpg) ### Save the image as base64 format -To save an image as a base64 format, use the [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method of the editor to retrieve the image data and convert it into a Data URL, which contains the base64-encoded string. By invoking the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) on the Syncfusion® Image Editor instance, you can load this Data URL into the editor. The resulting base64 string can then be embedded directly in HTML or CSS or transmitted over data channels without requiring an external file. +To save an image as base64, use the [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method of the editor to retrieve the image data and convert it into a Data URL containing the base64-encoded string. By invoking the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method on the Syncfusion® Image Editor instance, this Data URL can be loaded into the editor. The resulting base64 string can be embedded in HTML or CSS or transmitted over data channels without relying on an external file. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -544,7 +576,7 @@ To save an image as a base64 format, use the [`GetImageDataUrlAsync`](https://he ### Save the image as byte[] -To save an image as a byte array, use the [`GetImageDataAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataAsync) method of the editor to retrieve a byte array. You can then invoke the [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method on the Syncfusion® Image Editor instance to load this byte array into the editor. The resulting byte array can be stored in a database for data management and maintenance. +To save an image as a byte array, use the [GetImageDataAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataAsync) method of the editor to retrieve a byte array. Then invoke the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method on the Syncfusion® Image Editor instance to load this byte array into the editor. The resulting byte array can be stored in a database for data management and maintenance. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -588,11 +620,12 @@ To save an image as a byte array, use the [`GetImageDataAsync`](https://help.syn ### Save the image as Blob -To save an image as a blob, use the [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method of the editor to retrieve the image data and convert it into a blob. You can then invoke the open method on the Syncfusion® Image Editor instance to load this byte array into the editor. The resulting byte array can be stored in a database for data management and maintenance. +To save an image as a blob, use the [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method of the editor to retrieve the image data and convert it into a blob. Then invoke the open method on the Syncfusion® Image Editor instance to load this byte array into the editor. The resulting byte array can be stored in a database for data management and maintenance. ```cshtml @using Syncfusion.Blazor.ImageEditor @using Syncfusion.Blazor.Buttons +@using System.IO
    Save Blob @@ -629,13 +662,13 @@ To save an image as a blob, use the [`GetImageDataUrlAsync`](https://help.syncfu ### Save as image in server -The [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method in the Blazor Image Editor component is used to gets the current image data url from the Image Editor component +The [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method in the Blazor Image Editor component retrieves the current image data URL from the Image Editor component. -The value returned from this method is used to save the edited image to database as well as open in our image editor using The [`OpenAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_)method. +The value returned from this method can be used to save the edited image to a database as well as open it in the Image Editor using the [OpenAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_OpenAsync_System_Object_System_Boolean_System_String_) method. N> Increase the connection buffer size in Blazor Image Editor component -The Syncfusion's Blazor Image Editor component allows to increase the connection buffer size by adding the below service in program.cs file if the size of the image is too large. +The Syncfusion's Blazor Image Editor component allows increasing the connection buffer size by adding the following service in Program.cs if the image size is large. ```cshtml builder.Services.AddServerSideBlazor().AddHubOptions(o => { o.MaximumReceiveMessageSize = 102400000; }); @@ -643,7 +676,7 @@ builder.Services.AddServerSideBlazor().AddHubOptions(o => { o.MaximumReceiveMess ### Remove default Save button and add custom button to save the image to server -User can leverage the [`Toolbar`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_Toolbar) property to replace the default save button with a custom one. By doing so, you can use the [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method to retrieve the image data, convert it to base64 format, and then save it to the server. This approach gives you more control over the image-saving process. +The [Toolbar](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_Toolbar) property can be used to replace the default save button with a custom one. Then use the [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method to retrieve the image data, convert it to base64 format, and save it to the server, providing more control over the image-saving process. ```cshtml @using Syncfusion.Blazor.ImageEditor @@ -653,7 +686,7 @@ User can leverage the [`Toolbar`](https://help.syncfusion.com/cr/blazor/Syncfusi Save to Server
    - + @@ -664,12 +697,6 @@ User can leverage the [`Toolbar`](https://help.syncfusion.com/cr/blazor/Syncfusi { await ImageEditor.OpenAsync("https://ej2.syncfusion.com/react/demos/src/image-editor/images/bridge.png"); } - private List customToolbar = new List() - { - new ImageEditorToolbarItemModel { Name = "Crop" }, - new ImageEditorToolbarItemModel { Name = "Annotation" }, - new ImageEditorToolbarItemModel { Name = "Filter" }, - }; private async Task SaveImage() { var imageDataUrl = await ImageEditor.GetImageDataUrlAsync(); @@ -686,14 +713,14 @@ User can leverage the [`Toolbar`](https://help.syncfusion.com/cr/blazor/Syncfusi ### Prevent default save option and save the image to specific location -User can make use of the [`Saving`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Saving) event, which triggers just before the image is downloaded, to override the default save option by setting `args.cancel` to true. Afterward, you can utilize the [`GetImageDataUrlAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method to retrieve the current image data and convert it into a format like `byte[]`, `blob`, or `base64` for further processing. This gives you greater flexibility in handling the image data. +The [Saving](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Saving) event, which triggers just before the image is downloaded, can be used to override the default save option by setting `args.cancel` to true. Afterward, use the [GetImageDataUrlAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SfImageEditor.html#Syncfusion_Blazor_ImageEditor_SfImageEditor_GetImageDataUrlAsync_System_Boolean_) method to retrieve the current image data and convert it into a format like `byte[]`, `blob`, or `base64` for further processing. ```cshtml @using Syncfusion.Blazor.ImageEditor @using System.IO
    - +
    @@ -721,33 +748,33 @@ User can make use of the [`Saving`](https://help.syncfusion.com/cr/blazor/Syncfu ## Events to handle Save Actions -The Image Editor provides several events related to opening and saving images. These events offer detailed control over the image handling process. For comprehensive information about these events, including their triggers and usage, please refer to the dedicated section on open and save support. This section will provide you with the specifics needed to effectively utilize these events in your application. +The Image Editor provides several events related to opening and saving images. These events offer detailed control over the image handling process. For comprehensive information about these events, including their triggers and usage, refer to the dedicated section on open and save support. ### File opened event -The [`FileOpened`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_FileOpened) event is triggered in the Blazor Image Editor component after an image is successfully loaded. It provides the [`FileOpenEventArgs`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html) as the event argument, which contains two specific arguments: +The [FileOpened](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_FileOpened) event is triggered in the Blazor Image Editor component after an image is successfully loaded. It provides the [FileOpenEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html) as the event argument, which contains two specific arguments: -[`FileName`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html#Syncfusion_Blazor_ImageEditor_FileOpenEventArgs_FileName): This argument is a string that contains the file name of the opened image. It represents the name of the file that was selected or provided when loading the image into the Image Editor. +- [FileName](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html#Syncfusion_Blazor_ImageEditor_FileOpenEventArgs_FileName) - A string that contains the file name of the opened image. -[`FileType`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html#Syncfusion_Blazor_ImageEditor_FileOpenEventArgs_FileType): This argument is a string that contains the type of the opened image. It specifies the format or file type of the image that was loaded, such as PNG, JPEG, SVG, WEBP and BMP. +- [FileType](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.FileOpenEventArgs.html#Syncfusion_Blazor_ImageEditor_FileOpenEventArgs_FileType) - A string that contains the type of the opened image, such as PNG, JPEG, SVG, WEBP, and BMP. -By accessing these arguments within the `FileOpened` event handler, you can retrieve information about the loaded image, such as its file name and file type. This can be useful for performing additional actions or implementing logic based on the specific image that was opened in the Image Editor component. +These arguments enable retrieving information about the loaded image, such as its file name and type, which can be used for additional actions. ### Saving event -The [`Saving`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Saving) event is triggered in the Blazor Image Editor component when an image is being saved to the local disk. It provides the [`SaveEventArgs `](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html) as the event argument, which includes the following specific arguments: +The [Saving](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Saving) event is triggered in the Blazor Image Editor component when an image is being saved to the local disk. It provides the [SaveEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html) as the event argument, which includes the following specific arguments: -[`FileName`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html#Syncfusion_Blazor_ImageEditor_SaveEventArgs_FileName): This argument is a string that holds the file name of the saved image. It represents the name of the file that will be used when saving the image to the local disk. +- [FileName](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html#Syncfusion_Blazor_ImageEditor_SaveEventArgs_FileName) - A string that holds the file name of the saved image. -[`FileType`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html#Syncfusion_Blazor_ImageEditor_SaveEventArgs_FileType): This argument is a string indicating the type or format of the saved image. It specifies the desired file type in which the image will be saved, such as PNG, JPEG, SVG, and WEBP. +- [FileType](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html#Syncfusion_Blazor_ImageEditor_SaveEventArgs_FileType) - A string indicating the format of the saved image, such as PNG, JPEG, SVG, and WEBP. -[`Cancel`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html#Syncfusion_Blazor_ImageEditor_SaveEventArgs_Cancel): This argument is a boolean value that can be set to true in order to cancel the saving action. By default, it is set to false, allowing the saving process to proceed. However, if you want to prevent the saving action from occurring, you can set Cancel to true within the event handler. +- [Cancel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.SaveEventArgs.html#Syncfusion_Blazor_ImageEditor_SaveEventArgs_Cancel) - A boolean value that can be set to true to cancel the saving action. The default value is false. -By accessing these arguments within the Saving event handler, you can retrieve information about the file name and file type of the image being saved. Additionally, you have the option to cancel the saving action if necessary. +These arguments provide control over the save operation, including file naming, format selection, and cancellation. ### Created event -The [`Created`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Created) event is triggered once the Blazor Image Editor component is created. This event serves as a notification that the component has been fully initialized and is ready to be used. It provides a convenient opportunity to render the Image Editor with a predefined set of initial settings, including the image, annotations, and transformations. +The [Created](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Created) event is triggered once the Blazor Image Editor component is created. This event indicates that the component has been fully initialized and is ready to be used. It provides an opportunity to render the Image Editor with a predefined set of initial settings, including the image, annotations, and transformations. In the following example, the `Created` event is used to load an image. @@ -773,4 +800,4 @@ In the following example, the `Created` event is used to load an image. ### Destroyed event -The [`Destroyed`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Destroyed) event is triggered once the Blazor Image Editor component is destroyed or removed from the application. This event serves as a notification that the component and its associated resources have been successfully cleaned up and are no longer active. +The [Destroyed](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.ImageEditor.ImageEditorEvents.html#Syncfusion_Blazor_ImageEditor_ImageEditorEvents_Destroyed) event is triggered once the Blazor Image Editor component is destroyed or removed from the application. This event indicates that the component and its associated resources have been cleaned up and are no longer active. diff --git a/blazor/listview/how-to/get-selected-items-from-listview.md b/blazor/listview/how-to/get-selected-items-from-listview.md index c6ab0f830a..4be074864b 100644 --- a/blazor/listview/how-to/get-selected-items-from-listview.md +++ b/blazor/listview/how-to/get-selected-items-from-listview.md @@ -7,11 +7,11 @@ control: ListView documentation: ug --- -# Retrieving Selected Items in Syncfusion® Blazor ListView +# Retrieving Selected Items from ListView Component -The Syncfusion® Blazor ListView component allows users to choose multiple items from a list. To retrieve these selected items, you can refer the below implementation in ListView component. This functionality is especially useful for applications that need to process or display data based on user selections. +The Syncfusion® Blazor ListView component offers functionalities for users to select one or more items from a list. This guide outlines how to retrieve selected items, a feature essential for applications that need to process or display data based on user choices. -## Get selected items from ListView Component +## Get Selected Items from ListView Component The ListView component in Syncfusion® Blazor allows to select multiple items. The [`GetCheckedItemsAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.SfListView-1.html#Syncfusion_Blazor_Lists_SfListView_1_GetCheckedItemsAsync) method is utilized to retrieve these selected items. Below are the details of this API: @@ -107,13 +107,12 @@ Here's a code snippet illustrating the implementation: } ``` - ![Getting Selected Item in Blazor ListView](../images/list/get-selected-items-from-listview.png) -## Get selected items from custom template in Blazor ListView Component +## Get Selected Items from Custom Template in Blazor ListView Component -In scenarios where you build custom templates in Blazor ListView Component, you can select multiple items. It's essential to map the `Id` and `Text` attributes properly using [`ListViewFieldSettings`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewFieldSettings-1.html). This ensures that selected item data is returned correctly in templates: +In scenarios where custom templates are built in the Blazor ListView Component, multiple items can be selected. It's essential to map the `Id` and `Text` attributes properly using [`ListViewFieldSettings`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Lists.ListViewFieldSettings-1.html). This ensures that selected item data is returned correctly in templates. ```cshtml @using Syncfusion.Blazor.Lists @@ -197,6 +196,6 @@ In scenarios where you build custom templates in Blazor ListView Component, you } ``` - +{% previewsample "https://blazorplayground.syncfusion.com/embed/VXVeMZtCATAcUTGf?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Getting Selected Item from Blazor ListView](../images/list/blazor-listview-display-seleted-item.png) diff --git a/blazor/ribbon/keytip.md b/blazor/ribbon/keytip.md index 457c138d5a..b9a76541c2 100644 --- a/blazor/ribbon/keytip.md +++ b/blazor/ribbon/keytip.md @@ -9,7 +9,7 @@ documentation: ug # KeyTips in Blazor Ribbon component -The Blazor Ribbon component supports keyboard navigation through KeyTips, enabling users to interact with Ribbon interface without using a mouse. KeyTips can be enabled by setting the `EnableKeyTips` property, allowing users to quickly access commands using shortcut keys. +The Blazor Ribbon component supports keyboard navigation through keytips, enabling users to interact with the Ribbon interface without a mouse. Keytips can be enabled by setting the `EnableKeyTips` property, allowing users to quickly access commands using keyboard shortcuts. The keyTips will be shown when the **Alt + Windows/Command(on macOS)** keys are pressed. @@ -17,7 +17,7 @@ The keyTips will be shown when the **Alt + Windows/Command(on macOS)** keys are ### Ribbon items keytip -You can add keytips to the Ribbon items by using the `KeyTip` property in the `RibbonItem` directive. +Keytips can be added to Ribbon items by using the `KeyTip` property in the `RibbonItem` directive. {% tabs %} {% highlight razor %} @@ -275,11 +275,11 @@ You can add keytips to the Ribbon items by using the `KeyTip` property in the `R {% endhighlight %} {% endtabs %} -![Ribbon Items Keytip](./images/keytip/items-keytip.png) +![Ribbon items keytip](./images/keytip/items-keytip.png) ### File menu keytip -You can add keytip to the File menu by using the `KeyTip` property. +A keytip can be added to the File menu by using the `KeyTip` property. {% tabs %} {% highlight razor %} @@ -346,11 +346,11 @@ You can add keytip to the File menu by using the `KeyTip` property. {% endhighlight %} {% endtabs %} -![Ribbon File Menu Keytip](./images/keytip/file-menu-keytip.png) +![Ribbon file menu keytip](./images/keytip/file-menu-keytip.png) ### Backstage menu keytip -You can add keytips for the backstage button and menu items by using `KeyTip` property. +Keytips can be added for the backstage button and menu items by using the `KeyTip` property. {% tabs %} {% highlight razor %} @@ -418,11 +418,11 @@ You can add keytips for the backstage button and menu items by using `KeyTip` pr {% endhighlight %} {% endtabs %} -![Ribbon Backstage menu keytip](./images/keytip/backstage-keytip.png) +![Ribbon backstage menu keytip](./images/keytip/backstage-keytip.png) ### Ribbon layout switcher keytip -You can add keytip to the layout switcher by using the `LayoutSwitcherKeyTip` property for switching between **Classic** and **Simplified** Ribbon layouts. +A keytip can be added to the layout switcher by using the `LayoutSwitcherKeyTip` property to switch between the `Classic` and `Simplified` Ribbon layouts. {% tabs %} {% highlight razor %} @@ -493,7 +493,7 @@ You can add keytip to the layout switcher by using the `LayoutSwitcherKeyTip` pr ### Ribbon launcher icon keytip -You can add keytip to the launcher icon by using `LauncherIconKeyTip` property allowing you to quickly open additional options in Ribbon groups. +A keytip can be added to the launcher icon by using the `LauncherIconKeyTip` property to quickly open additional options in Ribbon groups. {% tabs %} {% highlight razor %} @@ -567,14 +567,14 @@ You can add keytip to the launcher icon by using `LauncherIconKeyTip` property a ### Show keytips -You can use the `ShowKeyTipsAsync` method to dynamically display keytips. +The `ShowKeyTipsAsync` method displays keytips dynamically for the Ribbon. - To activate a specific key action, pass the corresponding keytip string as an argument. - For example, calling `ShowKeyTipsAsync('H')` will look for the specific item associated with the **H** key and trigger its respective action. ### Hide keytips -You can use the `HideKeyTipsAsync` method to remove all visible keytips from the Ribbon dynamically. +The `HideKeyTipsAsync` method removes all visible keytips from the Ribbon dynamically. {% tabs %} {% highlight razor %} @@ -658,12 +658,12 @@ You can use the `HideKeyTipsAsync` method to remove all visible keytips from the ## Guidelines for adding keytips -Before adding keytips to the Ribbon items, follow these best practices: +Before adding keytips to Ribbon items, follow these best practices: -* Avoid using the same keytip setting on multiple items. +* Avoid assigning the same keytip to multiple items. -> Each keytip should be distinct. If multiple items share the same keytip (e.g., `H` or `HF`), only the first occurrence will be activated, while any subsequent instances of H or HF are ignored. +> Each keytip must be unique. If multiple items share the same keytip (for example, `H` or `HF`), only the first occurrence is activated; subsequent items using the same keytip are ignored. -* Do not use the same first letter for the single and double keytip items. +* Do not use the same first letter for single- and multi-character keytips on different items. -> When using multi-character keytips (e.g., `F`, `FP`, and `FPF`) for different items, pressing `F` will activate only the first-level keytip (`F`), while `FP` and `FPF` will be ignored. +> When using multi-character keytips (for example, `F`, `FP`, and `FPF`) for different items, pressing `F` activates only the first-level keytip (`F`), and `FP` and `FPF` are ignored. \ No newline at end of file diff --git a/blazor/rich-text-editor/tools/audio.md b/blazor/rich-text-editor/tools/audio.md index 38770ea250..132e6fbb1d 100644 --- a/blazor/rich-text-editor/tools/audio.md +++ b/blazor/rich-text-editor/tools/audio.md @@ -386,5 +386,5 @@ namespace AudioUpload.Controllers ## See also -* [How to configuring the toolbar position](https://blazor.syncfusion.com/documentation/rich-text-editor/toolbar#configuring-the-toolbar-position) +* [How to configuring the toolbar position](../toolbar#configuring-the-toolbar-position) * [How to use link editing option in the toolbar items](../tools#insert-link) diff --git a/blazor/rich-text-editor/tools/styling-tools.md b/blazor/rich-text-editor/tools/styling-tools.md index 593a921a60..dfc7f83dbb 100644 --- a/blazor/rich-text-editor/tools/styling-tools.md +++ b/blazor/rich-text-editor/tools/styling-tools.md @@ -459,6 +459,43 @@ This feature allows users to change the appearance of the numbered and bulleted +### Checklist + +The `Checklist` feature lets you create interactive task lists with clickable checkboxes. You can configure checkbox behavior, customize the visual appearance, manage item states, and enable keyboard interactions. This makes it perfect for project management, note-taking, and task tracking within your content. You can easily toggle between checked and unchecked states, giving you an intuitive way to manage the completion status of your list items—making it a simple and effective to-do list solution. + +#### Inserting a checklist +You can embed interactive task lists directly within the Rich Text Editor. Here’s how you can insert a checklist: +- **Using the toolbar**: Click the checklist button in the editor toolbar, usually represented by a checkbox icon. +- **Using the shortcut**: Press `Ctrl+Shift+9` (or `Cmd+Shift+9` on macOS) to insert a checklist at your cursor’s position. +- **Converting existing lists**: Select an existing bullet or numbered list and click the checklist button to convert it into an interactive checklist. +- **Toggling checklist items**: You can toggle the state of checklist items between checked and unchecked by clicking the checkbox. If you prefer using the keyboard, press `Ctrl+Enter` (or `Cmd+Enter` on macOS) to toggle the check marks based on your selection or cursor position in the editor. + +#### Configuring checklist +To enable the checklist feature in your editor, add the `Checklist` toolbar item to the [RichTextEditorToolbarSettings.Items](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.RichTextEditor.RichTextEditorToolbarSettings.Items) property. This feature supports customizable behavior and can be easily integrated into your Rich Text Editor toolbar for quick access. + +Here’s an example of how you can configure the checklist in your Rich Text Editor: + +{% tabs %} +{% highlight razor %} + +@using Syncfusion.Blazor.RichTextEditor + + + +

    The Rich Text Editor component is the WYSIWYG ('what you see is what you get') editor that provides the best user experience to create and update content. Users can format their content using standard toolbar commands.

    +
    +@code { + private List Items = new List() + { + new ToolbarItemModel() { Command = ToolbarCommand.Checklist } + }; +} + +{% endhighlight %} +{% endtabs %} + +![Blazor RichTextEditor Checklist](../images/checklist.png) + ## Formatting code blocks Configure code block formatting as a separate toolbar button by adding the `InsertCode` Command within the [RichTextEditorToolbarSettings.Items](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.RichTextEditor.RichTextEditorToolbarSettings.html#Syncfusion_Blazor_RichTextEditor_RichTextEditorToolbarSettings_Items) property. The `InsertCode` button has a toggle state to apply code block formatting to the editor and remove code block formatting from the editor. diff --git a/blazor/scheduler/clipboard.md b/blazor/scheduler/clipboard.md index f43f6daeae..1bcdbbafc0 100644 --- a/blazor/scheduler/clipboard.md +++ b/blazor/scheduler/clipboard.md @@ -9,17 +9,17 @@ documentation: ug # Clipboard in Blazor Scheduler Component -The Clipboard functionality in the Syncfusion® Scheduler enhances scheduling efficiency by enabling users to cut, copy, and paste appointments with ease. This feature is especially beneficial for those managing multiple appointments, as it eliminates the need for repetitive data entry and allows users to quickly adjust their schedules without hassle. +The Clipboard functionality in the Syncfusion® Scheduler enhances scheduling efficiency by enabling users to cut, copy, and paste appointments with ease. This feature is especially beneficial for managing multiple appointments, as it streamlines repetitive tasks and allows for quick adjustments to schedules. -To activate the clipboard feature in the scheduler, simply set the [`AllowClipboard`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowKeyboardInteraction) property to **true**. +To activate the clipboard feature in the Scheduler, set the [`AllowClipboard`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowClipboard) property to `true`. -N> The [`AllowKeyboardInteraction`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowKeyboardInteraction) property must be true for proper functionality of the clipboard feature. +N> The [`AllowKeyboardInteraction`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowKeyboardInteraction) property must also be set to `true` for the clipboard feature to function correctly, as it relies on keyboard shortcuts. -## Cut, copy and paste using keyboard +## Cut, Copy, and Paste Using Keyboard -The Syncfusion® Scheduler supports keyboard shortcuts to streamline the process of managing appointments. +The Syncfusion® Scheduler supports standard keyboard shortcuts to streamline the process of managing appointments. -These keyboard shortcuts enable users to efficiently manage their schedules: +These keyboard shortcuts enable efficient schedule management: | Operation | Shortcut | Description | |-----------|----------|------------------------------------------------------------------| @@ -111,9 +111,9 @@ To use these shortcuts, simply click on the appointment and press **Ctrl+C** to N> For Mac users, use **Cmd** instead of **Ctrl** for copy, cut, and paste operations. -## Cut, copy, and paste using context menu +## Cut, Copy, and Paste Using Context Menu -You can programmatically manage appointments by using the public methods **cut**, **copy**, and **paste**. These methods allow you to perform the same actions as the context menu or external buttons. +Appointments can be programmatically managed using the public methods `CopyAsync`, `CutAsync`, and `PasteAsync`. These methods allow developers to trigger the same clipboard actions as keyboard shortcuts or context menu options, providing more control over the appointment management process. Utilize these public methods to manage appointments programmatically in Syncfusion® Schedule: @@ -123,7 +123,7 @@ Utilize these public methods to manage appointments programmatically in Syncfusi | `CutAsync` | None | Remove the selected appointment from its current slot for moving. | | `PasteAsync` | targetElement (Scheduler's work-cell) | Insert the copied or cut appointment into the specified time slot. | -By using these methods, you can programmatically cut, copy, and paste appointments in the scheduler, providing more control over the appointment management process. +By using these methods within event handlers (e.g., from a custom context menu), precise control over clipboard operations is achieved. ```cshtml @using Syncfusion.Blazor.Schedule @@ -289,9 +289,9 @@ By using these methods, you can programmatically cut, copy, and paste appointmen {% previewsample "https://blazorplayground.syncfusion.com/embed/rNVojqVGhZgDmVrp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5 %} -## Modifying content before pasting +## Modifying Content Before Pasting -You can modify the content of an appointment before pasting it by using `Paste` event accessing the appointment details and making necessary changes. +The content of an appointment can be modified before it is pasted by utilizing the `Paste` event. This event provides access to the appointment details, allowing for necessary changes. The following example demonstrates how to seamlessly copy and paste content from a grid to a scheduler. To do this, follow these steps: diff --git a/blazor/scheduler/getting-started-webapp.md b/blazor/scheduler/getting-started-webapp.md index 5d48fcb717..ef5aa7e1df 100644 --- a/blazor/scheduler/getting-started-webapp.md +++ b/blazor/scheduler/getting-started-webapp.md @@ -9,11 +9,11 @@ documentation: ug # Getting Started with Blazor Scheduler in Blazor Web App -This section briefly explains about how to include [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section explains how to integrate the Syncfusion [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component into a Blazor Web App using either [Visual Studio](https://visualstudio.microsoft.com/vs/) or Visual Studio Code. -> **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) +> **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) -To get start quickly with Blazor Web App Scheduler, you can check on this video: +For a quick start with the Blazor Web App Scheduler, refer to this video: {% youtube "youtube:https://www.youtube.com/watch?v=PwjvHHMtL3U"%} @@ -26,11 +26,13 @@ To get start quickly with Blazor Web App Scheduler, you can check on this video: * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor Web App in Visual Studio +## Create a New Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) documentation. +A **Blazor Web App** can be created using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) documentation. -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=windows) while creating a Blazor Web Application. +The corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=windows) must be configured when creating a Blazor Web Application. + +![Create Blazor Web App](images/blazor-create-web-app.png) ![Create Blazor Web App](images/blazor-create-web-app.png) @@ -38,9 +40,9 @@ You need to configure the corresponding [Interactive render mode](https://learn. To add **Blazor Scheduler** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If `WebAssembly` or `Auto` render modes are utilized in the Blazor Web App, Syncfusion® Blazor components NuGet packages need to be installed within the client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, the Package Manager Console can be used to install the required NuGet package {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -61,9 +63,9 @@ N> Syncfusion® Blazor components are availa * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor Web App in Visual Studio Code +## Create a New Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code) documentation. +A **Blazor Web App** can be created using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code) documentation. Configure the appropriate interactive render mode and interactivity location when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). @@ -81,10 +83,10 @@ cd BlazorWebApp.Client ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If `WebAssembly` or `Auto` render modes are utilized in the Blazor Web App, Syncfusion® Blazor components NuGet packages need to be installed within the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. +* Ensure the current directory is the project root containing the `.csproj` file. * Run the following command to install a [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -107,7 +109,7 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK was previously installed, the installed version can be determined by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -135,13 +137,13 @@ cd BlazorApp.Client {% endhighlight %} {% endtabs %} -This command creates new Blazor Web App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. +This command creates a new Blazor Web App and places it in a new directory named `BlazorApp` within the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App Here's an example of how to add **Blazor Scheduler** component in the application using the following command in the command prompt (Windows) or terminal (Linux and macOS) to install a [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package. See [Install and manage packages using the dotnet CLI](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) topics for more details. -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If `WebAssembly` or `Auto` render modes are utilized in the Blazor Web App, Syncfusion® Blazor components NuGet packages need to be installed within the client project. {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -174,9 +176,9 @@ Open **~/_Imports.razor** file from the client project and import the `Syncfusio ## Register Syncfusion® Blazor Service -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +The Syncfusion® Blazor Service must be registered in the **~/Program.cs** file of the Blazor Web App. -If your Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, you must register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. +If the Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, the Syncfusion® Blazor service must be registered in the **~/Program.cs** files of both the main `server` project and the associated `.Client` project. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -210,7 +212,7 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -## Add stylesheet and script resources +## Add Stylesheet and Script Resources The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: @@ -229,7 +231,7 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in a Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. ## Add Syncfusion® Blazor Scheduler component @@ -283,13 +285,13 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Scheduler component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Scheduler component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/LNVpjWADUUybFgTL?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler Component](images/blazor-scheduler.png)" %} N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Scheduler/BlazorWebApp). -## Populating appointments +## Populating Appointments To populate the Scheduler with appointments, bind the event data to it by assigning the `DataSource` property under [ScheduleEventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html). @@ -334,9 +336,9 @@ To populate the Scheduler with appointments, bind the event data to it by assign {% previewsample "https://blazorplayground.syncfusion.com/embed/VNVyDujgpxNVnpFG?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Appointments](images/blazor-scheduler-appointments.png)" %} -## Setting date +## Setting Date -The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) usually displays the system date as its current date. To change the current date of Scheduler with specific date, define the two-way binding for [SelectedDate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SelectedDate) property. +The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) typically displays the system date as its current date. To change the current date of the Scheduler to a specific date, define the two-way binding for the [SelectedDate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SelectedDate) property. {% tabs %} {% highlight razor %} @@ -370,7 +372,9 @@ The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-sched {% endhighlight %} {% endtabs %} -## Setting view +{% previewsample "https://blazorplayground.syncfusion.com/embed/VNVoCXZcWcHmiTRe?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Setting Custom Date](images/custom-date.png)" %} + +## Setting View The Scheduler displays `Week` view by default. To change the current view, define the applicable view name to the two-way binding of [CurrentView](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CurrentView) property. The applicable view names are, @@ -419,7 +423,9 @@ The Scheduler displays `Week` view by default. To change the current view, defin {% endhighlight %} {% endtabs %} -## Individual view customization +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNVeMNjQCvjyYFrF?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Custom View](images/custom-view.png)" %} + +## Individual View Customization Each individual Scheduler views can be customized with its own options such as setting different start and end hour on Week and Work Week views, whereas hiding the weekend days on Month view alone which can be achieved by defining the `ScheduleView`. diff --git a/blazor/scheduler/getting-started-with-server-app.md b/blazor/scheduler/getting-started-with-server-app.md index ce505592f7..80606ce5c3 100644 --- a/blazor/scheduler/getting-started-with-server-app.md +++ b/blazor/scheduler/getting-started-with-server-app.md @@ -9,11 +9,11 @@ documentation: ug # Getting Started with Blazor Scheduler Component in Server App -This section briefly explains about how to include [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component in your Blazor Server App using Visual Studio, Visual Studio Code and .NET CLI. +This section explains how to integrate the Syncfusion [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component into a Blazor Server App using Visual Studio, Visual Studio Code and .NET CLI. -> **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) +> **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) -To get start quickly with Blazor Scheduler, you can check on this [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Scheduler) sample: +For a quick start with the Blazor Scheduler, refer to this [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Scheduler) sample: {% tabcontents %} @@ -23,13 +23,13 @@ To get start quickly with Blazor Scheduler, you can check on this [GitHub](https * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor App in Visual Studio +## Create a New Blazor Server App in Visual Studio -You can create a **Blazor Server App** using **Blazor Web App** template in Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) documentation. +A **Blazor Server App** can be created using the **Blazor Web App** template in Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) documentation. ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App -To add **Blazor Scheduler** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, you can utilize the following package manager command to achieve the same. +To add **Blazor Scheduler** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, the Package Manager Console can be used to install the required NuGet package {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -50,11 +50,11 @@ N> Syncfusion® Blazor components are availa * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor App in Visual Studio Code +## Create a New Blazor Server App in Visual Studio Code -You can create a **Blazor Server App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio?tabcontent=visual-studio-code) documentation. +A **Blazor Server App** can be created using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio?tabcontent=visual-studio-code) documentation. -Alternatively, you can create a server application using the following command in the terminal(Ctrl+`). +Alternatively, a server application can be created using the following command in the terminal(Ctrl+`). {% tabs %} @@ -70,7 +70,7 @@ cd BlazorApp ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. +* Ensure the current directory is the project root containing the .csproj file. * Run the following command to install a [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -93,7 +93,7 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK was previously installed, the installed version can be determined by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -116,7 +116,7 @@ cd BlazorApp {% endhighlight %} {% endtabs %} -This command creates new Blazor Server App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. +This command creates a new Blazor Server App and places it in a new directory named `BlazorApp` within the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App @@ -151,7 +151,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Server App. +Register the Syncfusion® Blazor Service in the **~/Program.cs** file of the Blazor Server App. {% tabs %} {% highlight C# tabtitle="~/Program.cs" hl_lines="3 10" %} @@ -172,7 +172,7 @@ builder.Services.AddSyncfusionBlazor(); {% endhighlight %} {% endtabs %} -## Add stylesheet and script resources +## Add Stylesheet and Script Resources The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script in the `` and the script reference at the end of the `` in the **App.razor** file as shown below: @@ -191,9 +191,9 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in a Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. -## Add Blazor Scheduler component +## Add Blazor Scheduler Component Add the Syncfusion® Blazor Scheduler component in the **~/Components/Pages/Home.razor** file. If an interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. @@ -235,11 +235,11 @@ N> If an Interactivity Location is set to `Global` and the **Render Mode** is se {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Scheduler component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Scheduler component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/LNVpjWADUUybFgTL?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler Component](images/blazor-scheduler.png)" %} -## Populating appointments +## Populating Appointments To populate the Scheduler with appointments, bind the event data to it by assigning the `DataSource` property under [ScheduleEventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1__ctor). @@ -320,7 +320,9 @@ The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-sched {% endhighlight %} {% endtabs %} -## Setting view +{% previewsample "https://blazorplayground.syncfusion.com/embed/VNVoCXZcWcHmiTRe?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Setting Custom Date](images/custom-date.png)" %} + +## Setting View The Scheduler displays `Week` view by default. To change the current view, define the applicable view name to the two-way binding of [CurrentView](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CurrentView) property. The applicable view names are, @@ -369,7 +371,9 @@ The Scheduler displays `Week` view by default. To change the current view, defin {% endhighlight %} {% endtabs %} -## Individual view customization +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNVeMNjQCvjyYFrF?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Custom View](images/custom-view.png)" %} + +## Individual View Customization Each individual Scheduler views can be customized with its own options such as setting different start and end hour on Week and Work Week views, whereas hiding the weekend days on Month view alone which can be achieved by defining the `ScheduleView`. diff --git a/blazor/scheduler/getting-started.md b/blazor/scheduler/getting-started.md index 53113178bb..21a17c7d9a 100644 --- a/blazor/scheduler/getting-started.md +++ b/blazor/scheduler/getting-started.md @@ -9,11 +9,11 @@ documentation: ug # Getting Started with Blazor Scheduler Component in WASM App -This section briefly explains about how to include [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component in your Blazor WebAssembly App using Visual Studio and Visual Studio Code. +This section explains how to integrate the Syncfusion [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component into a Blazor WebAssembly App using Visual Studio and Visual Studio Code. -> **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) +> **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) -To get start quickly with Blazor Scheduler, you can check on this [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Scheduler) sample: +For a quick start with the Blazor Scheduler, refer to this [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Scheduler) sample: {% tabcontents %} @@ -23,13 +23,13 @@ To get start quickly with Blazor Scheduler, you can check on this [GitHub](https * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor App in Visual Studio +## Create a New Blazor WebAssembly App in Visual Studio -You can create a **Blazor WebAssembly App** using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app). +A **Blazor WebAssembly App** can be created using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this guide](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app). ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App -To add **Blazor Scheduler** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, you can utilize the following package manager command to achieve the same. +To add **Blazor Scheduler** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, the Package Manager Console can be used to install the required NuGet package {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -50,11 +50,11 @@ N> Syncfusion® Blazor components are availa * [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) -## Create a new Blazor App in Visual Studio Code +## Create a New Blazor WebAssembly App in Visual Studio Code -You can create a **Blazor WebAssembly App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor WASM Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app?tabcontent=visual-studio-code) documentation. +A **Blazor WebAssembly App** can be created using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor WASM Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app?tabcontent=visual-studio-code) documentation. -Alternatively, you can create a WebAssembly application using the following command in the terminal(Ctrl+`). +Alternatively, a WebAssembly application can be created using the following command in the terminal(Ctrl+`). {% tabs %} @@ -70,7 +70,7 @@ cd BlazorApp ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. +* Ensure the current directory is the project root, where the `.csproj` file is located. * Run the following command to install a [Syncfusion.Blazor.Schedule](https://www.nuget.org/packages/Syncfusion.Blazor.Schedule) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -93,7 +93,7 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK was previously installed, the installed version can be determined by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -116,7 +116,7 @@ cd BlazorApp {% endhighlight %} {% endtabs %} -This command creates new Blazor WebAssembly App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. +This command creates a new Blazor WebAssembly App and places it in a new directory named `BlazorApp` within the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new) topics for more details. ## Install Syncfusion® Blazor Schedule and Themes NuGet in the App @@ -153,7 +153,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor WebAssembly App. +The Syncfusion® Blazor Service must be registered in the **~/Program.cs** file of the Blazor WebAssembly App. {% tabs %} {% highlight C# tabtitle="~/Program.cs" hl_lines="3 11" %} @@ -177,21 +177,24 @@ await builder.Build().RunAsync(); ## Add stylesheet and script resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script references in the `` section of the **~/index.html** file. +The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet references within the `` section and script references in `` section of the **~/index.html** file. ```html .... + +.... + + .... - //Blazor Scheduler Component script reference. - + ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in a Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. -## Add Blazor Scheduler component +## Add Blazor Scheduler Component Add the Syncfusion® Blazor Scheduler component in the **~/Pages/Index.razor** file. @@ -226,11 +229,11 @@ Add the Syncfusion® Blazor Scheduler compon {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Scheduler component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Scheduler component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/LNVpjWADUUybFgTL?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler Component](images/blazor-scheduler.png)" %} -## Populating appointments +## Populating Appointments To populate the Scheduler with appointments, bind the event data to it by assigning the `DataSource` property under [ScheduleEventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1__ctor). @@ -275,7 +278,7 @@ To populate the Scheduler with appointments, bind the event data to it by assign {% previewsample "https://blazorplayground.syncfusion.com/embed/VNVyDujgpxNVnpFG?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Appointments](images/blazor-scheduler-appointments.png)" %} -## Setting date +## Setting Date The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) usually displays the system date as its current date. To change the current date of Scheduler with specific date, define the two-way binding for [SelectedDate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SelectedDate) property. @@ -311,7 +314,9 @@ The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-sched {% endhighlight %} {% endtabs %} -## Setting view +{% previewsample "https://blazorplayground.syncfusion.com/embed/VNVoCXZcWcHmiTRe?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Setting Custom Date](images/custom-date.png)" %} + +## Setting View The Scheduler displays `Week` view by default. To change the current view, define the applicable view name to the two-way binding of [CurrentView](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CurrentView) property. The applicable view names are, @@ -360,7 +365,9 @@ The Scheduler displays `Week` view by default. To change the current view, defin {% endhighlight %} {% endtabs %} -## Individual view customization +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNVeMNjQCvjyYFrF?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Scheduler with Custom View](images/custom-view.png)" %} + +## Individual View Customization Each individual Scheduler views can be customized with its own options such as setting different start and end hour on Week and Work Week views, whereas hiding the weekend days on Month view alone which can be achieved by defining the `ScheduleView`. diff --git a/blazor/scheduler/scheduler-styling.md b/blazor/scheduler/scheduler-styling.md index 53fb815c5d..faa90b4711 100644 --- a/blazor/scheduler/scheduler-styling.md +++ b/blazor/scheduler/scheduler-styling.md @@ -9,7 +9,7 @@ documentation: ug # Style And Appearance in Blazor Scheduler Component -To modify the Scheduler appearance, you need to override the default CSS of Scheduler. Also, there is an option to create our own custom theme using [Theme Studio](https://blazor.syncfusion.com/themestudio/?theme=material). Find the list of CSS classes in Scheduler. +To modify the Scheduler appearance, override the default CSS. A custom theme can also be created using [Theme Studio](https://blazor.syncfusion.com/themestudio/?theme=material). The following table lists the CSS classes available in the Scheduler. | CSS class | Purpose | |-------|---------| @@ -43,7 +43,7 @@ To modify the Scheduler appearance, you need to override the default CSS of Sche | .e-schedule .e-read-only | Read only appointment in scheduler. | | e-appointment-border | Appointment which are currently selected, use the appointment class hierarchical based on your views. | | e-selected-cells | Work cells which are currently selected, use the work cell class hierarchical based on your views. | -| e-header-cells | Header cells of scheduler, use the work cells hierarchical based on your views. | +| e-header-cells | Header cells of the Scheduler; used hierarchically based on views. | | .e-schedule .e-vertical-view .e-resource-cells| Resource cells in vertical views of scheduler. | | .e-schedule .e-month-view .e-resource-cells| Resource cells in month view of scheduler. | | .e-schedule .e-timeline-view .e-resource-cells | Resource cells in timeline views of scheduler. | @@ -51,7 +51,7 @@ To modify the Scheduler appearance, you need to override the default CSS of Sche | e-parent-node | Parent resource cells in timeline views of scheduler. | | e-child-node | Child resource cells in timeline views of scheduler. | -### Work cells in vertical views of scheduler +### Work Cells In Vertical Views Of Scheduler This CSS selector targets the work cells in the vertical views (Day, Week, and WorkWeek) of the Syncfusion® Scheduler component. These cells represent the individual time slots arranged vertically where appointments are displayed and can be scheduled. @@ -98,7 +98,7 @@ This CSS selector targets the work cells in the vertical views (Day, Week, and W {% previewsample "https://blazorplayground.syncfusion.com/embed/BDLSjzXQfGnvGHlh?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in vertical views](images/blazor-scheduler-verticalview-workcells.png)" %} -### Work cells in month view of scheduler +### Work Cells In Month View Of Scheduler This CSS selector targets the work cells (day cells) that belong to the current month in the month view of the Syncfusion® Scheduler. These cells represent the individual days of the displayed month where users can schedule and view appointments. @@ -141,7 +141,7 @@ This CSS selector targets the work cells (day cells) that belong to the current {% previewsample "https://blazorplayground.syncfusion.com/embed/LXBSXpMdpcPUpdLW?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in month view](images/blazor-scheduler-monthview-workcells.png)" %} -### Work cells of other month in month view of scheduler +### Work Cells Of Other Month In Month View Of Scheduler This CSS selector targets the work cells that represent days from adjacent months (previous or next month) that are visible in the current month view of the scheduler. These cells typically appear at the beginning and end of a month view to complete the week rows. @@ -185,7 +185,7 @@ This CSS selector targets the work cells that represent days from adjacent month {% previewsample "https://blazorplayground.syncfusion.com/embed/LDVoDfinplIYBcIi?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Other month work cells in month view](images/blazor-scheduler-othermonth-workcells.png)" %} -### Work cells in timeline views of scheduler +### Work Cells In Timeline Views Of Scheduler This CSS selector targets the work cells in the standard timeline views of the Syncfusion® Scheduler. These cells represent time slots arranged horizontally across the scheduler. @@ -230,7 +230,7 @@ This CSS selector targets the work cells in the standard timeline views of the S {% previewsample "https://blazorplayground.syncfusion.com/embed/LtVetzsdeXJJNgsX?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in timeline views](images/blazor-scheduler-timelineview-workcells.png)" %} -### Work cells in timeline month view of scheduler +### Work Cells In Timeline Month View Of Scheduler This CSS selector targets the work cells in the timeline month view of the Syncfusion® Scheduler component. @@ -273,7 +273,7 @@ This CSS selector targets the work cells in the timeline month view of the Syncf {% previewsample "https://blazorplayground.syncfusion.com/embed/hZhSXIXUeKvJllyA?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in timeline month views](images/blazor-scheduler-timelinemonth-workcells.png)" %} -### Work cells in timeline year view of scheduler +### Work Cells In Timeline Year View Of Scheduler This CSS selector targets the work cells in the timeline year view of the Syncfusion® Scheduler component. These cells represent time slots across the entire year, arranged in a timeline format that provides an overview of appointments throughout the entire year. @@ -316,7 +316,7 @@ This CSS selector targets the work cells in the timeline year view of the Syncfu {% previewsample "https://blazorplayground.syncfusion.com/embed/rZBIZSXKozTrvbOf?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in timeline year views](images/blazor-scheduler-timelineyear-workcells.png)" %} -### Work cells of other month in timeline year view of scheduler +### Work Cells Of Other Month In Timeline Year View Of Scheduler This CSS selector targets the work cells representing days from adjacent months (previous or next month) that are visible in the timeline year view. @@ -359,7 +359,7 @@ This CSS selector targets the work cells representing days from adjacent months {% previewsample "https://blazorplayground.syncfusion.com/embed/VNLIteDUymCFDFFp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in timeline other month views](images/blazor-scheduler-timeline-othermonth-workcells.png)" %} -### Work cells in month agenda view of scheduler +### Work Cells In Month Agenda View Of Scheduler This CSS selector targets the work cells that represent the days in the month agenda view of the Syncfusion® Scheduler. These cells are areas where appointments can be placed. @@ -401,7 +401,7 @@ This CSS selector targets the work cells that represent the days in the month ag {% previewsample "https://blazorplayground.syncfusion.com/embed/hjBItIMpzmNyLBhW?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work cells in month agenda view](images/blazor-scheduler-monthagenda-workcells.png)" %} -### Work cells of other month in month agenda view of scheduler +### Work Cells of Other Month in Month Agenda View of Scheduler This CSS selector targets the work cells representing days that belong to adjacent months within the month agenda view. These cells often show up to provide context for appointments that may extend beyond the current month. @@ -802,7 +802,7 @@ This CSS selector targets the work day cells in the timeline year view of the Sy {% previewsample "https://blazorplayground.syncfusion.com/embed/VtLytSsaTviyMXFM?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Work day cells in timeline year view](images/blazor-scheduler-work-day-cells-timeline-yearview.png)" %} -### Appointment in vertical views of scheduler +### Appointment in Vertical Views of Scheduler This CSS selector targets the regular appointments that appear in these vertical views. Customizing this selector can significantly improving appointment visibility, readability, and overall visual appearance. @@ -857,7 +857,7 @@ This CSS selector targets the regular appointments that appear in these vertical {% previewsample "https://blazorplayground.syncfusion.com/embed/BXLSXlXiqeOnoBFt?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in vertical view](images/blazor-scheduler-appointments-vertical-view.png)" %} -### All day Appointment in vertical views of scheduler +### All Day Appointment in Vertical views of Scheduler This CSS selector targets the all-day appointments that appear in the vertical views (Day, Week, and WorkWeek) of the Syncfusion® Blazor Scheduler component. All-day appointments are events that span an entire day or multiple days without specific start and end times within those days. @@ -913,7 +913,7 @@ This CSS selector targets the all-day appointments that appear in the vertical v {% previewsample "https://blazorplayground.syncfusion.com/embed/rjhINvDCqxEWFfUp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[All day appointments in vertical view](images/blazor-scheduler-allday-appointments-vertical-view.png)" %} -### Appointment in month view of scheduler +### Appointment in Month View of Scheduler This CSS selector targets appointment elements in the month view of the Syncfusion® Blazor Scheduler component. This selector is crucial for customizing how appointments appear in the calendar-style month view, which presents unique visualization challenges due to the compact nature of displaying an entire month at once. @@ -966,7 +966,7 @@ This CSS selector targets appointment elements in the month view of the Syncfusi {% previewsample "https://blazorplayground.syncfusion.com/embed/BNVyjbDigwxldZQH?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in month view](images/blazor-scheduler-appointments-month-view.png)" %} -### Appointment in timeline views of scheduler +### Appointment in Timeline Views of Scheduler This CSS selector targets appointment elements in the timeline views of the Syncfusion® Blazor Scheduler component. Timeline views (TimelineDay, TimelineWeek, TimelineWorkWeek) present a unique horizontal orientation of appointments that differs significantly from the traditional vertical or month views. @@ -1018,7 +1018,7 @@ This CSS selector targets appointment elements in the timeline views of the Sync {% previewsample "https://blazorplayground.syncfusion.com/embed/VDrSNbjiqlpgpavw?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in timeline view](images/blazor-scheduler-appointments-Timeline-view.png)" %} -### Appointment in timeline month view of scheduler +### Appointment in Timeline Month View of Scheduler This CSS selector targets appointment elements specifically in the timeline month view of the Syncfusion® Blazor Scheduler component. This specialized view combines the horizontal time-based layout of timeline views with the monthly calendar perspective, creating a unique visualization for planning and scheduling. @@ -1071,7 +1071,7 @@ This CSS selector targets appointment elements specifically in the timeline mont {% previewsample "https://blazorplayground.syncfusion.com/embed/VtrSDFZMJTeCySrl?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in timeline Month view](images/blazor-scheduler-appointments-TimelineMonth-view.png)" %} -### Appointment in timeline year view of scheduler +### Appointment in Timeline Year View of Scheduler This CSS selector targets appointment elements specifically in the timeline year view of the Syncfusion® Blazor Scheduler component. The Timeline Year view in Syncfusion® Scheduler is designed to display events across an entire year in a horizontal, scrollable layout. @@ -1123,7 +1123,7 @@ This CSS selector targets appointment elements specifically in the timeline year {% previewsample "https://blazorplayground.syncfusion.com/embed/hZBIDvNfqjpWspUW?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in timeline year view](images/blazor-scheduler-appointments-TimelineYear-view.png)" %} -### Appointment in year view of scheduler +### Appointment in Year View of Scheduler This CSS selector targets appointment elements specifically in the year view of the Syncfusion® Blazor Scheduler component. In a year view of a scheduler, appointments are displayed across all 12 months of the year, offering a high-level overview of scheduled events. @@ -1171,7 +1171,7 @@ This CSS selector targets appointment elements specifically in the year view of {% previewsample "https://blazorplayground.syncfusion.com/embed/LDrSjbXpKSaxvJSU?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments indicator in year view](images/blazor-scheduler-appointments-Year-view.png)" %} -### Appointment in agenda view of scheduler +### Appointment in Agenda View of Scheduler This CSS selector targets appointment elements specifically in the agenda view of the Syncfusion® Blazor Scheduler component. An appointment in the agenda view of a scheduler is shown as a simple list of events sorted by date and time. @@ -1222,7 +1222,7 @@ This CSS selector targets appointment elements specifically in the agenda view o {% previewsample "https://blazorplayground.syncfusion.com/embed/hZLyNlZJAnFDusMl?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in agenda view](images/blazor-scheduler-appointments-agenda-view.png)" %} -### Appointment in month agenda view of scheduler +### Appointment in Month Agenda View of Scheduler This CSS selector targets appointment elements specifically in the month agenda view of the Syncfusion® Blazor Scheduler component. An appointment in the month agenda view of a scheduler is shown as a list of events organized by day within a selected month. @@ -1276,7 +1276,7 @@ This CSS selector targets appointment elements specifically in the month agenda {% previewsample "https://blazorplayground.syncfusion.com/embed/LNBotPNTAGcpjRvV?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Appointments in month agenda view](images/blazor-scheduler-appointments-monthAgenda-view.png)" %} -### Block appointment in scheduler +### Block Appointment in Scheduler This CSS selector targets appointment elements specifically designated as blocked appointments in the Syncfusion® Blazor Scheduler component. A blocked appointment refers to a reserved time slot during which no other appointments or events can be scheduled. @@ -1332,7 +1332,7 @@ This CSS selector targets appointment elements specifically designated as blocke {% previewsample "https://blazorplayground.syncfusion.com/embed/LZVytvNTTzoPWdKC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blocked Appointment in schedule](images/blazor-scheduler-blocked-appointments.png)" %} -### Read only appointment in scheduler. +### Read Only Appointment in Scheduler. This CSS selector targets appointment elements that are specifically marked as read-only in the Syncfusion® Blazor Scheduler component. A read-only appointment in a scheduler refers to an event or time slot that is visible to users but cannot be modified, deleted, or rescheduled through the user interface. @@ -1386,7 +1386,7 @@ This CSS selector targets appointment elements that are specifically marked as r {% previewsample "https://blazorplayground.syncfusion.com/embed/VDBojvXpJoKirsVN?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[ReadOnly Appointment in schedule](images/blazor-scheduler-readonly-appointments.png)" %} -### Selected Appointments in scheduler. +### Selected Appointments in Scheduler This CSS selector targets appointment elements that are specifically marked as selected in the Syncfusion® Blazor Scheduler component. A selected appointment in a scheduler refers to an event that a user has actively clicked on or interacted with. @@ -1441,7 +1441,7 @@ This CSS selector targets appointment elements that are specifically marked as s {% previewsample "https://blazorplayground.syncfusion.com/embed/htLoDlZJfSbnzyVC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Selected Appointment in schedule](images/blazor-scheduler-selected-appointments.png)" %} -### Selected Cells in scheduler. +### Selected Cells in Scheduler This CSS selector targets the cells that are specifically marked as selected in the Syncfusion® Blazor Scheduler component. A selected cell in a scheduler refers to a time slot that a user has actively clicked on or interacted with. @@ -1495,7 +1495,7 @@ This CSS selector targets the cells that are specifically marked as selected in {% previewsample "https://blazorplayground.syncfusion.com/embed/rDrStPtfpRsutkic?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Selected cells in schedule](images/blazor-scheduler-selected-cells.png)" %} -### Header Cells in scheduler. +### Header Cells in Scheduler This CSS selector targets the cells that are specifically marked as header cells in the Syncfusion® Blazor Scheduler component. Header cells in a scheduler refer to the top row that display contextual information such as dates and day labels. @@ -1546,7 +1546,7 @@ This CSS selector targets the cells that are specifically marked as header cells {% previewsample "https://blazorplayground.syncfusion.com/embed/LZVSNPNpfmXnWpnA?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Header cells in schedule](images/blazor-scheduler-header-cells.png)" %} -### Resource cells in vertical views of scheduler. +### Resource Cells in Vertical Views of Scheduler This CSS selector targets the cells that are specifically marked as resource cells in the Syncfusion® Blazor Scheduler component. Resource cells in the vertical views of a scheduler are the sections that display the names or labels of resources such as people, rooms, equipment, or services. These cells are usually shown on the top of the scheduler and help organize appointments by resource. @@ -1618,7 +1618,7 @@ This CSS selector targets the cells that are specifically marked as resource cel {% previewsample "https://blazorplayground.syncfusion.com/embed/LtLeNvjJTccyxmoh?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Resource cells in schedule](images/blazor-scheduler-resource-cells.png)" %} -### Resource cells in month views of scheduler. +### Resource Cells in Month Views of Scheduler This CSS selector targets the resource cells in the Syncfusion® Blazor Scheduler Month view. These cells show names of resources in month view. @@ -1691,7 +1691,7 @@ This CSS selector targets the resource cells in the Syncfusion® Blazor Scheduler component. Resource cells in the timeline views of a scheduler are usually shown on the left side of the scheduler. @@ -1765,7 +1765,7 @@ This CSS selector targets the cells that are specifically marked as resource cel {% previewsample "https://blazorplayground.syncfusion.com/embed/BZBINbjTfvuqAUlm?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Resource cells in timeline view](images/blazor-scheduler-resource-cells-timeline-view.png)" %} -### Resource cells in timeline month views of scheduler. +### Resource Cells in Timeline Month Views of Scheduler This CSS selector targets the cells that are specifically marked as resource cells in timeline month views of the Syncfusion® Blazor Scheduler component. @@ -1837,79 +1837,7 @@ This CSS selector targets the cells that are specifically marked as resource cel {% previewsample "https://blazorplayground.syncfusion.com/embed/rDhoNbXzpaIzpSch?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Resource cells in timeline month view](images/blazor-scheduler-resource-cells-timeline-month-view.png)" %} -### Resource cells in timeline month views of scheduler. - -This CSS selector targets the cells that are specifically marked as resource cells in timeline month views of the Syncfusion® Blazor Scheduler component. - -```cshtml - -@using Syncfusion.Blazor.Schedule - - - - - - - - - - -@code{ - DateTime CurrentDate = new DateTime(2023, 6, 1); - public string[] Resources { get; set; } = { "Owners" }; - List DataSource = new List - { - new AppointmentData { Id = 1, Subject = "Meeting", StartTime = new DateTime(2023, 6, 1, 9, 30, 0) , EndTime = new DateTime(2023, 6, 1, 11, 0, 0), OwnerId = 1 }, - new AppointmentData { Id = 2, Subject = "Swimming", StartTime = new DateTime(2023, 6, 2, 10, 30, 0) , EndTime = new DateTime(2023, 6, 2, 12, 30, 0), OwnerId = 2 }, - new AppointmentData { Id = 3, Subject = "Movie", StartTime = new DateTime(2023, 6, 3, 10, 0, 0) , EndTime = new DateTime(2023,6 , 3, 12, 0, 0), OwnerId = 3 } - }; - public List OwnersData { get; set; } = new List - { - new ResourceData{ OwnerText = "Nancy", Id = 1, OwnerColor = "#ffaa00" }, - new ResourceData{ OwnerText = "Steven", Id = 2, OwnerColor = "#f8a398" }, - new ResourceData{ OwnerText = "Michael", Id = 3, OwnerColor = "#7499e1" } - }; - public class AppointmentData - { - public int Id { get; set; } - public string Subject { get; set; } - public string Location { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public string Description { get; set; } - public bool IsAllDay { get; set; } - public string RecurrenceRule { get; set; } - public string RecurrenceException { get; set; } - public Nullable RecurrenceID { get; set; } - public int OwnerId { get; set; } - } - public class ResourceData - { - public int Id { get; set; } - public string OwnerText { get; set; } - public string OwnerColor { get; set; } - } -} - - - -``` - -{% previewsample "https://blazorplayground.syncfusion.com/embed/rDhoNbXzpaIzpSch?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Resource cells in timeline month view](images/blazor-scheduler-resource-cells-timeline-month-view.png)" %} - -### Parent and child resource cells in timeline views of scheduler. +### Parent and Child Resource Cells in Timeline Views of Scheduler This CSS selector targets the parent and child resource cells in the timeline views of the Syncfusion® Blazor Scheduler component. These cells display both parent and child resources (like rooms and individuals) and help organize appointments based on resource hierarchy. diff --git a/blazor/smart-ai-solutions/ai/azure-openai.md b/blazor/smart-ai-solutions/ai/azure-openai.md index 81b886feb1..32ad8050f2 100644 --- a/blazor/smart-ai-solutions/ai/azure-openai.md +++ b/blazor/smart-ai-solutions/ai/azure-openai.md @@ -375,4 +375,4 @@ This example illustrates how the Syncfusion Blazor AI library integrates with Az ## See Also - [Syncfusion Blazor QueryBuilder Documentation](https://blazor.syncfusion.com/documentation/query-builder/getting-started-webapp) -- [Syncfusion Blazor Grid Documentation](https://blazor.syncfusion.com/documentation/datagrid/getting-started-with-web-app) \ No newline at end of file +- [Syncfusion Blazor Grid Documentation](https://blazor.syncfusion.com/documentation/datagrid/getting-started-with-web-app) diff --git a/blazor/smart-ai-solutions/ai/custom-ai-service.md b/blazor/smart-ai-solutions/ai/custom-ai-service.md index e99e36da3e..132d0a1189 100644 --- a/blazor/smart-ai-solutions/ai/custom-ai-service.md +++ b/blazor/smart-ai-solutions/ai/custom-ai-service.md @@ -1,7 +1,7 @@ --- layout: post -title: Using Custom AI Services with Syncfusion Blazor AI | Syncfusion -description: Learn how to set up and use Syncfusion.Blazor.AI with custom AI providers, including configuration, integration steps, and practical examples. +title: Custom AI Service Integration with Syncfusion Blazor AI | Syncfusion +description: Learn how to configure and use Syncfusion Blazor AI with custom AI providers, such as DeepSeek, to enable AI-driven features in Blazor applications. platform: Blazor control: AI Integration documentation: ug @@ -9,15 +9,13 @@ documentation: ug # Custom AI Service Integration with Syncfusion® Blazor AI -## Introduction - -This section demonstrates configuring and using the [Syncfusion.Blazor.AI](https://www.nuget.org/packages/Syncfusion.Blazor.AI) package with a **custom AI service** by implementing the `IChatInferenceService` interface, using DeepSeek as an example. This extensibility feature empowers developers to integrate any AI provider into Blazor applications, enabling Syncfusion® Blazor components to work with specialized or proprietary AI services beyond the standard providers. +The [Syncfusion Blazor AI](https://www.nuget.org/packages/Syncfusion.Blazor.AI) library enables integration with custom AI providers by implementing the `IChatInferenceService` interface, using DeepSeek as an example. This extensibility feature allows developers to connect Blazor applications to proprietary or specialized AI services, such as enterprise-specific models or local AI servers, enhancing Syncfusion Blazor components with tailored AI functionality like text generation or data processing. ## Prerequisites -Before you begin integrating a custom AI service with your Blazor application, ensure you have: +To integrate a custom AI service with a Blazor application, ensure the following: +- The following NuGet package is installed: -* Installed the [Syncfusion.Blazor.AI](https://www.nuget.org/packages/Syncfusion.Blazor.AI) package via NuGet {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -26,16 +24,15 @@ Install-Package Syncfusion.Blazor.AI -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -* Obtained an API key from your chosen AI provider (DeepSeek in this example) from the [DeepSeek platform](https://platform.deepseek.com) -* Met the [System Requirements](https://blazor.syncfusion.com/documentation/system-requirements) for Syncfusion® Blazor components -* Understanding of HTTP client usage and JSON serialization in .NET applications +- An API key is obtained from the chosen AI provider (e.g., DeepSeek via the [DeepSeek API documentation](https://platform.deepseek.com)). +- The [Syncfusion Blazor system requirements](https://blazor.syncfusion.com/documentation/system-requirements) are met. +- Familiarity with HTTP client usage and JSON serialization in .NET applications. ## Configuration Steps -Follow these steps to integrate a custom AI service with Syncfusion® Blazor AI: - ### Implement the Custom AI Service - Create a class that implements the `IChatInferenceService` interface for DeepSeek. The implementation below uses the provided DeepSeek code, modified to utilize `AIServiceCredentials` from `Program.cs`. + +Create a class that implements the `IChatInferenceService` interface for the custom AI provider. The example below demonstrates DeepSeek integration using `AIServiceCredentials` for secure configuration management. ```csharp using Microsoft.Extensions.AI; @@ -48,31 +45,31 @@ using System.Threading.Tasks; public class DeepSeekAIService : IChatInferenceService { private readonly HttpClient _httpClient; - private readonly AIServiceCredentials _credentials; + private readonly string _apiKey = "Your API Key"; + private readonly string _modelName = "deepseek-chat"; // Example model - public DeepSeekAIService(HttpClient httpClient, AIServiceCredentials credentials) + public DeepSeekAIService(HttpClient httpClient) { _httpClient = httpClient; - _credentials = credentials; } public async Task GenerateResponseAsync(ChatParameters options) { var requestBody = new { - model = _credentials.DeploymentName ?? "deepseek-chat", // Use deployment name from credentials + model = _modelName, // Use deployment name from credentials messages = options.Messages.Select(m => new { role = m.Role.ToString().ToLower(), content = m.Content }).ToArray(), temperature = options.Temperature, max_tokens = options.MaxTokens }; var requestContent = new StringContent(JsonSerializer.Serialize(requestBody), Encoding.UTF8, "application/json"); - if (!string.IsNullOrEmpty(_credentials.ApiKey)) + if (!string.IsNullOrEmpty(_apiKey)) { - _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _credentials.ApiKey); + _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _apiKey); } - var response = await _httpClient.PostAsync(_credentials.Endpoint?.ToString() ?? "https://api.deepseek.com/v1/chat/completions", requestContent); + var response = await _httpClient.PostAsync("https://api.deepseek.com/v1/chat/completions", requestContent); response.EnsureSuccessStatusCode(); var responseJson = await response.Content.ReadAsStringAsync(); @@ -84,33 +81,30 @@ public class DeepSeekAIService : IChatInferenceService ### Register the Custom AI Service - Open your Blazor application's `Program.cs` and configure the DeepSeek AI service with `AIServiceCredentials`. +Update the Blazor application's `Program.cs` to configure the DeepSeek AI service with `AIServiceCredentials`. ```csharp using Syncfusion.Blazor.AI; -builder.Services.AddSingleton(new AIServiceCredentials -{ - ApiKey = "your-deepseek-api-key", // Replace with your DeepSeek API key - DeploymentName = "deepseek-chat", // Specify the model (e.g., "deepseek-chat", "deepseek-coder") -}); - -// Register the custom inference backend +// Register the custom inference service builder.Services.AddSingleton(); ``` -## Custom AI Integration with Syncfusion® Components -The `GenerateResponseAsync` method in the DeepSeekAIService class serves as the core interface for AI communication. This method: +## How It Works + +This example illustrates how the Syncfusion Blazor AI library integrates with a custom AI service (DeepSeek): -1. **Formats Requests:** Converts Syncfusion® AI parameters into the custom provider's expected format -2. **Handles Authentication:** Manages API key authentication securely -3. **Processes Responses:** Parses the provider's response format into standard AI responses +1. **Setup**: Implement and register the custom AI service in `Program.cs` using secure credentials. +2. **Component Integration**: Inject `IChatInferenceService` to process AI requests within Syncfusion components like Smart TextArea. +3. **Request Formatting**: Convert Syncfusion AI parameters into the custom provider’s API format (e.g., DeepSeek’s JSON structure). +4. **Response Processing**: Parse the provider’s response and update the component (e.g., displaying text suggestions). -## See Also +### Key Components +- **IChatInferenceService**: Interface for interacting with custom AI providers. +- **AIServiceCredentials**: Syncfusion class for managing API keys, endpoints, and model names. +- **GenerateResponseAsync**: Sends asynchronous requests to the custom AI provider and retrieves responses. -- [Overview](https://blazor.syncfusion.com/documentation/smart-ai-solutions/ai/overview) -- [OpenAI Integration](https://blazor.syncfusion.com/documentation/smart-ai-solutions/ai/openai) -- [Azure OpenAI Integration](https://blazor.syncfusion.com/documentation/smart-ai-solutions/ai/azure-openai) -- [Ollama Integration](https://blazor.syncfusion.com/documentation/smart-ai-solutions/ai/ollama) -- [Smart TextArea](https://blazor.syncfusion.com/documentation/smart-textarea/getting-started) -- [Smart Paste Button](https://blazor.syncfusion.com/documentation/smart-paste/getting-started) +## Error Handling +- **Invalid API Key**: Ensure the API key is valid and stored securely in environment variables or a configuration service. +- **Rate Limits**: Check the custom AI provider’s documentation (e.g., [DeepSeek API docs](https://platform.deepseek.com)) for rate limit details. +- **Network or Parsing Errors**: Handle HTTP or JSON errors gracefully, as shown in the `DeepSeekAIService` implementation. diff --git a/blazor/smart-ai-solutions/ai/overview.md b/blazor/smart-ai-solutions/ai/overview.md index fd184976d4..f6618cef88 100644 --- a/blazor/smart-ai-solutions/ai/overview.md +++ b/blazor/smart-ai-solutions/ai/overview.md @@ -38,4 +38,5 @@ To use the Syncfusion Blazor AI library, ensure the following: ## See Also - [Smart TextArea Documentation](https://blazor.syncfusion.com/documentation/smart-paste/getting-started-webapp) -- [Smart Paste Button Documentation](https://blazor.syncfusion.com/documentation/smart-textarea/getting-started-webapp) \ No newline at end of file + +- [Smart Paste Button Documentation](https://blazor.syncfusion.com/documentation/smart-textarea/getting-started-webapp) diff --git a/blazor/smart-paste/claude-service.md b/blazor/smart-paste/claude-service.md index 5282ec7f04..4c8a601f01 100644 --- a/blazor/smart-paste/claude-service.md +++ b/blazor/smart-paste/claude-service.md @@ -186,7 +186,7 @@ var app = builder.Build(); Add the Smart Paste Button to a form in the **~/Pages/Home.razor** file to test the Groq AI integration. -```razor +```cshtml @using Syncfusion.Blazor.DataForm @using Syncfusion.Blazor.SmartComponents @using System.ComponentModel.DataAnnotations diff --git a/blazor/smart-paste/deepseek-service.md b/blazor/smart-paste/deepseek-service.md index af785a46bd..eac41e6d2d 100644 --- a/blazor/smart-paste/deepseek-service.md +++ b/blazor/smart-paste/deepseek-service.md @@ -181,7 +181,7 @@ var app = builder.Build(); Add the Smart Paste Button to a form in the **~/Pages/Home.razor** file to test the Groq AI integration. -```razor +```cshtml @using Syncfusion.Blazor.DataForm @using Syncfusion.Blazor.SmartComponents @using System.ComponentModel.DataAnnotations diff --git a/blazor/smart-paste/gemini-service.md b/blazor/smart-paste/gemini-service.md index f3e34e2820..7746c8168f 100644 --- a/blazor/smart-paste/gemini-service.md +++ b/blazor/smart-paste/gemini-service.md @@ -230,7 +230,7 @@ var app = builder.Build(); Add the Smart Paste Button to a form in the **~/Pages/Home.razor** file to test the Groq AI integration. -```razor +```cshtml @using Syncfusion.Blazor.DataForm @using Syncfusion.Blazor.SmartComponents @using System.ComponentModel.DataAnnotations diff --git a/blazor/smart-paste/groq-service.md b/blazor/smart-paste/groq-service.md index 86f0c919e3..c95c716f34 100644 --- a/blazor/smart-paste/groq-service.md +++ b/blazor/smart-paste/groq-service.md @@ -184,7 +184,7 @@ var app = builder.Build(); Add the Smart Paste Button to a form in the **~/Pages/Home.razor** file to test the Groq AI integration. -```razor +```cshtml @using Syncfusion.Blazor.DataForm @using Syncfusion.Blazor.SmartComponents @using System.ComponentModel.DataAnnotations diff --git a/blazor/smart-textarea/claude-service.md b/blazor/smart-textarea/claude-service.md index 7a191a1069..6886636fc9 100644 --- a/blazor/smart-textarea/claude-service.md +++ b/blazor/smart-textarea/claude-service.md @@ -186,7 +186,7 @@ var app = builder.Build(); Add the Smart TextArea component to a Razor file (e.g., `~/Pages/Home.razor`) to use Claude AI for autocompletion: -```razor +```cshtml @using Syncfusion.Blazor.SmartComponents diff --git a/blazor/smart-textarea/deepseek-service.md b/blazor/smart-textarea/deepseek-service.md index 4d2391fa18..f06f709201 100644 --- a/blazor/smart-textarea/deepseek-service.md +++ b/blazor/smart-textarea/deepseek-service.md @@ -181,7 +181,7 @@ var app = builder.Build(); Add the Smart TextArea component to a Razor file (e.g., `~/Pages/Home.razor`) to use DeepSeek AI for autocompletion: -```razor +```cshtml @using Syncfusion.Blazor.SmartComponents diff --git a/blazor/smart-textarea/gemini-service.md b/blazor/smart-textarea/gemini-service.md index 76eb8d7263..29394c90a3 100644 --- a/blazor/smart-textarea/gemini-service.md +++ b/blazor/smart-textarea/gemini-service.md @@ -230,7 +230,7 @@ var app = builder.Build(); Add the Smart TextArea component to a Razor file (e.g., `~/Pages/Home.razor`) to use Gemini AI for autocompletion: -```razor +```cshtml @using Syncfusion.Blazor.SmartComponents diff --git a/blazor/smart-textarea/groq-service.md b/blazor/smart-textarea/groq-service.md index fdd6b3dd97..d25a7995f9 100644 --- a/blazor/smart-textarea/groq-service.md +++ b/blazor/smart-textarea/groq-service.md @@ -184,7 +184,7 @@ var app = builder.Build(); Add the Smart TextArea component to a Razor file (e.g., `~/Pages/Home.razor`) to use Groq AI for autocompletion: -```razor +```cshtml @using Syncfusion.Blazor.SmartComponents diff --git a/blazor/timepicker/getting-started-webapp.md b/blazor/timepicker/getting-started-webapp.md index e46b6eb109..beaa617e36 100644 --- a/blazor/timepicker/getting-started-webapp.md +++ b/blazor/timepicker/getting-started-webapp.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Blazor TimePicker in Blazor Web App -This section briefly explains about how to include [Blazor TimePicker](https://www.syncfusion.com/blazor-components/blazor-timepicker) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section explains how to add the [Blazor TimePicker](https://www.syncfusion.com/blazor-components/blazor-timepicker) component in Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. {% tabcontents %} @@ -21,17 +21,17 @@ This section briefly explains about how to include [Blazor TimePicker](https://w ## Create a new Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a Blazor Web App using Visual Studio 2022 via [Microsoft templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the appropriate [interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) when creating the Blazor Web App. ## Install Syncfusion® Blazor Calendars and Themes NuGet in the App -To add **Blazor TimePicker** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the Blazor TimePicker component to the app, open the NuGet Package Manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search for and install [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If you use the WebAssembly or Auto render modes in a Blazor Web App, install the Syncfusion® Blazor NuGet packages in the client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, use the following Package Manager commands: {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -54,11 +54,11 @@ N> Syncfusion® Blazor components are availa ## Create a new Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). +Create a Blazor Web App using Visual Studio Code via [Microsoft templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. +Configure the appropriate [interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) when creating the Blazor Web App. -For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. +For example, in a Blazor Web App with the Auto interactive render mode, use the following commands. {% tabs %} {% highlight c# tabtitle="Blazor Web App" %} @@ -70,15 +70,15 @@ cd BlazorWebApp.Client {% endhighlight %} {% endtabs %} -N> For more information on creating a **Blazor Web App** with various interactive modes and locations, refer to this [link](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). +N> For guidance on creating a Blazor Web App with different interactive modes and locations, see [Render interactive modes](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). ## Install Syncfusion® Blazor Calendars and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If you use WebAssembly or Auto render modes in a Blazor Web App, install the Syncfusion® Blazor NuGet packages in the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure you are in the project directory that contains the `.csproj` file. +* Run the following commands to install the [Syncfusion.Blazor.Calendars](https://www.nuget.org/packages/Syncfusion.Blazor.Calendars) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) packages and restore dependencies. {% tabs %} @@ -92,7 +92,7 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on nuget.org. For details, see the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for a list of available packages and components. {% endtabcontent %} @@ -102,10 +102,10 @@ N> Syncfusion® Blazor components are availa | Interactive Render Mode | Description | | -- | -- | -| WebAssembly or Auto | Open **~/_Imports.razor** file from the client project.| -| Server | Open **~/_import.razor** file, which is located in the `Components` folder.| +| WebAssembly or Auto | Open **~/_Imports.razor** from the client project.| +| Server | Open **~/_Imports.razor** located in the `Components` folder.| -Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Calendars` namespace . +Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Calendars` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -116,9 +116,9 @@ Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Calendars` namespace . {% endhighlight %} {% endtabs %} -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Now register the Syncfusion® Blazor service in the **~/Program.cs** file(s) of the Blazor Web App. -If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, you need to register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. +If the interactive render mode is set to WebAssembly or Auto, register the service in both **~/Program.cs** files of the Blazor Web App. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -152,7 +152,7 @@ await builder.Build().RunAsync(); {% endhighlight %} {% endtabs %} -If the **Interactive Render Mode** is set to `Server`, your project will contain a single **~/Program.cs** file. So, you should register the Syncfusion® Blazor Service only in that **~/Program.cs** file. +If the interactive render mode is set to Server, the project contains a single **~/Program.cs** file. Register the Syncfusion® Blazor service only in that file. {% tabs %} {% highlight c# tabtitle="~/_Program.cs" hl_lines="2 9" %} @@ -175,7 +175,7 @@ var app = builder.Build(); ## Add stylesheet and script resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: +The theme stylesheet and script are available via NuGet as [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet in the `` and the script at the end of the `` within **~/Components/App.razor** as shown below: ```html @@ -202,7 +202,7 @@ Add the Syncfusion® Blazor TimePicker compo | | Server | @rendermode InteractiveServer | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly` or `Server`, the render mode is configured in the `App.razor` file by default. +N> If the interactivity location is set to Global and the render mode is set to Auto, WebAssembly, or Server, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -221,18 +221,17 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor TimePicker component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This renders the Syncfusion® Blazor TimePicker component in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/BtBJjCKtzSOIsHLx?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor TimePicker Component](./images/blazor-timepicker.png)" %} -N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/TimePicker/BlazorWebApp). +N> [View the sample on GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/TimePicker/BlazorWebApp). ## Setting the time format -Time format is a way of representing the time value in different string format in textbox and popup list. By default, the TimePicker’s Format is based on the culture. -But the Format of the TimePicker can be customized using the [Format](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.SfTimePicker-1.html#Syncfusion_Blazor_Calendars_SfTimePicker_1_Format) property. +The time format defines how the time value is displayed in the text box and the popup list. By default, the TimePicker uses the current culture’s format. The format can be customized using the [Format](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.SfTimePicker-1.html#Syncfusion_Blazor_Calendars_SfTimePicker_1_Format) property. -The below code demonstrates how to render TimePicker component in 24 hours Format with 60 minutes interval. The time interval is set to 60 minutes by using the [Step](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.SfTimePicker-1.html#Syncfusion_Blazor_Calendars_SfTimePicker_1_Step) property. +The following code demonstrates rendering the TimePicker in a 24-hour format with a 60‑minute interval. The interval is set using the [Step](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Calendars.SfTimePicker-1.html#Syncfusion_Blazor_Calendars_SfTimePicker_1_Step) property. {% tabs %} {% highlight razor %} @@ -250,7 +249,7 @@ The below code demonstrates how to render TimePicker component in 24 hours Forma ## See Also -* [Getting Started with Syncfusion® Blazor Web Assembly App in Visual Studio or .NET CLI](../getting-started/blazor-webassembly-app) -* [Getting Started with Syncfusion® Blazor Web App in Visual Studio or .NET CLI](../getting-started/blazor-web-app) +* [Getting started with Syncfusion® Blazor WebAssembly App in Visual Studio or .NET CLI](../getting-started/blazor-webassembly-app) +* [Getting started with Syncfusion® Blazor Web App in Visual Studio or .NET CLI](../getting-started/blazor-web-app) -N> You can also explore our [Blazor TimePicker Example](https://blazor.syncfusion.com/demos/timepicker/default-functionalities?theme=fluent) that shows you how to render and configure the TimePicker. \ No newline at end of file +N> Explore the [Blazor TimePicker example](https://blazor.syncfusion.com/demos/timepicker/default-functionalities?theme=fluent) to learn how to render and configure the TimePicker. \ No newline at end of file diff --git a/blazor/toast/getting-started-webapp.md b/blazor/toast/getting-started-webapp.md index a0529f6d8f..e5f2df9a7a 100644 --- a/blazor/toast/getting-started-webapp.md +++ b/blazor/toast/getting-started-webapp.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Blazor Toast in Blazor Web App -This section briefly explains about how to include [Blazor Toast](https://www.syncfusion.com/blazor-components/blazor-toast) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) and Visual Studio Code. +This section explains how to add the [Blazor Toast](https://www.syncfusion.com/blazor-components/blazor-toast) component to a Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/) or Visual Studio Code. {% tabcontents %} @@ -17,32 +17,28 @@ This section briefly explains about how to include [Blazor Toast](https://www.sy ## Prerequisites -* [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) +- [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) ## Create a new Blazor Web App in Visual Studio -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a **Blazor Web App** using Visual Studio 2022 via [Microsoft templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the appropriate [interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) when creating the Blazor Web App. ## Install Syncfusion® Blazor Notifications and Themes NuGet in the App -To add **Blazor Toast** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor Toast** component, open the NuGet Package Manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then install [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +For `WebAssembly` or `Auto` render modes in a Blazor Web App, install the Syncfusion® Blazor NuGet packages in the Client project. For `Server` render mode, install them in the Server project. -Alternatively, you can utilize the following package manager command to achieve the same. - -{% tabs %} -{% highlight C# tabtitle="Package Manager" %} +Alternatively, execute the following Package Manager commands: +```powershell Install-Package Syncfusion.Blazor.Notifications -Version {{ site.releaseversion }} Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} +``` -{% endhighlight %} -{% endtabs %} - -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the full list of packages and components. {% endtabcontent %} @@ -50,49 +46,39 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -* [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) +- [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) ## Create a new Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). - -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) while creating a Blazor Web Application. +Create a **Blazor Web App** using Visual Studio Code via [Microsoft templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. +Configure the appropriate [interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) when creating the Blazor Web App. -{% tabs %} -{% highlight c# tabtitle="Blazor Web App" %} +For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands: +```bash dotnet new blazor -o BlazorWebApp -int Auto cd BlazorWebApp cd BlazorWebApp.Client - -{% endhighlight %} -{% endtabs %} +``` N> For more information on creating a **Blazor Web App** with various interactive modes and locations, refer to this [link](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code#render-interactive-modes). ## Install Syncfusion® Blazor Notifications and Themes NuGet in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. - -* Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. - -{% tabs %} +For `WebAssembly` or `Auto` render modes in a Blazor Web App, install the Syncfusion® Blazor NuGet packages in the Client project. -{% highlight c# tabtitle="Package Manager" %} +- Open the integrated terminal in Visual Studio Code. +- Navigate to the project directory that contains the `.csproj` file. +- Run the following commands to install [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) and restore dependencies. +```bash dotnet add package Syncfusion.Blazor.Notifications -v {{ site.releaseversion }} dotnet add package Syncfusion.Blazor.Themes -v {{ site.releaseversion }} dotnet restore +``` -{% endhighlight %} - -{% endtabs %} - -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the full list of packages and components. {% endtabcontent %} @@ -102,29 +88,23 @@ N> Syncfusion® Blazor components are availa | Interactive Render Mode | Description | | -- | -- | -| WebAssembly or Auto | Open **~/_Imports.razor** file from the client project.| -| Server | Open **~/_import.razor** file, which is located in the `Components` folder.| - -Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Notifications` namespace. +| WebAssembly or Auto | Open **~/_Imports.razor** file from the Client project. | +| Server | Open **~/_Imports.razor** file located in the `Components` folder. | -{% tabs %} -{% highlight C# tabtitle="~/_Imports.razor" %} +Import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Notifications` namespaces: +```razor @using Syncfusion.Blazor @using Syncfusion.Blazor.Notifications +``` -{% endhighlight %} -{% endtabs %} - -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Register the Syncfusion® Blazor service in the **~/Program.cs** file of the Blazor Web App. -If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, you need to register the Syncfusion® Blazor service in both **~/Program.cs** files of your Blazor Web App. +If the **Interactive Render Mode** is set to `WebAssembly` or `Auto`, register the Syncfusion® Blazor service in both Program.cs files (Server and Client). -{% tabs %} -{% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} +Server: -... -... +```csharp using Syncfusion.Blazor; var builder = WebApplication.CreateBuilder(args); @@ -133,31 +113,26 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents(); + builder.Services.AddSyncfusionBlazor(); var app = builder.Build(); -.... +``` -{% endhighlight %} -{% highlight c# tabtitle="Client(~/_Program.cs)" hl_lines="2 5" %} +Client: -... +```csharp using Syncfusion.Blazor; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.Services.AddSyncfusionBlazor(); await builder.Build().RunAsync(); +``` -{% endhighlight %} -{% endtabs %} - -If the **Interactive Render Mode** is set to `Server`, your project will contain a single **~/Program.cs** file. So, you should register the Syncfusion® Blazor Service only in that **~/Program.cs** file. - -{% tabs %} -{% highlight c# tabtitle="~/_Program.cs" hl_lines="2 9" %} +If the **Interactive Render Mode** is set to `Server`, the project contains a single **~/Program.cs** file. In this case, register the Syncfusion® Blazor service only in that file. -... +```csharp using Syncfusion.Blazor; var builder = WebApplication.CreateBuilder(args); @@ -165,35 +140,33 @@ var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); + builder.Services.AddSyncfusionBlazor(); var app = builder.Build(); -.... - -{% endhighlight %} -{% endtabs %} +``` ## Add stylesheet and script resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: +The theme stylesheet and script are provided via NuGet as [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file: ```html - .... + - .... + ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> See the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic for additional options to reference themes ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)). Also, refer to [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) for approaches to add script references in a Blazor application. ## Add Syncfusion® Blazor Toast component -Add the Syncfusion® Blazor Toast component in the **~Pages/.razor** file. If an interactivity location as `Per page/component` in the web app, define a render mode at the top of the `~Pages/.razor` component, as follows: +Add the Syncfusion® Blazor Toast component to a page in the **~/Pages** folder. If the interactivity location is set to `Per page/component`, define a render mode at the top of the `~/Pages/*.razor` component as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -202,31 +175,30 @@ Add the Syncfusion® Blazor Toast component | | Server | @rendermode InteractiveServer | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly` or `Server`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto`, `WebAssembly`, or `Server`, the render mode is configured in the `App.razor` file by default. -{% tabs %} -{% highlight razor %} +Render mode directive: -@* desired render mode define here *@ +```razor +@* Desired render mode defined here *@ @rendermode InteractiveAuto +``` -{% endhighlight %} -{% endtabs %} - -{% tabs %} -{% highlight cshtml %} +Toast component example: +```razor
    -
    +
    + + @code { - SfToast ToastObj; + private SfToast ToastObj; private string ToastPosition = "Right"; private string ToastContent = "Conference Room 01 / Building 135 10:00 AM-10:30 AM"; + private async Task ShowOnClick() { - await this.ToastObj.ShowAsync(); + await ToastObj.ShowAsync(); } + private async Task HideOnClick() { - await this.ToastObj.HideAsync("All"); + await ToastObj.HideAsync("All"); } } +``` -{% endhighlight %} -{% endtabs %} - -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Toast component in your default web browser. +Use Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. The Syncfusion® Blazor Toast component renders in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/VDrzNiKXJRibajXZ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Toast Component](./images/blazor-toast.png)" %} @@ -263,9 +236,9 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- ## See Also -* [Show or hide toast from any page using service in Blazor](https://support.syncfusion.com/kb/article/11734/show-or-hide-toast-from-any-page-using-service-in-blazor) -* [Getting Started with Syncfusion® Blazor for client-side in .NET Core CLI](../getting-started/blazor-webassembly-app) -* [Getting Started with Syncfusion® Blazor for server-side in Visual Studio](../getting-started/blazor-server-side-visual-studio) -* [Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI](../getting-started/blazor-web-app) +- [Show or hide toast from any page using service in Blazor](https://support.syncfusion.com/kb/article/11734/show-or-hide-toast-from-any-page-using-service-in-blazor) +- [Getting Started with Syncfusion® Blazor for client-side in .NET Core CLI](../getting-started/blazor-webassembly-dotnet-cli) +- [Getting Started with Syncfusion® Blazor for server-side in Visual Studio](../getting-started/blazor-server-side-visual-studio) +- [Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI](../getting-started/blazor-server-side-dotnet-cli) -N> You can also explore our [Blazor Toast example](https://blazor.syncfusion.com/demos/toast/default-functionalities?theme=bootstrap5) that shows you how to render and configure the toast. \ No newline at end of file +N> An interactive [Blazor Toast example](https://blazor.syncfusion.com/demos/toast/default-functionalities?theme=bootstrap5) demonstrates how to render and configure the Toast component. \ No newline at end of file diff --git a/blazor/toast/getting-started.md b/blazor/toast/getting-started.md index 75a2f04c0b..ec81010f6c 100644 --- a/blazor/toast/getting-started.md +++ b/blazor/toast/getting-started.md @@ -9,12 +9,13 @@ documentation: ug # Getting Started with Blazor Toast Component -This section briefly explains about how to include [Blazor Toast](https://www.syncfusion.com/blazor-components/blazor-toast) component in your Blazor WebAssembly App using Visual Studio and Visual Studio Code. - -To get start quickly with Blazor Toast component, check on this video or [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Toast) sample. +This section explains how to add the [Blazor Toast](https://www.syncfusion.com/blazor-components/blazor-toast) component to a Blazor WebAssembly app using Visual Studio or Visual Studio Code. +A quick-start video and a sample repository are available: +- Video: {% youtube "youtube:https://www.youtube.com/watch?v=tMa7JvcfNcY"%} +- Sample on [GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/Toast) {% tabcontents %} @@ -22,26 +23,22 @@ To get start quickly with Blazor Toast component, check on this video or [GitHub ## Prerequisites -* [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) +- [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) ## Create a new Blazor App in Visual Studio -You can create a **Blazor WebAssembly App** using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). +Create a Blazor WebAssembly app using Visual Studio via [Microsoft templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). ## Install Syncfusion® Blazor Notifications and Themes NuGet in the App -To add **Blazor Toast** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, you can utilize the following package manager command to achieve the same. - -{% tabs %} -{% highlight C# tabtitle="Package Manager" %} +Install [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) using the NuGet Package Manager (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), or run the following commands: +```powershell Install-Package Syncfusion.Blazor.Notifications -Version {{ site.releaseversion }} Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} +``` -{% endhighlight %} -{% endtabs %} - -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the list of available packages and component details. {% endtabcontent %} @@ -49,44 +46,30 @@ N> Syncfusion® Blazor components are availa ## Prerequisites -* [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) +- [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements) ## Create a new Blazor App in Visual Studio Code -You can create a **Blazor WebAssembly App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). +Create a Blazor WebAssembly app using Visual Studio Code via [Microsoft templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). -Alternatively, you can create a WebAssembly application using the following command in the terminal(Ctrl+`). - -{% tabs %} - -{% highlight c# tabtitle="Blazor WASM App" %} +Alternatively, create a WebAssembly application using the following commands in the integrated terminal: +```bash dotnet new blazorwasm -o BlazorApp cd BlazorApp - -{% endhighlight %} - -{% endtabs %} +``` ## Install Syncfusion® Blazor Notifications and Themes NuGet in the App -* Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Notifications](https://www.nuget.org/packages/Syncfusion.Blazor.Notifications) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. - -{% tabs %} - -{% highlight c# tabtitle="Package Manager" %} +Use the integrated terminal in Visual Studio Code from the project root (where the `.csproj` file is located), then run: +```bash dotnet add package Syncfusion.Blazor.Notifications -v {{ site.releaseversion }} dotnet add package Syncfusion.Blazor.Themes -v {{ site.releaseversion }} dotnet restore +``` -{% endhighlight %} - -{% endtabs %} - -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for the list of available packages and component details. {% endtabcontent %} @@ -94,22 +77,16 @@ N> Syncfusion® Blazor components are availa ## Register Syncfusion® Blazor Service -Open **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Notifications` namespace. - -{% tabs %} -{% highlight razor tabtitle="~/_Imports.razor" %} +Open `~/_Imports.razor` and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Notifications` namespaces: +```razor @using Syncfusion.Blazor @using Syncfusion.Blazor.Notifications +``` -{% endhighlight %} -{% endtabs %} - -Now, register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor WebAssembly App. - -{% tabs %} -{% highlight C# tabtitle="~/Program.cs" hl_lines="3 11" %} +Register the Syncfusion® Blazor service in `~/Program.cs` of the Blazor WebAssembly app: +```csharp using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Syncfusion.Blazor; @@ -122,42 +99,39 @@ builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder. builder.Services.AddSyncfusionBlazor(); await builder.Build().RunAsync(); -.... - -{% endhighlight %} -{% endtabs %} +``` ## Add stylesheet and script resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script references in the `` section of the **~/index.html** file. +The theme stylesheet and script are provided via NuGet as [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script references in the `` section of `~/wwwroot/index.html`: ```html - .... + ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) for referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. -## Add Blazor Toast component +N> See the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover options for referencing themes ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)). Also, see [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) for different approaches to add script references in a Blazor application. -Add the Syncfusion® Blazor Toast component in the **~/Pages/Index.razor** file. +## Add Blazor Toast component -{% tabs %} -{% highlight cshtml %} +Add the Syncfusion® Blazor Toast component to `~/Pages/Index.razor`: +```razor
    -
    +
    + + @code { - SfToast ToastObj; + private SfToast ToastObj; private string ToastPosition = "Right"; private string ToastContent = "Conference Room 01 / Building 135 10:00 AM-10:30 AM"; + private async Task ShowOnClick() { - await this.ToastObj.ShowAsync(); + await ToastObj.ShowAsync(); } + private async Task HideOnClick() { - await this.ToastObj.HideAsync("All"); + await ToastObj.HideAsync("All"); } } +``` -{% endhighlight %} -{% endtabs %} - -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Toast component in your default web browser. +Launch the application with Ctrl+F5 (Windows) or +F5 (macOS). The Syncfusion® Blazor Toast component renders in the default web browser. {% previewsample "https://blazorplayground.syncfusion.com/embed/VDrzNiKXJRibajXZ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Toast Component](./images/blazor-toast.png)" %} ## See Also -* [Show or hide toast from any page using service in Blazor](https://support.syncfusion.com/kb/article/11734/show-or-hide-toast-from-any-page-using-service-in-blazor) -* [Getting Started with Syncfusion® Blazor Web Assembly App in Visual Studio or .NET CLI](https://sfblazor.azurewebsites.net/staging/documentation/getting-started/blazor-webassembly-app) -* [Getting Started with Syncfusion® Blazor Web App in Visual Studio or .NET CLI](../getting-started/blazor-server-side-visual-studio) +- [Show or hide toast from any page using service in Blazor](https://support.syncfusion.com/kb/article/11734/show-or-hide-toast-from-any-page-using-service-in-blazor) +- [Getting Started with Syncfusion® Blazor WebAssembly App in Visual Studio or .NET CLI](../getting-started/blazor-webassembly-dotnet-cli) +- [Getting Started with Syncfusion® Blazor Web App in Visual Studio or .NET CLI](../getting-started/blazor-server-side-visual-studio) -N> You can also explore our [Blazor Toast example](https://blazor.syncfusion.com/demos/toast/default-functionalities?theme=bootstrap5) that shows you how to render and configure the toast. +N> An interactive [Blazor Toast example](https://blazor.syncfusion.com/demos/toast/default-functionalities?theme=bootstrap5) demonstrates how to render and configure the Toast component. \ No newline at end of file diff --git a/blazor/treegrid/editing/batch-editing.md b/blazor/treegrid/editing/batch-editing.md index d58c6a0c10..0e441f6dcd 100644 --- a/blazor/treegrid/editing/batch-editing.md +++ b/blazor/treegrid/editing/batch-editing.md @@ -153,4 +153,5 @@ The following GIF shows the confirmation dialog displayed during batch operation N> - Batch mode stages edits on the client. Click Update on the toolbar or save programmatically to commit changes; Cancel discards staged edits. - A primary key column (IsPrimaryKey=true) is required for editing. -- Confirmation dialogs are available only when the TreeGridEditSettings Mode is set to **Batch**. If ShowConfirmDialog is false, no confirmation dialog is shown for save; use ShowDeleteConfirmDialog to control delete confirmations separately. \ No newline at end of file +- Confirmation dialogs are available only when the TreeGridEditSettings Mode is set to **Batch**. If ShowConfirmDialog is false, no confirmation dialog is shown for save; use ShowDeleteConfirmDialog to control delete confirmations separately. + diff --git a/blazor/treegrid/print.md b/blazor/treegrid/print.md index 1c3c8564de..87d5e2aa2b 100644 --- a/blazor/treegrid/print.md +++ b/blazor/treegrid/print.md @@ -256,6 +256,4 @@ In the below example, we have **Duration** as a hidden column in the TreeGrid. W ## Limitations of printing large data -When tree grid contains large number of data, printing all the data at once is not a best option for the browser performance. Because to render all the DOM elements in one page will produce performance issues in the browser. It leads to browser slow down or browser hang. - Printing large datasets directly from the browser may lead to performance issues such as slow rendering or browser hang. For better performance, consider exporting the TreeGrid to **Excel**, **CSV**, or **PDF**, and print using a desktop application. diff --git a/blazor/treegrid/rows/row-drag-and-drop.md b/blazor/treegrid/rows/row-drag-and-drop.md index 209f0d68a1..7e88a69f75 100644 --- a/blazor/treegrid/rows/row-drag-and-drop.md +++ b/blazor/treegrid/rows/row-drag-and-drop.md @@ -1077,5 +1077,3 @@ The following events are triggered while dragging and dropping TreeGrid rows. [RowDragStarting](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.TreeGrid.TreeGridEvents-1.html#Syncfusion_Blazor_TreeGrid_TreeGridEvents_1_RowDragStarting) - Triggers when a row drag operation starts. [RowDropped](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.TreeGrid.TreeGridEvents-1.html#Syncfusion_Blazor_TreeGrid_TreeGridEvents_1_RowDropped) - Triggers when the dragged row is dropped on the target element. - - From 26c96163edddb1c92c07b4873ef80dca3447918a Mon Sep 17 00:00:00 2001 From: Backiaraj Date: Tue, 14 Oct 2025 15:11:15 +0530 Subject: [PATCH 08/21] Cleared CI error --- blazor/image-editor/annotation.md | 20 +++++++++--------- .../blazor-image-editor-add-watermark.jpg | Bin 0 -> 87846 bytes ...lazor-image-editor-delete-freehanddraw.jpg | Bin 0 -> 96310 bytes blazor/image-editor/open-save.md | 4 ++-- blazor/rich-text-editor/images/checklist.png | Bin 0 -> 50313 bytes 5 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 blazor/image-editor/images/blazor-image-editor-add-watermark.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-delete-freehanddraw.jpg create mode 100644 blazor/rich-text-editor/images/checklist.png diff --git a/blazor/image-editor/annotation.md b/blazor/image-editor/annotation.md index d30f2bbaef..fe96d30b9c 100644 --- a/blazor/image-editor/annotation.md +++ b/blazor/image-editor/annotation.md @@ -135,7 +135,7 @@ Here is an example of adding a multiline text in a button click using `DrawTextA } ``` -![Blazor Image Editor with multiline text annotation](./images/blazor-image-editor-draw-multiline-text.jpg) +![Blazor Image Editor with multiline text annotation](./images/blazor-image-editor-draw-multiline-text.png) ### Delete a text @@ -179,7 +179,7 @@ Here is an example of deleting a text in a button click using `DeleteShapeAsync` } ``` -![Blazor Image Editor deleting a text annotation](./images/blazor-image-editor-delete-text.jpg) +![Blazor Image Editor deleting a text annotation](./images/blazor-image-editor-delete-text.png) ### Customize font family and text color @@ -212,7 +212,7 @@ Here is an example of changing the text color and font family using `ShapeChangi } ``` -![Blazor Image Editor with custom text styling](./images/blazor-image-editor-custom-text.jpg) +![Blazor Image Editor with custom text styling](./images/blazor-image-editor-custom-text.png) ### Add additional font families @@ -245,7 +245,7 @@ Here is an example of adding additional font families using `ImageEditorFontFami } ``` -![Blazor Image Editor with custom font family](./images/blazor-image-editor-font.jpg) +![Blazor Image Editor with custom font family](./images/blazor-image-editor-font.png) ### Formatting text with bold, italic, underline, and strikethrough @@ -394,7 +394,7 @@ Here is an example of adding a formatting text in a button click using `DrawText } ``` -![Blazor Image Editor with formatted text](./images/blazor-image-editor-formatting-text.jpg) +![Blazor Image Editor with formatted text](./images/blazor-image-editor-formatting-text.png) ## Freehand drawing @@ -438,7 +438,7 @@ Here is an example of using `EnableFreehandDrawAsync` and `DisableFreehandDrawAs } ``` -![Blazor Image Editor with freehand drawing](./images/blazor-image-editor-Freehanddraw.jpg) +![Blazor Image Editor with freehand drawing](./images/blazor-image-editor-Freehanddraw.png) ### Adjust stroke width and color @@ -470,7 +470,7 @@ Here is an example of changing the freehand draw stroke width and color using `S } ``` -![Blazor Image Editor adjusting stroke width and color](./images/blazor-image-editor-adjust-stroke-color.jpg) +![Blazor Image Editor adjusting stroke width and color](./images/blazor-image-editor-adjust-stroke-color.png) ### Delete a freehand drawing @@ -676,7 +676,7 @@ Here is an example of inserting rectangle, ellipse, arrow, path, and line in but } ``` -![Blazor Image Editor with shape annotations](./images/blazor-image-editor-annotation.jpg) +![Blazor Image Editor with shape annotations](./images/blazor-image-editor-annotation.png) ### Delete a shape @@ -802,7 +802,7 @@ Here is an example of adding a image in a button click using `DrawImageAsync`. } ``` -![Blazor Image Editor with an image annotation](./images/blazor-image-editor-add-image.jpg) +![Blazor Image Editor with an image annotation](./images/blazor-image-editor-add-image.png) ## Show or hide the annotation options @@ -843,7 +843,7 @@ Using the [Toolbar](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Imag ``` -![Blazor Image Editor with annotation options](./images/blazor-image-editor-annotation-option.jpg) +![Blazor Image Editor with annotation options](./images/blazor-image-editor-annotation-option.png) ## See Also diff --git a/blazor/image-editor/images/blazor-image-editor-add-watermark.jpg b/blazor/image-editor/images/blazor-image-editor-add-watermark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..864db8b317b8a65683cf57c284c311fe259ca01e GIT binary patch literal 87846 zcmeFYbyQSsA1FEqh_rM_2}mkPHzO!g0@4iv(%tPSNH~)f^OJ?q?m?)pada-P}0{XD;}=h^5f^b+W<(sRY3u$#+hpoy zILxl({O@A3?y$&Kv{7gbAFv9Ty9MFmQBqOU&^};e=iuZL6cQE@6%&8@Ozye7f})b9 zmbQ+rp1y&_YfCF@8(TYf4^J;|A78)V_aUKS;UA!J@d=4Z$)7%_Was4OHX0+GCDRsF*!9ovkYHZU0dJyy}5OGbbNApc8<8XyrByNg!va) z|Dx=FqKgEe>lPLkCKk>OT^P5#feVua3;RCbZBiL^95YukX8w0~$Yo=*D%x;a1T+pP z%-x3ZC|L!U9~|D0_J^|nXM_d)Z&CIy!v0Oy42S>|0}vi22?z|je$h~8@2OHqSLxX1 z;KlyyQVZ;uit_0}gCN9c5Si*2crEPO0}Yxs$S!_Xfd>8OP5D_XG$?})4O;9#gE~h! zvfEt$3-Dh){8u0TYZrf<$AA69UrzMDeE9zpA9Nn&i`)(4u38Pk7?PDgDNdBmM1vSQ zuFuh+Ur}s#oU+iMhv4l3RNpv-av`Lj_;M2s`c^Hcf{DjbxJNUAOUp$2B)3osw}(9S zTO(Haj_)uc3;swI4bo5}Mv!jnfBn{&)Vm;D;OyL@Fl)a|w+j0HR?VO_C*bwL{G7W? z>7pS*SFZ-bwXHniWD#VOIz~F>!SZoSfeA&?g=9ZS4nKuqPTT8bNRA11k1wb^hffen z567~{{`ko0GhNXrwGGiiJT2XJiYY|E;n%;+Xt$q@=5k5ZK5;du?%!*^ygX$-ABQMs z&Hv8e91c)=ApRU?RvhlSevdmL)ymJ>R&ebm<@f3$DMh&w$>FB z0%NWIT()jOC#!YUOEa#>fMEN=NaXQ?u>E?rQMkZ8E>LZs6sN<#70Tp5xCq`ELa|vY{aEc=59`xP5)r0iw2M zblIIerEG)-vu-Io2g|8#sX}znh0q2ub7m~jPTTbpt8{p#x3{BW#y4Mv#m8A@)bZq+ zYeW45vlg!1aL^Zy)qT(H-4sx+M<(UwmQ}Dx&3GE5zj`;NvuuY!AQAagrywlgDMPC> zkD0&3toKp5!x~c)@8%xyOL;79J)}xu6SScHGW*t(hp%hC1J+`!y>V*@u96jQvD@Gg z9iD4uk(d1tEw46P(iQ9~*1kM(&CNZy|F{u`Q0OK=Jv^ZDy z6=i=bVBG8*(>`0o@=H=5Ru(yvQQ}>;@Y!*Rm6V@ppGDF-cq0ZwS_|b;%I`w+-G{Z{je7zi@)*~Ko-_s$@T@n1^ z5F>oRQ79*=YK(=^H|x>yZBuwuJthvTo9M)0ISdWLPm#z($O;WfTw&x~v8P+FJ6_4A zUtB$(uV2}>mZ}(VMCvppnchM8cM_XPe=eTd7S`x+cImZ>Y}&@p;`o`%FF|lyl0>I^ ztyR~#dvS8UCAVMI`2nOI4Vql6*gR2}laaY$$bVih=d1ed`D*l5>+ig<<)+Y>TH*tJ z6j;RBRQn|H49=$Yu?X*H<6Ef@G&Gm5b)ylQ@`w6|u$VH<&KmAA%mM*Bc11S+46RI# zu)(F1i&}=T7}?1e{y1SR(pw}(i*4|Iy#B2GbdI3Qt&x>oZW~pvrr}+pipMmhJg4V$ zlV95;y&v}o@;|Il$QpU}s;}?443_8ZI#Zl2gG!%9lY`0dS=DhTrf;=%DzX#5W-ktU zElqh8`djBYrrO#FN6Q%R>^cc@JKsgPJ&Sdya#UIRYKwse#aKT}62dygU#DQ`!?7!4 zoQDjfz>_}X;LJ@=#G9}{IdZK8a&Qxpj=uCE&c`i$7qXS;=viwq5V#CqzEBst&m+3rNN zwu`HTCfhFY5*fA>tkA5{M%axg1zd5u4DI=E8On(op=G-i6QnJ_HtLD+Y+ta&jjD8}Fy(cWO#uV-uI0tf>L4wowq58bl z_yx!N)!Z4@jh{}vrPG6=$z8Z}iW6Z4r)Uu7*BpQQYlyKdbPdIds8l}yzvmSy6L|`` zJ76CcHzEafroLJ*C z)-mnrQz;5Mq9d7m%8ZHkU+RlE&A9dsLCO@B%?bi#p&VZbVn`6#L+ulXD!zm#Ke!## z&CG;mF(Z$dpELQVtTZVePRjifymu|inmOUdkOAeA)zu1%d7)A3ma$C!&mSC_OG!xy+44l;uAZGXvomYUAX6>J_1Dnt(5 z|IQojRY=f7pH$ELUX3>-KoOov;1m4P5Joz;fCkw;8124)6~IeNcv!e{M?InNs*a%w zUY~k|G)V~@M1w{v*e$PZH_m@M+M+>sg#uYjD~6F~*=@NkUlz2J3JT`$MTo7nNvl5$ zAFjuI+d&u{oWb1;dyH6dOBqbfLnyT`@qQ4JxUzMW{K}xL1=Wt-Q##YqlFYyrEn5te zW*@6oFZn&QA2)OM!KG$Wz_5I3kL07ICN_$`&)1|=#Lj*}1r5>}J@rC;%7|W^G(AF9 zNpJyS+RViAkQW|Wur%PmqvP`XaOPs;Vjc)r@2W3yGbN@QZ*y6 z!>Jux%Ymuqr{B?ILQkRN%r4l>?T#f_7riRAq>ykK1Y+$lDbVue{u8P<-%HkNt;EET zqB&)aF*%TljS6|!6^lo;pUuA98K|V`TNqTDGpi{^Z6pl-tY}-S6Qv2IH|-Wqz9cXR zjmqnH_S&aFHUzFlIvNu7_Av;}z2^%46*PZ`2F8PsztWdGl<%Q@Ll@scm?t!%@WZ8c z!3X))8|XN*z1grkDSO56z(1XT9obb(MP^umZ;y)MIA(26gGsn39d%@M&lwps zEFyo7sz^w+_HO;oh6c6QgXs|sXi!I`&CHuvGiOMN-8nJVt)rz5EHf5c`uU)W@A$un z+>I@LdUnYho|^hRv_Bu6vRSmR7g2LqV@;GEya*@xv3UMi?0z`CEphA5Je=-K>Ve#C z@wQP(KFW~%AFEN?r}r|M_hi}(17sRri1dG~V-I1=nLvsA47JlbeGV-5F;r6IS+=ho z-i77aBOJ#_j~Xrv?{d&wq!#rUy`$(nS1h!tO-|vGuIsOD&%iZ$XyEb6V%J-5S&s+} zYCG3mXN@GL>F}otk#x4rneQpFgAeK+szLY2_(HW<^=6|#qv(k4GPtc;s8H6Rl22id ziPI_LGl0IKs`gvLFU=P`>uaH}2Y--@Z+qSMFu@T=6%b zNwv{~{0~d5P%49rEdS*Q{Ox}HX^$WIV-DGIvcq&Ps;Uca0#hgCk4#UmonQI!ZeLFG ze>sThR1P!DM}*j7m4#kCY6-b#NPPCjmf*er{_S!f`ySe|+Hi}5p@^N`QqK>=xfRV7 zR>CPku!m&cKjS!7yA@YHDwKD;7}+^7yyM_;rRPw(WL#l5+f6FS@J{|#y>kQuL(60n zA3=&->x@vd_~p!HCyw_05$*Z@yN_SiNgfeu_~ngWPOhp{wQ5%WadyWLiY*h?$rhG^ zkSZz901?8LgocDkTTA+%@sx=ag?Z@zW;lKsXo^ahn4TswLBzbb{^fSd8kE6km&4ON3Wk39V%tcXtIdHZt=rK1CfY9d1fv z9h&5nKXsJt(m;&SiL4hfA(IrB5DVjfuN zI45d=n_T1OJYX-fp}g731s98_qz1LuUH}3g+kr4nM7B}@zJpXpgG|Bzv?=D~P({)~ znR1|;M9JNh1hT4ChX$4Zg8W`BPl9rQvj4hn-RoC??XuN;_U_=Po>%i^xm{1s*lE$u zNf`mBdDC~F!MHq+_pVX5^qy&U9VQl?H4V*xSHcf-#TA=Xxj12JOV^L`bzcY!(IC3t zv>wcgLWcS@EvqjT9>hJJ;^I+e{8GF?`>knANVyE6{;upn1|N1=&Nbo{4j7!nw;DZl zt9nO}UO+iE_uFXMBUYy}EWGz9ChbempMs?y=4^!k!=rT7>uNGq+WdYlI%L3S*kY^t zvq7=xx~!d7Pn|%!4y&)$o1a4|qkl6L_W<>GyWtYs;Vnchij0u`C*|!9@XSkJ6a9~h zY1R_o_$CiZXYDWE@F9{F8>?zl7_n`RBgPu*KIDj}j|8t>*iA`mkTtq83V?7xDZ4T6 z0)%Ih&)yxJB{-iuU#WkK7?|H~b#mWNnafYn0n)HAGT#~D{GRM9o_N7?Kgkc+U#$s-Sbk1liz*zR{csb z@~ND83-!UCnxuWa8{~kr5z0w$0Kr6bz=crN_OxBDCG%2Mu#zczFKd_Tnl# z;^_(Q!edDaKYlv+-`24lGM6a_cQFVa6hwI>R2(t}3C-^6NG1%g4O{sRUy{+a1$-5~ zf#9Rq0AO4c9&w@}2v{r!#f>;>v!5)Et8fK!#iO3?le6_q-!#-&)z*AVK+Qmf`mC}o_6 zF~(NPKFSsqHeit1`AE0RFZ$heW6@?&!Dd66cm$zDM?*v3x+L;T(=+$F$#Nt~P0Hx9 zNXT*qC)4MLV}fp3I-2oqII+fE6h;#f(Cs4OfJuiNF$c9UU6&&{%eEj?8Cyg0t&KJQ z)VBt(D;r2fZt>q1h1LGf8<+0*J?Xv_Go9KYJ`r;0|6-i?#8GLYy$}C$L58xJ3zW$< zvoX%?3CKcS{)RGJ9r3BK2P-Lu3~0OH1`fk5;NA;uPOQ1 zS;+dzB2BkUUBUY2)2^DD_|$vG@_MuxRV_}fD{RBgSjEBb9BmmB^hK8yFnZ}lrHdZ~1JQ2zqn@-@4ByBO6F zI4|MclFK^LI(c$=J!_*gnq}`OJ;6@x1J`;b^#nAY!jU^a-$T(C2Ne4n)c>R@H~;H? z+B!BuavXXUl&9+NA@7%d8!Eh~7a3=Dzp24;C20tEtoQM1WH*u!C@J^WrwxCy1WTDWJKb=zcejI|J| z#LSzF6FQ71f^+h7}pzInEYe|42B6?N9!3w7qNI@dR-#c$vQ2l8%L< zjTX&oOf=W0aWeW=WRAgfSAn5=ODMI>$64W!RlTcZQ^%mxHN7{vX7jP;7A9t}?104OXNPH6gFnyVT*t2b6fsB|Y!e?&iFo9bgDTew zY1R=6t=E~ga&N)=#bsy^9<0sugu@1mco+Z1G~%-LD3ZWD9^a zVPy)^f(BiZ6mkWEQBq-7`)E)WZK%eaRc>DdCLbPFx?;~kwa%3m_;?0<^;=7t2MzkD zc3oweAVJc~hHk_Q$uUhFbnpK!m=E=kapXsv#V21(@ry|EBRyD*f$ zJdm;AEpy}~@OVT1HJ1MSVTyKjc@Crh*ufko|@wyJalp8=(5}!{~4;E6+$+u zAm_izNugr08{Yp6b9RArXvhW)+Rrk2K<*YYxc~1T*gmC)P)#FFwT z_w`WbBo570H3?#JGj{_uiw2zujh^~7N2`^o8$$%fIAFk8nUFE?Z&C;l8_*yNMIiYv zv_{E*FBs9Fikz)+f1HWJbL5a(c2g(P7BfFS9@r&8gRW@R5XS7NcZ`37o&Fo_dw}f_ zvK?{+24+(RX3K#gmHryZj~Aa2m#ObxWTeaaCL?*A_&rL2>KD}=kD`*lmW3Qy088cp z*adHE`QO0AAbFx8t3Y!+_GU#>gb}Ji6};ODOsux`*NRfY&|@&dsDtqc4-M)?gRY|( z59-4LIbyDy(V(f3%Vv|d(_-VH7uijtC@Lm2=!+=|2vs{k&R)UA z1$DEg?w>Vn7Z2+EAe|*>5DOp$K@?2)E2>htep664l`--OTUHU=DoG&ld6z|0QrHY`vvup~piAL+~j+z>LM~DA532 z9LB?k;Pb0LvOJX_-X?F%2$plfgy*XvgCR#E04p_!KU{1VKvtbm)x2h!U$2{`H@xLs zI^a%zwmm4|%++a;d}k9H^bI`&|P45zhr;DMBZ1!mIWwa{r$vxuKzw78 ze?jqDNVn}~&F$Khv!f{G8IOp;=fL(_*^NHjL#2U_0AdYdEHuCR+jvVDa6`c)hX4c7 zAY=p@GyxPP?R}UiGc@Re3V23sYHWvLCeyt(yDkQyZv^T6dkMyaZ=v8-KucpGmt+34 z>A|y_dtN8Hci%jC1?l|-2wp_s2^QIfVue9zmBN%Rmc!OahP!zyk2Hoke--4a^lSM7L;4x6 zS?0yP8~&mwd#;~?|L|0Pe9MdKMj&|5<3)s_WF{hs0lZlYa9bYvC^qKe_6@tcV@k$% z81?h!PPn*-IT{+yN}qw1i>_X z|5E*5Z}=f&teJmIZ}`;ij~Sz^0iyyKi64*30{>CgFG$Pp8%qCJt4_(3bhUizx}Pz{ zy6HhZ8npF~CsKGL`1aq%FI@(#=@bL`d9ua*leoK-@d67_nLnNgyzB`X1MF-O4Z7i} z_6~2^Fv|Jo$t8C`8no;Q2oW$iHt-d#Gm>Wkyh;Sw|KsV@{`j`vXpqRdUn0d?>p^4K z^)2G-n|nL91uK9~5D#4k0MZCFfW5k$XIw`PX=OK+B3;{h&cLV_z>UmJ`)L(q@fTSKvX+V$S5Bo7uPyV?DaA^qj<)6_X z2L1swfF1=OjxrwOpg})k{&-8+wM^@ux&JumNsd26bWyA^9yEiuh#&_5!GJze0bqaQ z@RuY1i`Zt0RW#_Jxpj*W4T@*Hj>252fvo@io$*E85MHAVu(G^&>2AAcK|=YOz>AwUkcEmTL9Dl7Tob0>oRo{72wt) zD09d3&y2P>J!yc_1KTJ|fKvuE{U$uzi0-tQ`v-VAkofWz8nim}$7*mutl9NSf_2-B?KbHRB037y$&7 zsY%l%Mh3vqIMo*Hm|9%%$)GCV>`tFCB$8%n;HM}*RWP^JN`7ckU@S+jgQM_I>8lG_ z-oL;!K!X|}pUZDGqCv!vUfRj)QRKk0GcJk506-s^GOuh}C+doK|8v0dHLp%xj>7z( zuAH>}_;XMDxx*{K!hc1*+BRXX{59(Nv(DOA3KTg zQ{bsRFC$7g*^;&|74{0~TAC6$y7JE;qt>}R)VDQg^j?!J1W8z@th6xryjA`(boSYu zzNqI@Pxho-zEAv%iF})#a(G?rbETZu(39Wr`#L0vJBv^I%0h~syG51fjJ4dgPVwT4 z-&LI*n~>{)3YJI!s@fk&Y7~c)V3?K>RGY9u_v{rjwbdLVRk^B} z(%qzszTbkR@>PoEe#A+-uqNGPIGv}q7|Zs{Z4F%~WiqaU zqeAmw{rNNHPwOnjMH@$D6eiF8@ap;mbR!xB5+306Kd^etU@N;({c@~HK7W(2W_?Q# zvS*#ym-Y29Its!8y*GvI{$1*#VzoV@vF4_GDx~LEF4@Pk5Ly>=R1Vfd#M|Z@H{G38 z^m@7cSpkn2Zl5(Nv`t7kE8?v_`OD%Ou4V5kDPGERG&5|0{xOQhKT@5`t)boZ%?@y5>w@0-P)}zeM z`fYc2cdZWB)MCLM8Gv}p#EOyqAfr>wibr?XgBAWLz@ zWcXAJ96_xoNUo^b=qia1vX4&8VlaKb3lTMow&*LeZ`smPyspoo zoXo1P0@=r9!pR@ocPI-BkgbO!mvm{s(e__8zJ0O0pAZ?;%pIPraxi=->RZj65|c(8 zyUx3?!xuRz&85wpz4_yjU%IG*W_)sWgr7(KTs9^&@va7!BjzZ*J@avQif}q-wBgtS z5nj;`ic#^8`7jZS6!H!A8N79PH}Ocmo|`@Q^F!&xG6j~Z#%M)weP-%W*?bno=da`h z@fyX?l@7h-8Z?5};wtaaF=3=6$Rn#bQJhYSIA_Tvz9^0L;R~&(pA#J899PYEE z3=2K*cp4E=`BdBe`J#GHo?>OBM;@OO$oi1H%Pd3hGSCJ;I#DDUD(v@Cf?__fSgOAJ zIaj}YyvkA0ToQCmN;DT&CoQ_DF@I=NSE|kT$|INWH5s&iExwIBh^I;2)h%IyEW=e{_>H!Q{BKSM$+Iqr zkjP`k8ji;s)y9wE@qN8RGODXn1#3=&*bF+O!O#Zg@40-KlTckoPPwcfLrReyDZd_{ z4!szqCCGRjSTvVPPD|$k;j)*ntv2R+eUdL}8YK~L{`u(`o^_Jacz2}cGe{zzUO^>! z6@{*lv%L;XdE+t*m&QX@RfNIUp$w^+eLCfA9G5NPN_1|s6T`!S3w zx-TSGp&xR9WL4dDDtB|gry4`xmv&N2nxBTR5wV{)TbE;#=QU>|(aNu29b~pVLW5fI zdlwb{U0<<{tbE@$F@5I$+ z>cpAqGsp?;e84ZRK@udzWpR@K^=wn_dw99)3kR)FlJNsVA8V;ax4R_5BO~2s;;AV( zWhGoU6)e~y-cf?DwdM=h3XXbv^4Qwsy38M?i^5D0cla2pPl4pv8pbvoc_6lHQhPw} z)l+(H4xC0PNd_XQ$KV{}Va~OOlsS|GcIWcR-}@Axa$qNZ@#r>i7y@`>Lcj>y8wEtY zk3z7kf{T<7J6hgch(@5;I~#_SxoXe+`@7cvTvrAx76U1p&VeTzkXinU@>PqJeBfEI z*nFK***?&80r3;qHpzq2bfvH7h{?9GdT}+Y{j`reSd95{NSQqmG^lLx^(+75`yqbR zg~P=;N;y>-J&ErV{dlyCx(^N0qB1+BOa^W#Sk&Y9?91pNx4(?Gu<6eyMyS`=JI*;X z@mV`48+5UlukK_(#hmP|$XX6)$2gwKa7zq?&B`dukzMc1ZelC1M%vA?}* zIc+V4IvC>wADI{~;|stLW#zf|62v}#xCSTMY)f;CnBY`Lid;TJL|yxABTKB8%j3@; zJt)^R+ar=;$&Lo+*=yL-gcndFIgLMS2Dh0NtD2Gp6s`mW(m=?Juvj0@2474*%|Y@; zueXcA%5%vSM6kn`cmf0Msk)WG%e=0W8)_RS^-gs`k45jvAC#O&2WIMX*lw;oEzgGQmBD@4UMpx>rn~@2 zR}af$KF_BYa~j`soBYW=+F94LtU4h%Br_5d>A~L+tafi|%_4weuI{{)n7~Heer85r znI+esdQDA|#H6z!F)7bdK!0Awr8rDlIkacZ#NuE-lM;6A4q4|;sbL@~dj9Cx)O*pQ zJd`=NXd=$2W}Ig>xykcO$MQ9fTGhMHzf@ICr;vZA(oO z2YE2=$7m^e(>ynWppBjmpxVqUIHs8O!S8nS2~~UuQ`gz0@@pWX^P6OZP)aj#09AHA z`!Pkcugvl$heXM#*zf1rofDocR+CRl5Xo>Fk8M4NM~nSQmTb>8dreWzmOjeMVP}IG z$;p$%SZ)Nld@inAD%yywd%V!w`weC<-dHtz%Z5O{JraHeOQ`D^sg7iUcB##5<$U8$ zSbN{Dd1fHyG{kb~{C4BuBlK)!ZLMZLswXV+Y@^w`<<22KBCJEecSGbcr@VBNi``=9 zYq^7vJ)}#M^+dht``$&%iI@Wi#tcFwXovX)Cz9WgR;)>tct#76eSQ^9JETxIemY)N z?f6ZFh4Z9aRS_oFfDmzN@TZ35UzwMCKfb`d)CC``39KaaZmvTN&Nj*Tz%&;s7Vp|e zN>nvc8tYrY6gp7~?Wr|kACUYlnM#KW-z?szRk^V{_Gdtp&Z_83Is+bmMnv6Rh2#QN zXQgh#`!3J5vMWycO3`D%=2FXflJ_`y9O@aLi*9MY_kn30J$yzL$%g}HVv)hmTwccqx} z&ZKvlXC|p|M9|9_99>yJv5emOsk`cxti4_#_cio?L*dXaFSy7nRam#9O|nwEqT(TG zUiRtAGxzAaXikUI*R+f`v8UN^N{Umm#TJP2$W{mV$DS>&Wmzhy8Qri;g+e|KJ!goE zbhYIeah@w9@f)U|mB|TN!&KLT1);C(i0_!0LxO25l-UcVb;D`PoL#o`$Z}81$6U@QsE?QibZ1=OR*zMXhHhVsQA}F7jFF5`IHE%+}Cok*pER9GUFkL9q(?wh!Im z$(aJnNC7ScXI)m49!LwAWIGWeoM?2O=VeiYJhO&zi`{$3;JdeV2 zUt^6|Fz{{4s7gs~mv1DRe+Y|L@sSZNY0;BB6`TkI8}RUG#C&v5(|m7yIAC=2)rREN zNr7u&q7IX*>d{x95))M%>aKfy8B&`@b`OMO)(QN}*XMf|+u#)Pcb#6*+OETjSbjy@s&@7lS9Shf z`rj1L!K(H<(&J*?#6^XD9{Do3Mw+rq41Qx>{9@Ofd9JGP3QW%288LW1cXWCY-da(d ztnRIk#j)S&YUMZmWMcrx!w>D-9_%>>6DR4K6PQKi!v94y&6#^%@qkIa&V@wi^ zytu<<#4uA%o!@QONSUS`Q=tY-EY?sITM+DI2S3;Z?{!K&AMg2#op#>EXD2fp*-e_i zWq}hxw{EWgtd(6T77_laCljrEnd^4!73y>Ux9x3p`jAKMP>zzje;42w$I&qAc=c8t zMsB4gpyTtr$<%PzIe@q1!)^rIF(`wApK*d;Iawzun*I zU~ZOFr7<_7cbNEj^ti4dG_|3@KWA_U#Wg@@m+Ys$Aj&VtPKdC8=9DA$&O3$ot(|Sp z^h`s|uhPTv`MSKRq;HS#yncALgS%7yq(t01q^g;(61#YhesP`UxST4id%#V#pb>$R z_v>7;ZMDTSIbXi`1R+97uzhxXFt+_o@hx7#w~3)h!OUI9+i)fU=JM4`=*(~K)QJGk z-0A5#ta>sdHmzsH?v0~)UZUz9zs@wgbVL)CrqblAp^Xia$tqPTC=|YvQsY~yQ7QX{ zhmLaTxsN&8vqRubE6X);lMM;AN3edXr!jEw>SV#8k*_g>l2gw11^slhlOHs0^CClL z1?UV>#BY?J?C+a2f@VowryyKE8xLBNAznNimC=d_iQe@Z5+BSjDDCOcj=m_RxOl|p zE@)?Wv$zWsp?krge8_|WHyc7$nzS11Ny=o^)Gym)sht+lHUvJ|G!PF96&%o6Rr9u` zJ9-Q9rkhA}Eww3(I4b~q-*bB|39XUtwnK6roT?Ku@kPlsazf!EpB zCr$|Zt#c@fnea{L)aKc@F7jMl2D2dfFBHEGVnPMy&1#JeOTgZAjDy*u0rzq@-JC;* zm7}BBf68wdWomVH^F&(JgUMjqpA=Pe5=Dj(M&A#J!%XFWl@}y|d6eJkaqiT?>tn*6 zF;c<`qtKvFFf*I+Uqv)nub};-0i1c8$yVz#!%Uxo@C!F?*Cr7bD9UVN-dQOxzLG2b zY5IXyt06l4n{3_;6@eB(nl2}xfAqYek1__&X7pdp=`&y?F?8yd?_fWEE>kKobjxP) z==1BU4r}&)^VYuf03mtZ*_Vl#pUe)m5*f`*L}FssPy&Ym3v52fMysGc%3k90PZ|7y z;*-V)X9F-Ky|+`OcCHsjm=m^V|1u%RRCQKm%n#9C7S?OK_2lfC-xDagG;S>Y!7)0k zZ+Y*FXa~#mO|~@+rusC#6lp}2o=Dn19p?=oEbX%lQjBd;w0P(~SvcTv+1iDVzbkC> zsFWwem%Nayo8q?r23zCq(+*+rnm41jDjD#j?;RJ{K!^k-^q)o87>6NG+&WH6C+?BS ziF@SNo4V_MXrHhvvyrx(E$TpW{^DWO3RHT=jraT|DPLWj_#5ryLXb2wNDb_u3MMgG zbGD_ZG8c`tkfY;@#L$mf8ele7Fcpfl+V(<&1f$)zmGsz(WYZW1cj_$SOT^<1OIYF& z>C1|q9Oh$>a`+{=tH(UKxAhi?5t%?1c^#x@msB}K&f?&17&Q?6Js2glgHLsUN{k9T zK!fDQS@~70vW8f@fw{RF>g=Gfnk;US<}>C{uGG98SCR%p24nal-5g>(r=qed4qs|o z+IsQh*-EuH3g@6RgYjUXC!^7cU3O1ORFtAV2f?d2tS41n97a!%GM9covH8xJhT2Jk zPmWG-Y~Em`Da?=zS4KVO-m``&g+s_wRQ2wW{8bH5YE5{hE;X|#Hj5-B@jZ2O zzv?pa-8OvSeTz@`eGV7-9P8!h6>fPFbye=Hr3I>v0EO_^*1P;b!*YBdL#l*pvQ1nn zDeny7V4>XH)%2@r^;D>VdB`Nej6>=D>%8%~Qez+Z11gGd6?bA55}qrZQi#TkmWgQ| zm(QjNGwZdjCp$@KwaK33f?iVI=Tsn@DWw?n$xrOUFqdi$s%s)o1(_wDz%b^)m_I6b4ZCs0P0NvZFFhr&i0VvnpWk5_8i`>qztp6 zPZ*F4do8?qp6m2oBVmk6u!f6#O-JdjuEX(SbS5cI$3C8lD`DSL36~vRcV@qLu|Iwj zo6D@XSR?2U4<*@4?YuAN6G|-n?&wCzr6aygLPW-{EtvXU>LLm4 zi1nITud3pQf!Eab0{e5{j7ejS{ag=xwz-w*y~~1q?FwCQ(!DZ3&`rFL?_Q%p3Lni}_}yBXG*Oc< z9U>mCp(4muIVPdLimI-TtqmIVbiN7mO3s!MSE%)_$+KkL8rlz$Jr2mb9o|f5+nYnn z#&l><%~@qhn=fVNa!4)z{kz60V9p)_U1#to*yqq-Ix1(@IHAsEONQ6!HC1}wch94| zGf0PjDhHO#`$Aq-l2Jv=LIS)=SwMd0XXPC0o-S1s;%*JcQd~_UAwBRslctB4xo8l0 zd))?63*U!&Mi7g1`qjnj)XP%}^Yy$V2*A8gv;1KR(r9S<4feho*Ha?!Ij&0eeDftP zW|73N5+Kb7;!~Kh-8XwvN`rNs1(R2WxvN~e)apCjTWTR1CYudJm5^7B8`T+{eL++l znSz;!CA*bQxLv!)2D`6f7fOO&l#T*-7^a%0Wri)9cQl{*y4Ww;*6XhLYyU9=q8!TB z?5VBCcg-6@EH#LHScGy`T}PYWq~)hHfH4w9DB_1{zW|5ae&|2!vc_>C+Cy`azq70R!WXmLHi~Lnt}XjB^kcq+c1^f> z&U9Ngyh5*AK!vkQpNorMgaqi3y)8N^oK`rw91o?2=e#~$FN~{De_{DuYO4d!f*{EM zm$IC^<}W;Z4$P4Ppf8p%q{l* zsY4bC2eL$0Dw@+AYf(&~ap&ii(~kpw#2u4R%)&l-kf(R_CY@`rUGxhRxsewW?ohLY z4Lz6R+h~6c>>e4Vl?uwa<0;)dBrSD}_GQmag_4#aWk2$Un1HS5GzJZ_Di3&iJu3dS z~`F!T@?FJ)_O; z6IrSaO4-fPDb&z}dmi)Unj;>mfy@Js%0}%tR?oo(ja7c`&mUJ=#Hbs}ag;oYe8A4` z>m+#px9#?vMIMIxLI&AUfh&lH&Rx}rLE@JvlGE!rQ(eJ4gnCmI|KxN%fpb8iq?hhk zA(v097BSlNjZlf@I|b7Vf)(;|jc3X|VD)CY@= zFYF7sKraF>Ru?l*N>_4(^Zp0MYNflL1;tCFXX}Z53Nco;I**Adn9Eh9G!lEvnd-#~ z9O1bjjSzC8PJf>~{EY8fsWQ3T&?nDzXWoL=Gf&}>=AS~}s<7~g4TutCj9Cc&B3Ti{ zDiR)r0_9(@HSqQ9P(gF%Z3WSSxCR9UpHYUm208pw=@ZS{@isyhRyHKwK>ZnEO{ekx zdr=~vjH>&@#~s;@SQWmFR;6UKq3V0SUv%zI4+te^+I`dbWP!ZtVDn$8uN~Mycm+ej zPE~u{6hW_k=`u#?akxjfXV=F`=&`2g;L;Mr_2dx-ML6{ijGr1hQuY~^6k)kCt)8=g zWmvCQBi=lxZT;XR6!?6u9gFkKW^T1OZZ3A}@N%rdvk}qS#U1ELo;h7}c#%}Rvg$@8 zVlgQhEv~ChO1xY0E?P1HFrO{&XT?J{4yTQXfVx(O#tOc2lefmyejHg5{S^#g>XS)slEr_hIcZ z>_OB7qsDgLqyt<(&M6d)d*XYRja8wwm&gdmTpQY?ytG0?e;wA1!teCkyRb0R+b7`n zV9JMkk9Nj)J^gJ<11^}29<=lGa~*fDk>*9Io{hv9GBZBt z%ThO~sx}sXL`(!DgL5cNDR4`rHaZ(JeyV9DK)Ui2*wb&k^Gp}VUB#R929Bhb`>n<< zGJb(Q8*jN2pgc)RE!c`bJN3J!f34GL@4bpZE%u=5<0O8M+t`{MOy+tm1KR!RO9!7JWUN-YcXP0Gro&C);X!1ka za1?>u1N!F0YmUokn$EFq%c;*}h)f}rt5oZfLz(sR_9Ee+#g$30*I9Jo^gTn;g4H+< zB=<|2=K@4GlZe^WD?2J#)a27`nO$Md8QKm*I(1FK*sZDp=?{nJJOF$Hm{&(wF ziy^|TQkigF5~8`03&~@hXTEeq{_0<^?G4i=xIXo$CXC|VDyI(5Ph1BQrWa{=7IHD} zx&cin`Yi!QNw3oaHwR75k1kx4s!iGx5jZ1RuYdHcX}i&Kk#G5Hy=Xet&5#z?Qn_Hyb(PMWINRB$UL>;<7j-xQMi85ckFJF3B4zridYZIg0 zyF@JYzmv~lL?@I}-k%~A1j5Bc(Sf@H`QEvp(L=elm5dW|#ysU9@eQcG%M&S}ClOxe zC(_RMehgJ{lf-W1T4ap>&cua`Z7xYb=c!ptoi*4s5giR4}sKOw(PNTvON*K-UJkF_9>XN*!}X7yapQ#g!9or*kq7A_y(r4;KL`Noqg z-(M@6Sw2stU;Vz`vF1Y`3V!)5E;D*y%%sqmQO(se^rfhi6=b{hXxdZ|J#c0j38onyNTsPATi)KmUzDNRhCGa38 z!EFrk<~LQp#0osWfQbG4A_+zTEem0LmnD9h%OZHd7kOHM{o~7PIrlEMIjuHPx|bU7 z^xpF-c`XEPsWd@dl(5aEK7GM}CY0U7#ss2)&Fr=&`M^EGTNSrQp)Z@P@=2CPb_!f7 zOf5Oo`U-HP$9w}0<$BENzido=gso{ho~=ieJ7pwB^@;7i zu`nGg=-%wg!KKADl{`u$xWtU_N2T{_)5ZA%VW>=?l%y)|>ofJZpDv(sMgc^BCm(CR z-U(^sVOJ#Xv;qx#xwKO{5Ej3U%=^q5#!bt_JPpRqWjvY+?j6eWG<~fggs&YX+x@ZO zt%O^37o@aV8XIsx-;vkErpZ^*;z08QhQx*(nI@NyCke&q-YKS_oB|a;1`&RzAO}t< zk=3I?+faxw(A7iDO1hspUuS$Y3>i;>Y_+%#BD(Svjq>V;uB)S4^snPz^ZV=$?merB z_D6QNfW;kk-nRnzP#$BUOIb^v4j2x+1w~wnVn)1CzIj(-ezx%H&1WA^eCr>5{ETTa zrItM_>Ne8%O(VVcWKx3lqjs{FvWn=HoM)TzyvPD0jwT}cHWaBD zzsm{AH>%Vy45L9xCrM%N$LFWpk@m8!#6lyj{yStV-~-x=(KC1Jm`*AV1dE6DyG6gr z5y(9%MxxWv$?IEA;Qf?~o-?;uc4)ziSJ<-hu)*pBr0lLi>IrgaqE3jn(3}c5S2UvL zjHtxd_aT}!jd00)+C;U)bdgRfYm9UC-Mm>qHA70a9skp31F@Hnx!lAkOjN`r(%B?@ z)n7-g-A@da!H#lgylojb+ad5NWp6E!+@KvQ+>*lq|~O&&43FA>9)(2YT}G`9Ab$hJ`}&)z+$6I){Ac8V55^{aea$re9Xx%MvejIr(~ zVkL&6D_Qycnsq6h2}1_q?E?RUwYQFHGW`F>rw9lVQVK{(NGTy8%|PjtMp6L-5O8!4 zRKgLXkx5C7?oP>p2uOF0W*{|so6qg%d4A{lKL7sC=MT==c6P?jeeYb?`<0iex!jms zxeNb%7|fZGtFa(TjaAfi_TjP4k?)#eL!--ck(HpDF0xBNIbTgPG?&Xz0mS+tQ9C(^ z#@ZRScmu4jV}FVSmTn3zR{rR_1Ev(d+%!F^KRhtHYez}iW*8kl5@IvK41ve3+i|uJ zw4-8@XbjIM!dUD|C0+O!VCz1^el8;+7{jDJm`lFO|%Fg=ou$Xn5yU;#f!mRK~nLzXZcpS0I?*e>;*~kC0 zB~X)$J9mr=4L^Mylxb*87>1X(T93D{ae2ZofW>?$dm#>Sn(+I;($M}Xt<1?O@-tid zHs0@KTeD$!G%}{!{{v(+qi_k?su8u8QImTcgwb3#?-GsEC6^hCbJS@WZP+FMB)zP^ zw%N)@%9gmIxlTzFWt&TLH5Poro+NLY(Viq2&7pp=t!LJ;#lO`yA&}Kk*yzQ`Ni>^p zBn=uZ=#?r|{5OBAkH5Uc7CwE6%>&snB12%`l4GyM@_Rk!S6>wmHfB;t;?;CKR)xxt zs7vSMiQD7(e@bs6K(eds>3j+`4SBZ)K^#m-y9bFBp2!u>W|1y@a{vZ#9zF-87)B**j*Gw1H#PbOEU>q;wv6s=n z{+n2Ia7Aa$jUF%&MysB!hP?ZgA`$F)j>LoE-sl>tZhPvV2-Dg8Ig~ac#`g~6%)-Z_ zsCYly$k687%?}-4L_C*CuzcRybl7t;nBG)dmg35<0!l*RK^W+Uzwz zpTN^tk?^0*N%2*3Ve{#W>+HM)-h0D_B;doH7j(=~mVs-oV+^)Rk>~KUSU5(1KFZM~ zW1E-#Y*04hD09}}@e)~pL0hF#6m;qxW?gS)RjqxjMa%6p)a0#Cw*gqiR*&UG4qILV zes`a8^HVM56N{uzdxA_a{j-}Y3C2gtiw~^?jF~;4FKepPxnb%Z4=u9Za38q|u1I}s zIvvSl-7Q})-w0~&Xwc9ilc_R)vKQ30*S5OXe*N6%9pX*?s7U;d)0Z2gu8%et`sUr| z*ESj-y&mf{&kU0@@KU4G^(dZt!%^e*Q~B9J+>ukKGx+_UzgBZYZ6Nc{(~TS`XF)tM!z8&D}dRif|WMCH%LtAf3xFJb3FHnT_+?exsMNp~|d zDHWA;4%=N3Nct~TU22!!hE}`N(DUfRX`2}KrmY6Sks_`x!H{7_~B5rc0#A2bn?<&vYS7p8D@?8qB%yR#?u1uEnwMJ+K z=JLZW8pFyrpMyaPC9E;vnX-+M`Yn?vnSl18MsVb*m_nvqk$Fz*pJ;)l&M!E#`|JuG z-0tV5OHVd+w92Azp**@R-$xdp*5A@ke~qlCjXF$0cAnfh`%vNYHu|+H>qM9m-Z8Kh zn&;}j6La@YdMZfUGnb1U?^jtZ=aFCI129RJh1edkfntBrUVd_0K&UNf-flPo>~S#6uGshD;p-5QYeo*vjPsQ@75wRU?%?o3sHkM^vJH2uY;mwm>j3kBs%(4Gx9y^4+g4YR@sqsHA zujNhlLHRY#G%pkrRH^MCy!UQEpuW!x^vJ4gSXT>5%aS7QDvMtOIoNO@5c%`>Ka zJ7A=XP!38QyF=yJ!D9Q>kZ3Wzv-@E%>`xFQenAlmj8)a9v}%5P1SSf~|Lh`m7RzsH zpb;?}03HxO`Hw{SUz7<~{JsFoLi7~g3%cP*EN3(u0X$8b0v}EM1*H~DD#&A|w|oLs zC^QP`U+S}%^(oZKK|J!@M!Aen@s5gV7AakibbHgBtyWb>KESPC0_)gTu0)A*k^A+ZcZOa9&K7k;o!@Kh$FSxHQn}|unumJE%Wq5hHqweSu%O@V zgrW}yde<`w)5c++h{Vf`BRUO}#71*(@?Swl0lr5hBXPOK{onYnxmxj?l*KmVPTHM} z;<$e}L3mrw2mm^~d2&M3nkr^+XU4*(o3JO#*esIwS^R}h*W7#g=6co9u{0q{EJoq< zxA{ZZX0?Mn@HNf4eAm9N%5S08_2#r-*SmeNISz%QqjAm8?{IO@sm}V)+lH9Ah-uZO z*Ch&TlG@67ZEHmZI;?=1VW&Iy?s*}+&9bdaP#^=B*~;9xD$eF+Snt9{dN)K>QcUud z<@@|i)D#b=u=Dp`-+)(T3ZE)+^ka@uCWbZdoohU<8gEE+QR5SX+Cx1rRkB}fCs!cn z)hE<~J~p^M1O{RxG!sWX{QFeeE~R(heCadv%5`AMk&SWe`zUtRm3%kas-bv4K1rJxgWh|A~O3pmXnB4O8x?4 zndBsnPXd1-+-fG&%CkIS7NVxH(RA8(t-{+V`-b<(Gh_76UD1JtMoGNQoxU9QH*cn2 zv!v-@eJnH8zsNDz9#(FdOxeU0H_qDIHh;eK>7cy3t8kdGpk~A58`0h<<%F)7sEz_FMoaUz0eiDj4qrV+DIO)1u9)?w z+@PUMx&YHW^LeEeei({vD(2|VJ+G%4QUbeFA5?C4j+c#Z3ucwVzkf17enCWzL3!Q# zC3JM{r#!Y&6<-)IDbMsjCyENHm9tl#s;quoS=Xo^wNkOGc2urA)&3d|JA5A}C+5sz za(GwBb>$6tuItwPDi^ZV)0}r#V|C9|J^Y0N=Lou{H9~_$yKJvY2_+X3ZT)eexSwa> zjZgg0fydg~rf1N?a1?P;RW(g^5Vc19fe zVOyx=7iUh`;w47J@|i%BsA1poVFziZ`6b;-WB~wd-@Xgu8peCaw3Kl~<%nmxj-NI> z)=$3U?3uC^*!aEIqI1%&?5^}*PzZB%(ROj+-P#1aoeJX;# z>w-KtWdg`nTwx9(bFAeN=s0!iUn%+}!3zV1ALv}^{5lzr9&yem1#@u*Y(6A8 zKe)%ZqhbR2spTD?N}q_2^{Q#!P^LE2amlFVg1^!cy<)jE=2VB0|50Fydhi_ucvxqO zqxc{hCvyRkj9LU)wi0`At$D$FhqCx$wv|uu(Qzo2qX#x zUeUZ8HFkQe6=l$1=Ca6l6U^-G_-pdy%9&~=H!=BrKqarxW(Cn?w&C;0#PoOxq^9Sa z!ZFkLnFiyf*kZK|v=WQsV~sM=8jEsf%oEA8oyl4AQp@pqz#K83#n?)2^A;F1U<6MF>VV#`8=oQcOP#1npb8C8#xtR7DazAMT3^0c?`0Vz^K&TC{2`nrquGmK}p zhy-*^g!oQC>38q~bkkHdKDW8P`OmLPsV}zNC8Z46R&g7opbUG8_8NDN@zu#`Mtq7m>oIM<|&GmIXx?MK$FNpa9)n)FsV;=FP zp5Cc|$nGP_>SEj7FEzy^SHgptWd}g?(Y}zt`xlg(vm+c5#9lXA)7%%-T`?G8Z~KET z*+7GoRj_s}_G_&w7gHJ`n0osKkiIHashv2uk@RHpvkT^oxlSBQq}`%WejixgldW_N zIt^gE@PTT?P}?i(9PhKt4I>ero>kRVH%6qY&2ukPrh}ip*ganJgC2}arsmfcQpUk% z!V!mj(hJia!PZ(m?3ekNXg>U%2I{+D9GA>wD%wqRRy{J$M%smen=z7T{MYk9!8&BK z!zm6f18?=S8LThYJG#h#UOB%Lb!4Z&>L~VFqlXQ{?Wk8wNxcal1-oz{(L$Sob!MrM zzo7QRDIj-Q`&o%VX8F@i+3*=J+mETiCFqteog@t4*c55Pr})S)DQL1dcLa%|vh7Q1AVkA|eKfNYgS zd3A^8xj7KL6Trn?n7n0R@$_iVu=yrs18ah?QR_JJidw$&w$rC5P8LNy*nSRe3oc)^ z+W6*$NDr+Yw`bgll0r2U*hh1ZovMEy*_i#=#qsgH$DN(5TrOJj`N3{{s!)w=e$B(b zAV1}+fd}$b>g<1}o_VET{RP=p3*&R9T890cifowRu>9@p|I=Fb|8iXa|DzQ?&KE@bO9VB<_K2!M*A4hcLSh&=V;qWd&kA!aPja7Qw+);(KA_Pcg^xB{lLdI(l#KR+7%9urx;cpv*Z7o3g-MG&- zor@CRcN7g#EO{Wdn7}etaCw&HMXo;?GMU2I17gaG^_Az3?~CpJGcWM5xAE2zbGr4) zLl5G+-qc;XYJbp|8RsRAlc5a00V$?io+}3vqK|9tM0$_-*8l$2n;{GDqIA9SymWB< z&+YrM9NJjksWiyGS{P1H&O5pYBNkY!pOB=t{Mqjs#u)W+d8}<%ZnSj*mk^e`0)I5V zx}5XuKT;)C()-?=6OSzLm&W-|cJ_ifb ze-OKcr&K~-f9Twf`ARVAe^-uNlV5~xRuZ08d&)abDIo|O+nrfAL4Q!BA%->>lP2Q4 z^}(^*+0SZClifppu+{dQKmG}2JO?(=S_p@kX2kpc3wlo`)-8OSw9vN)OYwJFDKvBEMJQD1m=Y_!e7)y0V zOuq~?#R;tMyq~DqeMy}LU9DNVjUq&dp&Um;8C2w57WW&Ic^MvR=j7$E(pvD~T`m)p zo8$W{P`cY_sy^5aJ2v(pDP(ri&jn*~7ul8T2DnnfT(09*Rz?5=^ z;$N?s&$DERxS-23aWsYI5-Ue*Q6i1uq3>5WB=&4-!{TS*ovyTS`R_D(?@;g7Lz=!o zG8WuzM9y71>MqUu>j)?689Ws6xS5A~C*>c}W*tL!1HpzT1XA}?23m7>=w89qT*uEF zXH>0hvs3J6118ZCb9oD!)%}^jrq~ZS`3*buxsNo&3n>I%$9es^(BrT_v`Q*dKowDa zXKkkv!#nL(7#MUJI#uD|zuftx?3`49pcSsCF4A$xpUL8aymz8T`H=dPXS)1HQpCcf zWSsZSwP`N}dE*MT(IyJ#FM;L((A8R!bjFy@6UAOh$T{<_U(OH^P*w0aKUp>7#wV98 z89}ReZer{n>UF$GsT?j4fG$66^F2_5Mc3lD;zt9cV0oY4f=UXP4$5EQE3ti88;YGu zOU5yc$vyLUZRFI|{v>^k1#f0gbwC*6kxYVHQ)u|K z&*LNGJW~5vsGs*$>M61l|7OYNfTOuiI_i(%u3`tntgp>>T>oE?_D@1~!*FO*Pgw22 z4u6T}`t95T67mL?O>Ei5vpRJVnM1_o?u~>_1E&kqwV>DElu#mNi27FHUxOZlQFiP{ zM_}x0NK>#YMSx9xi+Y`zQ*yDByQB(TuSRH437gH;M)S&T5s;cj2nu&gq9126`nK(0 z5I+&!kZCv;1;V= z&(4Oy!0`7kB(^UL^7Op`-z(mAhQ>ZjK2|bTz%k> zuaMrB_(zcbS76bDaL7hkBF7lhzjVYexwP>hn+K&;8IDi%{v{0ELL8sy*1ig7xJN`I4~@>GsgnY?#%dS3%%us|X)CK9^ zHssPwO_zB&OF_{P)Lpzn~naEd(%W8RbC0J!||jc<8%3Ft|Lj zxIjeSV8)L9K5{O=uB*r!lFm(jrH3Q)G#gnUCt0M#tBbkD%fDN9j4VeRH7IWxWZSX- zOylZN&tf*^=P=$LlMvu%eWwpN-;CKNBp-1oA!3C&lN5V2xrPAmR5LlT6mKaX{h^^- z33=iHSVr+C2%Sp~Q9->j0$@sldXZm75(lF=OkGjxa%{pki(+{!IO}E6P2@E|j&C7X z1i9-G(FeQhU61X)p5F6_kJW)fcRY(m3-;vq9jdnR-8F2MFhFDlvpT%HrAgwm5lolI zw-GF+i^>B%;D_j5PZZ*}^kOuLatGkkWWx2x(6E=(dG{Q38grNc6-CZp9~LzG4+$}o zuIgLP_c#y@h)1%#lN1yEaUCewTMH^r!*b@r0o;1 zwHvt%qP`L3-H$7dDdUQ}l5s-lAzdYB*fQ=B@4dvBr0_^gwI`aIo(tvoY~%#4c1|KR zoScPa-?V!69?lCn+5Na=Xba8jr{}xtksD8?u?0rz`E5Cu+E$0$|0n_DW;D_dCf5H= zdU+3svY8M(489KtJLxY5Uik`jMD!eYP3v3MTzLk$1==h(k(KiGltY)OG3HWx+b=Gc z1}K}^FLrB@^%67gzbbW6+*D^nea0|9!*L$Wa9? zd$1@ka6LsV(m0co%L%`5Afh zp{}sHht=!t8E>dpUM8iFpOxD#MyCDOTG+>_5B5>FsRGGLb*S#&g`HG@?$xo8R+i2& zCew+(dy-u@!4`b&g^Yn+k6-!wZ05xzz7Z3P)+Ljn_o@$kQY9bJnrLNPrJNMH8dy3u zIRL_a__ogB^*1Bb#emz^z;WpjAq@ij>TlxtJ$oKGGXl!OCvaTZC)nIA7Z6T5n?&G4fJ>V5Rq;vs_XjZ*PoO~#=GR{kw>Oj&`u>|u_^d=7939E;az~1Rv+2u} zlrG5D|9E`L7VKg}j$$~E)M#mN8nus5duYGvvY2`*aiCgdu)}q$*DCqBarHPItbIjZ z1>G?6eHPYvgqFS)6(55XBxZqAj4X9z-)l`61&GzBxecb*@cbS%@8ryEFb$b8adKw5o7&r2D;i-cpM( z8kcbTX0eOiLkhKO9wa>(G=X$7iA)c67^O~$y%`A}Dz&S0f#_QN1tDw-2OpLTMe{d| zO*j|tE(n2Va$}cm4u8Y(Hw<$&d;!M^ z0^pO*;0bT(4vM{^@s%t6neGl}57c#^z#rHwa+X&K60eRnk2aPo9J0Vyme|hSUyuW( zC{4lJ^{&9lK4=PWRn&ZcCF#|~R`8puuoSqR`Qiz3=@__bnZKgYUsd$#VtJh0GrEa= za`_-8%`=Rl$Y!1x3$u{mZ5n-FxMC{^YjF*VC@3?nISEGRWtfhilliZKW5tRg!Ym?Cjk^`p+ zR%#!oZUK!w*9f)47cbe;rZiTrg*IK5pOkFu)2R!pZxv+2)@7dlm)&FN6ck=zlh9Ou zEZ*J0mc(kLCFt;ylbr7KMHcHjJJ~Qz6mcHY9>td`HGzF^jm@Cs&-!@m_P^`b{h5enoeI1Q@V|Q10H^XAtLVrOa8f!PXr;M@<;AzAU_s#@w^XQ|FFC2 z#ks%8jNopH{wq|2`Bc?`adNa!#zA#!=MbC5`n5&9q%bm$)$;djf~Jv z=fTd+JtR}#@z-MumRz7dc#&(H^DjuI-Kh5UV9^!e3X^Hla|9ugqF{&9)b>2LHqk@n zSnJsr+XD57vJK;CU$UfLJr_aJ7l(CufyJ!sT|X0ik1G%>&l^?1-MK8+{<5?iSGJm7|_rj@=VKU%joOO^5Qwy#gwYHsgf!--V<=#@Bx?O_kT$!AT+cf4jP>2)rdR!ty2#fafU0N}8#56HNW&lmBz_U8CRF=>T z-!?g6c)#6f*)yO;I#okT3IrG#ryt{W{NZ~?q&QA%mRKNV-w48ugrAht zj6D~MEQ`(!VW!FKZ3m-m&`KA=zwqBemaZgJHZR%b9YrG+W<|pulE+IKFw&XSMA+5V z)HEln&)q#5=#zHtiY1ZSXnnha{NYp{Y5vR4Gyh8QvGo?eeFR-UI9z*bEQk&tjw8-N zL7Yn>hiRnXLzJGPQG$WTodS0ZD*od;f8TDT~8%gz{MV*%KaHjaqnrT zs5k`+XKnM-7d{kZq;kiz-zTTG0Ep)t-THMsUPltVbEcr04<&n$ zqXh*E1|e5XQtl>|SIW_%E?`&XKh_lT3Q%L7)gJ{T@HODK@^mYbU*veo&TS{&i>F(0 zhwR2SN32JO2seHKi+BRF$(v?9(DgR%I7a7V&N#pY5u9Kn+x;A(uUCzyu3l~|d|GWa zwG*gu_2_|kG~@$xb;S=D6UECNLfc2)$M{tcR9g~GT|-~iPvux=`v6d{UBkK(H0O+@ zKK=1e{tRS$x}P$3L3rB*u?6bEU`xVy9$GnHi+w18+pyEw;Ts_pj?w%<+$Oj77j(#( zdB0;0zcsvVjUSGchBEs2_+)lY-O1)bZ0=_JKSzNqRh8pt1JjKN4A38lGaL^a-B>N% z*&6(PD&aD|^zxJWsYcx`LjZ6F;{_uR3?;*HHlp$X7ZMiGX!!`@-dKb8uW9J)&r|8&|ZBzHODA-f!jSMyMn7nZFmtw8r2QqIm9P&db z1|?brp8de)Gn3ta)uZYoRoItLGbkHE!#15?(O0NGsH|p5Zd-XzNJUj~P}^us6Wf<% z!ok%l8fwPBr*3-+Y@y{Th#Nr@_W4q|oRKj-?o^^NHNLj_TynNwefEIR4H;{+c&R2{ zfYV(&PV^kHCC78-5>$+LO6Of-`0b;JtADltE!8H_pxko+ZZYj2{Q9pVIR1c}<3j#H zCjhg^$HlTKA#oX3V7W^0tDh_KM*!3t?cKiEWjh}2X4 zHY*BExi_*5J_vM5GXO(!R$ni~kgq_$$*6Do5~dQ*hm4Wl()Del;E*-4K;yPhdO6J*g`q}d{b{!V4tQ9+QcS-i+iR>)GG zmjc5%lq%uz4s#+>e_}{WhyUU2OFo69+A{nVAOh*22p^r|Mhan5G`Y|e+|qV^;r2rv zmiC2?t1*luklicGD7T&zo|&H8KHVm+(W2lVF?wlWMZE}&b5nX-j(v>#J*Lg5Z_WUb zD785~m0M$?_HizuB_l6nv0}}OO(et%7dF%8+HJCe*)yw308{~Ow#>J#8vy>%KJT2gFNrv>0GD57A2*HWEA243o;>CzMNNFA%zc;WMU zvzig{l%|%3m__2(1AQN4Vlvu8-Kux$fit4k{jEg4>9AICw{E(B8o%}jICL;5p}^-# zJy7$6c}h3T=!%<|zU@WlewTL_8&u#VkXH|`HRkNh1$ro2^g%R@N^faDOFLt5G$E|eN$Tnif^2Q@ zM{)fo8TJzri^6$ZL3~&2Oaf zb2^hxf?t#lJ(gOPI0(=z=kp6Hz=wyle=?m2(mn%EclPU?7AtJua(>x;Kt>_BouqgE z&6;oP(GOg|#7btBJ7bDL@WGAh+oam0mZmMU$kfsuQpV0ALhw|3JkJSV+g>J9kDJ?| zBku^$IRlO6qH-(Pp9$AB5vk3z0mpvwuHWWBD;Rv}$jzZ(8LNo12?|1&1pGesj!&-&dy*iY<8;{d$ZX651i`K6Y zgm$9bRP{&$j^h~ceu#nQ=Xs@!LrE-Bv%RSu=yXJ@sAE#IIV3dTac8(jb8*etGEm3M4ZQz8c#YH*e`7+hSl!c#d)D$9 z%b^ZSM880|Vdirmam0p+0PR|QTm_@dM;SH;YKHCr?(zNngGBS7V$p^Pk9wzjsi~T& z2(kLXj!nv_Pm9e@Hxg|gHx#MG>vG2Pw{DAtZ0m6GN|#cgK8PV4INXQ$?}>LQmI*Sy z`jN*qmd8a-#tc!{5v1-+cq>lvDnALGH>0jdv>04@hd67fr~GWwL?9UIOX8gQgE%R)SfO=R<^z_M1o+DV&?y5-^vqGHWqhT(03!j5lSpIpH#4Mi zYC&>rDomg;HFN86(C$c@A%E3SMX%MgKnReZAqA*QD;!%Ayv(Os=Kv?WFJw&h;kMf# zmSG4JB%i!0gWQ#->`1Qt{R41j7@({C4?<0hB;-Let6Y3ag> z{rB&FdCl5LXtx%u8EpaEeOGZMPUK`9<2WD-lFcla$R+s=V(~Y$M4PoCFHEo>MshFK zE^;s1$EuFhgt%B`4vn%J`Af6wP6C&{JwR7^9*2+h`pr}0Z%k%wRJN$w1f|!rA0CNi z>f|?5OWaG{D7Fe7wSc5)Wd0sMA^weDZv=R{%-_Fntey7Q4tbpyO|O1(`3o9!(%dX~wF# z&=H$5J^7w(UWe82em{Hu>5xR2++i%zB*sdS|31sQ-Ky+Y>h;A+0^7O6$yWB1=f^Qk zpya}9w^?7$YMT4%B~)gj_T1Yke``wk!=7iMOp1S1(CeT^!*TbeQjZ{(sJuuLw>8N{ zyZ9h|%MV@S-8#nIyLE7tjVk~+CTUx-@bEq(YF_l0{ExgS=+kd3Cn*9VrhOJnikHw_ zuvRS5V}_sS{{dri!Iu((o}_&(UgdgwY;@M>6X^Hw>+E~dt!3BnlopewXC|A3Z%D#t zfm=X5Fr7u*wgA9I$3{I|uQS%djrE0?Kk_Y$rY}yQ7uo&c-%x{39FtH1I|6pNvP8Viy83_4svhq) zZ9$y^{^w{w9MsaCNo8cqbR@;nCq&Q67i{i717PYS?VJaCm*<3!A=R70b1*L6POVAy zj>2h4@W~A6NjZXZvF;M~=OJbD@ww@^OCYv7zqv-uPtIZg{dtQeRyhggJUU&R&(-U$~<&5^0&temWw!WhDjeUNVp(NU)zT zm#0HtTYOIGHg7OB`H^89DcpbC zqR!fv+A8iZ=t-gY3L!;$KbigfM8!D-`R7E1@FutFg9OuWH&wk2rzHjX4EZaAPQBet zG_6b*Q^L`MHsy0qx zS#J?O)csxZ`n~6Q6s@{0bkvqfk@VGiN%#Ta+{lnZH|nuFP!{^Q?3jJJHNa1~&=S!Y zXD-$dihcM!VXL=ZPOMY~4W^!U)Tby)dwf<4L2gw8To+7V ziwYw;4<*h}+!!74gjw5YI(L>2Q0)rE?HKs~dHe1`76EtsleMur+YH70IK^F&v3qQ( zg*W%~>&>55bfIeRTk~JJ1=TPNUbCg!*0vkg{Q5nA7lQ|+zcLfV07`ozff1Yk*fzZ@ zv19=8wDu(uqw^YNE_6qr>R3MswQ2H|JT&}4Wct)-zHmKae3>xwH+;5Ou!;&yl>W@D~(RDj9j zm~(CroutkpjZUi0@XbrxKSZl76P zHTia>W)$b`TP?H}eYr+;4%VJ>uyd??5~moVr~=xx%F0-ynvpIOwzIjjA93~yR}8)K zB}DGat9|KQA6f4x^UEBXjKqmTzfJYu-fAL-hwpv9^8|C!O|LFJtnn_&6o-^Y&@WX(yW%60VvD#)L*+hl2BX zgR9K7Dt1pdvNf+>nV{MY<6cQgHHt>$RMiPIf3q=sAcxtBE;@xrA#+gppnPI0#=CdB z5T{<@A2BIQ`G7>wm8YxWg*}+B&p^`tFlNbozlQbtSl4WF>J1uhm&r1FPnPC@REg>` zi=I32aRS8A_EE${A;;t%h0%ULHVI}LDEzVMGx9>6iGqv#Gw50qmz?!00qg|1{#tGw z3^%uf4^kOa60-weg=i31#9+7tx3W65{zw>wUs!euK)*-Y2Yx|_srEa zYKr-Uv0vdxyqD%;bdbs=dFSEuUl7b1Ludjvwj6`{?0|9A8i_WpB=G70~joe|)OgW{%-pD3UwBVg=(V>jnY)d|pqC)mRV zkH`;|^a&6GuP?Em?{VLXHhg{-O-%?jd~tpDG5qp1z}Qx@#eTDXeF_k5F)$cWCY_~_ z&ut=jw{f&I#8YIy7Mf&S&qbicv;hCK3Gl3IL_ZoZN5B>OGDcw%pGo)v<%aP|g|iuQ z81Ute=*39!F-6dD=I^lwa||m{PvDNEO6ylx&fsM+=+q=w$-v=U#<;Mv9ki;ABB`11u-1mF%?lz*S2H$TTO6oAXVA-))}&~7l(pDlSg~uq6B}n+`&iUZ;B?t|1H0ie!EI=mH;vq- zhZ&b=^(q(qbMqzS z!gO>Lg47F%u4lgzDNh5xUMK1ydN)f6^qNR{F<=8x%(_|bqgzp#XOm6mzDqa$f&hx{ zS^p{@a3n(!5b=W=eygk3yA`0-^3q}#ar9A@%xqJcs9c4jNJO?$p?20H>-f=9K27+J zAZhO+z3ZLrl;l`#=W=~?#wcI4ryoZZ+Q;<~30pK*`2)MSI8|$eR#qUwHl_#@VvGPvRt-{l@@y%<2&|Gg>pWJL| zlXvmT967;1VwT6+HJj&qyKd(8QpyMCXEb0`dS2zSmx|!s4QN6%fXrQ(op>ljub2O3 zKM(|FGS^AEzq$xBWsRsaU?@}aUp}o@juWXOXSrU1djE;_sUZtW)@S5V?<_ zaXakNnS8-D+xBo?+5CwrxLZVVc-)AcNaF280J~d{T*Kap?3_JQKc{Re9Yg`?qBq&N z!oO!Q6&TYLn>!_OZ^rx#C2!RUeB##yj*7fol^n(n}780m~vU3p3U+$rwRwOf!9R9hrw?MU^cw1x;my2L(E>JBe=`U|3Y zQHp(Mp*^Z=pw%e-_Qr8cdUH_i)Vb4-Cf9H-jT=zM){X^t;fL-q8S|z|Cy42GZ}L+1 z4d|6422)>%y+sr@fZz4s$i!VmP7xOUg;l(_eAPY&u{kL`JY<;IjCeb4SDi$ZE#GzX z=O1>CNGZcPZlcB3F0D~#aSQRfst}G4-`N}{1?2b@!n1^*b#RQY!^>bP$pXbN5!U&P z+Sir0*{>bbhwj~wfFys?6tPg1;W^sh=-&0+(_%(BxX#Xp%Ja%FRZ<*$=};vG zobmg#owM^RILYIdSsnY4gd-Orl^2^kJ=)lC=PTxFy4ejHSEzBzGBc*d)pbQsBE@#W z>Lg}dqoV%(CTR$^q-ZjfQ6`BsUPk2HuK@u|VqDa-k3pc(g6h^U?9FoiBc2C34YcU3 z-hfc2R|khL|@G8NV?&}wWATzE1xqLE9CaD%LSYA zf^Fj-{_+5A{&8sGW#k^midyBqwVHf@-4Z5r8Kf|Pp}`*{Vcpx*l9kB1HPg$Wngd#m7bEB z_yP>}v;gAwNr&XIK!^YHy7o4}A^2ZcQ_xNW3V9`Jhg?F7Lx0iQ0ke=1^V2x`wr_w% zthk!*$o@Y^5D1j!3(>k>ZsUnXJs!9Ch91<;pzZ-)v(I$XzHXd+ag>-;nMx$Xgc zzw1AfkaJ_*=S!fEmjCKkJx=1^EF{CzTmC`sEQg?D>Z+rN?VIvea{Ypz;SsDoo|z()bdRW@WC~!(uq+$yT|?9 z(3US8wo(_W>NuyNHc{)`CKf%Gh)$h?B^5?SoQn7Q|6=W}znc92|8Y!2x?2zsq(!7- z3ep0CbWH^5?ifr&K)M73VJO|B#^{i4>8{bekz;Ioe)sy}d(P(%c>l0-wsZZs$8}w| z`>pOMut^m32AsUHs}Eebgze+OJAo42fuT?9J;yY&Zk0E(#K}eU>5|=gI4a%&DnW*2 zFSLyY!^Q`q5=)^Cc&4Y^@9xxAQUG2_9N4e@4Zl=W{sufPhrSAVb}RlC6_7Ijf=SZ! za17KB&4U?=IRr(OHWDWWGPHwnxk=_|$N(8Zw=N>a;ZoYe=2$}$gYxUYgHe}NCv5&* z9Voyc2cS<2Pe(X{%^i|JwWX5fgr9~IJqx{j-#|7Dgya9&xi*?a^sLuMJUM*uC8Z8= z#;Ij$wv&|n<~8RgstVlO{AR9IRJg$Fm3SCi($KeuYWLT}m!?n>moJUY+(5#TdB?(# zT`j@;^@`_|IEtJWk?u)PY{W;jjioykI*>P$L2zK_tSawAQmWuar$XmPkKmYjqZ`7u zMk~PYqTH8+MMV}If={A$bulM|2-%GDt+WKY#IcCAR;**n+Z2Afm$lhjQ~_KSo8%lg zAHE9-GVL9;N0*}5QN4$J-NVtY_4^lErDj^A0=k^76@;!m0zTU2^jQf{EcCUVyMqu+ zM5|zJtgE)u`}Tw*5L_riK`CK<_u_CO#?f+J=2VYeVYLrNf2>H*)q&@9khXo20z|lx zjkU&g!C@8&A{DNA_ixZdLSzOr!OEs@b2ltfra-!vzv$l`b+tB$pZDU<_tkayEr`}1 zTT7ShHYE^|B~a0Z<(la)PZ0_0)qVQ95?C_7<^4v;8BR~_rm#Qa{l1RYfR`J-{Z4c; zQbzGd_w*Ex(%L(t(}-pZ-2cP_Z}V09TR7lfbGn<&RH+%JE@uXoNi<$^GXN|jC1tu#ZQ(zj|A@thW+><-QB zkXI~-6%-72KcKYi^E;S3l|qml#w$`>9x_^=Bd)z_-uZflSNY2X4z5le;xx!}wZ{J)1gQrt9i58OA+!q({e=(%Y!_B~aoph_Yv#6rF;rs9$lL+(GF~xz)yRty8@o z=f3a7zh1`@Fwl@8T7t^_Y{9C9u(DLp%%y$>W;v)nMpnT-7vKFUw%n&`&Yg5X!e(D+ zinOb&P%B^F!z?Fj`IFawaF0EK+)XJizdNL3axX>o#ht1Oscj3x(*KBJCqm}%uV4H} zwEq^iJjc_N8dR6^@+!&GF}S>;rE={Qc7vn}bnt(!*ZxjfOuyvZ%u!mXEqiUu}Yc319*et4z5NdTay9gyRO)%L*n zCMXMk1M+j8f0gs@9~}++(BG%;gB*rfng5UK+H=^Z{buOm)AmCi&xdC^!TG2{YEYV+ zdTk+qzgI7v{5jW`>Hku`vtLv2v>^D0LfL+!!#uJ^r@eu-tb@mhFF$fUyF|9gl5};P zXD_sgb&;24OY`PD)Fpkd2LT_ZXH1wl7~j1Rzp@@j2ug(c7L?gM8^MUywp)gn*4LSA zYzWBsgk+n|>Y5JETv%zHN^Zo+IoQO!qV9{KH&neF_V4lecytH72#5p$q}XRz1o=bD zE9L`v1h~bHF4(U*hRQ*qD7Ur^j>o3se^lwKM6KbFL$4ir`+E@z-r2#vP)?-b%5EZ_ z6Q~BY8V=@*B7K(H_!t#Ump=AS{F>OzG*ZSoZ@=%r=-<{b@@22KL0Yyubceu^cIU>( z=EnQrl;7ir;P3>w(vOdMKP@CEGxH@HR-LP(Xq^1HDC-8Kr5X;?;( zc#G6^6lYwDo5fC>_nU@*QxX@NJIwS5Yj3i5DC%#8J_{#^v!hopCQI_|(yr~_hz`?U ztxqL|v)~>`T5)+FIS#0$M>MV*FK{rr5{FrA=M1SKats${xJ^<;dL9tmsH^;_qMQvu z>t`2TpTSLc&yLYS!MAfU=udM!9CRS}lFZYh`pH7pkr!$WJc-hMh?gUthY3N(8PWZJ z<7S?VIJU=L9wqwUOEc)13W$L&OqvhkW6Kp-&C!X9e}Z0(lfSvT&A2Zyu<`z?5B#Jt zuY2Qb?`MURI;o{g;}|7&ysvWg`uZj3`ne@MN}j(sz-qvJzOyEw^6B=^+blw3nt8_` zH3Iz9wkKmN8#L-|x1R_}J3GKGz}^kL;zZtn0=cd;7BkBCT9ehfuIiQoociQSBSt%Q zA$m;O{e0E?eGi^ITQ~8{UWT4Y_`d<5_z0V@{4rVOh)+aQ=Y$q(L2P_b8|58nK*#`r zf6E$Ay!o_@_x%$92y`S+_XKoouq%V2FUEPg9~z75@YIiEuQ)Iy1&Y0*bmYw%3fP|i zVPg{l=Rhk*OR%XCK<^FHCE=DZ_eH zq8z>%{Km)v8-F1I)RkWb|4#<{z^KfM;CMpa1~?|9$Otr`t4w`3t`~0@hN5pk%VIGE za`xiW>?-7@rU7s<3Qj7$RgDil4(j+<>Unm+i5VnZ?>B>5;ClZf3Iyl8Z~q~DA#?ij z&VNK8m_>{G3iS36+pEVgPiJ=p#_V*={+S#TV*Mvh2(0OsQ^H0MYrvI8wLe5MB`NO| z?4n*hh@~QOFI21{_^$(5-4iyM`&?NGAlGaf{)4sQI-2sl!aVX`zhtq3>(9_~jSTwo z3klydhB5KE>j5z8;FrO!F8FV0K*H-+$UuY&-uDy!-8_f>193T*_kgp9-|d-NfH)Qb z^kSKN0hh5p=>ldHP$re(1vd@6=9KgBE*7u;2N%~_Q9t9hPQ}RST5`CN&O=J2-Qm9yOsFy?g?!V|tfzjSb|YL}e@a6{2P#N_nC zKaM6eYTM9T=yO1$K{;=(RvoJQ3XW!2yRZ2CS;P*U~Y+^$UC*6r7#?9Cl z!@SXv3r)1#bAndT|A-#&Bjei(kxo;VfuGHDxXr0mST=1)()`^vgX#?!Ljv))Lh&-b@vc6B2lHoZyGK2>8&K!KhD@Wmo#@ z{kx#=yPc2v|4H6OVc!WhkqoE)N2DMX`nAcO&XMZyN_Hn#{H0LsQrW=I6;@E8rFWmf zdZMQ;(x}a|WZyr1u5{ap#V2ynmyainC~6#3O03vafgq5BajVXd$Ck$1g&o5uvW_}D zn`jf3Nc#D!PE5ynaXV=6{GhQo8J|prKRMktTizCf9X}BUt4zBTJsy;IVDuOuqcGT< z{{nuT*lBh%SO4sMAqz9QIC&U)?^SY2;lL3qYgFCi8PbNHnu9KIj+d0a)VEgO&%P`| zK|1xL50=6rw2}aRMt<;LoLPSrG(oK8N9fFCOb>$_bN zC?7N9I}5)d{J+}xN%619Qay?oiqa3YMfk~XZm*Ki9c5TPlxjps@gUvR>RU)icKGS} z7w>6f!pPq3;S6_z=tdlKtFmc4>;8ym8ubIS$;(-9ihd7e)B3)8GP!ejG}$A~`Lz4a z^1bj}r%O^`*y{c2$4`;RwGsPGIUT=PHgHD=8cIer7Z&rf(m^^fMZ2l915ml=tu}fX z0Z6P@5aHG4(>6`9PoO@h;W3bLE1=ptb!6LF%om<8O^e3h?KESy;hN(WX=gzojfAMlZ*2#HR7ywle{DtT?_dDwpnP)^<<*5@tovkU@k13K z#ophq44axP0w#tkOjZ3hZW7S*j<%8Cy_a=}4Y^f5SX7IZxFtqwlxR+@jkBycB8ORY z?tgno_H$5iW=m>~*+*Eb*Ap0!+KE|7&t-4vm&jkXNKYQ-XA)Yl_=qv?4|Y1imH~Nl z4?=S(O9ch0qsD~6$Hf5v$3*6eh=QhXC7&cK0`@!)jap@HEe_4J)>J$TRRWv0a|!=o z%ERDbBasZ$_4>Q}_cmO0dQr1m%zfZ>Q;A&H&D=WyPLqeX{>Lh(Ra;pyNA&|k0@i+s znbN17WeI|`#P;K%S>Ucu>8!%#44aSr%op%Mf=}YWF3w9|n*QZSXnmpl)ri47Ua7-1 zv;wG2PA^)17O;t{MBckGj$1*)H&k#1+J)$^M{Bq|$+J_J{Ahar_@1QS9!*uXhuwe& zC$5T<5WdO6^f&3^%j(5z+h!AX5`RR&S!)~MEgSh_kxK1grat@!U`3)fM+4(Gp0rg~ z=O#vhf}xm3KxRc-@KrQ20giYi!E_QwZEj-mRxcx!o4=EO{R%>cOfM{RGD4x@sx?#i z$)eRA;47Y(H*$2z5Cv@?S@;p*#jN~$)hWn5_SLAXO+==v&&{lc*7-zGGG;2>8SJNz z<+!2M<@&=IpmKyKG<=Bfj{-O6x-*3qMUPF~s-AEW#cOo+D`y)57OwlBJb@$MNv0kc z&BBj;y$~|2&aRF*8IYVu&@8Olt)lb$cZ$QodD*Xw@2$5+(tr3h*9*ndi7s z9Sa-_dXS7Orv1}G1Z#`yn)cPuQMnn=+=NB$JT(aA2?J6bcGQl?f=Gf3STnD2W!tWu zk^DL&Mlxe!OT}ip9UBH9l^4rPy*5zNkEAcP+~pnAWr)d$jJ4weD`PU za1^Jn?aKVY$T_-G?z43oaSgZp-0p+o@X+Uu zvn;B0{vjpG8w*uNJODQtfY|-}E0Et8^am_$#XUHYvtZnls}o`BoOEL6FMqzA+>uWV zy=<+Mej_Xj7Ee!qBRiRL6>Uz?+P)Gx={VQ}+HqAj(;ao)%HCU%VY(x&L_K~AI)cAZ zQoYixtRL%~s3eAK{uZ#&qFD&=ESx|ACD!v-*|L-~>-jggQ;rlQspH!YTx~Yj5@4h? z_LYnI%jPxld71J}RN1!l>pRuyPB}8Nj^}|#epO5rWxYC{o@Z?Y!hZ!Xk2T?7mlyS3 z7bbp}MQ&zVdE&qF!r)PgV0JR(ZxfVEK9mIwWzJgM$lkv~ipAf1z}cao#%3J91hSdI zN)hZSPQ8CBQaSrG!_P$oa8bv1N(T`EFy>c(*e3f~z8?6+7ZT9wzj)A&DE0R~XP%1W z3nq&q$b++fzwtsveoGUlP^#vrp;m8CCdx-~cguQgApxDdFtB|*W49uCM~$TZQW>j% z(#V@tFQP3BQfilpQlr#4}X#?~uS`|M{SVTRup0@?d_9dE6 zF(NEyph?MVMQOCK-E75xk*d3{$Kk2j*HDsrTp^ZKVdSL9ffEiFIr^yh+osqeNw6!F z3v1Vg>QA)G=%(q-SN63PGP~ODbV&7PNKH_cqU{I7hm5`pWf?3jE=3x=vmXRNxXoUsTXL*eFO^~^wU;I(;iJowXyCen zXm=>jtdU%BlZdO5l876s<~-${O*Um^P_fYklm$8WeRaxWdbGVFgL>GLg}c6Nqn46r zr`b7?!HGZEl}u`OK-Vp$nk?sb-vvBTq*1mW`ls&&<`&Xem+ge=64IaIBF( z$K?UwXBjC%>(J3U;cbkOhfa`Bl^rGPTJHC2BWD{{`25TuU6Ga=f2cgBm-UyC|T?oP3JYVv6QH^Ojq|~`6s5Y(zYwzfZ zRN7U|V%|(YLjW$m&w)H&QmxBy`1=#tH$k~@xv*Fhlourz9-;PhXevPz< z&=(N!=y+w|_+R_@?T!co`=cfqm(+osHe!=(zHeM-^9-iOg43H>H_vqpaOjp-A#ocl z(MnpX7E@SLZ{g7k#%P*1WGcOVe)#*~%fpb zq0|w@(espjXpl^YDmP8>{fqqSO@O{Ll-wdT^0u7^{RQ&xE%BD%VqrvKq+Yzlobe2% z?r&v0G{HN^(P~&_La>r%&z~r!yd=qW4NiCvU`UFb%zl_z#?5`mR-rlhBnX+n>H(rF zs(4a0TBf-5xJsLe7&|%FeL3R&WS;%mQ58Oj^FiTDe`~pAD6;>$y(@jKQC{)8!iG=A zB18;5XNoB5G2*y9>zJ)>)x4iedOF2CT22-!QHjVTPAet^numu7=llcRz_IUF|+=H@_H6=>M zMtl$G;+!xvE71pg+!`hmv?XnVYi1S@Ur72}gD`y4=Ax-8d0a*v!28MgAHEckKN9YW zDMpsfYn)qBVhHMFZH()3N=Q2RIrLXegZph$KXbp+ro2?iVU}Nqa8aGVtDmS{+HZ3o z!EFIG<~|Sc;V1Rk6_fm`D7T%p9%Bw<6mVA>x2B8PgVhwlv0BF-;O&(Eh@M*P_CyJ< zuP7695X7ecP1^(|$Mw%Rwnlf0KjcrxhNv-y{xb8imD!WNZDPFarMKQMTmErHCrWI9 z5#T!?sYE8BtCXNLT`-nlwGpnO8j;W1rjL%6M>&Q)W&iYT95{VHa;peG_69e0%$6!k zWfWNE>JpBaY*z+CH=^=n*B{03!$7se?@V&s>I)0vl4FstGo8hEr8R5*<-oJYgwiTz znf|8^jV?j3?4_a)b1$CaeN+9P61)zR1DK^ooQfxlRR7uoZ5~di@lMKl+HbVMci9=fcD5M;Zg2UA<~AoxKf7_!VT??W4E)e#{@Xfpg4SLG!u4@oB#h z4Sk7E$3j2jeS?l`igT}xZ(`buEUAsC33;m7)7VJB4b_bEt{`t|;>{*APTM>&UIgsO z13;t7jDO!OrW2c+bo_eHuETMa9(4>LX;uG*6xQqD-vmsyvrl%VkL$6I<%lSp!LEVF zB#b%8?p~6mTZyGJU&3`ZVQ3j3>A_6;{_FHgZ zy>f|1u5A=_CyRT@JE=|hd4 zZ1T3Npsl&P3j^F82A15{pn^aU7Ko$;X`x*=!4$%s_0H%guQDT*a(-{&4Uv4^T&lSn z7yZgan2(hpD3!A&hxkPTsb8h}1jl>OvsM7IroIBXWP2aHqzWwrK9HclCI<>(1vC76 zM#Xo>p8c@FKghzwH5`tbdS6?|5zxr<{Uln*Mj`RbN zwAxw1`&`!)Q8yDDr!-R#ayWkY0~gAtKU*4FZO)MmD>d8j_ALd^^>zT! zhBikg2Xh8YOvzUF41w(WLbGg>vpO@a4w!^75boe)sjUakI?dCjx!nwZ+`Hf^EYI5% zG0OZSbTBB+f1mv)Cu;h`q{Xtv_zI!)D6diXfjWliS2rU~>(|BS+qEf1tK&qRL?&mN z+i!#i4@dnRlVA1t{{%nP5!uV^Pg`)2+2S30w*O=NKv1+7^LqBe^r-vM&eK(9_3<=; zuM>?=$~rmzLT$X>j6X5Of6DPcA2KeIqQv@@9w_+=y>?MrSVL7E2K-al(S~@RpB9bkGY6Y z`mFjpl*Is7va*fS;9CHk6fK8{U*y!uL}OVR?GOk;NPES zSG&H4X;MFVC`>~V9tw`6X;zm%pE91uGzWm5xv&fT%xpZp!LS4SIuhGynw@h5-_3v< zM0};fhtv&jJOe>BJebYNw$lv=Or&kyl^0`pwrcWyDd7tZ@!kUv2a0uF1it=ZBbRn% z*<8bwC+{IV!W^WMZ^v3IhLy%TAG?QRwwj@lGz?$5=(D=%TvYFW`5UK>HA(#2P{=R4 zim8Jic-iplN77!4>}wN{(o)F<&FaPETH5RJQHeqs=487Qqt9Jfk`syM-fUQhd0zq#Es$>N<6O;@kFzWPH@-h&`L~uABM|rX|F{_9 zCXir`v3iA^OYn96^{}>O&eX0AUR@uNV#;~Gr5rytq)xrHp=Ng0fGYxhC>Ub3K*nDb zcq!N417xd0Ll@iSnvrY$m3Q$yUy$>P7oUf!8U2}!*ryZn+P%muX9UnyyaB{`^mOXOeOO7^Jf5R zXNn26IQWIOJdZe5!gLuTzre|p0zQoQg>$gzCW1&R5ASVEv$&AHlixx9C*RXy>L7Du!W7|cG8tnxIzonC=?iG+K+P-r6 zRaR7#S?3GZucmSrm={IEl_0WTtocoSTjgYI-YBUe`NO-? zcHn&Bf&p}`vLOM{An{j{vQH{Y_Rms;bA)30;=lHsX#fOLr+q3~LO3=aCQ6J(tQMB+ zWt9;zo9k?({3PF9=FIPdOt@9RJ|uW9Rw>PK`iDh9 z+MLy`)gi`y!bXhFT8BpOTcP{*tqJU?kwDHRfPOyVh9u&swvf00WeS~s3< zr&nY|c7#a?1_-&jlT1|EHJKE#E{wc;wE9x5c(O&zN5J|A_wi@m)kSbJ0b-PHDpa(^ zanr#<&pHrJd!dYTzDo{y_2|J8h6L?>>Tfz_o?XNqyHJUa;sE7M#UzMjZZGTLk%wVk z){46C#h}YM@F^ujfb?CpuLW%2e^yrQ9e(wAx&Sh)KI(ftEV`opD8s{6beogert!+~ zK|(NppDuj?((n(nj;~Ngz#II#?fgvZvgrr`pTL4!gOZL{iBNli%Z9Obve?cXoCPy~dWUMZ3w9=I^n* z!1pJNYi7L9RSj;Oc$+7Yz-6x_+isDhL7a6qYTh5U;Ri2uxLTuEx@!O>PsZ$w$%<1b<#FCt63A=BbuWO% zWM%CDKqGI;o=rw~f73$XzngV@YiIf)+aFm8%aIKJ+#0+hHv$(|=iw3f zCcnX$?Jp7UME~3{LPo{%$_uMgp(vRaL@%hSUmsjzK1%R3&m@xS#;^$KJ)OB=&E$%C z^-ai#lJx--M?lT~MODUMmea2yOD3~?u_my8?4KHxk{+h;zxmV?M;7;T9p^mi+p*~0 zXH+0PU9YYAa_!~*Y|%50tT^Kq5E(kGG@!0~v8WUwr|$A8fs@lVIec_(gk5@3lE7xe z%n%OKf3zU)YtJ(F{#6Go24q#y9W)$ce+8~+_GwqOA@?PMyBJzzCZWQt!Iq{;)**XC zL}ZE<_r^j5NXex(dUqP({F|)iqnzfNbG7E?KUe2nrTK&ccq;=o5j%w&`*zjg8>`9X zdoP}*_u)e<>6Vuu`j+vLH($mcjeY`&p`%L!=00#N5UNdl zuC8xpdt(e+z~8bytWX}UQ7zCQ$Dg4Cx(u{` zUJUPrt_&r#11Ugm6IDXOzh|qs+J0z$OfY694Qr7hj{DSI$U6IaEDxM&&658f?|i~Tv3+y1?N)f5imgV1 ze~vUlyjvR$|Jx}JW>GCw`4p?F=g`PXQ$QNrx&9S6<`DcgkKyQzm(Ir2-lG6JrZ zzS9QiQ05*>``}_%VGJhM;SK7vEA<^p1+gOO$PJK=SFjLaa9G(VK?4u(3qg3<>_4EoM=s_u-^_v5)uk zMx25B&?(e@Cp2++Nca1(Tq1uH_8>&_Jx>im948>MH%{17-NiY?Vf2m^Mz6W{!wxv_ z>0)jau+qmUw;?Ltbz;g?ORcr8(V~Cr!SdqMV-c7taM;6`n()a~IY|@!_v55&$HqOwOdTguW`?!XmG=k{@nh4UqwMOUn zVA#i!y*Ef5j-a#yQh)a%2j3yTkzH1WE906sV`f(ckMBy`!EK|4w7#1D`${UxwCS)8 zxh$TmKJ)j&j&#&`PQ=DU!kvA$LK0s!Mk?b6@rDDI7T-{zDMwuf5@Q_IrixAy>+oVA4`fmDZ>J!W=?6P`kCe&b<2B)5m7lB#4#~f{)jRa} zn=sptev;~vRK)~3_mJ5wqMU4Z2)CHbt2e>V7Y8z}W0!G)YNn`_j0LmVM>ffM5h?s} zT^a)i#J_oqOujd@t3txq9)N8)93SRN*>CwNa-*T;hj4P?)k1F%)EM!a;25R+r^aLV zzH6!9H>vUok2u;s&F`+(TyikMM$T^d$=k6S+keOtPJ z>wDQNKJ#jJBEhXjuB?6MX-}KZuKS{BC3jVo&Qz3Xo9-*{V)WPqqZ@U6M3wW`RPwF` zg%B0LcV9C4mW8>OGSlJRT1UvuAg$~j-+}i?O-VfF2^DiUpW2|^Yp~G7630r4HXGjLm!G75Dx$CNiqC&)=hJ1q z8PhlaN^z8S{~T>_1*WagCmpbwIU$3K{B_-O9h39lH*1{vw$e~DPOMq^{JP_YqbQ5F z8H*c{2K0Lk?j|I{1SkaQBa zmA#=$lzj<(OHlLNv_my)jgUQz6??Q?sup)30l=Vri!uIs&vq+&y78iRImOec)#rwN zn|aGrl+~jk#`RLO5BHrkM#Jx<_CFVFKzH4$2gLS;vdr#UK6gyfDsJmIIax`gN^Xqc z^ioyZwDMnPjq?0dMm%b#s{8JU9@VOJ^M^waA9c`5(`2cu2%NswT^JvO5rl~3nrMb6 zA+4E$M{=2x=$IaGkQ83Eoe4=9r~9>4d8189(9>%|h3agDaGMJ)`(mBVz2 z;XGWU_jT+8f!kJ;EB(NJ`UYjA7k^=V?!nkZxwz+JRo2WZz-3_R;d@Pn1Bcr>&9(G3 zREZRA<$mnEc?}@Btj4MU(?dyHkvvRx!mRU#gD(ie!1tjp>4Kpxw5Yvmch`^I_sq=M zzDW&$-VU|JibYrX98)Oap2gnhxQYl(9WPb(XK1Y+N%^_qy2QlBUeqC}NHfHtIuWS| zmQZw|P_zb$K{}RIZt5;{D2#dy6R-6y)c)SLMrrmb5x|v3w)X}7Wn6S^$mjov+U|zN z%$#NX{dNWd+unNOe<^AlUK_Pnwn)dm-%XDqShyvIyY+EBbGdu2eW?G4TnhdpYQZGU zkDfWk=nC5v6V?Ki#zhE=EU}&1V9U}W9cRRRZNGt7ufm*xhBP&vQ2|BdGNp`R)v&e<+MzVzK_HgW!L;^sl@3EILBq9m!Qx28omx9m3OO3 zZMH|9x$RGF?-sLXYKh8|?XnpaN6D)Y6IKrRlH6%sPvMkV;OzX2eI%jyTYjlHk#qYE zHpe+}#sm%M$p{+xY^>SR{H6q|EBy62Z7}M~>X2Ag;H<{Be%DR?|~+m3OP-W+MFg7JdDe;~rFig)%o{pQtLRPTb6n_6**4 z6^f&$))Ig6g`%kX)j*uzr1}AkbB1HVV=pN-3IGwmq=jLs{rAvGufnR94Y_D;f0b6t zC1V-ZTD93WB}qw)Wbs|ASK zdmi(bea-_u{}C-}^;Ji^Sp~4DPY5II8;tI&j;Mz81>MeN%1#to86PE<=7*KWbxvNn zI&628DMD}sI|)l05eq52Ue8|tVwBSfy7kPOLo*{-+MTqI>eO zPIO1xktN3DJ8UMjh~A?vKVytGs1Ka2>u!_f`07_=&}9LST^nhx_{T8-W;&Az5f*kF zBlXyrJ>p*0oj%8i&Z5jxi*lNi@!4j;BaZaLgO1rI2`Rx0!JN3sNo8q5051XKjmiu#rq00By5BeqYpq|&8cu>4v3;vzS%qZ*Ij0wY++A!XA^NZd!@;DukM`~A z91$MPkU!pqmWzkYt`oc-HfiQ{6lH2fkMXcJX)R`b{jA#Koet>1PC&FWf4349Xfg;m zT-n+T?&h9RByxa5m^x4%KS}O7Wbi148a?o!Je+J2jWGL>rAj!TtogyBb+OJ%M(e|5 z5owvk*Gaa!Fv1>-x}4?Qg?7o-)@Tdmyb%qX{+D?WxdbOsir$S_XjD)E#Y8U;ltJ&| z+`!V^^nZ1J_Vt{B zFLjpR?q}mVjr3)y#Iz9Pp}O>h4$RB8P{hF*;#9vrFjJD(B)X{&kQRuqL-0TQR|Ja@ z521VdvC%Y;`^&x3E0^b2ciYsICo6c+#6s|fQ7=rOMsL32n#7zRv2yac!L(aegxTV7 zrgI@-Q6H<9%1{w2X`!N8QA68x@EUY^TppRxwFf<^^d-48h*E9}=y_t}nqu_nMU~w1 z1M{Lg^2TL*cmT`g+V@xGLdqMsds>i3RUX&ZEg1HMrMSKSJ zmg&t{Eareoda6)*vTJX#HFeFfc(}6J!5SXb-$!{@St8-jqjn^kcgInE)rGa3kh?B& z;eP#45ody?-(``}AqSuX zTXR9dMFpfNK3^WaK8`tQf9Npl2PRa?(Kp3RTdCBV%35Eo-#K}NJ#<2a_IZ}IEm?}5 zV<|v9a}5zrk0quj@;d)55Li=#IcIctk6;2vOd=urEdZj zF_#gZvkB*X2>qJnI@c{M{uUlQ>~QHkOk$f$ohSc3*7V(H)7Jwwk#e=6dRAgpz<6_n zZ!e*UdA!(MO+Kl$r0g@O>1E>_6V3;JhsN$M0OPzS_5zaN}N+7gLg(l3V1du6F-fSXj|)aXXtb*u06Mopb54Ui>pF?@s?GUQ@M@4&`&JsgB0QeqA-rz;L-KK2&C49b&0 zTNU(uzHzgpwEJJNrUcstBj2zqqv8IV7b?x^lfXZpvN5XbU$bTfxL{%V2F3IlMZSag zOY_B%7dUpvDu5R+*rF7dLLp_XzESOYA<=_eJh?Ise_kq(7tLkQ zeYz{dk?uTtp-X+p;+QZ*Vwq5AXS8DQ+05f~JCd*1XncdPwl)n0CUKn7j67b|QcLw* zq-8i!KfS0jlW~F@_emNc-br_}oR#@mh9R={IkkL8b2fu?pNx#W{Uwxqt}ttIaZSDU zCF)0C?L&51)d}c~wr)j0-)4_-&9cq`XZpxcO=pyYkW5_a@<+Sqb-J=( zbwQPjmIbu9kIc*|j)%3gS-me|vU8A@cm5#F6qcz9rpc|A51+ z$}S#~r!wdFz)RxhQV{vZ87xP^;%~c_hL#1M;%#c)wG~RQg;e}arSm#tJ+61!D3|tj z%!R>PLLYD5 zn3d02H21P}xxEs3Yk0R`b^4;$FYR%~q~u2WJ$K91yHJnNtjB+kMsDIO{sHBa}#}0n;0@KaRSqD&b2`&xT_6L>FG{6@YGd7KX9FVZOM=m@0sai??td^N^gsqxs zk66LEOOer1d)=LC6cJGLYYg@grCIzft$imXCR%V&f`h^IFetQ&po`eGPgdszC}>VwdXwIsUV+iv6wuRGfz%~u9!scN z{=00=In6nAAdk6qRYgGF~FSm z9;@lY>RS^HAqyK{wQTOwkSFZrQ>e-jN=fgajC(Q`?FzESD(Y64zQBXimZ`Sb*OHbJ zugWz8vV9zzvm9MTZZl_w&xX?SwNg!i2I;eh4c8*<5Al;GSs{x1%rQiM>+GXpOLH-? zT9a!!yn2L^iF|UsL$XKlvf4EnE^7aJ0F6Wo_;&`6+1>t>JycQ7NeQo8RWrX7jThvnL zxvTL|_PNYy!c6K0xz(bA{)Ca(T}35AnRlS-!#mgPhm_r+FOj^JWvf3YuZFa=9G@lY z&zO72r~QAdo#!`PfBfx<=q*}w61@x2Ye@7UdhdiWy68QE=$#NX%4lPvcM`n>QAcNt z5@j&zX!E_Ze(Txh z=LkDY_gg=dIM9uTcRRCO4J6dcX&=ldY5-eD8ggJ&yXZ&y%JrQ4&)+?FM1Rl_=k{SL*4+8ZYR zlQgnj`Xf!5wWyYs`N7f6Y4zoP6q@T0P1)OKC%R!KKncob_s}aWB=eCmo*vX)`FN_U zO$}fO`}0-=JXiK|oCGrh;8z0o)laUI@ zi5c)-O)~iwYBB480>Ghj#2xNJHbQ1>`qk|0KEH}Oh5*S0B4^k9Y9WwzGi|;+6=!qT zqik+)OYdE=zBww*RQ_rxdv+*`mQ6u@P_$z*OuWq)CW52w{oGuzLudc*{k+eEQd<`rqp{&A zR*w5%`oXWdj*V7{YrWb1h2T_#yx?%@9w3+x;m9s2V38DEoRzBinS4bSq3DumHsgNc zzMCDOhGR<+Nnks;V=|Uw&5^@nRNhI<&c%pd54bLRY1reJ;S?_UTwamS@&wxcn6D4a zbwHfPD$E`EQTaK)*TxQDCb)|*KL};V|^^8SevxW`^Hfp_^g)E3aym`hq;d zj=BV1Pp|Kz@2Wrv(ujQC4;s|z$Di!dehn)qDQ zh_7P!cW8nhfIUFiEng}z+7Ii)&dXa>x^ti(r(g;%H|f-UKkY0kz#w-ZAR{-G%Sy(0 ztJ{>Z?1nE)Rut+oO9tE)rbW*&jC?gVoPDU`Oh7s}=D!6uq{vk;~8CK42zGIS3q%;_%>b9o^Z41K&vR+ zTOrgLG$%feo`m|O#%^#Gjm8VHbvV#5*$wij9hqyJcMC4(>1Ba(jrRgVXA}wnftTfg z^B{2@`b3Mt$(w|vg8L7SH}&_$()JUU{?q13Ywq%{wbRj$uH3n;As9xUcfA*%LvSm^2c_A*BX+so!?lWLJ%4Ie8!+vMP@q)(T z`&QXto*&I3L_9wt|L6LD74u&v5wO!+9CHj?C?c<_Xh_WmlGwL{i9EQ|-a%=s{@)Mp z{Hfb8->*~p-#R=#Y#QM*Q5E_LiQN`on+w%?o>?*`$Ek8ZNu=id zaxIpv&W11WkhZAhGA^}Sa?470yS1w-FnW-*+*Ra|%3dpe#$JU|5?5je?YCpTKfsD7 zRLxTAyqyT_(s=c&HaQZrT7zFe;wutL`SdEpF3*Ek|2%58S|yss8~%WwMg+MOTX>d^ zTDx|BY^zn2Q3#X`r7h0!=NLHD{&zy)+TIbP9z> zT)ISoYg2NOPun0| z9U@C@G_*RD9!F(!77zE#x8c?+)kJfj&5svWj{bE%K2EbW&$!7ElP7|o!^GdsfM1Gg zd4$`DgVfh>9^QD^6$P8n2f!wU4Q5Zo`Jby9D^CO1lSg%tJk#7MYS!8Ro}o;BN!~5Y zW2|&md>ZtQ&&C;(PCn>J?+}3iFwZ#t>Yn*t;lR?bH1AZc%2T50z<_NUiCq>CcQoy? zi;5*jZNCV3Yz)Zxry2U`q05i=L8RCHb${P8#AMg!%J0dZ6+&v>3el8?tF zxiP3L3C@lG;y&77dTTST&9_`KoG)K8QJ|rg=S2X*y5S6Jh;o2!l5+6YuB>x5<))u< zV<9exU%dE4KLS@3rl-N>QPy4$%iZj#w27>y@APw36@dZ-5zZi8#dm=>@nZZDaWm$o zhiCN_xW~5Zi5fH4c=uhJ1-n68cZ+ykTQe{%7mw!lU8q~Vp&CV0fV;yeSy`IeTouG- z{(<|f^_S(Q?sivejvAwb6?i9hY*gy^Lv6vFdnhrCA8MgXwLV5@Z{(C7OqI4Slm2iB z*j~>}$P6NXyS%VAZm^=>EOUWzb9`M@;;FN{>#MNXo)W_+Rvk zw)yTL`Kz8p)dnTz?-mZW`9@DQ_|l<_S>fVKC_L8B!Q83#y{Us48zY}GhB!=qarQ#B z+pqVz4}lSIF-3w0rR}dmC*4ZkgcyvvK&OkD{wo=l0?BIWX`1Z!hT$!&>*I@ItTsnT z$pO2=Fk{^!xeaakoD_87z2$8j@XbTrpQ2ipI|7-091QkRn>ZRx;zT z@lowTC7|A|WKB%^8~d6&nqzE-$uZI=jL$QsZT8@AVE>(kNaYw;w$BH;@gPUxcks+3 zi|dt$enADBHb{zJ)TeKbrU>P1j}n}sy!!iryZwPwrk>f!>J7`VqG1*PTu0(viu-|^ zAo+_^6B8<)-x$EW0^neG|EME{m6&KD>_-8+ygzWmQ|rbU(Qwi8=guav9@f{JbkKM* zuwJ#2tEjh}TE%=0ob4q5evF{~H~v>Z%dUEWk-v(29H6?$-La2#hixLx%(|u8<->3~ zc=y=s`b7=5SsgiykA>4#3=Xg%Xoh^*pg?YXxnlv>9nwk;_Se=ZKWFcDGf0z_)O~9b z4}W6h>&QdkXx9M$2&7tdkP z$DAo84DfIvHSSIvJe|ODC&khBc?IZ{B2Gu#Y4pLAMMr5GZas$-x`!#GBFXm7KXzx1 z54uz;iavc&#C~voZ)_A>aRwjU;7v8rw$V#2Z%?3UYD>0PHejTWdWu-Xmp=M{%q)~W z*WhYvEfl-&EQ*oq&6b(buf^NGOkO}Z*M@g4O`+n1^&Q6iAQ3{S)~ zHPC-}&CRq<&nZ=Yydd0f{y}UOO%dp8G2^E#YyxfJ%6Dvw_k2N&?NiR2FLD(?}ak&n^`CFIr zJ?oOh%z{07wke#%)nF3dUXrm9V&-n&@i?(d{3=#A%b~}wS0Z(5Btb5y+La+LQ5?*7 zC#@cM47cGWI#Xuy9+eB;YwH%S4rS;;(lj01q5DFrRhTxrGdSW2cz$L0pZn)j{DCWN zPy!&k!2r|`%4AFZ@LAr<+2+hWo3f+jB2T0+ng^3oHm6zWEheE|Ngnymkr6suso+K# z!U9LiWm?ajh0kCzgVEvaT9WIo@b_IY>m4hT!uZSt?4X{YoA~CwXsC>To^u_lZwT-) zgEpC~$#@BL4~{D0U+KoL4wN|BQthckJ>T9wAD35pBEJ*DInkJ{uh{j)EnKWYRP&2i zfX~A6YMA7)x1Hf*i>b!&S|`WCLfif3zcBB!;PYz?jwWEvTDf7gQ?q)tz;To`*lHyx zzEX1i$&T}y3E|mC{ygz9ZjlZ%uw0{+MB4beqUIGal}y9ur4gruV&3@vS#`g%(a(dS z2$NSsI@ArMn8>HGoWb=PhO6y_oIitcrflHr<9qv3KqjnYZCbj|t|32ENMg<08O}+f zCa76F-W-n5F`wav{|f)RL6ACZgBxm7v7YmM)=aFC#Yo&m*5jSH3QA{MdMvO8p=||7nvC2=)x}LTc>@sm>Gh zblNH1?RB_lmRm_{W_4elgtQmi$@sxY-ckAQF1Qt5UG$(aMjvw6HTbau*4C14?XEd~ zz-`G3V4+N5}MU`?OX#u9OK$GgB&q&xHf;nAK!?tELm9` zPS9)*F}LOk?$C;=Hat&x!Di2XFc&_5d0QiI7m5uA7f>?$ymo)mUu5`(cA(3tkz7&S z(}hL&3>Wg*W*}F%j!(mP|G7Gr_k{-*)2C6I3J-v?kl1d>^1)nR^<-={fngQMnh9*> z+ID=mYVg%!4%2eS`M8b*GD9iz@TA_ILrX4kQu}k?F7&mCF?NZi3OjpWSJ4um5B`dm zKDz1dJW_2qTiF$2n-^;7%E_IyY}QKeP~MN4cStDPItazt+N1&8AZ>sqvZnENAztGH zOuTga|6zfRf@C~zeD*8=OCFzKUlWr9rQ{!X{lfd84&RY{k2wQca|>)PTPbE-MG^wm zYRZRX5uJ6lS2TFhqOP6O%llv0*I#}mIo6d{)qnffiy$fb zHZy2TbmV5t?etNJ_CFk~$c0;amG;mLev?vRw0LnjL6T769^$eg($VS?CCQ=uwsoHT zr(4>iDDZEn37kBR0o^22>K;*JF~L?Iu5X%LQ-j4p-v86{1B3x(BI7o;5u0x`*ela^L_rTA}1Quc=Bbf>EU-KM!YC)mk$bhphO7UFTV)EOrH2In zt+dzkP+88Kfp$4d$mpUqAht*-Q`>@(2K@QX7l*w}2x^4Dv+PwRlXIQF5ML%3;>1Wb869oJ> zEd+JCe?LJi*ErzDASIbWfP>F;xzl29(Ls4z?~p*j|5KGij}GUcPcg=F9&{EC zV#|d>?8z+0*bYXjN9fiO=9}(kL@4|Ier8R?srv~@hE;3PuL%}1>g31vhuTK%<&e}9 zXHH&&>twze3)u@n=rqQkfRixyC%v_l-dOgBzd->OwrrmQA7ZFykU=H8k&Z=7C6B-^ zvpbe&WR>~IMm_bne*Bs_a*Jqc%YAd-%zcO=3oA6I#~i~ zxv6AAPcQC_Iu!g)`a06-4X*VccRXvf^8BEE5u^JbH3YBLb^O#d39?CCm2iTwvqvfc z<8xXL0lm^irb`^D6Qpq`RS!5Os?onDU|sx%i#w@$st)3FfYbQcaBE3qLaw?3<=m+s zF$ATVm*FxRyMCNPgTl(}DtPiAR-xlAsQ>ajjBIqAY3yG89_qP~QZUy0C}tjX^Ge`k zCCpwcFvBA9I%yHn9+^<)&5eE{qN5elGGm)uZ@n>l_(6zh2QlR%f)aE!KTu%E9W>4) zr&S?MvM|RUu`sgnq&ECdcJUep!#iul z0MZ-QXkKqI-h+5O&rT}}+-&+HM^3?4(L+3rU=KTxmJRezM zJ~hM^+Lnk;iF(3XEyk;I-XVB1lP)bgub0tiqH`4H4-GR}^Yzb-FVlD|^>~V`b7Rko z<4#YV6FX?>0Jq%txJrw7Q|mGJ;M7))KfVH%xU*{Lk^=rtZ)-o%s@l$>XG^*Dzp@e7 zXF?Xti9zsJT#Fba&VVvTU%v)+c}x~S4fwivWzCGDV_45PpR}|@ z#7+Q8q_k}`+Pm7)-=nSm{rM8z3}GFJF0O*SLph(>yhEm>RcD}hytnGHu$K(Lim&hzcy`bx`Ek?u zJh{`V^Ms$?$LC3sLm0+yg&gQ_^Y42W&Tg~z>&4H^$sFD#58>BLPYsSfNAUH7O@}>d zPQWO-t%J_L*OI}Yh(TmAL7*$)6}|1^<>>7GBQw}u@O7FXZ^JZ$_(DhV0ilw%)Ig#R_bIB5IUU z4NA={2ddlAopKU7AtBd+^Fo~feSv3>f6vv>1r`drHnw5^TODW0_aTN^XvMQWRjcS# zujpAyZJqgBZ`c5kx^=@<%iU|h_vvlg6YrZSz5Gfv&l#inkT(!ex7@Tw$C0Go{&tw| zVg2?YIcTr!hqbv{jg=PZp#E=>=QG)gd^uAQqOP1R8O-J@Gxm9i70&iT%`01iY2EAE zMyWu~z_G{U@xW?Hzz}e!^I)|zf_66{H^OpuV!~9ZVr!-vY#>%%+z z6qx>j^g5%}kg>VGoOK$~0Hac)HBrKkSQM#mN2DPnJ#(I(pAdpmD0g8;tPcGEg5gEQ z{Cq*T7TLodj|3FXaoWNNIc)FCqQ03$Rj)K}s_yY+ypN3s6j)#BNpzZ-oE zGuw#~V=M8$>8HUSH{~sV#o2xLxw3AE40+Baeh%xF?wAnQgbE>t^D5U|SK?xY-Q9Mb zbfruAO0lPWQAGR0eYJ09b=^4!pQ>}b;c&x>B)2Xw8iF3^DIU$o>;0ZK(STqGr8svT z|5BX-f~vbO4oq^+-jt7;FaLaf$;_V(wD`W-LHeWmRXhPe69Rb?{K!X2yRDcgC)V~{ zqBH5o$~K$nPclLdim~bU`j`~k-^F^*w`&5T%^^>twm;DEMXqCEo;8NU7<1&myuJBf zFpirntNZ5$21Wb<8H{R_c-RkpS;Hgk%ydj4>4^O0=pkPDzwwnBA1JiOUVAulkjW#> z0LZu6-$t$xPi91#Wqr^Y*X z{@<(H=efQ-Hd;1hjhgPUb! zhRJSJ6r`@HV&rSR^F=Brm&0wa38w^vtJZI~ZtRKs)B&sOe^{9xbVEEzSgcw(+p%&A z+i{l2k4~++udSB%1Y|uBX3Q)QIC0m}BiAf&wRS;c;-pB`ja4vGuc*I^l{9>&^CtQd zIs=Ba1q09E#SU8nEeA)p5kLBL;!i$g$>T(zM#gZNllr zUg=KLx^Vwr9&e=UlGO&u*^X5)h2zXeOCOSQ;s&P5Vch=Vu^RX0p)%@F|Hke27j&&@ z=_tg|Cl(siK8&1p7y+nV?SK19&u3eHoD7F_=?KaUJV(od|A+=(jnzZ@S3a+drPx77y=vy5m{)Z(r z7kY>fg&YlqQEic@7O^5P0hI3rgcIHG1rQTV&b#t=4Er4mz6&e+8(kPgwP;X$wQrFF z2JBlq_8(R=_O9uxD<)`VC|%YBOI;WyJhxl}?|8j**~#;x_0|9PHNaLb;%&8t@W?dX zABTY9AFya2RwiGRxAmtS$xHw^XsMu;T)T|N>ZtN+|FfLnfU@&7d_rIykI%Mox7qu;nF?_=9S-?7CIBk6dx{QpVC*i)ijh3vt)&;apJu$-y7`6It|xE9I}S*NEox(F>LmSo08 zw=AJF+)jFF0uNQ%)HehbI4zUXF$#S^eaOI1wtvY|gx@MRa}W9<<`)Or9frGem{Y~7 z-qFGrL5+o*jF?OJuu7lcio$Kn0kMW#Rfn&maPf7N%#uZ@A~HctY5&|VHS_Q77FDt9 zAd+T%xUG71!smxn_ISBS6|Nd{gl1p4W`oP!B~eE2&aJu|?%?+nwcwM%kiV%l57YcO z#D>KlX5p$gaot=t?})GWd;>iEhX>s+$o#9Ho{=%8A6WZ2+10qZ%h!4LpQbXMs8LT6U9&T@Vd7+B!1rCoP_2GB>x;D!eo$UG`F$efdIcc^IC8#eEaq z>Lp*BzF5fb3k>V=Y&Zzhr`hF~WYOBR&e`0ZpKEFseUSSL#$B-(!ri@^Qzd+anU>tD zV<@^uf5a=k8!UcIc#&Qvm9~Q{pt?0FL50H+!G<$3w5BCJg+>j9Lk180e;_-U4y^Cf zF9x17;SDP?yzLm`U-CPx#DGS6X+OYFKZVXI$sAnC!tV2qF;F>N%c8AEA&l# zGlVV*=X)>|{^UrAw0-m7#3IA*0R}o4G@TuoiTx#AZvhWxj1KIkN5SdgOva|&n$ZuOofz1)_jFN4btQbN6~$6%EZiC6Kpe@)DBc%wrvs95TkDAQPP|g@~QqiET@8+ zl~O=EyYa1ycp|MzCv1utFRasq8@BFgg$xb;0@eSXMOii>P|-yD;T3g~uzYy7KW_0G ziZy_}X+K|f~@k_9%G5*bg^}4Yv%!Ue{Q63;|EL}y$fYmEnz*cF|F2e42ik8)n zz%{Yc&jGIo+i>d)*VMX#t*rT3-ww7zUjLl)yga3t1aNLo198^~eVI~*3IzKRx8HJL zk@6uXlGmAo{f1k|&HrJ=uA{%$`BZ%vFOJCx+@ZaxWv~4CK|N?<2mxI^4A7q z$_{<#u58A8h+)_9AOJ7yG6Y~?f?jA9ol(la9wPj*0iY;AT@8T5yg+nDa&4B|@Q_TMK1l@}6 zbuP~SP=ch|Pdyb6JBCy|V2X%ZTTvoqT%f9r!{<4T8k~QUYGs7TObafcVE0WF&Vac| zVz(@FOiN@}k!-3c4~?E_(0eSmuwaba^0zUq`TCJ&?t6$YS3fi(`+h`mDC!c-E2roH zgHZevO%`y1=Y2~oV{aSv64hX@hNKwPXs^#_&fK{lh8gl2B-_9$9)nqIwsV1#Ld?V_ zbCc+t@3ZvLr5z1&@TY0aN(a;LNlcp2gT0KV4~pB9T$k~J-&S^B{tl%lz--X=H<i91GX!22>vTtUp5}`cBhN{fDKA ziF%LV2FeRTjv@~CvvbdNDTG~nPE01+`nzuZ`--(#OB6|k%frltMX8g=DWEGowrh2+ zqJ~Vt(8NHzTdu{rKN|70;cHYE;m6Q&?I3TCcLemg^e`P?t2`rXOW7-o#yLF6>uXP2 zis@oD*dnJs_WLz^(iFS@sC5Y$vN)=)|48BCK(G(#2_HZWRkWW)#FxD4#Hp~V;#RyE z8VXn52=qbsd)TJK>7`d^dz*xd<($~JeFJ5Dzj*%bkDb!WRpi3AmtEX#i+hYxqWY#7X@= zYB=!Fbe`h3_!?Nhew^!?Nd^L0$QNxpL!{juQ_pFAE@Qu=gMp}HsEuor!zCKIA!n!bNpq)=0 z4Y-ZRLRS_n#!5K~|F+SL?}Zi%maR4wWP{%N3gn!>gZrOaFOW9;Q*IE8-leCn9F0-M z*DP9hB;6eb9UT~NzUk;-aUr4hp8cN2E;FVwSfTM!HJHdj4#3V!FW<1y0=^_fz+XD} z_!ivFn+L>raCZTS(mK$5-y54nIeRm4p9^-N*^jgYn=8d%roLcG-{_h@GuLH^#Nur1 z@1zT-(qT_g9sD}*f}1;ka&(4k3V+}(toBc$HzSSR)X-C?@=w4ki>wSuW551trJGdv zN+*K<7nDH**ZuWNDN0G3@x)E+O|j`-nhi!T6H7|@+9Hj%T3KFg6_*yNd!Xs3{Y|$< z2|WK+Y_5hDdF5ROPd?tE_Fuo5+^0iLDpJWUmqr`wu!~vO*YNkvJDuZB@>kT0u(~=N z8cbO|vf%YFN$?DeVK-*43DlpqBHHj)%=ek7p2nJzJl5|jr@t*)$ucGxqzd9Ke2pG$ zj|YMUESP$8a2P>ra5)v93JK#&{q(Zcm)N>`;J)AjumoIK|S;48Pvm@4omY1sUdlzXTs1I%wP6d#ZiS2@o37u?w5E8vU?|Nn;|62;vF*x;y z`^wyUwye|Uhx|h>vA}Fsg_0RM`3JMZujk&&rh_>IrtjIZmq$l^&)wk#4*7GaFc_g= zx0*zez)Ms2dd4YSsVr`(X$TX!`DGvV!OR9q*2JY07anW;rF4Lw(BU`Bmh%Oq80;aQ z$lvNB1YysP=j>h_FNGA z&!GCKHIwQo9X_O~c+9}KuJP0q%g6*{o^t+-8T$PdaQ`FHD+#926$iivjYi*@WUL?|BB$EQem9Gb?Kj2VHl&b) z1Nx{ukL5(3XKXN_sv)ROiz=&q`((QK*!7yXuSR9R7rUPG_#xCqhd*kUBUbF*W9fv+ z>i|99Ei&wMn^26f4--<-L6ds?5X#Nn8j)i&eP9<(jzphfx1>5a~^I&f~NwWvBh3ZQG$`hpAKpB@OOvV(a{8NnsTMrVUqLgq-dDfB z#7fo6wr(CO>PRr0(5|?j!D+2XYmntxgPSoE zJk=+Hq01NI>bpt+n&<9_W-&8(x#GP^GjSv{vHV`~(=2_2KZTB{2ttJkSFFRao-c2h zOW{hoxywaHF=552qK0$iv%X)V>nTHYy}C4g|D$Wg<{+5Wx(ioMSTM0kYN%yG;jM_& zZ=6amg{;*{MU8x1yN@%rCxL%J3Iky0Rl&-bI&*7_!3nw7#4)$$*!X;}0@+{q)we~L z^ird5(9UAM-M%OgO88tR*OV!CR|I z7;J+k{2RClYfA{H0RFU4t0EpdK`fr>R&@Qu+OaLbDdNv59uBS}gX=|kaDG4e-tKcW zZ68E~KNJza(w8DmEW0Y%HTUO(z&jOwUbl#@Nce6qG}iICxh%h%;9%aG5b>Z5d4 zTNk5SzJ@u)@~7m-LfW4=*Nuh-dT2iB;+44d$M!R3y$Iy?fl0)YhNF7g7C$_U&s|9br1C7?SnJbo#;&NM?B+_4 zG09$qrlD8M_FaW%=Bo!S|GBPFCTfG`kdGbzmZEdq;4L5iY@Y%%#32T%AI`lbaA zg{1i#D^NY_xz9!X&QZBMwXnZGzCK`bq$Tb1IwW;GAfFvTWQ}#Qa2HbB(Yv=hpW3XJj{*k=CU^og-1sG=BgB3deEE(2q;HH2$ZytUFD=Cp&*wF(-4!hw--M(Ur6G!m{GQEaN#kB7^2uOmxUVN;h}ci!_$0ZDB$ z)u>zpW0lQCzBLj&C7Sl(lApv226r%38gcNpB^5o3GL@JHW z`9d`G-{e{L_Rob33$+WE{ZECIH^b)1hpVcwu-y&Q(5h(G9i!&6tvSIHPL+^oH_dfb zwW-?W$ZKi%fz|%6Nd6U6S;p`#h}8+2FBL!d zUZg1R5IEEOnkyYYNlucvaJ~F5<=$KB@n579H$Ni^y$+q`{oI3PT~-W3nkYHj=|X$w znf&k*5QF1Wr|x7-HALP3kNG|>H-NF~zD6@`2BDF|GSIW_CE@P3i%pz!nmp(2Z{X+W zD+?s8e?Ai$k~z_n?(H`SVGol(O<0*lGua?|GycOe`i$Ee_sOd}sZL{>xEQ2_u|E4nhSFDMSOqN$q6$9iZfS?%!up=} zhbmPjniXB>B^>DMa^T>o5-5CB(;*``N(0h`;&si46AD8zLQTLQ_{ z#`VmWOt40Iwb_nMmQYb7OW_tXzPXH6)n^U4CHR1pL7N>$5`1~@XzN^6Pq0`K|KS?U z&Fy}LE*hz25EmUYx~uWoO$hLw3v=sS^^JyxTGa+7jGt&hE<!TB4ilcn!#co1YaIk5LCY@_SVWtJ=0or+b>u6gfa7m}hU4Hc{qLesLZBT*w zq6q3DqV5>DjizDc#a{?_vv0VRh4vxE;|e7H2>ne;;;TQ2E{fbwxH7$BjCh7h)LSs$ zADw;H{#jasC6I%8L=Jb$?}}zW|BruWsIrD2X2e)AH4PFXx}s;tU+i9!4>H<|F*>z~ z_6_jqZ<0FIF)6FrHP;e_ zJ6zX>xbFJcpZI`vtN^W z6Le&TW|?QXHk;}?Na76!~;89ss~Po)mKSaOJ0bedv} zoM=z__RcSD&Pa4uPSu-dnIL9m47(N2OMvm0Tr4U(wtSA!^eW3)q? zszMp&JVquMB7;Ad?Ddv)s@`*+1U=3bK)PfHDP{s@p#BJqGrJUj zoDLCXT`uv10j=-t@G}ni(Mea~ez1b!2jolsxt;o@wVHx6 zT+LjbGKj)u3qz7F87k^t!5o#pId0*%giWMI2chkF%m&SR>`)4!u(zTn!#b`jr08pI zDBcQb@wJ9*=eyKufkYSArrDfsysJqL?qMT%g&uu=v}e=@ z&Fz-9Kk`HWq&iT+FveDA?%7@BX~W7x0cs)wFY8M-3ji^7>@9bX9b^6I zk7usj8RSpPq3?bmhl89Z9$lRb%r;ax%l`4`*` zdbmNVo^|5}y{fG`lVLpUUzs#kuyM_vJBwu1gYf6`^>j8pQ?;!%;42dRT^nVLZyT$e zB#e)Ch9<@9bwZg$YC-7RvlL=&DuZ+r)_>t`sW<4za5TA<&@iv6x^ zrd$3+uUYeL+P88l_K3~-TJ!11W-aM{0X7reUUIAuhW%!MwV=;>bf^8Hm;cRetdyeW z@=X`j;Cgskpce)&rcZU~}GXqXa0VXeI z(;*hR)`Xi$jsy_#+bR2#zdnCSoez-*%vvoWXG z`$p73p-=OE>U>&FVq3UnIkFq;qf%11_?WBl-P80*Pv0!bDJxIMEJ?pH$-RC+GgR+Pt~%rIipP<@8Uatc=h(a6iRkdVcZ0r+DKAW&8^_?Y=u6Q(u`n6{FIW9)dL{)v#`Ps z2+~*#V{qr3&oy0P?Nnkb42QzHSTWkZS$91(z1M!Yn^!HEG3So=w(!y`NJC{I zm>t;(_O<3N0(2T?l*GOhX%Cw`MI>}7e4SgbrCYKnnIH*o`FEXfXwYPbm0Lx(FQx&D zZ|klg`1p%R#=z@Xv$hiS&C&vq{kc{(D&F*Bia&kP+y-H~>%>!~3|9n)cvQfs1U7t1 zr`cVY!hreE2lnd;0C~=HBWCZ^*-EkFiEIxihw1!(8aQ<^4%nS3l?{};P6b`BMTZFt zjuM)x0XLZ3W6~EP?{qVA#@~d-qx*6xu2}*?A-M=dR%27xX7_^T!RPg$6ik(F6+%z$ zhNN9zGuSA|Z1wbs{G?HQ2S=3kTYeT0sH7@MY{(a>WfPOmbsepkScuKwYzFH`FCRd3JnCQ5A5x#W(DGwMZS z^KFTiTFc+|17xk;V{A9{^89(tEmYE35Lu`_9P)?12DA43S~vTnhQp!N%O{X#OmA2? zx8vB(Wxf{QTxhLTMv!|r*nJ~TBE3r689=3zNnBORWyC}OhFcy(h+Tuv<_>2pF{|=V zvY86iZAi^|ad^CZ<9TFl5+Ix>keXa|td6tTDI4Pw%80j%BSaPq=W5F4q=oIZ=tk0q|HUQ}y|yYX)H?TKIMP*`(5Ktb8J z#stypZqQso=FYS~JI{xuu^hO1F_YJB%>xf~t0UW53!yq55~vkAD3yGMZ;f5=ic0wA zpE1w-p)ARA(yW;B9oS`xfbE?dlXsGdQyH+A(u#h2zBx>J-^53GlM|&5ox2G)n^N3B zSfW9c$<}wT%F|`HsEYO)KwSy+MCwe!vpwz~Q?WVm{5rF9qPbE@yz_Q@0UAMzx>*pX z)fDnxV0y7yj^HX?Hh!dqi35|6KJL+WF==9wyU`0Z6{K#0@~R z{D+k$4!H;2=Eol!2JoS}&`OHeGZA2Kqm}=AZ>VOc<%Q`i8T>!PeuVsgSoEhWy74R` zX&NsB7KPwz7N~dNA={O;0UB`Q`1gV?cZEX!TI3@*whZYztY_V}T!xQUWpLu#%is3SX}?VD?e2{F zsLka1$U?Wr)sN~N@%FR?2>h4Xte1cKk+wL(6YCSU+ul;TT{`uEewKSK@jOkQ$VT|=`E;87Z8wMBGQCN?==F_OXw(7Dbf>>-g^Sl zJA__C3lM665O03xJ@0+)A8^0j^I?BT_S*YdeXlv^m}B^pecv+QR8j*H;-+WibyAUsN*zoMvz>qbjxXdL%zb{KHe?|mZd8+_Lp@OW1wf6c-9=j+1tFNG&NPi;Ey|rv#Kt1qsa<` zC~t#)`8c)(s;*3AwPm2fB=r8*bSD*hIbWU&mn%c>j5P)Q3wl$90VKmmCh87K#U^(@ zrhY`LJ3LK&sHSatnR^CLJkO%d7SE;)<>M(BKP;FaKw9T}3=Kb9)NJ#7V|&{i&0gu1 z%Z!=CKd#C%tFNmzVcU^JJWX!2D74OV+>ltjb+8T;8L)AJ-hXh^Rgmi^?*sEc0(Z_o z0CtLW!xTD06(x;VHpK7U?Ywl?ez^z<)PC~#;jz}L%)nHc*~tdz1w0&75;J=0VANW&?cOuzXowGcDks$Ioa z#Ak^A);Y_VZn4&DVf*L6#fh!q?T=GbT??l1`Dd1XSy3RG@^9D8~EV*o0)E7E z$C*aXQGDf_uOWB#7)6bj?fCeBslBfK_HF9x+vDgm|GH9Ghf*XZ-&QP{MgWMms0tU188@-8Vxgda3dCS&jT+M{vTSYsEcPaYsQf6dYN}yD(UW zHE;x@+0cU-WaT2#Q02we+XLy3DnV4Ajks^VR}5e>&uZpO=!aKh7u13czOwnSzhw!Q z7(eoL^o``!5>QqE8=#6auBkv^13@6mz8U0ST^I2RM-dHImjyMMeaa?WV z0YyV=(_mqhh6)_RADcp{t1?&Wq@=ESI32c$NfOesDtk+2eWg@DP7N`;8-J?wBLo-` zJoB}Wy5CjGdU0#>AFkFmDeS)&H7=vw(+fAz=nt4_Jp(?t5k6JF3*aeW~t%f5axm%s?_`1t&BgGyJ7T*|O4_1J`qL|KMlt=hThgB_J zLi#zi1S(g4-~o3A*(L&4lQJ#>rk7^y9C`ZQb{5#CQ(3L-X1) z!_J9pnz*%^@qU=WCcdME}N9JH-j)*H=pZ^_nYHj?sj!dl-u@~!4(*0sZ0Jhz9_0Ylei zRM6|7T?7**qeluagP}#9PlD9i$8N!8qMpc0p=NLbvjFzxW~^do-EVo1YD==6z9&_X z4veM3>fDnsBMj%j^VvTy+K~@?DxC*f+wjK0jHG94t-w{!^B0c(vU6_|k_MR>NJu$c zz6pVmy`b+!%+!VHiSq}uYyH+kroXrcOtz=au=SQYNB(T3t5n28MV8Bbf2$WX#UTQJ z3vX$%@S^fg5FU^+U#&o~_4{V2_T%A`j|LcxqaG$fz7s3lB}f3jD#htoDC&P`3flN- zD;L$lNIoH<75wBMk&Exh+lGd!+)w*XLW&+D6c%RAFE?feCcGAM)V)+kO*3A^dDhMU zCuOpS{pe2%&uwVwv!MV@)g+DhQV-@0hF8lWefu7#Fo&BjeRZ+#y~4K)6Bb?w3%2jc zAc_K4*G6cz{flF)ErhkEpWD}Y`_fAhKaml1^$8jqnV>rz*_SGJ7+VG%I&eI!Prj?0 z5FAK_vK&?jV4&Rz(K^G$H1aXqujMMgoH=5Zj69QXIm*Wd9lHyL6s~YxAr!N z@BSltlTrfv$@oM57ZntQDz~sB!&V*P#Z%SBEiDqLbWYW^f=CA|7@g%HFU2h8Gzk{+ zWiI`vb|gTpwA6_{W3UvmSRXvE<(p;sg#ha<+Bd5d!Uv{DVIYo|`G`%UFEL3c_&5CBn`3$LCtoZC4ny*eVd?Mk&ln?-{9nNBw1c@8jsO{h-^*xPx zn{4`C4+kXN`2xsUY?rkQLLqD z#V(>4uhx{AePUiG#m+ZdU5 ztp&1t57hO?yar4oUl#wU<#=a|(G&cTP`smak9I{r^%^rC8yV{>IHSYcc(L2AUOOMBOc2Y7$3-0iX;di+2BNdgLcP5gfu&cuR`Jd0WT~kj z4XOC)ghfS|e*7e1F0nH&Rdh)FiI5>jt4jREMxN_pa*IBUs!CM2uLPo9b-lO3$-kB&wLJk?IO)!6cVdY)s!+?o$Wrah^#Mv$M{4`%m0>}96UqK&q8 za?RE2e`dxg-G69o=hnuo<>Yml6DTHN=Q&wl)Bbe-1l?H2b^36{e@z8eVpYu`DH6?a z$jix!g{3}A@ia{637Q=ycUfu;DlXdTa^nB1ye?Xb+OZ5)FWiFsTF>*3zw6iD%ku2! z>PhX_Pm<&4BCwsmEKN`EI=q_svz z$kX)Ens=nAC_x>J%X1mZeXSmJBgCJCd43Q`oC+krF9Y}6z61LSJ^fTj`XaYI+}hID z?yibk-+GbUJ=Bmo#@V zF8~)s1~zjDe>6;->3P?0y=9GortwU>Erl-u?`!muAl5cQ6!xx6F5i4ert8@rj(>eC zXimo2s;5a-?V0E{qT@JoO+S_dU(d^|O0^h{>Noz{5zD{-Hvdl&6QnRIa{)VA&nFoiIcN_7q*0~+f7G*IeW@!E!3C*J&U zB1&vDx8E^K(ExU0gkIbwIjgAjKeo_&g?eK>tGy)WZ`fKBY#;u^9L%_fKeJFS6kZs4 zz_sX^GZDMIVRp3mBWB3PEqwUJ;$BS?X1LL|bSDEtX9ZGdNrJ1(wKPo8K9qZy-=H9Q z((hr{Lrdbr(_Z8y3;1=kbZ1_eW%k{VBe{FSuFcIx(mMl-8bSz}3bmu%>LC$dq_;y9 z3CWhs`h2Bfif&xA(MDjLy|XX$q?exFG$%4iq<40e#{jNV#*X^%NcFN}LFan4{!%fOl@9q2CI5 z?#b}$yaM`zJB6N7BLkJ6TpT1L^1A$o>DwZzn~m%jPj!_&8E@0-zWlH2|1@D&1lo@- za3Pi8Ma98MosR{LM!n0&gzs5h>|Luq2T?zrE)r=FS7JZil!@e2?1tuGIZLHy%jE5%Zst`pRV$H^O#gAv;-cQ zo`&pPqqgb@B1l=F2jyl0u~rb#>-y3Q7=0V(++We!xiepu`>?xHTbl_pm&>Ojfl{_X zpG;2?58qW>L!VNRsdA95V3un=+2ot>eMgW`+js-pp`HfY4%7gOZg{!ns^aI;P7dvX zalSSYd%PDOFgBxq1PonrV5T$kqeM5dq!HqgC%amNsIwOI^dC{Z$sWJkdwv8(>qdHI zdAlEIgCMX1R1c!ja|+&^LR~($Pk6XrnX`CDnzcM?+NEZ`T%DsfLQRO`3w>Okkh!O{ z0u=$Sp7%<#Tq0cPTQ~J$>e~}zgmM@T?>if zU1O)P)?sgR8gF+tlser`g_KEJa|1uLaYfr%=D*TaN-+GpzlU}js z9Q+gu>ZE62w#%Z~W6p+r_c8=n^AX*^Wmp3eT6fbSYeD|&UE|uBIkOD`3kT6r?vi04 zvta)9jMpurH86!9w*k&C#zH{W4v9wE6BA#F&5-Yb^J^8Nd8r)o{)W{*)s@`?hFX{E z{}F|3d%nx@eGg*rRaRX|NY_D?AG#l;lz(F0`jt2D9cx=5WQ1m#V=4Zf=t;itu@sv; zzPp9{RY3eZMo^)~)f(h3GvXF^3jK)EZcejl@_wBld28TH@qBLWlrQU9ydJM-srX6x zj#cELPofoyw453-kvZ)e&w$Q9bdE>wfCmm_w%5u&GE6!u7x8$GPn+%x+4}5VEKE(= zwAPP%PEROzw19-4Z$>`WQ$Y8v%RpZv=T39nC+AJYAE}6B6$aexQtUAnV9)Z99(5y&HD$=UZ2z7tFHKL<& z;yT+j0TE(L$vNC;bIQ$i2FKAKpTB=KwC?G|0N*LiNJsos0W^ z&(V|GY!{4oL;YO~LJ)x->TBR|(~T5$>!O91)Ac&2T?U#!m^*IOxARUT4@oK9Bg9gs z5*L7JYjj25MmiLGdwiB`K!tM=lAt`)G3@ZnR48S;_x^&U&EAzEL>MtyiY}5y6xDj; z+o6&7hX0hkPp79v$u%#UO0{2}9m2eW$cu1HlYtUGw%{TiQXj)jOFtpAK?X+oQuB4T zY#SElWeh_ni1CzA)i=oao9fyg!(>@OJ&k`vzBD1n@dYebGk-lSu=)F<$;Vq(!|Pkw zly3U7zInY%%mxkBQ$jxmtofdNrry&PtY&!jtNhnYIv#o zO&$hn%bU)4NX6CUyfy>bx(EfBy-WIue`sQKo1BpZnW1zv)s{hfQaLH5?qN3*b#Ies z!^!1y>5x)>@B~0){7JOL?b<00{1ey6L90=Mu=ZK`q&yGi;xz_fJJ|y8{IQ!pBrf*FYvM5Zc|y1l2dhFio~`LyJK)+~1NOA(zYGL@c~4MA|xQ zpwR=|UDD)N(CyLUn0;#8UaFsu+V(3F64vT$xAB(wHi2ElNNQ$Um!G+7 zyE?We{HWI{UzPQ*`TRHAgd;m?GoKgf`vJrj7op;2is5V$wG%b7KFh6VwY7`m(9t!$ zY~o>}2YZwD$Y#;MIT~!^*`}H57QuRW*zC!R+3D_&emr`oi}QNb!OoI6f1fv&&u$X! z=`X%vp7m+A_9Vh1DHnc^Oh_254kgcGft|9ck~^+@@?$mYUjQd}hUGRWgUS~?ExgyB z2d{Tqa((*Q)Re4bTT(Lr0GUn9#DaD^lj(!W=V?ZE=Q53o*FLak#L%8^Qi~WU`qBj# z#Q0Tu2}PmQ1^<^suBsv+T&|5RwI7`-3|_TP*J9w&)+`y_ZF^zN#RCdNZtiHaAelo zC2(hH7h9EVq!iv*Z+&45zR$O~XR+M1?Np2ncObA7y{-Sc~(PnLn_YtBL^f0X{$)mA5XsJ#V@ZIIm~+hLC2^+FJf5f3{k5chIET z;&7kxysp2rZn0vtH&KQQH;b=bjtRVcWB+`U8{Bg8TWGG*SU5t&8vw1UrC+86u=bUZ z1l6r`2~kP@F`DRdihA{`b1&vH;c*C0uMR0MMUl%h8Qb+6rJ0HF?%p_O8MK9oz)iPm zMz-+s)7lBY#6hvCJ9}s#kE2ud`xesdied7bQ_!AK9Dkcw-y!fR$mfYy*0KNPF?d_0 zZH73Y4;wc=9Udw8oijnfp%Wr~1CqBmmO(G&&J6q`BCu$nLd}=suJr-qeiW_(0J8(C zA7}&od~!hC)T5!=6luAtA^AT?9!bUmfj;1~T`-zb@}Q7GeB&F%7vDm |(zX#q>C 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 literal 0 HcmV?d00001 diff --git a/blazor/image-editor/images/blazor-image-editor-delete-freehanddraw.jpg b/blazor/image-editor/images/blazor-image-editor-delete-freehanddraw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..38593964c7ab0a6a0c2b5c5f4fef0aae879fa8ea GIT binary patch literal 96310 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 AAOHXW literal 0 HcmV?d00001 diff --git a/blazor/image-editor/open-save.md b/blazor/image-editor/open-save.md index b1ecf37b70..8fc38bc6d9 100644 --- a/blazor/image-editor/open-save.md +++ b/blazor/image-editor/open-save.md @@ -499,7 +499,7 @@ The following example demonstrates all three behaviors using the OpenAsync metho } ``` -![Blazor Image Editor with Opening an image](./images/blazor-image-editor-custom-height-width.jpg) +![Blazor Image Editor with Opening an image](./images/blazor-image-editor-custom-height-width.png) ## Save as image @@ -534,7 +534,7 @@ In the following example, the `ExportAsync` method is invoked on a button click. } ``` -![Blazor Image Editor with Save an image](./images/blazor-image-editor-export.jpg) +![Blazor Image Editor with Save an image](./images/blazor-image-editor-export.png) ### Save the image as base64 format diff --git a/blazor/rich-text-editor/images/checklist.png b/blazor/rich-text-editor/images/checklist.png new file mode 100644 index 0000000000000000000000000000000000000000..d040e87e8c4f47d78bd595c3c77adcdb6b0bf1fa GIT binary patch literal 50313 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 literal 0 HcmV?d00001 From ca5b0cba34972e56550067bcc10416de3b9b575a Mon Sep 17 00:00:00 2001 From: TamilRamGanesan-SF5080 Date: Tue, 14 Oct 2025 16:56:41 +0530 Subject: [PATCH 09/21] 986172: Fixed spell error. --- blazor/ai-assistview/ai-integrations/openai-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/ai-assistview/ai-integrations/openai-integration.md b/blazor/ai-assistview/ai-integrations/openai-integration.md index efb6c0cbd7..661836d8a6 100644 --- a/blazor/ai-assistview/ai-integrations/openai-integration.md +++ b/blazor/ai-assistview/ai-integrations/openai-integration.md @@ -57,7 +57,7 @@ Note: The sample below uses HttpClient directly and does not require the Azure/O 3. Note the following values: - API key - - Endpoint (for example, https://.openai.azure.com/) + - Endpoint - API version (must be supported by your resource) - Deployment name (for example, gpt-4o-mini) From dbf8eb20384e7cc546b7b25dbf80431b96026774 Mon Sep 17 00:00:00 2001 From: Backiaraj Date: Tue, 14 Oct 2025 18:32:43 +0530 Subject: [PATCH 10/21] Cleared automation conflict issues --- blazor/ai-coding-assistants/mcp-server.md | 2 +- blazor/ai-coding-assistants/overview.md | 2 +- .../check-box/getting-started-with-web-app.md | 1 - .../getting-started-with-web-app.md | 2 +- .../diagram/getting-started-with-maui-app.md | 36 ++--- .../diagram/getting-started-with-wasm-app.md | 42 +++--- .../diagram/getting-started-with-web-app.md | 88 ++++++------ blazor/diagram/getting-started.md | 52 +++---- blazor/diagram/nodes/events.md | 73 ++++++---- blazor/diagram/uml-sequence-diagram.md | 31 +++-- blazor/diagram/user-handle.md | 128 +++++++++++------- .../getting-started-with-web-app.md | 2 - .../getting-started-with-server-app.md | 2 +- .../getting-started/blazor-webassembly-app.md | 2 +- blazor/image-editor/annotation.md | 21 ++- .../blazor-image-editor-Freehanddraw.jpg | Bin 0 -> 99350 bytes .../images/blazor-image-editor-add-image.jpg | Bin 0 -> 92517 bytes ...lazor-image-editor-adjust-stroke-color.jpg | Bin 0 -> 90987 bytes .../blazor-image-editor-annotation-option.jpg | Bin 0 -> 85321 bytes .../images/blazor-image-editor-annotation.jpg | Bin 0 -> 91873 bytes .../blazor-image-editor-custom-text.jpg | Bin 0 -> 93218 bytes .../blazor-image-editor-delete-text.jpg | Bin 0 -> 94593 bytes ...lazor-image-editor-draw-multiline-text.jpg | Bin 0 -> 96319 bytes .../images/blazor-image-editor-font.jpg | Bin 0 -> 87640 bytes .../blazor-image-editor-formatting-text.jpg | Bin 0 -> 71081 bytes blazor/ribbon/keytip.md | 2 +- blazor/rich-text-editor/inline-mode.md | 2 +- .../webassembly-performance.md | 2 +- blazor/scheduler/getting-started-webapp.md | 2 - blazor/smart-ai-solutions/ai/azure-openai.md | 2 +- .../ai/custom-ai-service.md | 2 +- blazor/smart-ai-solutions/ai/ollama.md | 1 + blazor/smart-ai-solutions/ai/openAI.md | 1 + blazor/smart-ai-solutions/ai/overview.md | 1 - blazor/smart-paste/claude-service.md | 3 +- blazor/smart-paste/groq-service.md | 2 +- blazor/smart-textarea/claude-service.md | 2 +- blazor/speech-to-text/globalization.md | 2 +- blazor/treegrid/editing/batch-editing.md | 1 - blazor/treegrid/excel-export.md | 2 +- 40 files changed, 283 insertions(+), 228 deletions(-) create mode 100644 blazor/image-editor/images/blazor-image-editor-Freehanddraw.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-add-image.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-adjust-stroke-color.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-annotation-option.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-annotation.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-custom-text.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-delete-text.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-draw-multiline-text.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-font.jpg create mode 100644 blazor/image-editor/images/blazor-image-editor-formatting-text.jpg diff --git a/blazor/ai-coding-assistants/mcp-server.md b/blazor/ai-coding-assistants/mcp-server.md index af36022241..aacf42f227 100644 --- a/blazor/ai-coding-assistants/mcp-server.md +++ b/blazor/ai-coding-assistants/mcp-server.md @@ -209,4 +209,4 @@ Product support is available through the following mediums. ## See also -* [Syncfusion Blazor Documentation](https://blazor.syncfusion.com/documentation) +* [Syncfusion Blazor Documentation](https://blazor.syncfusion.com/documentation) \ No newline at end of file diff --git a/blazor/ai-coding-assistants/overview.md b/blazor/ai-coding-assistants/overview.md index 8ccba30dae..553faaae8e 100644 --- a/blazor/ai-coding-assistants/overview.md +++ b/blazor/ai-coding-assistants/overview.md @@ -69,4 +69,4 @@ The Syncfusion® AI Coding Assistants is des * Add the [SyncfusionBlazor MCP Server](./mcp-server.md) to an MCP-enabled client * Install the [SyncfusionBlazor GitHub Copilot Extension](./copilot-extension.md) -* [Syncfusion® Blazor Documentation](https://blazor.syncfusion.com/documentation) +* [Syncfusion® Blazor Documentation](https://blazor.syncfusion.com/documentation) \ No newline at end of file diff --git a/blazor/check-box/getting-started-with-web-app.md b/blazor/check-box/getting-started-with-web-app.md index 45d3ac90a2..a5b18e3d96 100644 --- a/blazor/check-box/getting-started-with-web-app.md +++ b/blazor/check-box/getting-started-with-web-app.md @@ -237,4 +237,3 @@ N> [View sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- 1. [Getting Started with Syncfusion® Blazor for client-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) 2. [Getting Started with Syncfusion® Blazor for client-side in Visual Studio](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-visual-studio) 3. [Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) - diff --git a/blazor/datepicker/getting-started-with-web-app.md b/blazor/datepicker/getting-started-with-web-app.md index 06c344ca8e..baaaddd40e 100644 --- a/blazor/datepicker/getting-started-with-web-app.md +++ b/blazor/datepicker/getting-started-with-web-app.md @@ -253,4 +253,4 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- 1. [Getting Started with Syncfusion® Blazor for client-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) 2. [Getting Started with Syncfusion® Blazor for client-side in Visual Studio](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-visual-studio) -3. [Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) +3. [Getting Started with Syncfusion® Blazor for server-side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) \ No newline at end of file diff --git a/blazor/diagram/getting-started-with-maui-app.md b/blazor/diagram/getting-started-with-maui-app.md index d5ec7a8926..3aefc33a4a 100644 --- a/blazor/diagram/getting-started-with-maui-app.md +++ b/blazor/diagram/getting-started-with-maui-app.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with the Diagram Component in the Blazor MAUI App -This section explains you through the step-by-step process of integrating the Syncfusion® Blazor Diagram component into your Blazor MAUI application using both Visual Studio and Visual Studio Code. +This guide walks through the step-by-step process of integrating the Syncfusion® Blazor Diagram component into a Blazor MAUI application using either Visual Studio or Visual Studio Code. > **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) @@ -25,11 +25,11 @@ To use the MAUI project templates, install the Mobile development with the .NET ## Step 1: How to Create a New Blazor MAUI App in Visual Studio -You can create a Blazor MAUI App using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=devices-windows&view=net-maui-9.0&tabs=vswin). For detailed instructions, refer to [this Blazor MAUI App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/maui-blazor-app) documentation. +Create a Blazor MAUI App using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=devices-windows&view=net-maui-9.0&tabs=vswin). For detailed instructions, refer to [this Blazor MAUI App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/maui-blazor-app) documentation. ## Step 2: How to Install Diagram NuGet Package in Blazor MAUI App -To add **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -40,7 +40,7 @@ Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces @@ -58,7 +58,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/MauiProgram.cs** file. +Register the Syncfusion® Blazor service in the **~/MauiProgram.cs** file. {% tabs %} {% highlight c# tabtitle="~/MauiProgram.cs" hl_lines="3 20" %} @@ -99,7 +99,7 @@ namespace MauiBlazorWindow; Add the following stylesheet and script to the head section of the **~/wwwroot/index.html** file. -If you are using Syncfusion.Blazor && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. +If using Syncfusion.Blazor && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. ```html .... @@ -107,7 +107,7 @@ If you are using Syncfusion.Blazor && Syncfusion.Blazor.Themes NuGet package in ``` -If you are using Syncfusion.Blazor.Diagram && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. +If using Syncfusion.Blazor.Diagram && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. ```html .... @@ -271,7 +271,7 @@ To run the Blazor DiagramComponent in a Blazor Android MAUI application using th Refer [here](https://learn.microsoft.com/en-us/dotnet/maui/android/emulator/device-manager#android-device-manager-on-windows) to install and launch Android emulator. -N> If you encounter any errors while using the Android Emulator, refer to the following link for troubleshooting guidance[Troubleshooting Android Emulator](https://learn.microsoft.com/en-us/dotnet/maui/android/emulator/troubleshooting). +N> If encounter any errors while using the Android Emulator, refer to the following link for troubleshooting guidance[Troubleshooting Android Emulator](https://learn.microsoft.com/en-us/dotnet/maui/android/emulator/troubleshooting). ![Blazor Diagram Component](images/blazor-diagram-maui-andoid-page.png) @@ -285,11 +285,11 @@ To use the MAUI project templates, install the Mobile development with the .NET ## Step 1: How to Create a New Blazor MAUI App Using Visual Studio Code -You can create a Blazor MAUI App using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=devices-windows&view=net-maui-9.0&tabs=visual-studio-code) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor MAUI App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/maui-blazor-app) documentation. +Create a Blazor MAUI App using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=devices-windows&view=net-maui-9.0&tabs=visual-studio-code) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor MAUI App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/maui-blazor-app) documentation. ## Step 2: How to Install Diagram NuGet Packages in a Blazor MAUI App -To add **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). {% tabs %} @@ -303,7 +303,7 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces @@ -320,7 +320,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -* Register the Syncfusion® Blazor Service in the **~/MauiProgram.cs** file. +* Register the Syncfusion® Blazor service in the **~/MauiProgram.cs** file. {% tabs %} {% highlight c# tabtitle="~/MauiProgram.cs" hl_lines="3 20 28" %} @@ -361,7 +361,7 @@ namespace MauiBlazorWindow; Add the following stylesheet and script to the head section of the **~/wwwroot/index.html** file. -If you are using Syncfusion.Blazor && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. +If using Syncfusion.Blazor && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. ```html .... @@ -369,7 +369,7 @@ If you are using Syncfusion.Blazor && Syncfusion.Blazor.Themes NuGet package in ``` -If you are using Syncfusion.Blazor.Diagram && Syncfusion.Blazor.Themes NuGet package in your application, refer to the following script. +If using `Syncfusion.Blazor.Diagram` && `Syncfusion.Blazor.Themes` NuGet package in your application, refer to the following script. ```html .... @@ -513,7 +513,9 @@ Add the Syncfusion® Diagram component in th {% endhighlight %} {% endtabs %} -N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/DiagramComponent/BlazorMAUIApp/DiagramSample). +{% previewsample "https://blazorplayground.syncfusion.com/embed/LjLyCjDPUkdgrQsk?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +N> [View the Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/DiagramComponent/BlazorMAUIApp/DiagramSample). ## How to Run the Sample on Windows @@ -527,7 +529,7 @@ When the application is successfully launched, the Diagram component will seamle ## How to Run the Sample on Android -To run the Blazor DiagramComponent in a Blazor Android MAUI application using the Android emulator, follow these steps: +To run the Blazor Diagram Component in a Blazor Android MAUI application using the Android emulator, follow these steps: ![Run Windows machine](images/blazor-diagram-maui-android.png) @@ -543,4 +545,4 @@ N> If you encounter any errors while using the Android Emulator, refer to the fo ## See also -* [How to Create Diagram Builder in MAUI Platform](https://support.syncfusion.com/kb/article/11346/how-to-create-diagram-builder-in-maui-platform) +* [How to Create a Diagram Builder in MAUI platform](https://support.syncfusion.com/kb/article/11346/how-to-create-diagram-builder-in-maui-platform) diff --git a/blazor/diagram/getting-started-with-wasm-app.md b/blazor/diagram/getting-started-with-wasm-app.md index 93f09b5458..d26343f5e0 100644 --- a/blazor/diagram/getting-started-with-wasm-app.md +++ b/blazor/diagram/getting-started-with-wasm-app.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Diagram Component in the Blazor WASM App -This section explains you through the step-by-step process of integrating the Syncfusion® Blazor Diagram component into your Blazor WebAssembly (WASM) app using Visual Studio, Visual Studio Code and .NET CLI. We'll break it down into simple steps to make it easy to follow. Additionally, you can find a fully functional example project on our [GitHub repository](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/DiagramComponent/BlazorWASMApp/DiagramSample). +This section explains the step-by-step process for integrating the Syncfusion® Blazor Diagram component into a Blazor WebAssembly (WASM) app using Visual Studio, Visual Studio Code and .NET CLI. We'll break it down into simple steps to make it easy to follow. Additionally, you can find a fully functional example project on our [GitHub repository](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/DiagramComponent/BlazorWASMApp/DiagramSample). > **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) @@ -23,11 +23,11 @@ This section explains you through the step-by-step process of integrating the Sy ## Step 1: How to Create a New Blazor App in Visual Studio -You can create a **Blazor WebAssembly App** using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor WASM App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) documentation. +Create a **Blazor WebAssembly App** using Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to the [this Blazor WASM App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app) documentation. ## Step 2: How to Install Syncfusion® Blazor Diagram and Themes NuGet Packages in a Blazor WebAssembly App -To add **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, you can utilize the following package manager command to achieve the same. +To add the **Blazor Diagram** component to the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). Alternatively, use the following package manager command to achieve the same. {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -42,7 +42,7 @@ N> Syncfusion® Blazor components are availa ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight razor tabtitle="~/_Imports.razor" %} @@ -55,7 +55,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the program.cs file. +Register the Syncfusion® Blazor service in the program.cs file. {% tabs %} {% highlight C# tabtitle="~/Program.cs" hl_lines="3 11" %} @@ -88,7 +88,7 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods: ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods: ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) referencing themes in a Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. ## Step 6: How to Add the Blazor Diagram Component @@ -102,7 +102,7 @@ Add the Syncfusion® Blazor Diagram componen {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -114,9 +114,9 @@ Add the Syncfusion® Blazor Diagram componen ## Step 1: How to Create a New Blazor App in Visual Studio Code -You can create a **Blazor WebAssembly App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor WASM App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app?tabcontent=visual-studio-code) documentation. +Create a **Blazor WebAssembly App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to the [this Blazor WASM App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-app?tabcontent=visual-studio-code) documentation. -Alternatively, you can create a WebAssembly application using the following command in the terminal(Ctrl+`). +Alternatively, Create a WebAssembly application using the following commands in the terminal(Ctrl+`). {% tabs %} @@ -132,8 +132,8 @@ cd BlazorApp ## Step 2: How to Install Syncfusion® Blazor Diagram and Themes NuGet Package in the App * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the current directory is the project root directory where the `.csproj` file is located. +* Run the following command to install the [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -147,11 +147,11 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight razor tabtitle="~/_Imports.razor" %} @@ -164,7 +164,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the program.cs file. +Register the Syncfusion® Blazor service in the program.cs file. {% tabs %} {% highlight C# tabtitle="~/Program.cs" hl_lines="3 11" %} @@ -211,7 +211,7 @@ Add the Syncfusion® Blazor Diagram componen {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -219,7 +219,7 @@ Add the Syncfusion® Blazor Diagram componen ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If the SDK is already installed, determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -262,7 +262,7 @@ N> Syncfusion® Blazor components are availa ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight razor tabtitle="~/_Imports.razor" %} @@ -275,7 +275,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the program.cs file. +Register the Syncfusion® Blazor service in the program.cs file. {% tabs %} {% highlight C# tabtitle="~/Program.cs" hl_lines="3 11" %} @@ -308,7 +308,7 @@ The theme stylesheet and script can be accessed from NuGet through [Static Web A ``` -N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods: ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) referencing themes in your Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in your Blazor application. +N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) topic to discover various methods: ([Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator)) referencing themes in a Blazor application. Also, check out the [Adding Script Reference](https://blazor.syncfusion.com/documentation/common/adding-script-references) topic to learn different approaches for adding script references in a Blazor application. ## Step 6: How to Add the Blazor Diagram Component @@ -322,7 +322,7 @@ Add the Syncfusion® Blazor Diagram componen {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -340,7 +340,7 @@ Add the Syncfusion® Blazor Diagram componen ## How to Create Blazor Flowchart Diagram -Let us create and add a [Node](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Node.html) with specific position, size, label, and shape. Connect two or more nodes by using a [Connector](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Connector.html). +Create and add a [Node](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Node.html) with specific position, size, label, and shape. Connect two or more nodes by using a [Connector](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Connector.html). {% tabs %} {% highlight razor %} diff --git a/blazor/diagram/getting-started-with-web-app.md b/blazor/diagram/getting-started-with-web-app.md index 6cb9012b1a..9df9435001 100644 --- a/blazor/diagram/getting-started-with-web-app.md +++ b/blazor/diagram/getting-started-with-web-app.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Blazor Diagram Component in Web App -This section briefly explains about how to include [Blazor Diagram](https://www.syncfusion.com/blazor-components/blazor-diagram) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/), Visual Studio Code and .NET CLI. +This section briefly explains how to include the [Blazor Diagram](https://www.syncfusion.com/blazor-components/blazor-diagram) component in your Blazor Web App using [Visual Studio](https://visualstudio.microsoft.com/vs/), Visual Studio Code, and the .NET CLI. > **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) @@ -23,19 +23,21 @@ This section briefly explains about how to include [Blazor Diagram](https://www. ## Step 1: How to Create a New Blazor Web App -You can create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) documentation. +Create a **Blazor Web App** using Visual Studio 2022 via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to the [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) documentation. -You need to configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. +Configure the corresponding [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vs) while creating a Blazor Web Application. + +![Create Blazor Web App](images/blazor-create-web-app.png) ![Create Blazor Web App](images/blazor-create-web-app.png) ## Step 2: How to Install Syncfusion® Blazor Diagram and Themes NuGet Packages in the Blazor Web App -To add **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). +To add the **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using the `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. -Alternatively, you can utilize the following package manager command to achieve the same. +Alternatively, use the following package manager command to achieve the same. {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -46,11 +48,11 @@ Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }} {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file from the client project and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file in the client project and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -63,9 +65,9 @@ Open the **~/_Imports.razor** file from the client project and import the `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Register the Syncfusion® Blazor service in the **~/Program.cs** file of your Blazor Web App. -If your Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, you must register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. +If the Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -101,7 +103,7 @@ await builder.Build().RunAsync(); ## Step 5: How to Add Stylesheet and Script Resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: +The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference to the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: ```html @@ -119,7 +121,7 @@ N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/app ## Step 6: How to Add Syncfusion® Blazor Diagram Component -Add the Syncfusion® Blazor Diagram component to a Razor page located under the Pages folder (e.g., Pages/Home.razor) in either the **Server** or **Client** project. If an interactivity location as `Per page/component` in the web app, define a render mode at top of the component, as follows: +Add the Syncfusion® Blazor Diagram component to a Razor page located under the Pages folder (e.g., Pages/Home.razor) in either the **Server** or **Client** project. If the interactivity location is `Per page/component` in the web app, define a render mode at the top of the component as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -127,7 +129,7 @@ Add the Syncfusion® Blazor Diagram componen | | WebAssembly | @rendermode InteractiveWebAssembly | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly`, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -146,7 +148,7 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -158,11 +160,11 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i ## Step 1: How to Create a New Blazor Web App in Visual Studio Code -You can create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code) documentation. +Create a **Blazor Web App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-8.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to the [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=visual-studio-code) documentation. -Configure the appropriate interactive render mode and interactivity location when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). +Configure the appropriate interactive render mode and interactivity location when setting up the Blazor Web Application. For more information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). -For example, in a Blazor Web App with the `Auto` interactive render mode, use the following commands. +For example, for a Blazor Web App with the `Auto` interactive render mode, use the following commands. {% tabs %} {% highlight c# tabtitle="Blazor Web App" %} @@ -176,11 +178,11 @@ cd BlazorWebApp.Client ## Step 2: How to Install Syncfusion® Blazor Diagram and Themes NuGet Packages in the App -If you utilize `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using the `WebAssembly` or `Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the current directory is the project root directory where your `.csproj` file is located. +* Run the following command to install the [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package, and ensure all dependencies are installed. {% tabs %} @@ -194,11 +196,11 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file from the client project and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file in the client project and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -211,9 +213,9 @@ Open the **~/_Imports.razor** file from the client project and import the `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Register the Syncfusion® Blazor service in the **~/Program.cs** file of your Blazor Web App. -If your Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, you must register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. +If the Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -249,7 +251,7 @@ await builder.Build().RunAsync(); ## Step 5: How to Add Stylesheet and Script Resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: +Theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: ```html @@ -267,7 +269,7 @@ N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/app ## Step 6: How to Add Syncfusion® Blazor Diagram Component -Add the Syncfusion® Blazor Diagram component to a Razor page located under the Pages folder (e.g., Pages/Home.razor) in either the **Server** or **Client** project. If an interactivity location as `Per page/component` in the web app, define a render mode at top of the component, as follows: +Add the Syncfusion® Blazor Diagram component to a Razor page located under the Pages folder (e.g., Pages/Home.razor) in either the **Server** or **Client** project. If the interactivity location is `Per page/component` in the web app, define a render mode at top of the component, as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -275,7 +277,7 @@ Add the Syncfusion® Blazor Diagram componen | | WebAssembly | @rendermode InteractiveWebAssembly | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly`, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -294,7 +296,7 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -302,7 +304,7 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i ## Prerequisites -Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, you can determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). +Latest version of the [.NET Core SDK](https://dotnet.microsoft.com/en-us/download). If you previously installed the SDK, determine the installed version by executing the following command in a command prompt (Windows) or terminal (macOS) or command shell (Linux). {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -316,9 +318,9 @@ dotnet --version Run the following command to create a new Blazor Web App in a command prompt (Windows) or terminal (macOS) or command shell (Linux). For detailed instructions, refer to [this Blazor Web App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=.net-cli) documentation. -Configure the appropriate interactive render mode and interactivity location when setting up a Blazor Web Application. For detailed information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). +Configure the appropriate interactive render mode and interactivity location when setting up the Blazor Web Application. For more information, refer to the [interactive render mode documentation](https://blazor.syncfusion.com/documentation/common/interactive-render-mode). -For example, in a Blazor Web App with `Auto` interactive render mode, use the following commands: +For example, for a Blazor Web App with `Auto` interactive render mode, use the following commands: {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -330,13 +332,13 @@ cd BlazorApp.Client {% endhighlight %} {% endtabs %} -This command creates new Blazor Web App and places it in a new directory called `BlazorApp` inside your current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. +This command creates a new Blazor Web app project and places it in a new directory called `BlazorApp` inside the current location. See [Create Blazor app topic](https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create) and [dotnet new CLI command](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?pivots=linux-macos&view=aspnetcore-8.0) topics for more details. ## Step 2: Install Syncfusion® Blazor Diagram and Themes NuGet in the App Here's an example of how to add **Blazor Diagram** component in the application using the following command in the command prompt (Windows) or terminal (Linux and macOS) to install a [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package. See [Install and manage packages using the dotnet CLI](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) topics for more details. -If you utilize `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. +If using the `WebAssembly or Auto` render modes in the Blazor Web App need to be install Syncfusion® Blazor components NuGet packages within the client project. {% tabs %} {% highlight c# tabtitle=".NET CLI" %} @@ -348,11 +350,11 @@ dotnet restore {% endhighlight %} {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file from the client project and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file from the client project and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight C# tabtitle="~/_Imports.razor" %} @@ -365,9 +367,9 @@ Open the **~/_Imports.razor** file from the client project and import the `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file of your Blazor Web App. +Register the Syncfusion® Blazor service in the **~/Program.cs** file of your Blazor Web App. -If your Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, you must register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. +If the Blazor Web App uses `WebAssembly` or `Auto` interactive render modes, register the Syncfusion® Blazor service in the **~/Program.cs** files of the main `server` project and associated `.Client` project. {% tabs %} {% highlight c# tabtitle="Server(~/_Program.cs)" hl_lines="3 11" %} @@ -403,7 +405,7 @@ await builder.Build().RunAsync(); ## Step 5: How to Add Stylesheet and Script Resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: +Theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **~/Components/App.razor** file as shown below: ```html @@ -421,7 +423,7 @@ N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/app ## Step 6: How to Add Syncfusion® Blazor Diagram Component -Add the Syncfusion® Blazor Diagram component to a Razor page located under the Pages folder (e.g., Pages/Home.razor) in either the **Server** or **Client** project. If an interactivity location as `Per page/component` in the web app, define a render mode at top of the component, as follows: +Add the Syncfusion® Blazor Diagram component to a Razor page located under the Pages folder (e.g., Pages/Home.razor) in either the **Server** or **Client** project. If the interactivity location is `per page/component` in the web app, define a render mode at the top of the component, as follows: | Interactivity location | RenderMode | Code | | --- | --- | --- | @@ -429,7 +431,7 @@ Add the Syncfusion® Blazor Diagram componen | | WebAssembly | @rendermode InteractiveWebAssembly | | | None | --- | -N> If an **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly`, the render mode is configured in the `App.razor` file by default. +N> If the **Interactivity Location** is set to `Global` and the **Render Mode** is set to `Auto` or `WebAssembly`, the render mode is configured in the `App.razor` file by default. {% tabs %} {% highlight razor %} @@ -448,7 +450,7 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -461,12 +463,12 @@ N> If an **Interactivity Location** is set to `Global` and the **Render Mode** i 1) Orthogonal 2) Bezier 3) Straight -* Port: Acts as the connection points of node or connector and allows you to create connections with only specific points. +* Port: Acts as the connection points of node or connector and allow creating connections only at specific points. * Annotation: Additional information can be shown by adding text or labels on nodes and connectors. ## How to Create Blazor Flowchart Diagram -Let us create and add a [Node](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Node.html) with specific position, size, label, and shape. Connect two or more nodes by using a [Connector](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Connector.html). +Create and add a [Node](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Node.html) with specific position, size, label, and shape. Connect two or more nodes using a [Connector](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Connector.html). {% tabs %} {% highlight razor %} diff --git a/blazor/diagram/getting-started.md b/blazor/diagram/getting-started.md index 6cf85df4f5..0a1358d994 100644 --- a/blazor/diagram/getting-started.md +++ b/blazor/diagram/getting-started.md @@ -9,7 +9,7 @@ documentation: ug # Getting Started with Diagram Component in the Blazor Server App. -This section explains you through the step-by-step process of integrating the Syncfusion® Blazor Diagram component into your Blazor Server App using Visual Studio, Visual Studio Code and .NET CLI. We'll break it down into simple steps to make it easy to follow. Additionally, you can find a fully functional example project on our [GitHub repository](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/DiagramComponent/BlazorServerApp/Diagramsample). +This section explains the step-by-step process of integrating the Syncfusion® Blazor Diagram component into your Blazor Server app using Visual Studio, Visual Studio Code and .NET CLI. We'll break it down into simple steps to make it easy to follow. Additionally, you can find a fully functional example project on our [GitHub repository](https://github.com/SyncfusionExamples/Blazor-Getting-Started-Examples/tree/main/DiagramComponent/BlazorServerApp/Diagramsample). > **Ready to streamline your Syncfusion® Blazor development?**
    Discover the full potential of Syncfusion® Blazor components with Syncfusion® AI Coding Assistants. Effortlessly integrate, configure, and enhance your projects with intelligent, context-aware code suggestions, streamlined setups, and real-time insights—all seamlessly integrated into your preferred AI-powered IDEs like VS Code, Cursor, Syncfusion® CodeStudio and more. [Explore Syncfusion® AI Coding Assistants](https://blazor.syncfusion.com/documentation/ai-coding-assistants/overview) @@ -23,11 +23,11 @@ This section explains you through the step-by-step process of integrating the Sy ## Step 1: How to Create a New Blazor App in Visual Studio -You can create a **Blazor Server App** using **Blazor Web App** template in Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) documentation. +Create a **Blazor Server App** using the **Blazor Web App** template in Visual Studio via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-integration/template-studio). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) documentation. ## Step 2: How to Install Syncfusion® Blazor Diagram and Themes NuGet Packages in the Blazor Server App -To add **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/).Alternatively, you can utilize the following package manager command to achieve the same. +To add **Blazor Diagram** component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and install [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/).Alternatively, use the following package manager command to achieve the same. {% tabs %} {% highlight C# tabtitle="Package Manager" %} @@ -42,7 +42,7 @@ N> Syncfusion® Blazor components are availa ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight razor tabtitle="~/_Imports.razor" %} @@ -55,7 +55,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file. +Register the Syncfusion® Blazor service in the **~/Program.cs** file. {% tabs %} {% highlight c# tabtitle="~/Program.cs" hl_lines="3 10" %} @@ -97,9 +97,9 @@ N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/app ## Step 6: How to Add Blazor Diagram Component -Add the Syncfusion® Blazor Diagram component in the **~/Components/Pages/Home.razor** file. If an interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. +Add the Syncfusion® Blazor Diagram component in the **~/Components/Pages/Home.razor** file. If the interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. -N> If an Interactivity Location is set to `Global` and the **Render Mode** is set to `Server`, the render mode is configured in the `App.razor` file by default. +N> If the Interactivity Location is set to `Global` and the **Render Mode** is `Server`, the render mode is configured in the `App.razor` file by default. ``` @* desired render mode define here *@ @@ -114,7 +114,7 @@ N> If an Interactivity Location is set to `Global` and the **Render Mode** is se {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -126,9 +126,9 @@ N> If an Interactivity Location is set to `Global` and the **Render Mode** is se ## Step 1: How to Create a New Blazor App in Visual Studio Code -You can create a **Blazor Server App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio?tabcontent=visual-studio-code) documentation. +Create a **Blazor Server App** using Visual Studio Code via [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-7.0&pivots=vsc) or the [Syncfusion® Blazor Extension](https://blazor.syncfusion.com/documentation/visual-studio-code-integration/create-project). For detailed instructions, refer to [this Blazor Server App Getting Started](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio?tabcontent=visual-studio-code) documentation. -Alternatively, you can create a Server application using the following command in the terminal(Ctrl+`). +Alternatively, create a Server application using the following command in the terminal(Ctrl+`). {% tabs %} @@ -144,8 +144,8 @@ cd BlazorApp ## Step 2: How to Install Syncfusion® Blazor Diagram and Themes NuGet Packages in the App * Press Ctrl+` to open the integrated terminal in Visual Studio Code. -* Ensure you’re in the project root directory where your `.csproj` file is located. -* Run the following command to install a [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. +* Ensure the project root directory where your `.csproj` file is located. +* Run the following command to install the [Syncfusion.Blazor.Diagram](https://www.nuget.org/packages/Syncfusion.Blazor.Diagram) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/) NuGet package and ensure all dependencies are installed. {% tabs %} @@ -159,11 +159,11 @@ dotnet restore {% endtabs %} -N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. +N> Syncfusion® Blazor components are available in [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for available NuGet packages list with component details. ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight razor tabtitle="~/_Imports.razor" %} @@ -176,7 +176,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file. +Register the Syncfusion® Blazor service in the **~/Program.cs** file. {% tabs %} {% highlight c# tabtitle="~/Program.cs" hl_lines="3 10" %} @@ -222,9 +222,9 @@ N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/app ## Step 6: How to Add Blazor Diagram Component -Add the Syncfusion® Blazor Diagram component in the **~/Components/Pages/Home.razor** file. If an interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. +Add the Syncfusion® Blazor Diagram component in the **~/Components/Pages/Home.razor** file. If the interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. -N> If an Interactivity Location is set to `Global` and the **Render Mode** is set to `Server`, the render mode is configured in the `App.razor` file by default. +N> If the Interactivity Location is set to `Global` and the **Render Mode** is `Server`, the render mode is configured in the `App.razor` file by default. ``` @* desired render mode define here *@ @@ -239,7 +239,7 @@ N> If an Interactivity Location is set to `Global` and the **Render Mode** is se {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -290,7 +290,7 @@ N> Syncfusion® Blazor components are availa ## Step 3: Add Import Namespaces -Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespace. +Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Diagram` namespaces. {% tabs %} {% highlight razor tabtitle="~/_Imports.razor" %} @@ -303,7 +303,7 @@ Open the **~/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncf ## Step 4: How to Register Syncfusion® Blazor Service -Register the Syncfusion® Blazor Service in the **~/Program.cs** file. +Register the Syncfusion® Blazor service in the **~/Program.cs** file. {% tabs %} {% highlight c# tabtitle="~/Program.cs" hl_lines="3 10" %} @@ -327,7 +327,7 @@ builder.Services.AddSyncfusionBlazor(); ## Step 5: How to Add Stylesheet and Script Resources -The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script in the `` and the script reference at the end of the `` in the **App.razor** file as shown below: +The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet and script in the `` and the script reference at the end of the `` in the **App.razor** file, as shown below: ```html @@ -348,9 +348,9 @@ N> Check out the [Blazor Themes](https://blazor.syncfusion.com/documentation/app ## Step 6: How to Add Blazor Diagram Component -Add the Syncfusion® Blazor Diagram component in the **~/Components/Pages/Home.razor** file. If an interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. +Add the Syncfusion® Blazor Diagram component in the **~/Components/Pages/Home.razor** file. If the interactivity location as `per page/component`, define a render mode at the top of the `Home.razor` page. -N> If an Interactivity Location is set to `Global` and the **Render Mode** is set to `Server`, the render mode is configured in the `App.razor` file by default. +N> If the Interactivity Location is set to `Global` and the **Render Mode** is `Server`, the render mode is configured in the `App.razor` file by default. ``` @* desired render mode define here *@ @@ -365,7 +365,7 @@ N> If an Interactivity Location is set to `Global` and the **Render Mode** is se {% endhighlight %} {% endtabs %} -* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in your default web browser. +* Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Diagram component in the default web browser. {% endtabcontent %} @@ -378,12 +378,12 @@ N> If an Interactivity Location is set to `Global` and the **Render Mode** is se 1) Orthogonal 2) Bezier 3) Straight -* Port: Acts as the connection points of node or connector and allows you to create connections with only specific points. +* Port: Act as connection points on a node or connector and allow creating connections only at specific points. * Annotation: Additional information can be shown by adding text or labels on nodes and connectors. ## How to Create Blazor Flowchart Diagram -Let us create and add a [Node](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Node.html) with specific position, size, label, and shape. Connect two or more nodes by using a [Connector](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Connector.html). +Create and add a [Node](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Node.html) with a specific position, size, label, and shape. Connect two or more nodes using a [Connector](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.Connector.html). {% tabs %} {% highlight razor %} diff --git a/blazor/diagram/nodes/events.md b/blazor/diagram/nodes/events.md index 2f7ea7afe9..e6b0626b99 100644 --- a/blazor/diagram/nodes/events.md +++ b/blazor/diagram/nodes/events.md @@ -1,29 +1,29 @@ --- layout: post -title: Events in Blazor Diagram Component | Syncfusion -description: Checkout and learn here all about Events in Syncfusion Blazor Diagram component and much more details. +title: Events in Syncfusion Blazor Diagram Component | Syncfusion +description: Checkout and learn here all about Node Events in Syncfusion Blazor Diagram component and much more details. platform: Blazor control: Diagram Component documentation: ug --- -# Events and Constraints in Blazor Diagram Component +# Events and Constraints in Diagram Component ## Events -Diagram provides several events support for node that triggers when interacting with the node. +The diagram provides a several events support for node that triggers when interacting with the node. ## How to Handle Selection Change Event * While selecting the diagram elements, the following events can be used to do the customization. -* When selecting or unselecting the diagram elements, the following events are getting triggered. +* When selecting or unselecting diagram elements, the following events are triggered. |Event Name|Arguments|Description| |------------|-----------|------------------------| |[SelectionChanging](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_SelectionChanging)|[SelectionChangingEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SelectionChangingEventArgs.html)|Triggers before the selection is changed in the diagram.| |[SelectionChanged](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_SelectionChanged)|[SelectionChangedEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SelectionChangedEventArgs.html)|Triggers when the node's or connector's selection is changed in the diagram.| -The following code example explains how to get the selection change event in the diagram. +The following code example demonstrates how to get the selection change event in the diagram. ```cshtml @using Syncfusion.Blazor.Diagram @@ -50,7 +50,7 @@ The following code example explains how to get the selection change event in the // Size of the node. Width = 100, Height = 100, - // Appearances of the node + // Appearance of the node Style = new ShapeStyle() { Fill = "#6BA5D7", @@ -75,12 +75,14 @@ The following code example explains how to get the selection change event in the } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/SelectionChange) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BjBSCjjmsOntdxie?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/SelectionChange) ## How to Handle Position Change Event * While dragging the node or connector through interaction, the following events can be used to do the customization. -* When dragging the node, the following events are getting triggered. +* When dragging a node, the following events are triggered. |Event Name|Arguments|Description| |------------|-----------|------------------------| @@ -137,12 +139,14 @@ You can download a complete working sample from [GitHub](https://github.com/Sync } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/PositionChange) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rthICtjciuGtobOO?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/PositionChange) ## How to Handle Size Change Event * While resizing the node during the interaction, the following events can be used to do the customization. -* When resizing the node, the following events are getting triggered. +* When resizing a node, the following events are triggered. |Event Name|Arguments|Description| |------------|------------|-----------------------| @@ -198,12 +202,14 @@ You can download a complete working sample from [GitHub](https://github.com/Sync } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/SizeChange) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VXVSCtZGiEcHqVrO?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/SizeChange) ## How to Handle Rotate Change Event * While rotating the node during the interaction, the following events can be used to do the customization. -* When rotating the node, the following events are getting triggered. +* When rotating a node, the following events are triggered. |Event Name|Arguments|Description| |------------|----------|-------------------------| @@ -259,7 +265,9 @@ You can download a complete working sample from [GitHub](https://github.com/Sync } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/RotationChange) +{% previewsample "https://blazorplayground.syncfusion.com/embed/LZryMjNGMEPDIoUc?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/RotationChange) ## How to Use Node Creating Event @@ -308,12 +316,13 @@ You can download a complete working sample from [GitHub](https://github.com/Sync } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rZVSMZNwsaPGCptX?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/NodeCreatingEvent) +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/NodeCreatingEvent) ## How to Handle Property Changed Event -The [Property Changed](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_PropertyChanged) event is triggered when node's property of the diagram component is modified at runtime. This event provides valuable information about the changes occurring in the diagram. For a detailed understanding of the event arguments, refer to the [PropertyChangedEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.PropertyChangedEventArgs.html). +The [PropertyChanged](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_PropertyChanged) event is triggered when a node property of the diagram component is modified at runtime. This event provides details about the changes occurring in the diagram. For event argument details, refer to [PropertyChangedEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.PropertyChangedEventArgs.html). ```cshtml @using Syncfusion.Blazor.Diagram @@ -321,7 +330,7 @@ The [Property Changed](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.D Width="100%" Height="700px" Nodes="nodes" - NodePropertyChanged="OnNodePropertyChanged"> + PropertyChanged="OnNodePropertyChanged"> @code { SfDiagramComponent diagram; @@ -351,11 +360,13 @@ The [Property Changed](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.D } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/PropertyChangedEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VtroiXXcVZjLxVof?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/PropertyChangedEvent) ## How to Handle Collection Change Events -* The diagram provides specific events that are triggered when nodes are added to or removed from the diagram. These events offer opportunities for customization and are invoked whenever the node collection undergoes changes. +* The diagram raises events when nodes are added to or removed from the diagram. These events offer opportunities for customization and are invoked whenever the node collection undergoes changes. |Event Name|Arguments|Description| |------------|-----------|------------------------| @@ -393,11 +404,13 @@ You can download a complete working sample from [GitHub](https://github.com/Sync } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/CollectionChangeEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BNroWDXQBDjHmggk?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/CollectionChangeEvent) ## How to Handle the Mouse Enter Event -The [MouseEnter](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_MouseEnter) event is triggered when the mouse pointer enters the boundary of a node in the diagram. This event provides valuable information about the element being interacted with. For a comprehensive understanding of the event arguments and their properties, refer to the [DiagramElementMouseEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramElementMouseEventArgs.html). +The [MouseEnter](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_MouseEnter) event is triggered when the mouse pointer enters the boundary of a node in the diagram. The event arguments include details about the element being interacted with. For a comprehensive understanding of the event arguments and their properties, refer to the [DiagramElementMouseEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramElementMouseEventArgs.html). ```cshtml @@ -428,11 +441,13 @@ The [MouseEnter](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/MouseEnterEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/hXrSsDDGVXMoFpjP?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/MouseEnterEvent) ## How to Handle the Mouse Leave Event -The [MouseLeave](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_MouseLeave) event is triggered when the mouse pointer exits the boundaries of a node in the diagram. This event provides valuable information about the element being left. For a comprehensive understanding of the event arguments and their properties, refer to the [DiagramElementMouseEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramElementMouseEventArgs.html). +The [MouseLeave](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_MouseLeave) event is triggered when the mouse pointer exits the boundaries of a node in the diagram. The event arguments include details about the element being left. For a comprehensive understanding of the event arguments and their properties, refer to the [DiagramElementMouseEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramElementMouseEventArgs.html). ```cshtml @@ -463,7 +478,9 @@ The [MouseLeave](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/MouseLeaveEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BtVyCXZcBNhXdpGO?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/MouseLeaveEvent) ## How to Handle the Mouse Hover Event @@ -498,12 +515,14 @@ The [MouseHover](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/MouseHoverEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rtBeiXjcLNBzlmCQ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/Nodes/Events/MouseHoverEvent) ## How to Enable or Disable Node Behaviors Using Constraints -The Constraints property of node allows you to enable or disable certain features. For more information about node constraints, refer to the [Node Constraints](https://blazor.syncfusion.com/documentation/diagram/constraints#node-constraints). +The node `Constraints` property enables or disables specific features (for example, select, drag, resize, rotate). For more information about node constraints, refer to the [Node Constraints](https://blazor.syncfusion.com/documentation/diagram/constraints#node-constraints). ## See also @@ -513,4 +532,4 @@ The Constraints property of node allows you to enable or disable certain feature * [How to get events when they interact with the annotation](../annotations/events) -* [How to Identify the Clicked Diagram Elements in Syncfusion® Blazor Diagram](https://support.syncfusion.com/kb/article/17226/how-to-identify-the-clicked-diagram-elments-in-syncfusion-blazor-diagram) \ No newline at end of file +* [How to identify the clicked diagram elements in Syncfusion® Blazor Diagram](https://support.syncfusion.com/kb/article/17226/how-to-identify-the-clicked-diagram-elments-in-syncfusion-blazor-diagram) \ No newline at end of file diff --git a/blazor/diagram/uml-sequence-diagram.md b/blazor/diagram/uml-sequence-diagram.md index 9c32e153f2..b61ff19766 100644 --- a/blazor/diagram/uml-sequence-diagram.md +++ b/blazor/diagram/uml-sequence-diagram.md @@ -9,7 +9,7 @@ documentation: ug # Sequence Diagram Model in Blazor diagram component -A sequence diagram is a type of interaction diagram that visually represents how objects communicate with each other in a particular sequence over time. The [SfDiagramComponent](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html) in the Syncfusion® Blazor suite supports the creation and visualization of Uml sequence diagrams through the dedicated [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html) class. +A sequence diagram is a type of interaction diagram that visually represents how objects communicate with each other in a particular sequence over time. The [SfDiagramComponent](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html) in the Syncfusion® Blazor suite supports the creation and visualization of UML sequence diagrams through the dedicated [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html) class. To enable this functionality, assign an instance of `UmlSequenceDiagramModel` to the `Model` property of the SfDiagramComponent. This model encapsulates all necessary elements—such as lifelines, messages, activation boxes, and fragments—required to render a complete sequence diagram. @@ -17,14 +17,14 @@ To enable this functionality, assign an instance of `UmlSequenceDiagramModel` to A sequence diagram consists of several key elements, including participants, messages, activation boxes, and fragments. Each of these components plays a crucial role in representing the flow of interaction between objects over time. -The diagram component allows you to define and manage these elements through the `UmlSequenceDiagramModel`. Below is an overview of how each element can be implemented: +The diagram component allows to define and manage these elements through the `UmlSequenceDiagramModel`. Below is an overview of how each element can be implemented: * [Participants](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Participants): Represent the lifelines (such as actors or systems) involved in the interaction. * [Messages](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Messages): Indicate the communication between participants, including synchronous and asynchronous calls, returns, and self-messages. * [Activation Boxes](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceParticipant.html#Syncfusion_Blazor_Diagram_UmlSequenceParticipant_ActivationBoxes): Represent the time during which a participant is active or performing an operation. * [Fragments](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Participants): Define conditional or parallel behavior using constructs like alt, opt, and loop. -Each of these elements can be programmatically configured and customized to suit your application's interaction flow. +Each of these elements can be programmatically configured and customized to suit the application's interaction flow. ### Participants @@ -32,7 +32,7 @@ The [UmlSequenceParticipant](https://help.syncfusion.com/cr/blazor/Syncfusion.Bl Each participant serves as the source or target of messages and is essential for illustrating the communication between different components in the system. -You can define participants by adding instances of [UmlSequenceParticipant](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceParticipant.html) to the [Participants](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Participants) collection in the [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html). +Define participants by adding instances of [UmlSequenceParticipant](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceParticipant.html) to the [Participants](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Participants) collection in the [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html). The following code example explains how to create participants in sequence diagram. @@ -74,8 +74,9 @@ The following code example explains how to create participants in sequence diagr } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rtheWXZlzknCroPu?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -You can download a complete working sample from [GitHub](). +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UMLSequenceDiagram/CreateParticipant). ![ParticipantsExample](./images/UmlSequenceDiagram/ParticipantsExample.png) @@ -224,7 +225,9 @@ The following code example explains how to create messages in sequence diagram. } ``` -You can download a complete working sample from [GitHub](). +{% previewsample "https://blazorplayground.syncfusion.com/embed/LtLIWjZPfYneFRWq?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](). ![Message Example](./images/UmlSequenceDiagram/MessageExample.png) @@ -317,7 +320,9 @@ The following code example explains how to create activation boxes in sequence d } } ``` -You can download a complete working sample from [GitHub](). +{% previewsample "https://blazorplayground.syncfusion.com/embed/VDhSCjDFpkHYndWl?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](). ![Activations Example](./images/UmlSequenceDiagram/ActivationsExample.png) @@ -337,7 +342,7 @@ The [UmlSequenceFragment](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazo * Optional interactions (opt) * Loops (loop) -You can configure fragments by adding them to the [Fragments](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Fragments) collection of the [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html), specifying the type of fragment, condition labels, and the associated messages or nested fragments it encompasses. +Configure fragments by adding them to the [Fragments](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_Fragments) collection of the [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html), specifying the type of fragment, condition labels, and the associated messages or nested fragments it encompasses. #### Types of Fragments @@ -351,7 +356,7 @@ The [UmlSequenceFragmentType](https://help.syncfusion.com/cr/blazor/Syncfusion.B #### Creating Fragments -To create fragments in your sequence diagram, you will need to use the [UmlSequenceFragment](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceFragment.html) to define fragments and the [UmlSequenceFragmentCondition](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceFragmentCondition.html) to specify each condition block within those fragments. +Create fragments in the sequence diagram, need to use the [UmlSequenceFragment](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceFragment.html) to define fragments and the [UmlSequenceFragmentCondition](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceFragmentCondition.html) to specify each condition block within those fragments. ```cshtml @using Syncfusion.Blazor.Diagram @@ -448,8 +453,9 @@ To create fragments in your sequence diagram, you will need to use the [UmlSeque } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNLSCNZbzkGgSlhe?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -You can download a complete working sample from [GitHub](). +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UMLSequenceDiagram/CreateFragments). ![Fragment Example](images/UmlSequenceDiagram/FragmentExample.png) @@ -473,7 +479,7 @@ You can download a complete working sample from [GitHub](). The [SpaceBetweenParticipants](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html#Syncfusion_Blazor_Diagram_UmlSequenceDiagramModel_SpaceBetweenParticipants) property of the [UmlSequenceDiagramModel](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UmlSequenceDiagramModel.html) controls the horizontal spacing between participants in the sequence diagram. By default, this value is set to 100, ensuring a uniform gap between lifelines. -You can customize this value to increase or decrease the spacing based on your diagram’s layout requirements or to accommodate longer participant names and message labels. +Customize this value to increase or decrease the spacing based on the diagram’s layout requirements or to accommodate longer participant names and message labels. ```cshtml @using Syncfusion.Blazor.Diagram @@ -582,5 +588,6 @@ You can customize this value to increase or decrease the spacing based on your d } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BDBIsXNFJamPossc?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -You can download a complete working sample from [GitHub](). \ No newline at end of file +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UMLSequenceDiagram/SpaceBetweenParticipants). \ No newline at end of file diff --git a/blazor/diagram/user-handle.md b/blazor/diagram/user-handle.md index f618f49d93..29b1e946d4 100644 --- a/blazor/diagram/user-handle.md +++ b/blazor/diagram/user-handle.md @@ -9,11 +9,11 @@ documentation: ug # User Handles for Node and Connector in Blazor Diagram Component -User handles are customizable interactive elements that enhance diagram functionality. They can be utilized to execute custom-defined actions as well as perform standard clipboard operations, providing a versatile and user-friendly interface for diagram manipulation. +User handles are customizable, interactive elements that enhance diagram usability. They can execute custom-defined actions as well as perform standard clipboard operations, providing a versatile and user-friendly interface for diagram manipulation. ## How to Initialize the User Handle -The user handle can be enabled for the selected nodes/connectors by setting a [SelectorConstraints](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SelectorConstraints.html) as [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SelectorConstraints.html#Syncfusion_Blazor_Diagram_SelectorConstraints_UserHandle) and then use the [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html) class to define the userhandle object and add that to [UserHandles](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html#Syncfusion_Blazor_Diagram_DiagramSelectionSettings_UserHandles) collection of the DiagramSelectionSettings. The following code example is used to enable and create user handles for the diagram nodes/connectors. +Enable user handles for selected nodes or connectors by setting [SelectorConstraints](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SelectorConstraints.html) to [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SelectorConstraints.html#Syncfusion_Blazor_Diagram_SelectorConstraints_UserHandle), then use the [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html) class to define the userhandle object and add them to [UserHandles](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramSelectionSettings.html#Syncfusion_Blazor_Diagram_DiagramSelectionSettings_UserHandles) collection of DiagramSelectionSettings. The following code example enables and creates user handles for the diagram nodes and connectors. ```csharp @using Syncfusion.Blazor.Diagram @@ -78,17 +78,19 @@ The user handle can be enabled for the selected nodes/connectors by setting a [S } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/InitializeUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BNLIiNjPeXLREtrf?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/InitializeUserHandle) ![Blazor Diagram Node with User Handle](images/blazor-diagram-with-user-handle.png) ## How to Customize User Handle Actions -User handles in the Syncfusion® Blazor Diagram component can be customized to perform specific actions when clicked. By default, user handles provide basic functionality, but you can configure them to execute custom logic such as cloning, deleting, or triggering other actions. +User handles in the Syncfusion® Blazor Diagram component can be customized to perform specific actions when clicked. By default, user handles provide basic functionality; they can also be configured to execute custom logic such as cloning, deleting, or triggering other actions. ### How to Handle User Handle Click Actions To customize user handle actions in the Syncfusion® Blazor Diagram component, you need to define a custom tool that implements the required behavior and map the user handle to this tool using the [GetCustomTool](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.SfDiagramComponent.html#Syncfusion_Blazor_Diagram_SfDiagramComponent_GetCustomTool) method, ensuring that the appropriate action is executed when the handle is clicked. -The following code explains how to customize the User Handle click Actions. +The following code explains how to customize user handle click actions. ```csharp @using System.Collections.ObjectModel @@ -208,7 +210,9 @@ The following code explains how to customize the User Handle click Actions. } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/UserHandleClickEvents) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rDhIMXNloZKBydSJ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/UserHandleClickEvents) ![Blazor Diagram Node with User Handle](images/UserHandleClickEvents.gif) @@ -219,7 +223,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync The [Offset](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Offset) property of user handles allows precise positioning based on fractional values. A value of 0 represents the Top-Left corner, 1 represents the Bottom-Right corner, and 0.5 represents the midpoint of either the Width or Height. The [Side](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Side) property determines the alignment orientation of the user handle relative to the specified `Offset`. Together, these properties offer flexible and accurate placement of user handles within the diagram. -The following table shows all the possible alignments visually shows the user handle positions. +The following table visually demonstrates the possible alignments and user handle positions. | Offset | Side | Output | | -------- | -------- | -------- | @@ -234,9 +238,9 @@ The following table shows all the possible alignments visually shows the user ha ### How to Customize User Handle Size -The [Displacement](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Displacement) property of user handles is applicable only for connectors allows you to set the margin or spacing between the user handle and the node's boundary. The Displacement property enables you to define the precise positioning of the user handle relative to the connector segment. By specifying x and y values, you can control the offset distance between the handle and the connector, allowing for fine-tuned placement and improved visual clarity. +The [Displacement](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Displacement) property (applicable when the handle targets a connector) sets spacing between the user handle and the connector segment. By specifying x and y values, it offsets the handle from the connector, enabling precise placement and improved visual clarity. -The following code explains how to customize displacement(margin) of the User Handle. +The following code explains how to customize the displacement(margin) of the user handle. ```csharp @using Syncfusion.Blazor.Diagram @@ -296,12 +300,14 @@ The following code explains how to customize displacement(margin) of the User Ha } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/UserHandleDisplacement) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BjhoiNtPotgQSkmt?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/UserHandleDisplacement) ### How to align the user handle using horizontal and vertical alignment properties -The HorizontalAlignment property of user handles is used to set how the user handle is horizontally aligned at the position based on the Offset. The VerticalAlignment property is used to set how the user handle is vertically aligned at the position. These alignment properties provide precise control over the user handle positioning relative to the calculated offset position, allowing for fine-tuned placement and improved visual consistency. +The `HorizontalAlignment` property sets how the user handle is horizontally aligned at the position based on the Offset. The `VerticalAlignment` property is used to set how the user handle is vertically aligned at the position. These alignment properties provide precise control over the user handle positioning relative to the calculated offset position, allowing for fine-tuned placement and improved visual consistency. -The following code explains how to customize horizontal and vertical alignment of the User Handle. +The following code explains how to customize horizontal and vertical alignment of the user handle. ```csharp @@ -380,20 +386,22 @@ The following code explains how to customize horizontal and vertical alignment o } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/UserHandleAlignment) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BXrSstXPSZJsYUHb?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/UserHandleAlignment) ### How to change the size of the user handle -The Diagram component enables customization of user handle dimensions through the [Size](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Size) property. This property allows you to specify the width and height of user handles in pixels. If not explicitly set, the `Size` property defaults to 25 pixels, providing a standard visual representation. Adjusting this value lets you create user handles that are appropriately sized for your specific diagram requirements. +The Diagram component supports customizing user handle dimensions through the [Size](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Size) property. This sets the width and height of user handles in pixels. If not explicitly set, the `Size` property defaults to 25 pixels, providing a standard visual representation. Adjusting this value lets create user handles that are appropriately sized for the specific diagram requirements. ### How to Style User Handles -You can enhance the visual appeal of user handles by customizing their appearance using specific properties such as PathColor, BorderColor, BackgroundColor, and BorderWidth. The following code demonstrates how to effectively modify the style of user handles to align with your design preferences and improve overall user interface aesthetics. +User handles can be styled using properties such as PathColor, BorderColor, BackgroundColor, and BorderWidth. The following code demonstrates how to effectively modify the style of user handles to align with your design preferences and improve overall user interface aesthetics. * The [PathColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_PathColor) property of the user handle allows you to customize the color of the icon defined by the [PathData](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_PathData) property. -* To enhance the visual appearance of user handles, you can use the [BorderColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BorderColor) and [BackgroundColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BackgroundColor) properties to set the border and background colors respectively. Additionally, the [BorderWidth](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BorderWidth) property allows you to adjust the thickness of the user handle's border. +* Use [BorderColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BorderColor) and [BackgroundColor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BackgroundColor) properties to set the border and background colors respectively. Additionally, the [BorderWidth](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_BorderWidth) property allows you to adjust the thickness of the user handle's border. * The [Visible](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.UserHandle.html#Syncfusion_Blazor_Diagram_UserHandle_Visible) property controls the visibility of the user handle in the diagram. Set it to `true` to display the handle, or `false` to hide it from view. @@ -471,13 +479,15 @@ The following code explains how to customize the appearance of the user handle. } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/Style) +{% previewsample "https://blazorplayground.syncfusion.com/embed/htLesXNvIjJlaqCH?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/Style) ![Customizing Appearance of Userhandle in Blazor Diagram](images/blazor-diagram-custom-user-handle-appearance.png) ### How to Change the Userhandle's Visible Target -The [VisibleTarget](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.VisibleTarget.html) property determines the visibility of the user handle for specific diagram elements. It allows you to control whether the user handle is displayed for Nodes, Connectors, or both. By configuring this property, you can customize the user interaction experience and ensure that handles are only visible for the desired elements in your diagram. +The [VisibleTarget](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.VisibleTarget.html) property determines the visibility of the user handle for specific diagram elements. Control whether the user handle is displayed for Nodes, Connectors, or both. By configuring this property, Customize the user interaction experience and ensure that handles are only visible for the desired elements in the diagram. | VisibleTarget | Node | Connector | Description | | -------- | -------- | -------- |-------- | @@ -485,7 +495,7 @@ The [VisibleTarget](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diag |Connector|![VisibleTarget set as connector](Images/blazor-diagram-user-handle-visible-target-connector1.png)|![VisibleTarget set as connector](Images/blazor-diagram-user-handle-visible-target-connector.png)|When VisibleTarget is set as the connector, the userhandle only renders for the connector, not for nodes. | |Both|![VisibleTarget set as Both](Images/blazor-diagram-user-handle-visible-target-node.png)|![VisibleTarget set as Both](Images/blazor-diagram-user-handle-visible-target-connector.png)|When the VisibleTarget is set as both, then the userhandle renders for both nodes and connectors | -The following code example shows how to change the VisibleTarget in the userhandle. +The following code example shows how to change the VisibleTarget in the user handle. ```cshtml @using Syncfusion.Blazor.Diagram @@ -715,15 +725,17 @@ The following code example shows how to change the VisibleTarget in the userhand } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/VisibleofUserhandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BDheCXXuWinfoVfl?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/VisibleofUserhandle) ![VisibleTarget](Images/blazor-diagram-user-handle-visible-target.gif) ### How to define the type of user handle -The Blazor Diagram component provides support to render different types of user handles, giving you flexibility in how they appear and function. There are three main types of user handles you can define: +The Blazor Diagram component provides support to render different types of user handles, giving flexibility in how they appear and function. There are three main types of user handles: #### 1. PathData Type -This type renders a user handle using custom SVG path data. You define the shape and appearance using SVG path commands through the PathData property. This is the most flexible option for creating custom icons and shapes. +This type renders a user handle using custom SVG path data. Define the shape and appearance using SVG path commands through the PathData property. This is the most flexible option for creating custom icons and shapes. The following code demonstrates how to create a user handle using PathData: @@ -791,10 +803,12 @@ The following code demonstrates how to create a user handle using PathData: } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/LZLeiZZPeXFydqps?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeUserHandle) #### 2. ImageUrl Type -This type renders an image as a user handle using an image URL through the Source property. You can specify any web-accessible image URL or base64 encoded image data. This is ideal when you want to use existing icons or images. +This type renders an image as a user handle using an image URL through the Source property. Specify any web-accessible image URL or base64 encoded image data. This is ideal when want to use existing icons or images. The following code demonstrates how to create a user handle using an image URL: @@ -864,10 +878,12 @@ The following code demonstrates how to create a user handle using an image URL: } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rZhoMjZEWtlIdmFN?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeUserHandle) #### 3. Template Type -This type renders a user handle using a predefined template defined in the UserHandleTemplate section of the diagram. This allows for completely custom HTML content. You can customize the appearance of user handles by defining a template in the [UserHandleTemplate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramTemplates.html#Syncfusion_Blazor_Diagram_DiagramTemplates_UserHandleTemplate) at the tag level. This template will be rendered when neither the PathData nor ImageUrl properties of the user handle are specified. However, if either PathData or ImageUrl is defined, they take precedence, and the template will not be rendered. This allows for flexible styling options while maintaining a clear hierarchy of visual representations for user handles. +This type renders a user handle using a predefined template defined in the UserHandleTemplate section of the diagram. This allows for completely custom HTML content. Customize the appearance of user handles by defining a template in the [UserHandleTemplate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.DiagramTemplates.html#Syncfusion_Blazor_Diagram_DiagramTemplates_UserHandleTemplate) at the tag level. This template will be rendered when neither the PathData nor ImageUrl properties of the user handle are specified. However, if either PathData or ImageUrl is defined, they take precedence, and the template will not be rendered. This allows for flexible styling options while maintaining a clear hierarchy of visual representations for user handles. The following code explains how to define a template for the [UserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html). @@ -946,7 +962,9 @@ The following code explains how to define a template for the [UserHandle](https: } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/LtrSWDjECDEhxaNC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeUserHandle) ![Template for UserHandle](images/UserHandleTemplate.gif) @@ -956,15 +974,15 @@ The user handle types follow a specific precedence order when multiple options a * PathData (Highest precedence) * ImageUrl (Medium precedence) * UserHandleTemplate (Lowest precedence) -This means that if you specify multiple options for the same user handle, the one with higher precedence will be rendered. For example, if both PathData and Source are provided, the PathData will be used and the image will be ignored. +If multiple options are set, the higher-precedence option is used. For example, when both `PathData` and `Source` are provided, `PathData` is used and the image is ignored. ## Fixed User Handles -The [FixedUserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html) feature allows you to add customizable, readily accessible commands around nodes and connectors without requiring selection. This enhances user interaction and streamlines frequently used operations within the diagram. +The [FixedUserHandle](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html) feature adds customizable, readily accessible commands around nodes and connectors without requiring selection. This enhances user interaction and streamlines frequently used operations within the diagram. ## How to Initialize the Fixed User Handles -To create the fixed user handles, define and add them to the collection of nodes and connectors property. The following code example is used to create an fixed user handles for the nodes and connectors. +Create fixed user handles by defining them in the corresponding node or connector collection. The following example creates fixed user handles for nodes and connectors. ```csharp @using Syncfusion.Blazor.Diagram @@ -1005,7 +1023,9 @@ To create the fixed user handles, define and add them to the collection of nodes } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/FixedUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BthSCNZEMXacGTMk?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/FixedUserHandle) ## How to Customize the Fixed User Handle @@ -1013,27 +1033,27 @@ You can download a complete working sample from [GitHub](https://github.com/Sync * Fixed user handles can be positioned relative to node and connector boundaries. They offer customization options through `Offset`, `Padding`, and `CornerRadius` settings. These properties allow for precise positioning and styling of the fixed user handle. -* The [Padding](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Padding) property is used to create space inside the fixed user handle, specifically between the icon and the border. This enhances the visual appeal and improves readability. +* The [Padding](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Padding) property creates space inside the fixed user handle, specifically between the icon and the border. This enhances the visual appeal and improves readability. -* [CornerRadius](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_CornerRadius) enables the creation of fixed user handles with rounded corners. By adjusting the `CornerRadius` value, you can control the curvature of the corners, allowing for a more polished appearance. +* [CornerRadius](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_CornerRadius) enables the creation of fixed user handles with rounded corners. By adjusting the `CornerRadius` value, Control the curvature of the corners, allowing for a more polished appearance. N> The [PathData](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_PathData) property is mandatory for rendering a fixed user handle. It defines the shape and appearance of the handle using SVG path commands. ### How to Customize Fixed User Handle Size -Diagram enables customization of fixed user handle dimensions through the [Width](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Width) and [Height](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Height) properties. These properties allow precise control over the size of fixed user handles. By default, both `Width` and `Height` are set to 10 units. Adjusting these values provides flexibility in designing user handles that align with your diagram's visual style and functional requirements. +Diagram supports customizing fixed user handle dimensions through [Width](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Width) and [Height](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Height) properties. These properties allow precise control over the size of fixed user handles. By default, both `Width` and `Height` are set to 10 units. Adjusting these values provides flexibility in designing user handles that align with the diagram's visual style and functional requirements. ### How to Style Fixed User Handle -* You can change the style of the fixed user handles with the specific properties of borderColor, borderWidth, and backgroundColor by using the [Stroke](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Stroke), [StrokeThickness](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_StrokeThickness), and [Fill](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Fill) properties, and the icon BorderColor, and BorderWidth by using the `IconStroke` and `IconStrokeThickness` properties. +* Change the style of fixed user handles with the specific properties of borderColor, borderWidth, and backgroundColor by using the [Stroke](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Stroke), [StrokeThickness](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_StrokeThickness), and [Fill](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Fill) properties, and the icon BorderColor, and BorderWidth by using the `IconStroke` and `IconStrokeThickness` properties. -* The fixed user handle's [IconStroke](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_IconStroke) and [IconStrokeThickness](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_IconStrokeThickness) properties are used to change the stroke color and stroke width of the given `PathData`. +* The fixed user handle's [IconStroke](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_IconStroke) and [IconStrokeThickness](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_IconStrokeThickness) properties change the stroke color and stroke width of the given `PathData`. * The fixed user handle `Stroke` and `Fill` properties are used to define the background color and border color of the user handle and the `StrokeThickness` property is used to define the border width of the fixed user handle. * The [Visibility](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.FixedUserHandle.html#Syncfusion_Blazor_Diagram_FixedUserHandle_Visibility) property indicates whether the fixed user handle is visible in the user interface. -The following code explains how to customize the appearance of the fixed user handles. +The following code explains how to customize the appearance of fixed user handles. ```csharp @using Syncfusion.Blazor.Diagram @@ -1078,7 +1098,9 @@ The following code explains how to customize the appearance of the fixed user ha } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/ConnectorFixedUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BDBSstjOMMZqFkIF?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/ConnectorFixedUserHandle) N> The fixed user handle id need to be unique. @@ -1088,11 +1110,11 @@ The node fixed user handle can be precisely aligned relative to the node boundar ### How to Adjust Margin for Node Fixed User Handle -[Margin](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.NodeFixedUserHandle.html#Syncfusion_Blazor_Diagram_NodeFixedUserHandle_Margin) is a property that allows you to add precise spacing around a fixed user handle. By specifying an absolute value, you can create blank space on any of its four sides. This property enables you to fine-tune the position of the fixed user handle, effectively displacing it from its default location. +[Margin](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.NodeFixedUserHandle.html#Syncfusion_Blazor_Diagram_NodeFixedUserHandle_Margin) is a property to add precise spacing around a fixed user handle. By specifying an absolute value, create blank space on any of its four sides. This property enables to fine-tune the position of the fixed user handle, effectively displacing it from its default location. ### How to Position Node Fixed User Handle Using Offset -The [Offset](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.NodeFixedUserHandle.html#Syncfusion_Blazor_Diagram_NodeFixedUserHandle_Offset) property of a fixed user handle is used to position the handle relative to the node. It accepts `X` and `Y` coordinates, where (0,0) represents the top-left corner of the node, and (1,1) represents the bottom-right corner. This allows for precise alignment and placement of the user handle on the node. +The [Offset](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.NodeFixedUserHandle.html#Syncfusion_Blazor_Diagram_NodeFixedUserHandle_Offset) property position the handle relative to the node. It accepts `X` and `Y` coordinates, where (0,0) represents the top-left corner of the node, and (1,1) represents the bottom-right corner. This allows for precise alignment and placement of the user handle on the node. The following table shows all the possible alignments visually shows the fixed user handle positions. @@ -1155,7 +1177,9 @@ The following code explains how to customize the node fixed user handle. } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/Offset) +{% previewsample "https://blazorplayground.syncfusion.com/embed/rXhIMNDkMsCzaaqE?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/Offset) ## How to Customize Connector Fixed User Handle @@ -1166,8 +1190,8 @@ You can download a complete working sample from [GitHub](https://github.com/Sync ### How to Position Connector Fixed User Handle Using Offset The [Offset](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.ConnectorFixedUserHandle.html#Syncfusion_Blazor_Diagram_ConnectorFixedUserHandle_Offset) property of the connector fixed user handle allows precise positioning along the connector's length. It uses a fractional value where: -* 0 represents the connector's source point -* 1 represents the connector's target point +* 0 represents the connector source point +* 1 represents the connector target point * 0.5 represents the midpoint of the connector segment This fractional system enables flexible and accurate alignment of user handles on connectors. @@ -1186,7 +1210,7 @@ The following table shows all the possible alignments visually shows the fixed u ### How to Adjust Connector Fixed User Handle Position Using Displacement -* The [Displacement](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.ConnectorFixedUserHandle.html#Syncfusion_Blazor_Diagram_ConnectorFixedUserHandle_Displacement) property enables you to define the precise positioning of the user handle relative to the connector segment. By specifying x and y values, you can control the offset distance between the handle and the connector, allowing for fine-tuned placement and improved visual clarity. +* The [Displacement](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Diagram.ConnectorFixedUserHandle.html#Syncfusion_Blazor_Diagram_ConnectorFixedUserHandle_Displacement) property define the precise positioning of the user handle relative to the connector segment. By specifying x and y values, control the offset distance between the handle and the connector, allowing for fine-tuned placement and improved visual clarity. The following table shows all the possible alignments visually shows the fixed user handle positions. @@ -1242,11 +1266,13 @@ The following code explains how to customize the connector fixed user handle. } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/ConnectorFixedUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VjByWtNYiChZlICf?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/ConnectorFixedUserHandle) ## How to Provide a Template to Fixed User handle -You can define a custom style for fixed user handles using a template in the [FixedUserHandleTemplate] at the tag level. This allows you to create unique templates for each node and connector by distinguishing them based on their ID property. The template will be rendered when the PathData property of the fixeduserhandle is not specified. However, if both PathData and template are defined, PathData takes precedence, and the template will not be rendered. The following code demonstrates how to define a template for a fixed user handle. +Define a custom style for fixed user handles using a template in the [FixedUserHandleTemplate] at the tag level. This allows you to create unique templates for each node and connector by distinguishing them based on their ID property. The template will be rendered when the PathData property of the fixeduserhandle is not specified. However, if both PathData and template are defined, PathData takes precedence, and the template will not be rendered. The following code demonstrates how to define a template for a fixed user handle. ```csharp @using Syncfusion.Blazor.Diagram @@ -1312,12 +1338,14 @@ You can define a custom style for fixed user handles using a template in the [Fi } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeFixedUserHandle) +{% previewsample "https://blazorplayground.syncfusion.com/embed/BDLICNZYWsBxKDOk?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/CustomizeFixedUserHandle) ![Template for FixedUserHandle](images/FixedUserTemplate.png) ## How to Handle Fixed User Handle Events -The Diagram control provides the following event for the fixed user handle. +The Diagram control provides the following event for fixed user handle. | Event Name | Event Type | Description | | -------- | -------- | -------- | @@ -1376,7 +1404,9 @@ The Diagram control provides the following event for the fixed user handle. } } ``` -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/FixedUserHandleEvent) +{% previewsample "https://blazorplayground.syncfusion.com/embed/VZheiNXkiCqDgOux?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +A complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/Blazor-Diagram-Examples/tree/master/UG-Samples/UserHandle/FixedUserHandleEvent) ## See also diff --git a/blazor/file-manager/getting-started-with-web-app.md b/blazor/file-manager/getting-started-with-web-app.md index 5bbffb9161..be1a60a0a3 100644 --- a/blazor/file-manager/getting-started-with-web-app.md +++ b/blazor/file-manager/getting-started-with-web-app.md @@ -27,8 +27,6 @@ The corresponding [Interactive render mode](https://learn.microsoft.com/en-us/as ![Create Blazor Web App](images/blazor-create-web-app.png) -![Create Blazor Web App](images/blazor-create-web-app.png) - ## Install Syncfusion® Blazor File Manager and Themes NuGet in the Blazor Web App To add **Blazor FileManager** component in the app, open the NuGet package manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*), search and install [Syncfusion.Blazor.FileManager](https://www.nuget.org/packages/Syncfusion.Blazor.FileManager/) and [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/). diff --git a/blazor/gantt-chart/getting-started-with-server-app.md b/blazor/gantt-chart/getting-started-with-server-app.md index c2e45a9dab..1bbfeb6ca9 100644 --- a/blazor/gantt-chart/getting-started-with-server-app.md +++ b/blazor/gantt-chart/getting-started-with-server-app.md @@ -624,4 +624,4 @@ N> [View Sample in GitHub](https://github.com/SyncfusionExamples/Blazor-Getting- * [Getting Started with Syncfusion® Blazor for Client-Side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-webassembly-dotnet-cli) * [Getting Started with Syncfusion® Blazor for Server-Side in Visual Studio](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio) -* [Getting Started with Syncfusion® Blazor for Server-Side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-dotnet-cli) \ No newline at end of file +* [Getting Started with Syncfusion® Blazor for Server-Side in .NET Core CLI](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-dotnet-cli) diff --git a/blazor/getting-started/blazor-webassembly-app.md b/blazor/getting-started/blazor-webassembly-app.md index 2faa606cb4..6f92fc710e 100644 --- a/blazor/getting-started/blazor-webassembly-app.md +++ b/blazor/getting-started/blazor-webassembly-app.md @@ -211,4 +211,4 @@ Add the Syncfusion® Blazor Calendar compone * Press Ctrl+F5 (Windows) or +F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Calendar component in your default web browser. -{% previewsample "https://blazorplayground.syncfusion.com/embed/LDBgirsJBGDheWFi?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Calendar Component](images/output-calendar-using-blazor-webassembly.png)" %} +{% previewsample "https://blazorplayground.syncfusion.com/embed/LDBgirsJBGDheWFi?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" backgroundimage "[Blazor Calendar Component](images/output-calendar-using-blazor-webassembly.png)" %} \ No newline at end of file diff --git a/blazor/image-editor/annotation.md b/blazor/image-editor/annotation.md index fe96d30b9c..2136a03100 100644 --- a/blazor/image-editor/annotation.md +++ b/blazor/image-editor/annotation.md @@ -135,7 +135,7 @@ Here is an example of adding a multiline text in a button click using `DrawTextA } ``` -![Blazor Image Editor with multiline text annotation](./images/blazor-image-editor-draw-multiline-text.png) +![Blazor Image Editor with multiline text annotation](./images/blazor-image-editor-draw-multiline-text.jpg) ### Delete a text @@ -179,7 +179,7 @@ Here is an example of deleting a text in a button click using `DeleteShapeAsync` } ``` -![Blazor Image Editor deleting a text annotation](./images/blazor-image-editor-delete-text.png) +![Blazor Image Editor deleting a text annotation](./images/blazor-image-editor-delete-text.jpg) ### Customize font family and text color @@ -212,7 +212,7 @@ Here is an example of changing the text color and font family using `ShapeChangi } ``` -![Blazor Image Editor with custom text styling](./images/blazor-image-editor-custom-text.png) +![Blazor Image Editor with custom text styling](./images/blazor-image-editor-custom-text.jpg) ### Add additional font families @@ -245,7 +245,7 @@ Here is an example of adding additional font families using `ImageEditorFontFami } ``` -![Blazor Image Editor with custom font family](./images/blazor-image-editor-font.png) +![Blazor Image Editor with custom font family](./images/blazor-image-editor-font.jpg) ### Formatting text with bold, italic, underline, and strikethrough @@ -394,7 +394,7 @@ Here is an example of adding a formatting text in a button click using `DrawText } ``` -![Blazor Image Editor with formatted text](./images/blazor-image-editor-formatting-text.png) +![Blazor Image Editor with formatted text](./images/blazor-image-editor-formatting-text.jpg) ## Freehand drawing @@ -438,7 +438,7 @@ Here is an example of using `EnableFreehandDrawAsync` and `DisableFreehandDrawAs } ``` -![Blazor Image Editor with freehand drawing](./images/blazor-image-editor-Freehanddraw.png) +![Blazor Image Editor with freehand drawing](./images/blazor-image-editor-Freehanddraw.jpg) ### Adjust stroke width and color @@ -470,7 +470,7 @@ Here is an example of changing the freehand draw stroke width and color using `S } ``` -![Blazor Image Editor adjusting stroke width and color](./images/blazor-image-editor-adjust-stroke-color.png) +![Blazor Image Editor adjusting stroke width and color](./images/blazor-image-editor-adjust-stroke-color.jpg) ### Delete a freehand drawing @@ -676,7 +676,7 @@ Here is an example of inserting rectangle, ellipse, arrow, path, and line in but } ``` -![Blazor Image Editor with shape annotations](./images/blazor-image-editor-annotation.png) +![Blazor Image Editor with shape annotations](./images/blazor-image-editor-annotation.jpg) ### Delete a shape @@ -802,7 +802,7 @@ Here is an example of adding a image in a button click using `DrawImageAsync`. } ``` -![Blazor Image Editor with an image annotation](./images/blazor-image-editor-add-image.png) +![Blazor Image Editor with an image annotation](./images/blazor-image-editor-add-image.jpg) ## Show or hide the annotation options @@ -842,8 +842,7 @@ Using the [Toolbar](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Imag } ``` - -![Blazor Image Editor with annotation options](./images/blazor-image-editor-annotation-option.png) +![Blazor Image Editor with annotation options](./images/blazor-image-editor-annotation-option.jpg) ## See Also diff --git a/blazor/image-editor/images/blazor-image-editor-Freehanddraw.jpg b/blazor/image-editor/images/blazor-image-editor-Freehanddraw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..acccb5a2b46b646d97ca7a8e4596858ac001cc39 GIT binary patch literal 99350 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℞i<^3AI1y?}U9j@FIb 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�l_q4otIMbgTZ+zW`-^z9)9N_zV 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
    #xIs;AI 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 uBcM2GQm-X4io6dbuf;D2~GR? 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/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 I)7N_b0;Of6!vFvP literal 0 HcmV?d00001 diff --git a/blazor/image-editor/images/blazor-image-editor-adjust-stroke-color.jpg b/blazor/image-editor/images/blazor-image-editor-adjust-stroke-color.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9e9e509be716f355348abf2e0bd235b04f1e5571 GIT binary patch literal 90987 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 z zULEiZPOy674tc`NxIGV=AwtM(tyMV{u5!{BpDnbzXm>^-30lTXmT}wOhWy+~2tPP*EkS-ebLxx{BN zWK4o6vyE*~JyDKfU17-VFsir_hy8d$>Ay^i8P_zwIdr9-6#XJ29)MnH=~v-0F5C2% zQ$OPY2gG7vNq4mO72nJ}TdI#*|dV$~gXPcGvYzl{HxWR?#?fM%cA9 ze-0b3zIVS(zO2KGiXwV)QoKXaeB7Hd>*`oG&0^8I=dYH4S*yNfrB3X&BM?|=EaQx0 z1_+g343b5UcKd6!u8>vJQ+|6DW@J?9qIu`@N5H0wdSk*HeQ~2O?VTSJ71frvM#(p@eU8L>AH^bvwm%9GN(71Q3E@q%(vc zs}t@v3GHXPKF%3KsjXg)Ds&x*s8RP&%k0>cO*RuGIvuODcljh_m^L3W^?XQ2*^+lP zsCi)>L!c^N2+U6FJPvENUzf#^Uty(XQGgESW>xXqPu2Q~I!>{+`@j`V)FZ*+l=*R* z_ucy++N>)$e=l8Dkni&Rl*hlZi;&md+*;CVmUDFVZq!iImU63%arH)K&auBT%VhQJ zfA+raxsE5Pf2e5;f#j4VoqY(pYEYQ2GIk+joKMJ9(n9CQFvJl)Y3f+WWIWn)=QnVT z_^b7Rfr@E=yUkWAf8xs)27M=MFTmI{PYgq0Dl;d{C`lBRm!9{zPqF_)YjTx&WbewL zk)R~DGG_`duAbbrjf8VTj0kKuQ9-W@C4}0HG6Cr_o(2BoCIF% z>b^{1Ki&O3Rl4+YaVh)SJ$7c1W^eepLX1bSt zJe!q2kPC|}$d|K}r3R{a01R+>M%?_~=rU4f-<6T+&#W6UNcbPxOk8%QIle>5em|H{( zvRD3GB;J+#DDVyiW30-%G zM(G!07;S| zOWXsCX9YFSTGsaF)u_4*_()Ae$7Qd4jGQd@za+%-#IBcH z_N|!d9v0g)dkl-ZU02>+^hYkSCTKz%n?p^N^WVI@5M#|L6ks%)>NE9=zMqCY#HN+B zW2gdC&(uF+oN=v|P~8+x@zN9To=mq=89S}Cm6t5V_ghkzv8wG&z|cZsaTP+G_G$`6 z6+)#{?`nFFI!UtKxM$ugh~DR%h?R+$4uQB&CAxp`9X_sDj zT8RJTuq~Q-r>?4FV2qIfn$A&=gp$&Rwm zmkR|n=(Fyr=0>I9F9_;wYVJiSW^iGQvK$TAW^~etWnp6k0%!tC-Y7+WDsX*Gr1Ite zKU~F832fYI+ym@c%4L2E!HERe1CBvA#N11^E?|_<@VhTyZqTzY=$sa2m}zJMc(?~_ z04C~#2+5_0G=GKu?>MxXMi&~D*kYEDF1*{;%8}(U?tf@*YUBDfPfkXx+WjFiaPi7_ zh2w*%bOeLpV=;er&E2j~4~j)6ybH*$1~F8>7||3{l$=KulC|ALa0B73QHl!Zai90Lj~qROzSmkF5vaGY<3ku3 zj4R6Y_nr?t*ylUgS=wTM3zM`a8Hb2w8JjN}?SOHm+@aJxGmI%FbJ|jAY5l~* zAITSS$-#%Ji<17;@#Sfn6_uz=Uf@$5qnn{b>ZG9C0-BgEEBthEjdt*w7c(kq*Y$_a z88jVt8H^KURhF=?_9C*qT3xgA=PNgp118VJ9>^66<+Lhky;uvG&LDOc4>IS%li}k0 z9q_n*g>S3Wp^=bURt2|}l1O1HZx|m;fTF5q`}hz%fapryu5%$O-)Adsar87hUuX*m zqrsbdVuIpmpDhS(Xz!=+ckWCDFl0!)@L?zNxB+?xZ3S$9>EdKZnQCIKXw&OcJU-Y`47Eo?%cir%GF$}V3JrT60O zQ~WR6Lsf3y4VUWerZBWDWDXWLQa1oOg74;+dw=?eW(3}F-)lHBvw8G2tBtMlV`~I9 zjh+eNV?T*5KAF82j>@M0PDpslvhxM24^4RM?S*Gm@Et^)93k~;B_NzFZ;p>i73}i? z27l|-^AF83mX%w~ryoFU(V;+@I*Zb`1hKz~W)@BTdDHXcSDp>O`;|LY-@%?hVcW%9 z(RBRT>7!Hk7eVwURDDeJEnL8}*y5>N>dFtuN|34Ay=(#BPeMuPCDx@4`+;&AsRbh1 z9dtXxFLtyYS`Ntxe;qE0CU{+S{B^$Y!mu_q zX?NiL+Yf)ZWgNrfrQe_+UxxF!@V5R3!+g8^h5}CsSpOAX)w?hrOSJU1#bH z07DnYJ~pZS^1jmnwpy03%GrAxlMPxTM0hWW`;}F~x^?`wR{}U_um8iFztS%b7oX_oUW7&pR$4T_eFjQeEtbO#Ny<)CHqBRhCpN*=y%8bEU$HK1kn$XRmHq3z zv}`k;=RHg^rm8o`Pe&7R+bAKEealYu=3iI@$qq8~2>%WMy{51A#|HM8#3LNS!FRsm z-)sbL7_fIc1T?2N!N9)KgQmzZig~`+`yZV(&z53QbMe7v!Eo0d=y;$lZs zr1L6@`2gBEJ5!wv^qNgvEKWb1$t8Yc$}A6WRb09CxA}+W@ijC&^1ObC<9(xg?3pHp zkXeN9kSxPfEJ`r;cEB6+7r@G^$__f+ZfV^5oQ7R{g3D%EbdGZ8Z5RYZfx&zV&DWm{ zg^D8bvUug_lZS^f?J;w z<2k+2CW=^efj~8HOicDOL4<9rC)b-rbIe~0$INu>^fi#|)6aUb@#ek)fcNEG2_qMb{ePj>u z0odDpeMj}XhIK_>=|^>-s3rAFSMXg#&Z|_ zY`e>LrVlM9!l91>u;O5xx+Z5Io2gFN$NgDM35!gOCx=VhUl5@}8de`8{$Q1Ia=LXn zr)SJPp0y31qxy#?3Xfbw1VAe#zqDVpcfOBht)w_wX8+sjbfq`q6my#O-@1sil()kG zyPhJbTX;>S?|q_(^;=)uwweK7QQL)lRiceW@4L3A>Dz{b>C6;)+oq9)+1ZB!7XcJ8 z*sKGguw#UO<{&<@_N7cYRWczCfrYl+>VC$$j~}d)xx=3-fS-DX9E?IN$j-~Q4#*U5gUn^Fi~w&SqRb)Zk!6Eta2^6LS_ z_;`Aj31Tm-$lqNxLSi&TrER4Zc79bXrnVyE&H>-q_d2^Su6mcEe>bMC4^t}oaQ6PD z*xX(WpGtTvS69OPJIFe~o+JBn(IRDHpIjs!dIo}n?Gd_H3R`xppL!ZED_1jihR@0x z_K?zEo%ORkiuRAiw0$oV_*)z8G{`Y3&%h!Q0<`x~i`hmC-1dHX z+a4%~<^m*jBuJn$TY8c4V6W+GR4?3xkTt^$g8)**_?pehIfsaco*PNt14qv{Dtg4) z5^BOQT#|svzA$+=sX@^RU?t1ZakTwym9s*#8H)#Q3oL7{)CY@v4Iib=z(%zXJ&Ks) zdf5Nnpk)daq;f4=NYYav1f^llAsg(;?Pe5np}PUzDUsi&>)Ng5T)Hv4yld~!OMbeS zIRWj7VvZrc^FP{t1xtpUXQW28fNB1gEv?T~43~yc<)nmC!R^S8d@@X0q6B{o0+p?` zeFt}ib6{w@*voaT*7Ue-#U0L$YhU$$e2;cz(CnwEOpIkzM!PBbkzfg=3Lk}bRr2YB zRdfhEBZs9$ub~@7G<5Z81rd{v8p0U|wlbgWi?S}Efwou;&4l0Y%Y)90)&pR;5m9A3--Y4)jJe-e?uCoKtn9uPnvjh9#`%kyA+lY=ltbi* z=0Y}9&hEOI{pt5E!Hf8JG@G%uJ0%M_6iTl7?(-d@ldC*z#B3wU%vvdV*(>Mv;ROiF z?z@0@qB0*#E63SVJAd5ovPsJNp!wj1#0GbUbW#qu#^A07V%;bde`=_UpfBx)rt%MrU_*y)eXB}T-Zvb#RqO?IH$sPTUy7i z-bx)RCtLT)7UZNJANd}`1$sN_5U=6tp>0Z*^=)6>Ta%I~eV}w93mpnO9s?bK zowS~qk4SPeh3V4nCjRAns4=Ce8>B-SkpzG2?&P_6Mke?X4-6hGNmDEZ*P87aFGDej zFK<&E&E_kosrx?~yTd|a(}|Z=r;8bJGeoIGvf#XX8oKf*<5{oMS=n&;IayO#RGB0< z^44fs)!`%HzjuM(BmSZNjfBgdj<085J7LEEi9#ay4oeu51ZEj>z%0fs`8UGWU?Q_-Ik>w)5f30GHER|qz25%b6w9JNWYQq zKqW1WP(^gN*grJ%agE>3VqXmm>15aN@Fg@p zF63joSKoo@lLkGx&1;6XVpBj&(K^d%+~`XgzIpp%-UdHJFE(S;)3l;#XgAt}9Y|%l zH7uBl(K3n!qKY(zthG>hRPwx@F(0Cpu`kbCEXgbVJTJ+^{}S)Y3|xgjj_-lg9_Dxu z{qat$93qLrGt~xlb5)!lFhwAjW!yH(A){cJp@|FB8IuE21F1Bfgz~F^K38MLTZ?>1 z{CSJTm+2;S^#al%$v;T+K$Xsh&s&00Nj1*Oy0?jprKpUX^7G|pFG#>^boGt_QH?*!rJwmeO|?cxVpG< zj_+DskQ9PFJJ0ywv2MtmDiW#aTUHRMNTL1DLHvL1lPCZ0j)~yppvbQqd*+KSTKzKmPC^6=!+=`y{oUiBcCA|CMmK zFeAaWz?h)7@3{F%dx<7{2%OFi*h=|_M$pw*oO9k!Lt{%SBx}-|EsLs0>1!Q{5oeVS z>ejnT5@=@BTjbss`k_Fs!|?G=(4KWuCuxTBmrWlhu6sw9$waTJxNh1DrGIEto(huu zGe;SiD}_H2e?;z>Mz52S|8^w$^u&7261g{ET(Yx0tYW>FyBRp{q~iv(mDWnj=}Nz^ z0X)4^+o5_$uH*06z9+sMv~12CGdo0<2WhmU*2k+&L_@ykuQkr!qC9w+%>C7s^ZhY# zrY2O2hoMA=TZgJ~Y`j;;cbTSj?e_d~izz#u;~krA;IXHx*{-b|(0?aSDi}o%XTRZ6 zLK zG+Gk3QyV=9oGBEh)_b4!t`t)Aii!9kTgvP$^(V!-4Pg0G2VQG>)yG1z?XzV1X?8Iq zcYnR*fF53?ptXCHoyE>3?#h>ze#gzV5^~gY9;FC-L}Deun^cx>L8J(G)2yP$$E2pi z$BbvCyjHPfJF}=`KF;yNXM%ghvVb0TB(JUZqetWuk27&d%w5{6-M8oF8uJhVKnC0){i)G)q(T}JpFnBT);98?4Mp*Ct zK8wlOajAZYTbl==uBV4joDU&l6sJ1t3*0tdXOwAcUS&xdq8|p&$uo;Gl1mNBA0Eh$ z)o^8$lIs+^K21j40GGgnoJD<%K^OhP;AE8oFN+tbq`LyUmkr9;=5lJNhI)lw%_6e- zM)hTO0C--B7#=`j3xg-)w^FlUK%sw{ivFDQ7$3I(1P)M4Y32S_gg|Rm$@`v_vl(H9 z?9TbnF~xiO@mza0ahzS1vfRp^@p8R4y80f_&Vx|12bh3=Q=|n~U6*$eSs(hnwR@cp zabb=`g^`d6Nm>C1oW}nvl?;i?~i9yVM+f)Rr}rBXu}_r%D2yP zA!cQxukN_ogACWQJ9S*DoiX2|Ou7zADh|w-^hNfIeIAmGL_HD7TeVUBG<+)QXh41aS2-w;!auaZ;}h>sx3&1?-H5#|l*kUHAWUUi?k-0S z^%fr{AR+$zzhhdfq60Qk|L33MlZ^j8c?YnJ15pTEiTy2c^z9P%4^3+B0y*q28d3LL zo^N-3wTJ4$xZS=c^3lORx)2w0SmuE|_D~E)e>sK83;jdua{GWBp%G^en|C!>`iGW- z;?~1kA08sb3PP5?Ag+p8$f!{RyK|NT(^KQ#M;t+-av!vMs( zU%C{{jKm3@uQ{lesoy!2)?oVf_JdbITG}_GTF(C8^MMQX%Aa5E>=-THx!u|kb>!1l zN5JErxB>mu+ zEAMsrFcAhPK6m0rC30Q9bES{;z7p#94Kd`a;QyV($WJhn6H{Lc&J!Q#KDmL>H#V2- znNigI9{qlf7N=`VP12YOoRrG32i=`@uI9yA^`Y+bkN?1iNH?b1G=ESuPDB@CogcVV z3}K|SFVDlg;Te5E{?DnPhWJh}`VLOOQW``S;8l9?eZ7Xa>&ZSh^OhPu7yOk^@eP*{ zZD(5CQ@D}yv`j<1pCM-NG_p@zIGXAx2h+LE10V1xG2&S}t1$HiW^SLMPJ$vMA zoUrNVufc%%fI1y`Ko1|1E_MB5)Aj%pEsFv_X7%&De}amky7L&X#aP;opJ;O$ce0Ss z;+ntvBr04i!wq^g?SS9#@`E{wAjrs)0#wwpK{WnMop=47w6c$yo1-qNgQ{~AnS0VT z)M8)pd=3a;_njPT>Do%(c%QS|cGN09I}EVR1U#^`tU4eV@%ziE{VD&ro#TvJQ04Xx zi$4Coh9t!;bZL}ST9A#1HVT@kI)dsuHXcAPtw7aAajuV}5L*z=>VON*;NXf^(@XES zUXsxZG3O^Da18B&NNOVq4UP%{Mb0~7;8Pt6V$gY%*Z%))S7e-2Z)zOpXMN)rA8lOw zk3M|by5@4v_6t8$>l5WWvc&UNKYa3)=~4baQ=j}B?vL!wu3l47>G$TH@L6CASp9yM z_U&(z?3`~n{P`!p!T-oHdAt1&-+WW@-0`Pom-si%AJYV;U9Yh_fBXAqU=DN*f59tK z?a98O@#nYu8|06)Tjmx!s9%0743Y~4UY*udTjQawy{4jIqr~YL-{Zhz*Du@x<;q0n z&ntnI`rP}1bJBljAD+GOKZETvU^Wa{{*UwiN6AIpf44q-YWcPhSdL4rzv!j$Z4yY! z()tH;;{`6p@TMQWc`ju3%>D6qL-K)<_54TI3HNW;+x@RS%Bg>`>aWzI{!E2$0`_LW zoZXcB$8`$Gjuo|H&uW0Oi`D-K+dm5F1FpRKaPIsgwaU*w>R#>lS+Vr3%Bhfq{?otj z|4`#U${BB%eNW<8@!2E51etLyX8#AT_g$Oq9zWveuIArz2e=4rLiX37uD08{j=KG) zfZk;C+Pg2_CLD)zkcojdd~FMW>=*(b>T;Ws@MFO zFCSZf==r~U>L8gs{U56Pk8F9p?nmOYBk%l{Gfex!GI?V5@V#tUmcr@yE#jbB<4{B4r@jU#_<#{W=Te?)Q4tAA3jkG}`5 zzjz!1bVAwvBfbmjb1L%tX3R?j7O1Pg^a0Df);9`ux&1%Xjvvu!D4owI67%@4QV#G8 z>s2Z9KlsLXHK;exzYxb-rz8VFShh2?07jV74U{4!cxWH0zoWE6LP Zr`I#P$FfIDw*(dKxCAV_7cBmN696pK%LD)b literal 0 HcmV?d00001 diff --git a/blazor/image-editor/images/blazor-image-editor-annotation-option.jpg b/blazor/image-editor/images/blazor-image-editor-annotation-option.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1dd91ecfa5699b4eca3b88dd8ef96696762d9e1 GIT binary patch literal 85321 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⪼%`LS~C-)iDTw;^5s=xYb9g!!2GGC`y%EeWs{#>rEPdf(`p#Jo? zBmA$MrBN1rxm)o4GL)b8$a`}nUTXF!((G|t5|!^V#hbF*&tBnHW4+Xvds+MQ)slVl zraCHUX_)RD!#`#>v1;MeIx5s1R}|pL^Yn0!w@R3xgPHg7k6rg(#9GI$T^m|@*#l|$ zW9Un&B}MZqyV#h!v|{RNXD0RrjThOhnm-O8a3QqCX_LmYJ;@Ny_Toh+$lIf*Jh|A? z-p`oJnpxda#_kc#buej~esZRw_57toxBiAJ%WLR)tHPL@ki6Z}BBfJZ;!ptd{;BJB znE2eM4U_&PoW0y)QJ&D@QiE#W{VNd^hhOa_)asx&M1{&IMqua!Oyl2cfy}JW^*0bA zTOg(F(|UK3AW>7L#rpORL0@MCXOWE5HuWY8E?2NVD$~gAsn^rc4BM*&$Hz^_5VXP7 zy;EWTl5Q665y>{v?U8%=<|u?|!zIt#jR#e4Qh8DqnHm{w*hmib^i3}&OOTMRbd|jl zpKB07$oJA15idcCUT-)DN2;BPpb{5O*gg7BuI?-L?@Ce89T0|>n2y#lDVNaVX)9@R zdzILZc|BES83>aoTIr_`n7S(47_4k(>C^eKhu=3wB$HlWT=mJ2e~s3aGpH;Nr$sPWLf67Jd93SB)$es z3r}5xRD`^ZOCRLQaL<2x?-}M^Vf>yIby$B5Dsw>>*FLHQmIwmSi;cE{D*LF&GmPTX zYmmn^D1Dso?C*7iGTFyR3tVG8jmx`+I?~b1PoGBcw(lDT^?t<2O+#U;Q+@xABQM2-mgPqq{u@%LnKO@`5ucVD(`i2;*@4YpyV zEa56nd|r2Xnk4ksO&+s2EGa018H3fQ{XhdCxbiDP~MV{{>VwC9z`b@=(VGl0|NnT4NyN2?D||0{p@E_kpms{ zLBmwo<1r+7kb^1M$I0)dZlLN(*Pgi&dNO9lCh~pupL8DKkH4pt`a5VMZ}R^%q4<$} z8MkwUxcnr;8k$X58|&GtROM2tydmeP25MY~=fve*lDTkp-bsVdGDJ3p;5;^W7R(Xw zyF6$QCn(+O<&N6T@GUwn$99wz8fmN6+gC!i>Wvn#DV_;LcC1V$MIPc_S{#sLR96vI0kTC+$wVU zxcfWseFI5sT0B3ipim{NJEYFtS}46PjQfl`0lWJ?vo9?i94I}}@MEN!$(H2%oZd?? z`L8_#yMyn|b7Uq0?`+elFCP4Q_`-Nm<>tMcDmMi^vWW`Av6Qwzzxd0N8a~WcT=3@P z{kO;mAR+#H=Q>5f14Nupi;MDzYp{mHCzWRmcP3QwQum3fjvDDipR}(r#jps_b}jHD zxre)>zht$C4H~5OjEdM}=Ht|t>yGTEf99|^R@wI9S8QAM>QH9KH#}r|Nosz|7pSAP$$I7{GlEi){bvPd>C;vRt67&d<^JolJ>})RYT40}0r2Uy*_NHj-$mJSD>GP&}$3mGx+pPGe za%J#~Wp*ZU7AlgMy>e6JaOksOXu+)M;{3vFx2qrXio&Z6`nv_b=&pE~VLBNcT*F|# zgVnB9qQ=J0W8TZ8yM15Ik_L|EH5C{%=-5k1%pL{B)tdJE8Bo>=<8@m~3CnG$hy5gEOP5Ngr^@a5NmP{( zMxbzynwwfK*?+%le+J%VMcy0|vf>iJ@=Jnd{8xcqYA@J7vVS3nkIj_@k$%e0TkKks zw55~idiF=KUL~(qYU!AY)NuG{lz|f~ zp_GEq9@%+%zxQ-Zo&#guyw?QAz7dXx_D0@lESc`~-Vvc>oO@JeKUTxUy^+|@rqA4w z{xC1z1C7tNL}|IL-|J4L$C>8{XCJI8#Df=|l;}Nf+qt+Rbo3PSHsODmkXRZ6cjKGT zHxMmjU73u97CNTe=N6dNUhTaux>wAd>_GawD1NJLm&%uO;-x@CPHehMLECdby`oi1 z0c2X|BE4D1Cks^4rNE=Q`y>X_77AshWO`x&T9-YWu@R;Y@(`&5c()?Si1l}Qjg_oh zG{~Ft!z2_a*g=2Mj9GX@^nly_JH(U>*B};|?ht}!r9*vXuYHjd@GVr?;ee~8OT8H5W37}q{<$tX^&eBH zN3Hg=0U+2h5pUj)j^7aJFbu7sim#6@6EeHht7^=;_i8Ry^Hk1s-FAW_zR-`&!TIjG zaq~T-BWhFsVB#*Kb5<%d>(k?(w=BqMX3Z%Q_WB6!B%QScK}P%nEmAH8EX?kC4v3PB z3Q&M4A3{52@~%N6!h_c!tZ_826;broK5E_o;#&6k1&xeeC@yO_hKg;Ck$Wvf$1l0> zY1{&L9G7XXe#8ShP!Lgw(fSaN@G`Y+yuJ!Gry|K!)jd{*+kHDv-QoQujHjlVa#peF zLSM!N?;NQ32v+qe=Q*+^34S>Mok(5a`Q<;dY6vQk3rf>}Irim~((#%h+i1TVyNEJzD-Kk7bq zq57Dd;zl9b@20wjQ|jkqMtbMlOs=ErlQ+3|5A&XChIuNruS(hHD%ZAj!g%vUfgl?6 zU$=6>gUD+9&K7GZzDpu^vlGu5a2)@Exs$R{|T$_A&74oPZ{9siLOm0u%5j&{ zTnncvE;Qy@Q{|jYH{nd1lzTULgrUK|X&D^R>{aGu)>@md5)gv8v-P2YOg17O$`Ia% z-&V;shf0b-`K-jfB<0@$!WSv8tb<`i>}ycALNA77?;3>K<$p2!0t;f|O1e&TZ$|3s zYt;0wfia4%=`cRYi~x7Ud7My>rirZH>-((a&7$O1znZMBsA@+I^=TxHRES`r)T$ts z@22*r$p5@fZ>^3gHDE^DJK7tPBnQ}b3f=B#436XYPbdsIi;kn-nEUK zDB}0Kd;hrX@o*9*5PWs)ocQ@x;D=r6j(|hxu-Y}KHI^kf>uB^Ew4bY&43V1^2s>K4 z24%vpK_LwC=itrUYtW)<+{4C&QFGcX9`rHva%*(6{~Dygin);VjQDm6TWbD`46dkm zzI6>c8_i7?_N#&5{Z04xTudLmT5=jh{-*nrDaUo<|DGi^Uh{p&GUC6;{>hq*@@A0A zbIZS2SNn^#0ownF@V9pVzqkwjx;OMRW9<@ENU3Y8*tfbI@sHT1$p5(Wj7L)2FF_zC zEQ4c)iLXC^AX?E7x~P8*LK?XNPiPij+kPQnA;l9p1?#4R|4-+mBVt;nSdZ54UY)RB zgQ!(^;OB?$F&Dr?3Me`|f^$?yMT9sh?J_`ia9!0?~KP34*by%H&HS6)`@hTPT(;j30BG;RBL52*(r zkbmwQ_gY&nt56ve{9erQ=HzDD)rV<3=GNC@@@c2fevk~gp(wW1i?P_pM`J-z#o%QR z$C=)leeiz7HE5*-`qc1T7y8KnW7C||pocP-y^FqFfc{>AcLSzL{95&!;xLe+4i*6n zO|7B`oqN$OvLW|b;1!t8`-#VC(D3E*pMy>VYtTOr6(aQ3$$yX8l+$nz`C1Kpxc~PU zXkk)TR^&gAfiXXxz^uOdc|%Bn34;J9l=bH@06Prezu7T3l>#R#R%)Hc{e&$;m!CUc zgO2_lMhVphxTfKj&8vepv@uH$;_&q(A5`pzzWH6W&@L;+A4pRFA=E=f;jK-K>0gKX zznr1GA=YU}%tO>&*Pzb%G4STXJ_col;fJFhe^&c@_J0y~Q+L6m)9+n_(*73S&58A> z^Uten4A1ZHP_@0?<1J&w(Ch)Aq<98B>--IK(0?2L-w8M3q3eH6oQ9#9OvnhJ{qw3I zhO7aW1%SgA>MzjF*)bq~(f9lFj%WcIb5I8y^goF|yx!fu28qq-n?uk-u{`kkzeF{F z!)7(EL8<>j8a_9Uv8l;vSVWlxnm{N1g_1#En&JoW7+@rW7(V<#R+-a?g_P5>!Q|{< z&aIFL_!|Zw-;#Ql6NBBhsx_lmaaF6h`AEex>!9*@@qE<_;IJGu2B@@q9J(1he02zP z_*7**Ijz|9F@gvyvTyfd9+^WIInlspU(f}EqjciVfk0@DSV`pLos(!dlo%hw=5H}G#FU~b99^YwoxN*724 zW_VKoJRSmnOo6|0`~BbJ2JxMeyO3=fs(2z+gww(6zc~f>#G}>5)zFoVKtKdRJDwW; z5&>u+mLDxC9gsMBElrU>I2y)H^Q(vw@H*A5>AT za^KAew~Y2e4qF~%<_G2bk9XcNyHn^b(Bh?SA@ay&C#bgW;keSFRI@4{#M|MO5BnPu z-<1y$UNgMql%rrr<`<5^_@7)BZs_25E{LTsjE!ym#Q2NZ9HCe3kkcw$v)*A2-)UBOCI4OdZ)AOF;?JRmX2+ zi7X==(BQZ|VLd0oTgC{OdBSfq&-#a%vqsNK)8F~?$av-#Ka{Wk4}_D10I*67{da`> zSHJ~G{{cons5=15SsAT{SN{tb!vPilg^mA!*s(ugn-iI&%KC2*YeD;O5L*I3Y&rn3 zH4q$tf%huC=%7D`HGp<*j{0ANQ~~7t?GFl1siDb=)oSN)7}yaIjae{=pf4@|#LnLi z0igo$;IjA!>MKN80Wd#`u^9ofn;2TfXg~>5ZGU0i)+m7asx5#C(E@>4?zA!H;l&W^ zhTMg~@NiEl1v%>U?{gShlYhN7h^TFV^-(UmH(TE__=VI~cxmnaAGpqg79P5V2`PvE z;k*9k6|S7qe2Jm8eDg2!zh1SE0@Bpa{R0lmw1CZM_Dyx%_sxzxb~~ydn1RBbGNR0gGr6W@13tKWV|s{##Z@yCK)0 z7gPVLPX!v-Q7&>&83%0l*Ej$N$0KcJ=DZM_DM#Kw9+0B6JZb zM6Q&4IzYfmgRKw>yBVInH`T2b&xCbPwABMqrv$0E@p@*bR zKq6lc9s8(wHVqwK*0z&$4dT>s9J8~}M;Xb*gQR5Ig89Hsy zJsr*$i2I`AF+!V!JZb+3DoY%ZuuMf5N`QNnF>s)AKf@KtkP@(x%8jO!*^|QDI}A0VQYuX_1NGMix^5 zXB@wG%u)A!d)QsNco3c@=Lt1iROppc-#e+hlIqso2A`COo|}8<&ZI;5yRc(I_>|X< z#`0zoIcIJ=8X#wL?>J6Jt*dXK~Mp?Fa3n^P-f+1S%eAQ>FN zNVp|aLdpvAqayf*&orU~>k*e7qpQ++BsRj?En0C!#P)gNLl1b&2FQU$gxFc}ZxvmG zZk3Q*)c|1ik?5kh`K$fb@pD*zOuBIxPeOGqRpqSsbA^%(R(!_=Nu+if#7_}7-T3o& zVJU@Hjs_avF#BgJTnWqh$sD*u`NsG9*H+ypBwyJ+ITVPHV=gs6-|uF)Dm_*m?#-fh z{aD!)_31+Gl`BDn5ydC&3_@EYxtH89GMABHR;22%e$$xbbhAu}6NADb-EoNW1{cNr zCztp;ks>U{8WunAVr4o1tQp2d`Kh?1jvtc>ca%Nsm8q+ali<%Ro-=Y|>8UeT2G*Tq zAm&0>Y;Cin{b(q8Ei21Bia|%w#T0TM$z4|Ib(&_kNTS7Nr&H{C4U%q`W)7gan1u6BI`mF3`rv-SXvQM3vL z%IaXSJ^jN*v=?G-5oJzqpZF-3??~g6mqb5qDIlUs*7dyQ0_KO)*Q|H&+H|s&6)iH7 z-B_vBM*K5SWp}5aGipuCXpSxB6<6Ymy`{!ImB3vpgMUlWm9t;vsRsW}SWe9VH;gp! zB!Fj^rm0yWpZp>ae1TOK14deVSwkZ@HzUnM`0@#{OKSr5b!K{X1-6FMD<9q_&zJ1M z&wpf#zBHiQo_|lRdE>NTx34#_#(H>JM+}e3T+o<6&+MrIL9f)a-lHG`x;RnMpmAzg zq`X%qUq1gRoTotLhOqy(wut~i<0ed>pjWfPdN|OtJC0mB|9Pe1AScW{Z8sc3!pW5$ zo13#*sT04+jK?Uw1LncD_NNh)+bM^#{-^py) zG5jU74U=#7Qt7s4ek--N2)M^J10WeuUJvNiq#5jnbtbh3##NQ)0bhl*VZv&AqcN0Q zPoU9<3Pdp8a*7Lzzfz~=8kK*SBb#SiZues3ORqsY>DM6sZ*~tlkmVQAR%h?eiPi;5 z{<+VeTao$q(v80kaSdYIX}bUtZhha=ON*d=vOAbY@S)`7N)YQ^oDsiXXV17-=}OrQ zmhXl_C=XW>G7J(j`LI@5YL=d>%6TY#AsqWq6S$H@w|o9jSAB?$#8-i@JkVmAG0n8vQMzGxtvOPlp^kGgUN;SW{ zb~GVHyQ*NK8@O(Y$)QS!Tf;c%=JuhnL}KIVCfmDuICXr=7Y}j$>GO#Q`vwvZ8-5Pg}eN68!DH5!Az|xt>{Qs5i9UDj-RVGs^W@=~VEU7i$xh%MbYW!~s7T zTWv*kY`qEjV5IbFzQA^TH#xvpEdEYcGf7_;y}d$zFUYW>%sW}%yf+rZw!MIz)>ZkF z;)nL^MkyKG_0-m6M)D)9dhhA0b29b*?T$PNL{4R}-ikX))ll30SE-)Kr4Ra!^w@6m zs{6)G`RxEkYxCgYZ{pIW#eWoa|B(y$M}b$MA9(%Z=?5H5;JMBPa?uPYu*0m`TddOz zmVv~8)6Gub>H->=coaEN2J!@Dx=#5jy5XMTF&7LvZ-Ga6YSjFEj{5O4=SO`i%%&M2 zzDim1+o%t=+Dqc`DqgJAKGTv`H=Gkv4TC&zx?FDrB&y=_(ruPL!F;=zXBh6<(s#%E zF(F>@c9V-?J(Yv9oPpWw*)jXeB6%ic^m4S;{xwKQ@n{U!)@Cf-hJF{;xSoEWjw#gQ zuKW&FbJEz`gEi!Ad4TC=sc2VHX3d_kL0Yn(Z46AGMyA{1FltvRdJZPcl&=rEoi;FM zg8tC*S-+ZiTXS`tui1gV(2TQ*qpZd@%UO@tkILMn@j-XO08-s%dj}F@ao#Q3Jy$;V zp?koHFm(>*mway<^*u`v2S#LT!x~FVOpWczBR_7s_PyZVaOs0CmSa5FR|LXc^C>g5 z6Y=EEMS5)VINPf-z9zDHpQ3jXi&PO}z3V#S&me4T2Gn##bxRj8<>st)?FZccc>W*&>NHczYfAs!Y)EYGyIqsznY6&YHaz{x?TwR)=Jt|BlY! z=!k_!Cs8GY|$TKgFtlh1`*OSXx{xH8UO7ej#s@*57m}+ zG2Xk4Xi|_`Tu71HSf+no4=)zJRp4{FrO^z-iJM-i5$tDZrzMu;+=MGf^dVG}h+55j zEGCcvJ83c9vmC!gAja(m8JOP}3p5T}3LN7HI!Vevw6`-j*N&+UvazODGH7E)o!&Ic%Z^!?7Kylowc*3Eqqr-%oU}Ez+bRo&EFkX#WH{o)nKwSxAl%p6D z;w?B9$_?lgHKC~l;o z)zCwwKU!iv0Sp%izN}l_#>O$XOU>piz`o=C)Ue^yV%ARvX2xVgISfVsVv zVZ-KOuD)ZB9~OM8(87iFAPv6vUD%Te=Qcq`);>n+J00TGJF^F!1rvsQB&c2EyHNr`NBTa70P z%<3e8cLVQBx6SfAp77QJzaBzZ{VfVY+-hB{{9o6ptr&zc@?DZ zeH#)9xm1(cXL~((+;la#<|bNkQ38fzXt^iegYUTyPAaO$_G*T7_XZ9pNkirH8zYV0 zek5u%SQC4w&V^%P6^WLySyo^n717a1on-#P`2LMBx39h6*TaFYhhkibU%w;%wq z%^${j&|AvyvvR`SrH9W?KDo#lrhKSz$W6PaN2{S>Vd336`zyHoAouj$=nE$QpoimV zmEz$d4vXqXqJy7%l+n${=4K>-hYndTeb{it+iZH{VV47wp3f*N1XP{k>0IhB4En zuk(t!f0PP`lq_otOHk|#Nh3 zl|JqE%c}hLzGQn!He|gi>1m){+}<5e8HHVX33Lky3=U`%!08w6FBI;?SZ? zAaxMA5~#dfkz~hx>55ph)%5)@tJ&KEk+GgP@6h!hGuFX-8aAVg^k_AWnb+3dzp!Yb z99I*`eJohcAXZ~T&(%C-WiniX`{c^W*Y-)7j_HF19IOs{#JLPkMfsTU3)%rg3gmPM zpM06~!E5YzWqkc~z-@8Ttr8F2V1jG5tgX@&)F=@_SoyTOW5zXYjVIwPs!uob0Y4;P z?#7odX0jki?))_FLw}`F@0?_W$2hFYkec2+Q&!)@^ksQ=;j~S?)YI4Z(qqRny^OR3 zT#qGtbY)6#ZK!(m;WqaK3kSc6>Dcw~`&#u*ruTP0!X;^JFC5rJXjZ66M#^u5soyyo zKggSvSwT=TF%cQRRw!&RE#v4lyGQp8gm&If2_NT38o>1cunl4ly)s&dXN1D4tAX$j zL`uubXJNzabO|~u3a*@b=|~(pew6Pq{jxyU12t6<%sGtaG<3kcczg}IXLe|SI4Czq z>545kw(b1k$jr5_X69Z2j?4^jWZ`rFdmY(N@FDqcN2Y_0H7&mQ?Z}{iJF;B0@O0mK zmPVH26`7NZ@t5s=TP}-=&RzJD?>(}##|JWX=$7If>0k<#y1nw=`%2$N#1@j#6K`)U z@M)4fmpRMt!4u)U29+w25N77&nNuF;;wuy>XLW{78;HwLt%Jg0SnXGQ%DXl@>edlB z3A%)fWxV=x`Rcc7IX;OBJ9SEAIzM@fc-4+y2`KB04G%Sc4|v!)UM&H5hWNIo*Fc2P(B;t?+!O8UQ72x zP?gD1MrLJtuB579&6P2=zG{T2r&ob z<%J;UunU?7F}d8b$gjLPK(3tD|LFdKJcUNdLKIhnyYRv+@9d*J#>>htFRNKT;L~q3 ze9O(wX`aK-eu$`$aDG9Hw2wv<3eH9VO)#3|Cex3SgQ{TrHKk^Q=Hp9k<7LaORUiDi zJ=~T@dkZ!da27;8gDASny>c&kxD9 zG`v*Sb8uK5ByL)Xc6XJ~wCM3&Cg)sCl-^9&O?DA+;IaJ{qj=k2wz6EuQa_Lr3GPhQ zTT$?36nIR0_{GhMWxlw$h)4c{2K>SIVn3qUs!VCbapA_~HK;;pq}wexTfUu4D4o=zWsbXZ48(BjSDSsFNuh@>ipm^!fXA9+dJ=Qrj>5Hij}%|u{-Q@2zrwGu3vTVtoI9w8xCXV) zY9EFPe|%*&U&54<4*t;x-p_a5dGLsO6H4a#I#S+gMTGp7sjHjj&pMAyu1_xm5Xj`l za_yP+RoLZ#&f#HeI%}LYM@w$v%+485UF!BAld~N=S8(owGvhDcQ`Y0mGMn6>;ip5b zq+7EYcd?Lb8&L14bavl{BeW-6X(S-pN=Gq9uB-+(oPfLr{S9eq9Jb!T&o;fR`49TD ze)1===e&cnYDSftH6uw#h@!fNE;#{Xy)q?={m38mNR;m=Miq~$-pn}rR{jo zdh)D0-R1tS?n`mvEi4=Vbso8lAS5Ps1p&$E6%aOG<;y_?%<}v&yd!M&=3GS46Im^}@wL7dtk@9jt`wk-Vk7Pu(o9t9ETId>-;A?e(a$l<*d;@Kg zJt#SQZKFa3Ne*KFtB2k)$>yIeK>@XaI&gFV0KQXF7~_nAH~*t5vf5LHP8e@7#qa3B zI7AI|?+kp>-c23R&@YED>7MX@!CXyKhL8^N=nX2TSy zrZM_*yicK6lfGK=+0H_~@wXtOXjbXX%;Pd+*rh_za|P+5SrIo!N(W9VU>PTx;oU9V zHF8=sDOgCitxM^e@7btM!=b0ZuM&L&K|Espp+1xEj=>wE9&zUfQEs?KIUH(q8wKjf zeM8R)b!DG@gQ%l@gW@3Te9Ey#XD(&oW)Fi;rn`oD_s8-mjm&FrQbkV~jrI;{v$Gu+ zQR90UdXBLh;U4g-X!{gl6D2vUYp!#ta-vD4dA1E)_qFPx2Rf7rf87X8pdP|y z32}B!j^L$^3cED;wUI|WB&`Y@oLZ;3uNt_X<_`AoGDp=NO~#i66lr>CRVz4BM^v(I z*KM*MjzT|#U|AAczike`I>Gqt`*cVBU^eo#_4<}Nq9OVEnMaYY;!BeBBWQTK`cx?w z5>uEH;%;$6o&NliJ9BldgY`^xUc#nC>~;&o;f%X0Pd&7eU(yw>Eb21cdgG@xIUzaG zj}>P3E}g3nK5qVUR9XBFEI}c zHxI5N;PUsE-h&AqqwICWN!2Woq-8N~J}w%kP_WEmZ@=q|MM5CD7G5N;hE(flC4JPk%#QR8|M-?c z^8KZnLFByZn1JNd`ihPxaYig3b!8bUOM>qm)P*j;l~*f5rKyiME6C=mlvpfwQ|E=A zD_2$HvNt_Bnr-G7?0s}3qky9p<+>iZf zX>037^$CAs46SwWiiOgOx__ngCYZRDXvej%Q!wta?v#lyq%^qbtQ(*k&fD-U)dHkI2tC9`p&zWgb z8_{Ihdp8+JFE4Ev%y}|KwFGR=rUz+BLUK>NMs{~sk!ewa%`Q3qW8+_B>*usF3>7XG zclf^WCZ5YQWXM>5{E*VO*uZiRRKe2w*O~?rj~SDtL*hqD?)W7n;x;(h8nfp@Z&uXT%;oHOMK8IS5<~(3j<_9T;Wfk3P-P8kK zzq5uSdrHz@1&qak8^9@AUNp9Kr@_E4krcFifD2FgImBYdH6hF2&y5%6fK2Z3({h=s zcX?kWIA7*zDxIA_MhlF$Id#t+tUlx^xO|ayGBWl4#aH!eE$`f%0rFPg+Tc6Sci-xt zz%j`$>bqd)WZVJ3q#9}n|8<~F&WNN9lh-6rrytj8Qkdapv|&9%c9a{Mp7C;iEPLE* zNu|hlVB=I-%ve`z<2>da=fPqF?WlkfwH@qOSlvQNXine@BJn)3Rt#$}Ijy5X)hAcr zycfpY!z$o)-*W}Xs@HRs;p6oRx^(${GVa}a5R*|!y(^% zra@@bO9iJ$mg&-4WMT>0qHt~fufm4Xy;E^cBnn8#SDUtV9mn3M-Ez^%*-wFGjfHf{ zdx^|xDMns|XMkoTOJg1{7WLCKDSGpxnDNFt9Ns(I`l1TXgCrmYzV{xzrL@$rUkyxt zd3=3RVwR$^W3C-^RC_v6zDHA;&H5E_9{`kX7%s)*ZTO{RICYq3yOx<{mQlo0S#S=O z0!jfyEWqyxK#I^JbO*<6CkKoDE?+yn#*yWED90vmdgx9Ql)LQN{WG#=@vG&@Q5EV9 zmWscZ%y~c;)1NI@mahNiNFBs;o}i|#RLU=h&=H;~-~VM_e_9WC7m@$f?{{&itsVk( z0OG8RwZ*>gu&_&vd>MG>J(Ssf!IBJ=_*+Uc$@$qSZE%sh zdZw>gzvb-=YkFd(Lj;negk&Jt`Ev=Gm}J&85DdaU$yno|YeauBo`Qd0Z&n6aG|(tE z}j?zj_P z?exHx1ejWmIA<;O2TH0T&c@mfu!q?sWPD3T^EKi0-B=zdgK%9=Dp0Wuf(TzzLfrjQ+llxn#aS=5D~*>&#gM+e~F4P^I;oxc&RRU00~b@I>fV8STeV;w4}M< z{rbr?S4}FwB`>_Jq|=p9oj;})UU1}uVRtyTZ9fOP3EIB3Og78TczBUtuAWadOmT;d zwg|n2@T}}dUO-{xyC>>p<&rvqGrc>n)`F9XbzNcv<;GGK6n#$$r5?0@qA{M3#6}!?#9n$s<^CN74yedF07+(D;T<(l{u6g)g zjNg#Yg#I6|GW~v?>5nbIuQ$YUQES}W6cJJ$ipcC7pQr2dVickER*J)p2a%yFQg8g7w~=;gqB-q zZjidBqNz=hO%I_0e_L%u`2!#?kGmHv^H$}qbiT{UujaB4flCwT)4En-3$YE#g~dV2 zP;w-0$nbE5)CRP=pql)(PfA@QclT~*PfRWw1w3P_=LIn;e?>3KilS6RUh9)y;UJTE zPHorompnMsC-6@0n?FBmm4w}TsH^6lu(MX(tafR8J9WM-yzxSW_$gHttY!@(YPS8N4AqXqirNJlO1j=TjLHYCijaL95ybYM_>>ccH$#|OnSfv1z)#2Tl+V6-@Ea=zDgYgF^50Ecq@1@_gC~))GY%)WNd%hkQ)Iei_@{y1J$zS%$Qe4mz%qtumd z8>VVbmTYdqfBvEi=46>i@;&vwezHPQ1Zk97A#e$GH@h;qW}P)la;8-+ zQ|CG#U7TJ%f7dh_|6;Okkipw_W>F{e;CwLG6Q&XCj&HKYiP=Fgw|V%sO6M0AOIafK z)O(vJB_y(jL`y*RHtLb|YMjg13no@n!r(Q?V(wfhpr17*@NO6U9P1xn5Oub-dp|^d zD+6kq(#L;vYW(ij__u22k@LScfXJlW!tZJODFj_`UlT|!EC1(yaa?Cm1eLxK@QOMw zs89q@e9tPTvHq~=Co#}hganGLWv=KVU_l`-z{xU=;Ongw<=eh63X`zxl7Ar0bc!fm z(r1G54(Tz;6g4`T$3hUemgIH`gF>F{JOh@D2^hJ#mySyB zHOR66TJ!da5DALi2U>*6G&s}Q2MI|90;iJs#Z@M7hA=n;tN?w}0A&Q@MB&>kZ2 zHbc7su!~pg2GT8T2&#jus3Pn@Afe<96a+X4zXgtmA-4_i5O^m5P&+>K&?DBJf%%)m z&E6-+x7QqG7)10VB94LnjX5Qp1E99~kajk7+P+gU`J=83weWn*n9Vf2l#L!nfLH~7 zXRjSjca}?qX5sC~7L=f}&YM#en+!F5{1lTw`x^x7A+X0W<|=a=tlwJ78eQCCw8K0ZFkfz!u~gm%>^D9+ox{T%B=7ZNfO zG0MJ|EcCq#ThjfddJ!1Lw607Zauy zt(qzw7v|FXsG9zD&mQA<47gR72jjyF@?o{*NM1bFgW0B%?76~_cB#^I9q1gbk*^m-zdW8kJDp$S6X^uq$znpD(U= zY>4}1k9W!_6}%%$vK_|gUwsMgTd-eg-6Y|b_m+~FRX+aF&vU}lA+8N2%JFXSQE>Sb zOIO{y& zpWtH69EYK1!qo!Tb!Lh@WH%{ZpF8YqH9%7S->B1uRo67FynE_@uez2G{=uVPoVEBC z%y}~1_MJPklX~PEu3}JWrhObp5|=q14?C26$|7_ymm*WH#U+7o9y@#Ao0V0VoI90Sgh<5q6TpF2S&t@`!~Wb% z8J2!>M||HB>8YTTP{KBomDp`8;1Af)ym`6ifHdPSaWkks^G@` z&yXs^P?I;vX(o8pH5S62T5{$_tY1aEZ3XAjy_RpWpZ_xoq$YfXomfSjm#cZ;ELQQ% z+gRN=@G^*_36m_ie?l%w$3m&i>Z2qTEB+8}an+Owse^g91BcHvl&g{kDwX>@^>J_B z-Z~oEHXham-v0${R#WQEe;JN;J+)vq4i@#i#D)Q|l1lo8wHk29JuHzQiZIjzIitgxEZGGkZHk_nO`3_QU&JHGs zOV6S%O|j1Zl#?}O&kgA+=U=@jCg0P@B#(VfJE>uVm1P*w$O?_?Co|6^AG(Bb#N)E- z3G_SL5Noxi$teA%lhCKh4NPi0&|S@OWRAVPEY983Be|JW8Np2dB#soWZzCd zS4q&i__IO;*}!AH_X8@xm|Bk1opAw53TPQI=U&XUCzf%baL=Uy^#YV*OzJm_Yt(m_+d>O#I@BXb(JZ>W_%RuL(& zdFezk&F8dDGc~LwI_`Sl31Wl^OwMG-D+TIc;xKR5suZ5(D~aAa%e355`_a8OKshUF z#3DafsU;~g!k*E3kElf^sUgNn5QZ{j6{d18kua?KB1$pZ6Rlf=_|9BsT`l}QZG+3a z*R6b71_xROod|Nzi_4;SWxOv`$OsHAy`Z6s-Y|&=2t8M1n7~X99$AIXqC>6dqYGpf z9(~P0tq5Hd#-29NMq+X5u-TI}B6U?Mm0?)dBVyyF#wC<+-&T(o*9%|NYc!&!AajNP zf^t741w=kk*|EP8Oy#I$270metChsyo{y-`_mp_05Z5RKkyyd12pNVJQ=}5xBA#r5 zH25m|tkS8HBHU9lr0osB=1w=!0Ej`-VJ+Le|Mt%>w;#pV?93+I%WToP-}r#0ESA$x zPhuo1P7@KoOM5}%WOea|u&;;HW#asNH(hJZOQv|rRQ7`KFc2LGQ33=TwR9u5y8_T$ z{+XRd8D-QKSK;2xjXre78tw8NmZR1DW=hsCbqjHoeHR12y{2~ovJZ$Uroawd#N7;! zB`J_A(b6=>EANlIn-OoOZK{8$lebQ8#g=^x{(|;1CJ~RK97;+Xb*@Cc90@{GMWf04 z=g*H0#%`|9nD0bTp*Md)LH0+@{Y!fXBSC3ohj^JNjboxl#C2siy})r+hL?YWtjR%J zcWHC4ONbLVeOqDjxkS%uUu*?QpFspnSm{N2=aO+>;B2fA&{T~Rp1-pkAB#dx)VRcO zyB=`H_`Y*U7R@lBTM;`Qf2o5TV6*S7hqc)}Hs{r6Y=!go{72IiJtRPCZ^xBbsrLBr)0?7KeT?6$>*MDiOnH<*$(1*7EDOE>5bS?B zbStosyN6Yi(f7jOiRN2CmQH+52SztT49lHRj$hyUM}HK2ReO(TTAgYy@ri^AD>8e` zFc_zD5y>w66=95zVM zi#X`olPzJa*Zn8r>0anfpRuLn+~M1s58zOK_?Z>Zd?p?^AzpCl)=8l7r!d31I<)`c zCOR+u=C-;*evM(+Z!`RZ_m zyM~#-n2-+2?(y1hnxVe-&rW$B%2rC4dm5tSvXS zF&#%``_gzrqwu|E1E0j@BFxc(R-Z!)T{4nG+FAdCaJNp>gl+N=zDVfAHXo%afqm|+ z9(}6$gUhWbtcff@C?nXX)J;x9#Qsh|gQFMwJ7()nY)+aOr4UWL=$;mm(N?tNtF!$& zpvTfp35OOufchW{pAn@oe;un;STQXyp+Xjf78k$PR2t5(6_!&bC&3evUUZn9FMRDe zk-_}2T)CcHcrwF1voQ{Op)_C}u3PL}M*JP3f@X7~!ICOCuS`27pgYbpB$@#8uKZ8G%7 zX3}YOIPeEynAsDtIugXu_wOJr9CI#xc|i9n_lV%qbh~tX21Aj&ANA@)X!b)eA;c3- za$o&UZ&=$>tT8P@d3L<+s32o|anhy=uyDN(WoAF z)cmKbnO&F=2$=hFa@7-uwU(1@7leHH>5Fx1v-(5F{W5MI`wTzqGAA;U=4wW5#RC~S zDe@tIR%AjHn$g@@xJhcMV@ePiaild>#w~a^fE8OP)!O4ZKpwpm(rku@y}Dl9*cdgs zZ1yQe@4<6<=H!7+L$XK7s;eNe5s)zS&bEi?sJ+n~wK8iZaW71$bYwSdMahWQIX6)f_ zZBo3Lp|m$ETjk+T7fRFnm*bQ-GX{@aeEF`yYUq*E4>7NPS~E0ZFoo}&m*0R$53s&b z-^~-97od`^(cHp423E_EuUUxG9eKDUVA{cL$i?129_!I2yAILmck$i%wou30=vlpP z1^-M5m`*Gs$z;lN3v%yMXYo$Nb=MZk8G310Jd0Ou1h6;tmR}bbzgfY+F*rA0iY?i_ z0cUETqO@iE1>eFE%XyWa83b7~aH)@V$cUDl^ZN#}502zfHe?g*8lIZHnAHqxns55g z5h@^kN_{z7>?vCZsc)US8XOt6X<(Cs#%MAysbqmL8m267O=>zp2g=PVA zmXcq$z9kw8(+3R)8n(T_J5;)7p$S8SLY}F}LfZml^{YJk^R6tzXohU1Zo0rpQbk|N zZSsd05zdnp%0;|=0vV-A);L;DebQjl)W{qGCHw=mRoQ;ELlhyPu#N%mRiot^3h9H4 z-B;5VU<2SC1X`~8+x=u9`=mJa%YugZ)qfcE-_QR9PCdFl{a?+F|1V4>#%h)FCyOlU z7d(D2P^q<@Ecqxr{`}msAcJ2bgx!!;v|ljlrN;U)%y1n}#-o--DhO3^G)*I25Zp|l zM3BoCy-OxHru(KqnXg2wmS(_U4oF5Y<0Ym(Hoo;OGF&yt7o(pRVS9!(pF_%oo2Ce^ zS2O1BKxku;Mb?u))06O0Td&G@>I@t&oXL@xV0+ew*DA?l3N&@+!z18SKyMeMUpIjv zgK}C6L6CWAlSN_esK>JfW_haNkwv|Dxn53L)R~9FQ1r4>@Jmr2UM&_#w1^JD*Iz3^ z=ZL}9&86}*3s*W76e-vMw@&3DtH2I|u$y~n1Gs&+(3OHN$~vwAelS8=fTXI65YS$j zNFg)F`QXV8EP}uHdReAi%UJ7GH($*=83{fL01_dI`+(NQw?Ppbe;@?1#?~u_nhKi} z!KO!&?f3GnhswafCYGHpIW{m0#Z{|MmMql`p15Dj=i=VsO0o|F0^NiPZ1=T_}w`-e_6IRtprin@l?J2GbHOc)R`x!&N z#b+H-I_THll?vZ~L~H+um|4R1kfrXWCW3zB#oJ)3&r6=lXyLgmZO>JYT=Q9~%l0ZA zBaS=2Qm0{wvCrDi+?3}iz=X{E&|e&;{q$d1yUbpn3zlHX7nGowf0ZJ`1WyuUxjc+XRV`)II_CeDXYQo6w|R=nf3lmnSMhw8VKfkMb@E{%ZNK zfluaa$DC~9;Y%+j`DQ)N%J8H={36b(FVHS-EOKL()4fH}p`f_n16{I$u44j4+VeCV zyBIq?8f*{cU%5}D>79UlL=NE(-_(6vNHxiSium$l=gj+OsghMEQ~7axOQbT<;+3T} z=E*~0Ow_bfulU#N&t9yMxy;^5IQscfw^U(g{2pu}W~a1KU^+xW^CHwSdul02kXFYD z{t?4#%KPg$2~an8ADUJN?d0X7SGDy%)p0eASIkb>o^Ax0bpe_2`)>BM#+AVmvnb{K zV8;`YFrju5i|g-0bo7&E)l)t+L5^+(PgFVi<^F;kpfBhA6sWX1l(w*QIOMxmFud;{ zDj!FE1;+^8+s}5T?}QXV9Hr{64Y`)F!!tx5x4dC?Gvmp!8$dRFf<({z)c0hL(QwWx z8#YZKC+MH-Z9FJU+cd&*J6M2;NmR#rE`JK2`~{@T{3C$=LjtW^)ok~~QLI5e)Wqpq zWT?2Zw3*pD7ILd6wLBuWb-pycd59*kMS>&dnfUQ^OOw48o~C0njFHDVe=pQBWNMN) z7G#9>bj4|AiqhF!jvXszjVs&H9iXaVA5sSS;yvS4Dn(D~56&D4uLI3o7>F!7y|&0r ziW14J`8_A++XP(Sz-HQglVA#+TgffovNn~gi&5%R)=kw-QOqjybk_cZx`R5&uS3%| zl=*tqVAcl?8zI@|xjb+suL#%j3KUvd8L2%F?y;)D>p7smGJSe%Hva_~F*CzoQt0_C zS(SNXyMkk>g~@aK+QIP92+3{s=i-E?tA6ZL4Jz5o>+$;i?wwg@rYlOMjBkuzF##3W z!p-P9rFm)f^}?Jwxl6G9Ywl|lVdBVfyLP`qY8dz+zfv_#d!djHDso=Qd!PHlq>WNW z-fclL>z-L?muqAZ?>-8hcG;-khMRH<<`|phcKT?wZ0ng+t$k%)d0sX~>Ug}jOg|%d z_vNb7BaVjKGtnT>@ZvSs?^`Wpw3J%6w@6{-C?v7+)v;F4ns2EW!e42b;|9AaJ5nfa zk4Ik8!DaoVqO3yG!_>7O#k4|x!6g;HU|~7!&WPa=^Zapzz*27L(KUXh%)?#>Lh@z` z6HD{qiuUd6q{l>_noQ*yI*+bkBv<8buVsv(a`1_=0GsD2t{ma7Dr*_dsjCe1C~t59 z>E^475JZuHkz@<$a$sEO$+Zj; zjthsF1kJ?&8SCvtDpt`ezQBvZ*F`^Ri$dTfw6k`rCvp7Rx4V$U3gcnSrWFFu;`V!Q z@PLsa9nuxY-W4#p{Pg}mOx1rE5N%EG{8wVTkrz7)aU5g{Xot3}3>dRnSpBybhIH@$ zMWvO<{*xu?SV8*J`tQBmH}$6|+E4yD^vxG;^vz=S{R?u$cJy8j+)g<+(oU7$8p8tQ zr^Ww*Op_@5v}&eVTeY%5bnI@Xa@fxdej)k-^`0S;6rWFE3|t_RaGml!=izaF0BiXH ze+H&-QKY+2D<(6_W}a{G`p%$Gl&lkl*kxC%x}bs|z)X`o{E^`?u~T6He;Kla49_2u za@tLWHqaVCB@7l{Q$Q`=Lv`8~FX7>UPUro@>q+37t%mcGQZV{87G~-ry>NAz-hMJ0 z%rr$FXJZT;ZnodsMF2I~Kv;yC4dt7K8q>WmD(WY59Vl3PBU40QgQ3Ky@!zQR z>4#}~;Q!I4!xJ(+>J?A;#NF1rR{j0)g8h_9s3F7t^b$iyT@y>IgD=72Qh*-58>^nJ zwePyqC}{6@PT*|Tp7!G#k2|0A8^6$?z?==<8V{Fw8=rI)E>u=C57$bfzhCF9z;4x^ z_<6h2lq?}FXiJp%Ez$b~D@&I@x2NPUUXgU-iIrP`ky1O2Im7!WB6D2{e1k83+!&qY zQ#+5}T!p?pD@8h6+l}ZK$8aU@rz-?%l6R@E@BLo4zmvpsWTkXJDR~>pWVt*KTd}X# zoVy9NS=rN`8|eCTPR%j4eH|0@D6w*`{I|-2*O}+-RQdW|FZLI%W2sD(<3^(S;h#$U zzo4kN_NEiMx)k^y->bNnVqX^dah|QlzCJm!C=FI>Q!iN+uDkK!YH(Y>C}YzS$~0Iy zC^7zTBNqMGs=`a|)ySMZunJwv?xL@@SW(Bqx!yI+IP z8vh6ygMf%c9=-M9JE6w=xnR`N$Mte~yq@8?me_fjVvCh!(f)PiABhzSiUn;Z*GqSf zmMEGNyy%+lHJ1=`=P~|(6<0^e@-GL~^$yYnjREbed9%M9MX1wJjF0)C+MJ5_uoV$H zug#!a^{3uh+77kwX(shh$*@|&8FY%4lQr#6&0A`r6?BweFp zS3OwMfLV?bx~~h?Katlrlj2$1%<{)5N_MpfiwnxVki2JGp=+b7Kj3n5aX@Cv9cfIQ z&wX~>7yN2~my}Mkw1m&h!3(6g(r(Axz^Tz|uzwJ`9c88~#HQ*Pc;U4ux&Bg# zSpW2B&D_!|?z{t_jWwbZuIWPRSAT8oP`B6=+q}7%jX}M>CXmJq9nY{#abOyQS>ET| zb{2U|+}KsgCxS*VLYMd~7mk;LXQtNrmt%Ry?z&MfTcS{I0po+)T(8b#?S~u?z6<#N zX?`eWn}oL54tl}(n|H=yU_Lr+3xa7)5-i>v7s%B+uzr78scvt zBF0t0JAEka>SQ``u6Ijz$wvx}&|A^Mw|JC%gUwS9Hhlkr!k`DtiaOy9J-OrF4$!+-rQyfX<+xb!(WLU_V6qd9BCHq?93OV1{2(nL#{jf+|v#+{2r34g=QlZWG+iz@bW?Ba0B%K6M{8+h$ElRCE_C;A{r2? zKTgV!V^>BN+GxnD?Cn`-e`w#J1=8=v|AH9J5v(~bh~s>qJ?L_$0!b{%=~eb}hQ2H# zjQF2yZ?&%v{ck3F<@zl5AE{mZevHigFX(nxabUf2A_If2om3AaLZG8kZu_gXg4iy* ztreszUw2H4{Y|3(jtWfcJ+K>AC^2kum?&d9nLH&2%>GHn&x;k$kp=QOAVgXNz)u&p zs^AJ};GM$bm4#lsddID7nn)Bl2@*wMpkBW8r-H}d?}T~jVW{}h7c%=I3_V0kW>H%( zt8x~8tH5{hY*4RWNzdgZ`Ccl~-sh9iYPh2MtxkAiXagc;!3r#d%vN%?3J&dL6v+Zi$4+0uMz|TBakh-TMLFK=`r53Q$2MVcH12AnuG|b zn0321ZPIMUUa-I_hLeX7m%SHaH@2mwfsN{1ccPwW7R}lOVdz>7P3ze)=ykDLN;v%s zI@LZm4a~{t(HXv9WNpo_?_CnntefCmulW)4x<2-et`c73ZH5Wn?OX6+ z{duWO;ItFotv3U3T&c;Nmb50ku?Rbyd+l8&C9H9sYoI~$aeTWzaAD`w4EU69mzMa# zX>8j-w)~y;+-Cok_UX4k{Lys0(Dt9x0F^zZirzsRMr0i1MCSEM?IX!a3 zc2(YYaY(WE7c?U@+l4IrAF%?N5Ua$-b8$B(&;X*NH9Tts=y%9{ka9OgHM9awUAo z+2X~B7olD5ZHz}ARk6I%S->|3GtNS-m;K7)9$O#s8&%qL1aFTZ30ob>P#j= zcd4yNimx51?d!j`ax>YY5vnQF$_=R7*2{HvdMZAZiU6N<^SwlOsm@9FPAPPT#B2$1^+lblLC++z*snhLt1*-yETf9EQ=Z#a*Z zMlzr<+KXg;#y)bMLN+r!Z>DbZZ)E-uh@9t%=evovYBlhEpO%o1nvAZ@U_ZFjJDdWN zNT9%Vz^2U%hj-9@?%P^OX_@;5oBmj7dNt6}^wg!g=M(s>Ht_YjrG^vlojpv6q~sRym%mCrDKKR_H>f_-YZF z^@eE&{Cjx}XdiBn20-`Uhe>2FZXZ{=*K4%F_vdbwouB_!81ShC+?CNYqZaQ&ocNFFH_XR4%h_-sb-BQ2z_E%|KuMNhof6J+-enHhYu|h|1s_M!Sx5rz0AMO>?D^qqULwGGR@POOTLcP1)MRnV@d}EX7YBz?i_Juzn#LPYq7K)JYk zc|3 zm_MYYs6t$%Q~;x&f+~cahB$Scm-ORi;g8@vNif&%+$tc{q79m8coIP|9e^(VUl$G)2S;C&K8(CnAqD@XG1W zL8!Zl!(IVV!4D@g#7q5Zqcf87Hu(!Rv+4Lx!V_Vrk$oI5@vDT$C5XKvAbxUk=2T1m zdb)naHF;9z4!UMINcT&p-XBJo%W^*zvvqppijql5irofzTAH7@!CF64c}Z99SDuBc zTshhOD%4(BFB+)Vz0=PY&Pa-eURC6plF;*^;FJNONBCZ1YwMRG;(u6^=5Z;#EUsdQiR zMseE^YGD_(GSu^%JS`N041yD1THPAu34KB|6F=U0&4Xh*cz#zqAMkN;Y~8R}$9+|D z13f!um5DG;(pNKF^*v2t;IkoquyDC5>#H9Ps~E{a7#EeI)4?VI0Z5l- zF!8hI9F-a22Hi#*F{xX>qh2rL9(iJ#v5Mi+b7gx{9AhdG>L4z&z<){S1pe;hIUbOJ`d~F%xKc#xYrBU&&hwp0S2H)cK#Kr=u(%g7BNxck zV`Wx&V7j_a-9E6d{0w}@^QjZGBq}ST3o%eTIQ7pOVi_LK*NKsc2p+s%4}a8{l2(5V&CH*v^f1+%{-ueG%HxvvGCCR2g*NEL6(D z5N?#?v&gqZbLRkkvMLe&Y|$_hw!8?!7e0##vG|##lP-`FOd=^G23-Q%e-iA zcz&-vE6P%4qXe@>PoNSi!47QibI7NoydoKai;AhJ?*y!WU0g`9VCf;fzMaq|cru7K zOZ`cLLKnlGlcnb!+urA`f=SZ-ZW3rnN>jbwKB<3SY(8pjHf~la9 zIXOCHzcE9EVT80FFSxQ&`2UTBO+c#W)Ks+{in5km}#a>3)=t7*T+ ztp*;3Z;p{_CpulyU+%aWl1=C3u=42mt%iU~VLJ<aNZV@*q~5h^4s3R?hV&Jtcq?0S3?iSTj?x{tma6Z`8K0U&+t z8$q0?jJU8PJ(Bq^{*n_9A4%G0bio!<29ZhOf;b=JlzxjLpczgY+fd9N9H-c}#!@cI zV*b~YfUeFCcu)FCDXyfarXAqJL|E2RS&f$SPjR+7Eowea+iFU96zg>Kzl!Nd8faF1 ztt=!QV5+5n;>sUL$ffBFq~&q`ACK{W<>OTf|93X=$5&n6U>9`3?EMy6u2F3l^YK>2UhMs1v%;rEeXJ4Kr8*t`M-`!NY)z$ceMYo<;Ci!LJvfhar+w)B<%zrX)}_P z{4e%oNc*OFHw*~A2t6C<_dHPj95c05^eD*CPKdo8ZYs}-yJ7GxfMKGP!@gL)7w4(y z?VWxnB{@Nz3c}#_qU5Cq*~x(>ZH7N(o=u_+)L&FmA5VXhEDs|CSB*%EPisjxGAH%O zS))L9K8ui-!IG`B$vTnfNb3(<{&%PK<-}g2t?V2pJi)e_M><~Ws_HZ0pC)1_u+-1< z@Z5^V)Eu`881G*mLMuMM~$~RthAJ8>p`bg;X8u-4$9b2mS0!USchlD6izp_yw3zf7RmZbNh zhs0D&xmtO~`KAlXHm-y<9N#Gum7wA{SRiBKAC;f{Di6DFjE<(!pN^!At?<(oIa!a` z|AHh;d5+;X?a6G8^wd?ynOY*0MAl zFv0IlzGu>6=QUC}-Zt`qZR^&p7`ZuQ=_@^2zwbu%QlWP8ke=u@v~>+X3zkp<;<3<@ zNLFy=*rw@?P+aL_pAiu$wFb07RGeY+$F`Am@aT_=IO_%FWU9lhS8wLKz3AcbIG)ms z*KpWQQ^KWP%gQ`;2A{qwX0_onZ%$nC%e@1wNl7MzKU}x2^@KBekie9N*WWTbh-k&~ zVr!#at}KS!19X8`pC@0v=&egkVSYpX z=E=~*uvaKpGOpIRGWnlS(&Nqas9LjTb(Krv=fb{HCNXbQOvT%B-Qr+yyJ)A-UK9Hm>BoZPw|(AeD4e zIq$2ZAt2jWZwDV85xE2iKh(b!?@{4R-avhm8>+Q}>e26A+P0I%hfdrH3%nApzw`q| zR?3^ktJiCpkKq*ia;gwG6MYk}v;K7Yi^HDYU!+&xA%C9N)T&(V#7a#9=z(1C#e!Wa z@vY;^?SpcTq;{=-U7!WQC-W*n&1y+airIbJ@H{J9Tc3`17o2T63Ephjiy_n-Z{Of5 z1AN(rXr&Ztv(Ii6Xx69j`_BxcrPmRX-`>fd!Zsis&PyE(^D~X-zy`Rj4eSg5#c-?7 zvhb8ubHqM`0l*PW&aFQP>$<0avTPsyHcyQ$kX9#=-c zv6ickdCr`0d(|LxHvNglmB9GJD^=zbw)v%ctZ*y*9z$B^KE4o&t#L z3V=`OY0*BlJ%Vmz$h?%(0nkx$KU_x$oxf;KN6%Tw_urpcVFa_>!!8)!^DlNkO>Kht z$>Y#nQeLLSXNR6tYH2T62AP?CHSRj#tasp)T&vaMn-zQB`nH)Nx-cr1eQ3<;=gs~V zV?WZ1Agx4y>r-95Mbbr6-J6eoPoCZ5=zWKz8#64~17$tw5bP%9j1$ZH-t|lRlgC%g zHncYI+JNm|;_H`qp9DGleoRVAIl&iqgYRLZqi+T`aG3BAm8Lm1QKj4}YWp`W%EViu zrdqY8zR)uZZKL~kNr|V0$3j8@2Wf2`mt7BIQA1;FMD16j9NP()PIXOD%^{x5e5e^B zk0o3+uUq4U>&(ln>+lnIy&uPaK_4&XSbj04`~5DUVR{E=Hz#h5FBCcoeZprUi%@zc zcJ~kyJ{f5I^90A`wCML;&ZBNqayt&E7uO8x=s{DiY^ci<`3ENSf_fb}vO18jBSF6n zKaXi+yBUSR=vTK|^es&>HP@?GceCZz5jM0%K0-sM%roZ$?JEs)}98uEpltp2C}1iuDne z8$CiVjTF1l^mmi$3{H9MMvBr6dasBL$>(2<&>fVw_9%OM$x&(70c-T)r%gB3Ap`Rr zgB!5bHM0>!@bmU{=qTh1!kU><;`IFPK}Suk4G_N#fY98bWae(!i@=Gkr)*13$Gg6S zb{-<~l0>n*0+AO-uONi(8{(4lLgRBmg{qgrv2B;9(YH}H;h!Dr_<-l>SD)twWR?P* zHn^maLv=Ef`z?HPe(!O4(Ig0y^ILm!(%3tX>V&QzDYYY7`Tqj6x)>yz&#(Q=r$hdOY@7CywYds z;qEK6+0jc{{`v#AB>AaWMQ*p%DY5(QAAoy(TXJB*8r8>1gKlEjV3P``p3+sc*ZCjx zq7ojV0>=JBwHizlZleOV(d!U)Z2yS}j1B~;WZ>PzDzRnlGlGC#Uvp#?jzj_wlpwm( z-zp?SDH*P3O9}{tE)WzqlVq3h$Z)`c+CA+x0b}6CGmQ(pSk>n#TbtT<hcQIG`Zh4H1(dTG4nh#nmux`hMjL1gg2ISJ5-Xb;#s=rXMHuBff=t0VV+%2 zPTg%q#B}Q=Xhjq%U7>bmR=Ct(CV|sbaJ8Htd+KqV!>|i;TG=|4L`yp15qz@pVYpdf zakn6-N1k;&@k|zxbn0?YhVF7&hyT{+41B!b6Wf@HM0pc#{jAWDX<(BNQ#iF)WPT9I zsY=E0K?9c82-}Zi)G}l)#PPkOR;;_IQ0_xZPNF32B)L2iLWksJ;LP+3tvFt1*FVfo zrVd=zhW&n24-i9mhL+)Up0~4_Yh%%YZc)fBLy@LP;vA%9z&10{^hS%Jx&CGs7x?SJ zsRe}TkC9b$#|z0m<8;(r{9n-J*}QaSj?F5B&_BJuUL>J%w?4^)^IPBVu4?W@x&mv%=%MBBHdza8Kc6*kbF?lngF755Bx zUm$`d{8Y5MG0xoha6+fJ4*Cny8T!^~XC8L6qv3P&U_?dHkKR~jA*18Cr_JZ`yYRZ* z=t{XaW_7S|p5-pe=ALR+L}DvW)q zd!GkaJ!ig`8jPtB(bjs4fe zYpumG>kD&-8ub)aaLarV)@GA8!I4^GgQ4hwiO*uwer)yZ9E7Aj>pHKby0P-vM z8120zX#ESYU*10$*On*k`(pU3eV>T|e2iC-LO$ZZfAC3(6@D2DxqUdRIZ@;`^5R%| z%g*W3C&b-9Yee$&a3c21MtnRZ>D!DI*M8xQi74u6#aMzc@m0d9kOI{}L;bV|I2Ons z;xJC%`fjB`ylohP-qWS8fSi*Uam5Ie1g4PzS!V8Lxwkte^Q4fTGgF51U)pEobYObd z*?Vtv#CLDW1X7pCIvemUIqP^)O?yRO_OHHj`w&0k@hN)7o7Z@fZ^Fmc^sJJbigQ9t zqS4|`InQs(rfd+s{6VB0z^N}yq-4-aKMpeQ*}IvZ2~G=YDNrllDFb^(A)=h-%{r;i zs*0fCu{#gZ1cl?#0IO@2=Rk!CyCOeZ&VCN$6sj=medAtZ@}nFs4v7h=K zq1NB1BDyF_PyOcJeveS-ml^3=xSo1XOe@Y;@Q8goII1f zl7+DLRpqp|pnWdk@1M=5k1}=BuvkjX5uaB=1t&MJx27DZzT#~|?>=?%)qIk)P008i z1_8G41bbuWI-$yA9v>QAc#ar!(LZ0>G)x)f>pg#ew!+61#QDv7^4yLI@4%4{7z767 zaEyNWq~A`p_ec`5KwkM~iiXeWwYS+6TGMh%<|r(o6gBn<*$aH^B1^WjUWD{@ELkD2CVB)Dd67(DvmLrG*p}6!x5=bHog%gY88& z{=?mSNC=TSJfakwPFpwHgB1G}sj!XhKt#6Q#$ihsA?X{_UL-{0{|Vj5cJFk^JnyGy z^ovU6aEJd9^ux+B->s^}9WMDx2z=n5H`2WX-NHmcc(5 z`cLtG7<*-WY~{SA&||+c;_* z`xcpQ$4M_GOnDct%U>E$Q94Rjj8n zpDiMM$EB?~eTZy2-b9TLB==lSkS7Z-!d#^uR5+~CS}J!Y;IQnktJMAl{Zcm)bjQ2) z>p;`C)YqA~?o&VcQI*`&}rrVyItQ7dWD1UFOJ|pE1*iAmz z_LWbRlDetL?6PEPm^DI6G<&*wI*G-ldBxHjc#X<*u;xp~#u{~HL6NAZ8`oF;P}OJV z^RELTg{*4JqfeHa+neP%zEy?pnwP>Y^k$DFI)2~k53gh9^s~qf%01nfI>7qGJwGytrV&?0p*7jhKT}7jJ0pq`gQuVjKL0h*Kni)Liz`X z?Us7TTKv)JnQ-kG zbnwL-kPzi|TYE>BW6j1_=)jO3d|siy24r9~3Tb-jP#;WKP(C1?7n;-*Zxo|hV8yBc zN!RX4GaUDQUCXp$>6)`y-%33F=^2}%^M|)9+f*v$7f0hH!+Fe$>3+A__4;X=%W`u5c)MM?s#aajft zs{Wz?hG-v&m6-I5t5_eZ=bv;Z_lqXU-{@6~7n}Lwv$8@eonP$-d;Id=+2P_Uj%LBa z;xw36%jh@TLmZ;h0}i9%90* zThdo0-!Z(Wrp-xn;O#P0lt44~<5|4fCE?9hPxt z)LY3rdwtYiL+x7QI@82IV?Gr{`>V=_v`OlhwWX-U`0lgHr^k{xtk;DlyLDqegi-0+N1r)7RO7VS%jRyr#CrDz zG-UaRlNuB>7GFZ|gP0aO?F>B)Ha})=!0J;LHkWRgezho`&=s|$s2!uYASJvVUqQBV zkQ~wNB3r9qp{5ko=4l}lfG9BWkK`2LG$nT(?zSoEWTN93M+vMRNOaY?5N3f}u(q>r z{G?&iasH4zb4>7NF8U|OgVjw_%UQ~sjCrsfB=gKc;|JxN^^4#pNyHKBiTXAWANiFf z+=eddlMSXUVU>z8pIOE4sib5wUn-VT=P%UgRAQ^#Tcg$-LKuA;p!Q`Sp7y+NFMp$7 zL;-LQ*4rkhiw1^)=>b5$;{}-oRFdNvi0f3Oraz$%y^RWpaAAozr}<0X zdf@(WiCRxVT2^jJ5XFB%MoYI4@n|ivT81Mq`n?l$o|0Y)Nl1h40#M2y9t)sr_qJgz?Y!u>wgKu3i_IV`eodi#V7CuTqW zYSsh|#DtN@71l|blvO~Ym;jJ&)cOPIQhC*XN*-O5<==0(T?Vvc_NQ{?k|!*Ik9Y3j zI?M{Xi3SqO1e<;@xl`_)O^3M2)IY@opDx@Q+?Lu?_Lo9!7p%WSzK!1!1LU1kEla9D zcGBtS`dLZ-J6CU`bKo?J8FsOmPqlAv`vE?qKP+^i8u$1pdUJhq<~5)fGH0#)41X;t z7TUmYa^*6+Y*$$daeWN$3^b3X)U;mQM*kk=*to$gjxMQuc3<%8h7KHBdu%S(4#E59 z%#Fu~>l_EmN?$#;?t^U z?e3<0=R;;K*IDiVd1J*1t60u_n~+ii@T=O|U;14T*U8)dzkADdNY0WU+(h3Ar68@Y zS&pJ4)q|B$EaEM$*gTuc8@=`HGF0nA7s%MX_uJu*SOKj_GVD9Xh3cq;8u;YI%2*pO z8g`RUBXDM}v*A_~0x_7`-l$AeQ8)p&f@i(qziaPq$TVBP&x)l_ry#~2YV-$FT0cO%TzwEJN< z!U%W(ZF6_5Ui9dG|IiE`zbB1k9ibk%vO-)acd+6kIR*fI((r@!bG6wDD#>9N;Zd1Z zymO&-Fvbh6^@p_`l(iqX!RLc6zw^wUK5tL#fk#`V>HIo)jDlw=`sM(t^pPgjEPhbm zLvpa``zohGBP!gtHfYTMhqbr-Yw~^n$1zb-8c7udY3XKy(lJ81q$Eb?$SFv7D>adB z5Jrb|GkU=2ZWu5aFnE3U{{8-i&&}Q2uE(|GJdbB`s+IsI*|ot7MQAFM!RRuryS?}` zqZ^O4F^?{vkPnDTDF6oh+wgG&mOhCQ0*=ilUuTg|i0(JhmNLUmnhSdu!oMd85AXkA|9Pz-f9PCH!=n1wg`=;x8XCDnV(BGCjHG-*&z%_-*fVq&W&23u|K-5}v%y!ADtLMy9XP^h8z& z6Y~4!OP4#g>#WVd5%ESlE0-G+UoCmC;w4lJCy5C}e(0Uk@{Ym}84?k$ysJ|Bw<0q4BWxhafCgV=Q8cLrbjsnF+H#(#-8>F)WuTYKz&WaJPl0kr-cSVxv|byyNzqwR#Hq7L z^XKo(HpjDd;h0ec4%2-Rt2nXW+`?gsxrJnjdn%(*_A-k&3#J_2sOK^r?G*BV&?MI{ zsXMO1Qv?<)`ahS5CR;3y;|!Mjzthx~$I~pfL4TmjBF0#whI}b+$mq$8(5dSsRv}$C zJ%4*_Be}P2BfMN+Yz9elsD2uX`>VKF54}|fcP*YI-AE?6ol!9!%AjHX=vHJT3A(|hb%j4iyWN`{V>tI|+l^m#``mU_?fw!Kx7d6cLh}-)6_1AV^ z8RAo?-tAPkbbNnP zDc%xOp=}<5YhvSUl@2X=yeoT$8+nGuA1}XSd^}v0JE9K!S5>zdf`03LhLB--0ymH? z2Z1W%MpE7heZ4hl=gBOmRX?%fr`oqY%A1Bu_G_z6N$l*JF)n@Lve2I%(|VP#TOn|K z7it0S%N_I?p(*^F&o7uJ4QGzQ9*;&SJkOu|$|*jTdPu;h6r(}aoK;3I4Z z^HS0`3kKymBVR{tcmthNi%u0a>w#f8464QhlLv<{u4~Fe-0M5Ds%G2Y%(ml$Pt+O% zb7*G>e)rvie_go;K5+p1uPOG#zu415ND$H0Jup(r`7la7t1YVy-n3$vofysIC@~D& zk=9`R@otD9&uGN}iH&b}cBzEaRixi~8<-r+Xr@1Cc8fVTLbShbudaW~`-YrKQfgzE zf#UnVD{+wTz6>!Yc1_w+XhxVm;+SsPKB4XM@d3dZ0PPDs9{PpsTOO(8C z2pJ_ZnZHSN!5SnyTPuV#>4@y)WxD#DX9!5gQe3!6$*wD}HGq$uC|fO>3^9+jY*o ze8v!4gum~hd0<}Gb`|5ip7bA{BEQTEw~*}?6M9%jI5>Yx-OS9^6KqR$l;SWij|O7l zrg!=GuMDtXAq4h06soaufm{a0nd1~LskE`v$yt80wq3(VlAkc4>pzcqMXsl~-q|h2 zJWH0wH$t5dVg089=*#zMx|JLGzy!napy2udK^!EY7T$Ap6$0epKDOxzw|g`!kGlpv z7!4ScXbZ4%PZ4SWeh#E2mj$tTn7xPul}fwnvPscR-DfYJVT&zalRzc30yt z8!-s`Q|S8D_pPY46X)5bfW{5N*DOSo)_R7HMH+3QI!Y^*NV;vX{dD)|*mui%du1yF zx10-?gw+ARHZmE#-@9y?oP_O6(e&nUi$LvYasnQnj6Sl5y!Jlqlyd4X65dP$yu?!3 zrB5M2I9ujFN-n|**fI+Smu&R{v(Zx@^e9b9_jEYFK0mgTd&wz3t> zqk-XkOaieu-K(X+qb%(Y#aHC%9TL>YH1bmSQoAkcg}$hBdAd-ykb2=J_R`o(Jn=rH zVdJ}*3wvaMJ}N-jHrKE|`S*}W+aj(a^+H;lAuC=j-tP?h1NV5#g|a;~W&-rreWmm( zmHw)bs}|b5sGRx-9}Vt*l_cS2E?01OjCox>V_6^kcCP-k@B0TvJlgfYB`TF13p#a@ zJS(^x4U2<8mW(Oo-sE-}c5>cNu_II9o)Ao^IBC(=966RNCCWzWTY;^4ZesgI=6a{i zZ~P_u!`7BgCYEWZKTT0UUT^;rg>8Dj2YaRuP;vPU!_M4mt^?+;Bl?~(wWDXk^MIu4 zaw(4SfR|AfvE}=Sr}7aNgY?q~J8ee|Qo*xa4j1 zjBC#h665-UfRkFd?$GNoG4u{1-mk0zV|HLxleSF%-H9}(idT$VoOYwi=vaz>jZv^G z?GHUIp2t;TkZC;PhTx`L+R<4gBgUNbfVXNQsQh|iTHvtRY!Z}X`g+255PhM@u?7z% z_VE-3P-=K_%>wpWordtgcpyqP3P1tEb@%Wl6jikie{VpS@TX^F;tRh?Wxr<}h9H<% zpA$N?vs?X#2iUYauhNU7PJ3CP?$WYc2lJ;%D_=fpDyKvVL!(*&(pwQfKTOyd*~R#GS`5IoPE0Eb z@}wH&JA8QvZkT%s3ESL+lpS3T3p69r_1_4gA5Q!aFD|3MEsNM+L;U3Z9eKryYV;^zSqCT75!NEjbp#Ciz)=v{&lwQDZdBF= z0rciYp=z=5{M(BL3Rbc*_cIZ^Yel~eG$e|NvVOd`1rx8PddC?T7dZPx>Ao+7)CJD};a!tx-GMgihIcc{z9i8tZgkwt2%~q7f_`CiOFHo6y&N}j5iTEZ5Q7P& z!+-XB_{QGER!e_GnG^OH>4uz{|GH&=47gN@zFoPs-#4%Mnt@p8i+`8w&{_0c3Ef@Y ze_;M~A?qN$>3*GbTz>#sW8yInnyq(74%5pQP`dAaAYw>rLT?6np^vKQW>$}NfxBFY zfg}T8)z)8Utrl!3RJ6Yw;7z&meL8m$bmjE-Yk5xjE-E^D7v{Z!0T2$%8H z18p!%5&M;sxnj`V^3yg{$KgR`w7~be;rJttM_FIrWwmUqJZyKy__N)CRCj^6J^nQ; zz?KaA{=#-YiyZe3wQk%%)q~&&*;WwXR?ltIFCe&Wdd+k85r(Y_N21!65Q2Bl-a9Go z^#(rS+5yh^-s0k&4Hctc*F=%#L$i^XAh4$E9eyb(vS|7u~ zyC>>z(mFDCp(9!j9W4rg^EuoUyvbWtNedBFfb6qy+|e}^JJWZW@ue2!oxe?Il~ykqR@c4( zx_moNLX4GD8(cit&xN%DhPK_KLu$Flwlb(LIPO4cD0JPh6{uw4wg1uU&_zxGcfoqu zxXr#XJoKAp!L(+RiwC6Vg=&N&Zhg2B(%(yLYM_-IlPq5$suQg{b#%NY9%oG=t>Dk> zHa>lCv?sgwV6C`j}oK0cA%T+Wxd&+>>ty`3bm}@!B|%?O2t_ z<k&SpDv+uip!uZr@~sL|B9 zpwFP1+*BZe)cM8q85n;}H9@Ce?;pg|Tm^EO4bFzg!-y?`yvEWTkHa5#7k2%`yX5Mez0;?)&_5(GPxzVMy{`5SxB0F zA}>w|WO)kfW2MgN=aYw4a~_4(DxISQwK05&d+2$b*cfinfYmDKc?qA+!q1a^%%Wt+o*2dV;lk`H9k-^uzOUULaeAHYByoME zpptfVn{C&Ep_W4mdj7-vf?|*3F=l2@_n;%XT`McXNc(PdM7F;%*SLKH8GrDX?;=Uv_=)jGo3@w=RPd)az$c8K-f;$>X$d)q4d`~=_|3v2 zW7BG6VvFqV-^?6V!OE2B)mmCxb2R_ZgwrIyx03gE2;E~!DFCw0UF`S2-Fq8Sz}~<7cHXQ-p4*bO%qsnvq53fOUclxq2H4nm}%=Zzz{-?OBZ8Kf9kEcWW z@wAl7s&B@DhRaiM*z(y2tNNskZO#5rZjrc6pHe2F)>E^rwDE3|B8%dGjV;E-@u_TD z9E+6QM+U4s(u9yzTA zKGHMTPMQT*3F|z}|4x=g)VLCS>kC&I^4!<1qH~YU#4$_P6(kwpW-r&t3WC`A|M1`q zS1u*%#JF@^ztP3oeH{FKK793?hnG|;K^IhXs_|>J>9DGx2_;FX=M2>8kt|7>`u7#aZb9%eqMr}o1>y{$9nHcrD6BK3KuX%N9lsy zLM=yI+NDqVgH62P0YO4(5CW`Ck;$MHsC2OxjPgC*)(Xy@X8K6B+P?79b7!ma`yC@tvD2Who1UROAXcY3%F z`t<`x6BWrz2W6*2y!|*#kC3Uot!mP6ScA`~q%`|97qZtERHwBp0KP4Y!MG1X4!xQ)t6HM9; z8po1xr#tHaF*R<*`BUwwS)Q-2^eYi|Qe~Q$soLq^0mq7!uluDKt}e^Xp9k1uBG(RxeXG>gZ?-LnrzfGy zeHgKBZ)uS3VSuHJLLPoUl=SU%G1Wc7!|{;PqwZ(`FjOvUwcaK{ScU{JVLtZwrS?Sg z?4>O%`}^XpTBsyd3=aOI((a#*(cYTIC5tf+pp*4j$<-5DP%^Tc zs_NUx#fG3%{=A}K<+@=Mz8t0X1ufMiMsV#3ygN{P->2UEqMqA2R_9BU)i607>*}>Uj?@A7jw@#_EPP?W) zHBW!Fj!z@I7JLX1kkB8Xk-;}8B5UV9)YaYaB5xvM_MYm4&|U6sA3RKbX@KiC(TBh+ z&=G@0^^wN8H*a!;Yv5SOeB;Zp`SkeNnpVP!57x8JUy{Vr)=|hUx9`D0z zFqXG)k1Ef#+%3hs?dlNSY{A6xj8p?+_}0^?$io_EzMEUh1Xx=&u*jgDy1K@5PgAZPuKMGd zGw`aIu)l7TK0-)TZ?PZ~*AMnx7!n7ds*)1*AlP@^Cv@SReX&=TqWQoq5*jd@+HvH9 z5+Jq&!0c+4Dw2c}eAB}CgoqxBX&o#y#My@@FK$3dHeS`i?jf6jM=rbp$~bDqL?1d- zZZZIX;XFKx$j3x?AZ*pQr1(xD+1kr(g1! zfJ2~;$^Y=2%%7THQ;dTA?UK?WL%xlKevm5NTs=NOm)$IpIDNIbOO4(9n~y|{-0*HY z%JnZoB({V~I@V#3K%Bj3_nNCS!0;9fmKjow1!&YYH@B{SI_DjjL+^;aax-IDhb#bk znFOY-L8jU~O!KSnw8ymQ-z|@J$7hyEAJ~|sbdueX! zrE*tVW{R&HLL0<2>BagP58$o9TZ1K4$=*MP@*r~2Vd0grF~AZd={jf&>|C*VMy@(H zzwlv1?OTlu%tarim-6>%)H04rn7G8F`sdbo|B4ADYUnYXUZYAVssa^&A@4{(%|h(> z$oFZg%^*%DA3hJ(8Mlv1Ktf%E-eU4f4)m4Xd;+C6o5rrKWwI_R^=^AK`xw8#KE=L_ zSQf`a@b3W2O@1Ez;~pK3PgT6A;E*5U8R>tqUi7THW)^oNG4=8C&UI$n)*T8LW0|V@ zXrx7x#v;_D*$8;QH~Q7CohhzMK1t!6Ro|p$Q?Ko^h_Njuap2F#@85F@Yu#1$Wo+dN zw+1;*yslYnRS~UaX~!xyoVL+%W2%?QPJsg$o4A)WjxotkknTo%2$wO)>4o4@bFEB zUi1Jk`-q<9CwJ8+t-=NJ`757VVaYXK#7zm|d!@z5Vk@BWQ-JFEbgA3$f@Kh^x&p7QE3{}uZ8vR|RH z;WGR#ZyVL{!zan&U28dG}x`W=ozO|=mgDg5=qSyZYLaQ^G&e3ZqTHV%H!DJ*C z@iF))7FtfB%+B~*YtTA8jF--o!rA9=@ZjIv%o)Rn|M0x<_k*%KK`Z4QU4f5ogZ#;ch7;Rj$_8C_oX4{)NMlVny+9zizesl)aPJ z&ynLHlZ?&B!I$dh`X1*8)CP`W+L9(|*ik)!pzY5a+gVj-WdZ>cCh^AuMd;Fd^P5kg zxCZh5E&09)I3|t5lh~3cXiPLQ%`5Ee8IsA7l^M!7ue6caE$k)Yldv+^E8G%kk?zk@ zGVlerCR~wK%peu^8Kq{pixOn@s0P87xNz6%3~nfIvX|7E!I1G*WHkSKsD`_K{rkMh zKiJB zr{0{vloN|93#`B5S;ZAyOSkhEfXG{;dWhsbvJ!JT#1`Gb^dC+%SGcx?qITl>%)-4* zCMmA9od=(0sM}e5;mhF&Z7RSS6ssJ^xt_rd%gQOf|n!W0DkQ`c_ zEIi38VpQL)Zp}aswx;tZ%9rigmLnzsgSRj_#hU&dGne{M&KdF64wikUr}cc#!&8O* zama0fAkMz)5b1d28TfSDw9JEX_6@5$<%T!lwHfSm$2?khQtGG0S< zP8nD^TS0{Pe&TRMu7t1W=Nt8^PDtWzxv$V9Q0NyPdX&wh*Jtq>`Ap;8Men#*n%v4LY8?VaRt|AE!oG|mEW4;8yAm4rsu1IJPUC|G;WNMr_4C%lh zNx2iO)TdZT${gyXLf$(%x?APhj`LngzFfB@s{COepzSbvRM--vj7I#GCSChuVh?zH z&))4u!9}lRxDQn&;>1pf4Znx~a4VLmG0G?rE_m!Qpt#7bpb{mmowfA3{}9vqo) zmZcg_fR1Ddy}ryxz(2r*jUqP*LlHO z@OGe4Q@+t6`@eX~!60k@A35)=$;H3Ie-_~bRMycTWSh3Bpf-*CpNLFvvLvZ`{Hkh~ zUC=C6kf*)i^ka|aP%in-=P0HR{~oAXGqp8UHbWbWsF&`xd}goi%iVN<6lSi$u+>TP zuW;L~ogI%cp%uKjMUeO9?NMdjpoMXGV`PMEyx4qtp+LyFE{x!SC|gY=uYY$W8b3667*$nhbfJrx_8b*(jOU=? zdkby-5huKSmHodMIN@|uypyr}BJr9{*b;yAW)V9WC%nJxfF@21suId~a_Od`Rc#QP z%`!!h4MIa0fDkL)EIMVlFXBhMb)y!feQ(;^P26$B@I_yeru&YfSDiGbsQLXKQRa!` z>-Dd=P>L8orly_TDh*Uxa^WHta7t1l75St$EX3D?NNvU6W^339e}$GQbv=j{Wdd5~ zLMj04f)xdjoY}=}ct=)8!QG3A23jdQ8XD1{)Rr5O3-g_EuUr-3Tp|_i9pud0um9n3 zc}br9kl~re@y|>&s*+w)b-<$*K&|}&mXrO129RCqUZ^=IavKBh!%4%uo(C_REVs_O zu&i0NKKX@bHDLf4z2Bc<{w`5oi?tl*<*OhLA(k8X5s=tBN&ewT8MVF5RTaIkwbaTF zEZ$FNc1W^$-NWLhSsJLZn3Hl(q?(`FhQ!X4BM)Zpx{WY)(=NX}jAtYZllCTub8}bU z*4{ydh>d#?`g#rbY$4R%dZ9k~J|qIjY6V?Q01K^ahl*`)OX4~(jESaoMi@}rwq4}G zyY(ZLXrf1%-OKkR7B=jp4^+Z_cehDwZD~xlCwIR7&J^P=?^hKk)F#3ga?do&H>-+N zm$4kQZY1QcjOY-RBC3-5T)!rvTWX%8etBe_4sXieU{aY=5%J8UZF6xtMuGw*A^)Uq z|Cv99`5zfA!Nm1e)X9${Q-YnnODrdLiV0puUiSN;jiC{zn7qz*4iJ^P=%=YaQIk(K z4Oul;Y5EihvuYR{^wUf*o5;NhnR=X^)`gV(ZOf6!M3ytBq(=i&p70We^k03t`O{Vp zhjhowAI6J!HNFpDti=!CtqSTyBxjde`luTrT`F4t!^;PS7BL9#uEI2UhE9xO$3^pg z0cgRX*SokL6iG%&T(D)x+w2hqVoQ5l7fz16J{yayC$8NNII3Q7)CJdcSjv{}zlMAy z+@tK|-=dx77KsjgPM!-bzszI>euKVeln{8fWB7bNmW z*xm|)HO8*`{3=4IoK?MDWD+oKw8X3TP3$y7JSXUU|mYPGJZJeGKO3ttl0S`bfNZ z>`KXQRBTpo(EyvGUi zi!0^lqh<0QlrBcaZR1T*khECzz$oW=+Wf(3i|elJ(l z-Q+ejpR>IPVfYygOf_zot}#)_L*W|I?@NB~UR@;x{#{n3uh38?@Xd^-vdpWqi4z23 z7}o~5TW#|8^=p+ZQg`Z|Hg?ox*$(3iK}Hi0y`TyAK7`6bL&rtTdvEaYc)*#T$a10) z`#A#AcxGqQhH|Vnn6uaG+M<73k=SW*KWlKxg*zo4ERcpS6C!vJ>NUYU4s`H&N7!SKD%4V^hZc1g&xX93HMeq-CuMz=pOx9#0ce|nWxz9Rd zV1P|v<;rkz!DYJCaapqh%SiOr!at_y_^uq0yvig{8s`|?2Xe+_{=-0&4O*9#JY$?{ zd=WTGbNZvXsxK3yF0!zpb}CelyM)Er@oo`s4pVP(BWs#`NV*^E&jOzEIC{F^+tr8Y zxbR--H_HkymhU*^v$(KB&HLIVPvO18c3#8Rjuot*!jA|EkbRWhkN>_T5K+1<_r85# zt``IkdToutSxtONk`^&(U`^+j3n*E*(OHdF>2|KpnsVUX9Z)aoPjym-`m#3eyUD{+ zo9zO9R{bSqtx5|DE<|g)ij&^B)v|Cw|LLVPYcGN%JYHyW6OoWUMgUHSqz;xv)&}}#Sp}!0{)il-K zQNnOoK&(yKUPVY;bdt5d)f?J{7ZILqf7MOM?WM$a{LX1VgR9sDrgmKIq`b? z^;LFcmX{+AYpNP8acE|aPY3!{!OLjH{$!I=1K-3t%P*?jj5^dIitt&;P|E>ni{)wCpwLqKJFz2t52_zx0z2o zFROS?UHW2;`w69I6O{(W;8Pggm!!8B#TF&nc`|nF zlJmyEGcJnA3S%n8`5CvOVeg!ZgL9dmi2HYY_cST7gk5g?%~EOW79LNo)i%WOU!C{j zgh%ALXHlUU?9@?QZOUAo_N)s7l4dFj!it1k4K7Qs+Q_-Vb zs-*0pCHD4tQFSg{-e>#%{oPe$7~`HCs*dU36KF!}IQd^Z#6u(JPTeOu)t(kNp9OJc zd(?VYKFzUVxkW!etBr0RJB{YJO~JtEoha7R`XbAE-r*vpr zn5mw>2kd51TS>GV5iE)n>2O!slWrY@ml6%?#j2xATvg-q+x)TkFAb-o4$GG^+tVfw zPNiMC%-)^4^uVd-7wlzNXCB8?(W)N2di}`WD(P9Dn_eYP5R)?aw7$&C#e?)`l4|X+ z!a|VMpcKw=`|K1u8$@!N-P=P%cYHql<0C8N4E{Pp?I!F2gl-v?9-D`7^!(`XTU|J- z!|q+Z!;G@%_!&;^Ja`S=s9c`+aE7q8gcX&bOlTObVJNzxY!*8|qA(?-jeTqV|cPh4a8 zv(Dt4gsFCQLv>YB6*gw}JnxTUT^mES!y9_!_>VX9;4xYOYwkf({uPKcE5C@N2|1Cs(8WA zY$*W!ChScd7s>wYpFcAze4-kA$dUuP@J@Td_mhrjP-b@Kru&eUw2WrsK!2r%$7B-{ z*S3xcSDQZODbLGZB`SWK#?NFBV@tdG$b|VHDcwGR2nNbFa*|ytcsfIFsq#MgP60 zd(|zOA7yjmLhstrKc}?qHQ6Iaqw#pVG-OQPxnRgDEf3arB7yNXb+8uWqu1=$GUK^} zy5dsMFA$04R1=rF6z94Q{rgXP-CONLSq191qeg=wQ0TrlU0`9El#6(6y2awMwJjdr zmdAC7flmhPqUi@xMMRR%WP=v&;%00ngz5BsXu2<9Ij`t&xehWGt&{uc%qc5<{dmUZ zd4P7u3|3SaJ)2z=tInp2B!Bh|xG{zwP$?5uUliZh$22>HIH|qP%PCY(`&@zc7iP;N4y<@Mij#0SV{%0@Vy#zTY;LKuQ`xYJZ9F`a1oN**MTUY!^Wu zv+pPY4@Hmo9~6sr&d%F3O>Xik$uGA zR0;cK<(py))Jxv=U6~UH)_N3Z75Bm}8_Y_wsj9*+7zGZ0p_NXoSg+m5swFOmE&;Kg z3-ZgMwKjEWivwlf6qGJTJ+3;)v7#=8Mi4t=2kqk;8lv@O!Rn;)iC`0kkX{SJ{dW8r zpH!u~3)?V~j&_Y6&(#;Q<^9c;oC;f*Le{}T zFY8+NggI6YIU^Jka%@jTiNAeQ>=4$GYYXM^dL1KPo3IJ}0HWz0TrGB;kc_3xHnc=Vu z93DQG3Fq$q$Q!#isG5OP_H19cIhxODvGqL1RGM=OKAWyhp|8&81E@?V<1`QpG(Muu zg00@CON!2uk?)bSHgb4}0$c+DA`2I;gVJFw^bQuHg91yX>oVf3SvPveQ5l)b&C${F zhN31K2b}fhL5Gdnz>$?4kcqUPfrCm`PCp5NuPU~u^%HfhQU6R10S4(?sP6N$KGx%9 zeVp)528nMcgXjbO0H0fJdkNC03MZaFX-+b0geEN?d>BiEbYGo9ZqPWn&*e@OPdYMLRjl6`uEuSjd{Cz9U@O71z@U7(eEg8NngrosL%SDq%6@R`{%0aT*|a`-^>%Gv4Gz;x&cmfWwS} z)7$O@taHSi-R$LFX})%K!-KpemL%DP)JJ=8hx6B^{cFq-r?QM|)U)RiBNnyrSHZy9 zrdnPTFFsphx~4sAlX+8njnd|%sJ7WV^IUXX`i5%9uw;E{SBks~2MrZLDl?wy)r5_cZQcI`KWU);G6bNYn zKZHbAmrs^aKP!J};oF~1J3P>TsQBFSGnFz@ai^`FKv0u(qkGXFS_(P>E%s%Q_X zm#Ok7F%JCO*DLrqQYw+l>1!uP!}hh?HxiHKmO%Z>yvYhF(Sku227RN7O-}1rn=a#o zLm6jrbZ>yYNLF=eYV-Mf<*uyrs2VGB<4=_}LbcR`KK;YymRpRD@R1qu0{W``on32l zS}8_X-jN`dsTH@_Z-(FDEW#uOsH)Bz-Er@kyyk~;AL_5+vgRbR#S43?0s}S3*$(D@igfjdz7YcEZntdW%e!^PFBU z{V?bYjIYpVeu?EfX{c3z{L=d`Tj{MMTE+XJ1D0hTz~s>F&`EiX#7$DM}% z9#gCwC_vZWoDC!^cUW1M0bU;Tva?T9vIOE9A~9|obFCk3eJ#AWfhF^$!Kiw@b#jeC z{khfnVqs+7QJBWH?LF*z3qN{uGG}2&V>&jh;9)~5EBTS6hUjaw&i8(ppJEsQwB)ee z`MN1=**NsAk@7RsqTC$}E*ZG8l!|&pw^;au<)DOK@-E2b?ukQu#0A)ENnn2{z)~$G zXt#5^j5PNl&VPPa=&9UWXO!Y%*OQv#Dys0ixZ7<^;o8c`$PU$favQQ7|8lRr5ZWud%|yv@WnT(%LJMgA?sX4jm@wcHQLB?XMv&=vu`iJlJ(F+ zhp#Eru7D;J+&YX^F9O4rl69w!|FjrpZ6#PFkVGx7!#-m70~I(a_MP6k_|%-~AL%%o zuXEFyIdi*Re}NbwPs0xpYngX6vZiM1*SyCS4bN6n@pxkIrZ3-=-cLI?$-Du(AF#fw z%}UN93X6Xv)3IjOnZM89pNj!$rLjo$evx-BQ2YKl`5KXt`_j^Oq?u*UCZbH0=TAwC zDQ=RQ-2J}Cvxg9(<4Hjo^h<+IZd}O4yMmcukq2rPiYB64=1SOS2xgodo#@RgH`giS zmjCcP**37#1e*ZRtUM+#-@5YT=qKLe4HoOB3c&Y_khy@j6UVtR>aW`E5H4cGu3GV{ z&nq0$-Wp#+bh3wZ1?o4CuW`d~YK5pZn1g6>yRthqLZ-Wc(c97E6M{)qpmpYPW6y4v};DYd|aufa!lklMHPm#a(6)SlP0GPE3f?<@7 z(`jGzd>{9=I4+EdE)q-h|AXwE<}su$IBbo+N1s0p{G-&QWN=>q|E%o!x>(&2jry&2 zwzfF0wS29+&xg_%VP@E4@i9OB%A!tVX0rW^oXX|b4d<0C3B&fT(d1V4ee`au_f$Kg z%n!d#U}f2}%aEp@VpFYMDPz2Mu_7bc`fv`1t~W^S6f~}wdnp1 zyp;0P4bJngQtGS4GY#?(XL$YC$|>a0M5m2#kwQL5UQyM#a^~U!31o|ZM5mCM3)V4E zS1{O7HC5nxB=t%uZj>R$fCr_ z@Zzhp93ioj=^K=gAo z-D%!`jWVn12i6T*y9y|>1d_lkh}@H2|GJgO7anW=N3W%^g@`MlDx@OStgSJ@qMH*ikEs6JulwqkM|ArAo{eiq4GcafZ=r~qW#X38&6Yksev(Gus0Dg~*%-EzgiC1} z!a1r*8rS#DdT&Q3yD|MrW>mdQZJ`jQi~nsvYv zjKo!^=tCZDMtp!2 z>knZTDX(tz4gX*Wl~40e0&yc$Q9czo__oe&q?TQ-KtpWj;{UOBmThge-4ezrZpF2@ zyK8~s4#nLaiaWGW+`UCx+(NJ*!8JI=g1fuBJUhq!4evilzFhZOYi7==ZI*(6WE(P) zuN~VK^C%DSP!RXUg{M$X?4UBRN!QmW$2PauzD|TT2Qh(aKsU!;Ti4HNm8`d}q#zE? zTvxz_@7dnJr%rw~HiNmO;gKVmR(jVb@eWeb1qClVAkZ;)kOV90rgenl|Wqw(e%>Of15 z(p4rf9_y?o2_K33*ROEOUWxIb=zq{(9j2t3`|YmYjVsWx3z3FX27mob&acHB%O3L& z%I9m|rc*fuOSdluu6H5w`^)=#M4m?S>(hJTo9Wlr_6+CioDVw;qs#T#V4V7kAA4hcWh_+gU!z+;ieTWaDRH>;QS?c;&S^!aV~GW=!vrm zxSEW~+hc28Yd9QC}{E3m8{yaa5X`)7P&mUY%V)R`lK2N$gB1nXQj_Jy)Q55Vn@pmN7*x8PO|#vhGDIIP?np6VedGm;@31|$?jQbPj^fVc z=pH`_W@eIW!5ezrL;(Urh1Cwv0_&CKvR;^SV`G?J)J-cg{hn@!`6akZ=UC>CTHAWy z#w%E2kKn`B41>1y&}(*rN9u(sYp~Ge9V8wI%B4;qb1NiQifZvUIE|sKCie=5gAWY{ zOJVyX_T0PIjFh~p)TbFXJ;dqQJ1Fo|D z+u<}N+uKiSKdyPdouYrtwzk}~{l`uNayHJ_#$WJD;~7c(A=?^cFWKRhp7R{E<+mIx z2BSRp|tw)jF`1wH!-q7k;PP?Rb71TNVx_s(sF|PuR zSCTUt5h%JNB{txMvL!zXMp@Qk z{fO*M(i|4HjCdC~#41)_X!c|j?881S_~vXPZmXR@pLzc}DSDkKIvXE0pPb#jS$vbv zwJA|D@;%zLSsxRPT-6H^vQyaCh1@(}1MHA+E@K!gJnfW6w%GcP+jRWpCzYqtYb$WZ ze5Jd`d53H1`OWQosLUXc+5K=_^ zBhw&K(r{8ke%ZMZzo=5m=Y~T!9lF7#)54Omqm!d;k~Y0o>U?tSjJPA5 zJ#IEbYrpbssgm7sm0Vo!@>O!1)D<2Ds(KS@3_v9@7ifPZC!7|w-q8DExeRijs|y~~ z2|qxbCKDa1QZkCUqQCBI|)YoCx9s3M!>h@L}M)jcGTcFaTUNGUN*voCl zm0B6VGT?(g{^!y5xq2j@_e+xd8qy|e3?;(x2$-QveDq84sVl^-tthXURLygA%$3?a zD@(9YKu$*8Lw)_BlTyTG!88E;c7W=&?d&hG;#JYt_rXfB#6TU|+Tt)L`c9K-8ku99 zyTa!|p|i5A;^)ya-kVNk@Kqa!iJk)IJZI{PE3$*SW`n$oU%m*@&Dg^rQ)$wF z1hs{5d1Yj?@|E=O(b4vait!8aO@XDG!DtUIJn4UM4i9HW`WZ$M3ARgzx3m9t`d9|% zBbE9)%=vv9SHg}VzZ|nM0G};zvuMa^Y z9ZfV12_#Fgn`ws8uPEU74Ge!KJ(zXYoot!mHugHBg;nS&_d4J}g4H})lalA~tFHBXShRhb50Hz%&&V#`zJ{m*ss=~1-&PurW@*+Tr@cMH$$ z!i9vVO`V_yBA85v|00(p&4z-nw$GI#eAZ6;X9l{V1DZ?2-IPfVKvEXgN>EEbM5tw} z@Awx?OgfuN zdYXfre}PsMmklXGijI*`BRx_-xj&*WlsJ=_hZmaV94`z$D>Y}iP7m&NpIf6w5~h~; z6Zh&#(yPfFK)}H{K_odJNj5$M&`m<+n?iuU!iO)L43T@?Z<#g@T+- z(}FA4u@}O|sinhWUvp7E$QsOYkbx?k}v`!09>j28Zkj zaVn$LtK&4m8+Gr25VYBDj_uFYM@8RM2murBtoC8z$zR)+t`?)R{QKk%`B*mhrzU?^ z9U3MXWuybFna@e<<~=`~yXG+06ng&E-j=#ZW3VbO_>>y1d3%S>I`zwmcZP^`A$J#Um-}EBTxSJ0|CQ z=ji2GYxGgyK%&=^TJ5+7rMtshkt4YqB`=7I*qZZ3Wv{WRl3=2D(luY%JQ5B#IyHG9 zXEERH^!yZnRTB4)S58z$-Ij(r_iF0M=$-U(GM=b*qT0V$AzhsZ*GeUO)lh$T`1*;w zTiN#fhc!dV2z4C4tmnpY@^Z;?@#<4Zpl+MoRMv8!WZAd{}`0!VcbQ2Dc(ZGTsRK(9-P_Jp*T&)pDf--BsnzH?^LStN537jz89Q5 zPXx>=kIp8z4u1+c{#beA`T8Fm&JBNh)t`edK)^~4%p2QHmmykyubT2XjoiSU-oq2_ z7#>;5$Ol^dRv6^P(6KJNG0b6)@4Yz83z5<>l}eT*bAk*c6J=6%zUp1$k=Mlh{Z5DE z^{lls6-72af#ln)%Ineo*bPv1V!hPmp#D+qxM%MU zaXUS@b(O)vURyQkpq0-jVsv?}Ey;URK&WvDe1k^T9{XuF?{>7lkPnnooR9AOLqK-( zPv5#PS=Ma_r0`0VcrrA3DP&|bv8tc9!o3S%ZeW6P0h}W>u4;p~37mGRwyLPs*GZkR za4&Nr+G!m*3mUC6caEdeiER>l<@#aWVK+>d$?9ZHt2jS`;(}pD!^dj1#b)v$s-P1T9(`(cNwG| zB7L5+_%7l?US_Bl0 z2j^WJ+{aK?9&rsmV{*IZx#BOG*Jau>5#PmjTy0rX%XOAHpM#f0E^qf@i;jfAeqF#X zlkR;+s>D+q>*XA`1cs~1bWH*3gE0i3*d=s5xkK2F$fZyn$uv&)DjuT^e*gjdsicJF zu6@i*;src6m>wtQf@&4~&oGKdkqs|P!7VRPkDQ!Fe=bKVmfeSXiR`9d2)=l(rfIR3 zlg`)tm!b(X#ct}}wZxz`z|d=IOnpIublQLc{VRC=?5?r7JmTs7L&w~m@J`pf_v7im z_T7LV+27zZ;0ru)X3{p^@!HB}&u*tk)M2s-;sZjEFC687Wh{mF#hWw4!w)OL=w~|b z6kELJPp>+xj=7j^jHeo?D#QlB4=X38%&-WxSn%v0Wm~KG4-S~^Rp1||6Z$56@_e$< zVBd-pt(VhP>`L~yBAul~QdN?Df`_e0j-K_hdRy)JN(-&A>mUox5={a5MrqWWvbXN+ zPonJx`fPW|>Z-Kou9!2&Sfz{vH*{-@R!(&}4Tw&bQEtW_#I%}GDrs%X|N6S3>Y7CS z9~{8!8~yxgaC>#G%85X0;l%n@4|;K#1{ApRs(r=LWFcL#=8~G{V#Nb$AZ~F<9tEi2 zcg=)FKc%vBA{bS)zDwVLz{@0+RDi* zmK41XTnu(z0Ne(3QteL;-B#*3a$2m8uO2WZExuNjNa4FOf^#%ZReV5p!6l^07?aZ* zi~6c;Q2qVr9T-_6U}mgt#yP9ltoogz9VeclUQtz_7@6`C80G)gi%QRZD^ce$;aVP} zcYp4X}~t35}oKeZ-&ojn)knq8RinX{1=MQBZYKAHP=O{4CRM4(zB8 z$c^P&`Ouf&6S8@*Fw-0*lx`?j9Nr~=?5JL1KDqI`BB$S2^_#lj?vGXPvcc_7SRJJc z4-7qe?6PtTG(l8+h0+OLs@L{WeG;?_Ms;%>UlPT?mF(7A2@<3gzqG!xNp7gkc~?@b z8MW$(pr!QR3LN&6%M?NN>?8FVhqhLlM2exy1=(9%q{meFE&5UWK@R&;%q^L1Oy36( zBkrme)=5D*+s0RZA|1b#HpCF%CElDJV;6yv~WH(68F(V$x=WF;jH{H|GUZ9G-%XLOd;@VVf$t=cO-vL`ZJ*X&)YdWKN-L zRY8j{!J_>t@Mu>0;N1G+?c_MJjks4sSIf#(C4Mze21%QQ9txq)>Zs<*4`I>NO}6Fz z8z^0oLFG^JZZ>Jlin++Yf3=KD#J<7UtogHpzWUmNeoA@P4ZALQV z#CZcIdJxWdak|CzCL^}b_y&pC{L0J}dk6>w@-*$9^JP!dQR zjQum9_e|DGHa&pTBB|TuK&l{zclqGdUU-{Hd@4O8y6xY;ngbD7tSx zwu!I5*U6` zZ-E!C!G<1=Rl;ej@R8S;qeDVspIPMtDd0jg?Nw)M_}Rpsph_imU@eXc5-Wp<@P3Lj zq=?xp!r>~gZ$efr^yxg1w_o%+V@I$kSN;6O^(~N+3V_^mc@cU4VPFDaCo{|Y4xfn^RM}eP-$UA7Cd$?cImxJcU zAUt-;Y_S+2n?75Y={>BX(P1vqCf5lYqqYzlt+PekGVk-^$U%!&5=_G~7dgdrSp&o+ zUlST6i%PL4PObSRu|RK6CxIgXC>i%&sraIIZCp0Q*7?n=E4F$SYK9Z}n`Y%oHDJG%AEM&F05WQ@@0_w~45p?6u zr0baf;8-MGB7|Sr(5IB=Kq3hqM(XbdPkjd>dX_u)vtmgis7L8-`4EGloq65SCxs?6gq^jVwsN1+}2IKixgH?*%TW86Y;7F;HJ z*wLFDIwsROXB^t(4v1o7+%$M+rtVQbEAEI#4+~^=D?M2$P4P@L!^U(pzNk46(irVz z4i1}~*=fL=`e`G3p6wZrMjC$nJirAC;B02~_u68Z@60eN>*RIxb&f)#3%)pO>7Hqq ziUil-9zW>w^wN)Ebye=I@!{}UH0HYThW)gLyB+ibhsE9%k}W|PMmr|$LK*|&$*2mM zku@|<^j?YFT!Q_xs8mWO8|6PLcbcJSO|JT#Bn0Uv>cQwT1#7i71@SiBQr+j0IdOfm zOS8Rl741P&zH43Pe(M2m^HG0mmrd09*VK@WU>7j-6WY(>X5ok{MlbQL>h+@J`M`)Yd3CDSc;yhw-0Z>_IiaxIQG zDBo1Wt@|z6YPBPh^b36!8MI~Z-DVlZZBS|KzPsk>v#l>S)y-c8ENB!IR&KV4e$2jJ zZBWBmu}XJrlD>hNOa1YBUvJC~E~mbuQtqFtmqc&et&m+I1OT4@x2iWHX zQ(JS4fcZ>TCtl)x6Oef#-s=iV2vWEe)*gUCkLFt=1Vf?Z1^b`1k6CP^9CS!%8P^gH z{?fL4v0i_Dm^BVr&&L)|#!|>10fwmn3-bNK_UefvyX`q>Rs2i4njFVk;l&p;#k?X+ zks-aE#IO#9a(hd+Er#iJyYRL6hWwM^wS{u!M(3@Ula-ip@I8<|PI{3P9`cXDF_Ctm zzkqQLt7pEze&$zJ?wiZcx=oL>*OR?0HawA_dE;v+@97zWnF+=B=9=NnV;p?uR z2S{mf{5C*Hdj_Q#VCK~Dmc&Slf!jlz?ki|dQALGz(L!O@1$j#V$p&2BJ2I)2Y*0jQ z+FR*|S_k?&$a7wGubwrC@ILmHDuWmS+UrKuhil-cbLhcJ7>1j5025xHHI+f%E~clL ze#!5T9{&nN7t&rOx)R;XvS`PbH3RUiRvNu;nkp@p8au@Bz z`U-0-_xgoSzKdWY%DY6V!1cd5dBnYjbw;i4TOsFz*{wfi5mI(~nAb=(<@X;K!ifhU z+4hqoBTD=S7nu3<^*()h{D@r*LW%+H0>U$B=Vt%D3Mk5F9VI@rF3Y5R9b8|-;MvRP z)#!3|!a-RXJ)FV^SG<(Mzp_rWYV{GBAEhE!#{eM8r(Q$8tnPGme}i7fkGwanPfo(Mfx6!%wbyCZgjnJAxNc9L*0v06 z@DXnkJLc;A-L;4|#}F$I%iS5l8MH}gdU*x=vT_LBBM1oCp17DgnjdU&$XHtsd%TPv zM0E^|p0c&zxWBDohp-WLKoUmqEj3*BYe&2pzGi#UH!Qzf$y7k-_9$-DTm?zCxORtr z!pycG%dQnf4DK^dv^%HU8yClJ()0U@cO~szM^$X8FMA^B(r~pHI)cyxRO<3ln=Iys zDU;7Ly^{8`Tv_+E4KU?bv01vbSXA1Sp+guMmU~|aQ9d)X3WAzO>>@E(dPc*YwJ8OS zgRD?aHzOcMcF9{Oxv}vLe4K&LbFXpxA>+M%6hUe0pU8PL?1qF`j&Uj~_GjmCyS~`+ z@?B%a7;w|BEb^N5c5j2Rwh0EH9@8pHcV8_X@tHuG^Dv&}@dVqKVUa+bSjg6*CBzmzQ8e zV_aHME{Z$%Y<{PjanbExUYQ_X+qnOxI2D>1?Z51A6*aWrc3!mf_1zz+K_=3a+HZ_z zI)uq?%ZnzfcVS;knt`DgPY~)hyHb zFme#VkMB4XFSDFYdj6llWFNVWFRmZnN?ymg6^HycqjQD#0TGgcoTlW{f zl=AAMzGYbL$vs!q#C^4_)zn^IaOu~KL*XHK!u@@Lu5yiK-9QfS4cYaPZ(b9uqW(U$ zu^YC&9^mqRHYLv67iWJ)M@F@z%}A0CMJtaA3Zb^x}3cFi5=yyMMv@%D_oKZgjky~a4EHzR=ItV1^F;qJ=! zgFZoNqjyTCI9d5#BO=W)lzgt#Rgy!CgFX58-qQ@ew045JhH9O#B!w9%YC>q>%v`Q8c)*RURb7T?cAm$rKqJUI#FP@WMZwJS`My@b*?6^C1~35(nd57p}D!-Mo}#4K0g&s&C=0 z(@P!@%=Yo04=uGJC z)N~YEKDT!#GfIBfdl)!zRoH@ddH4T+g23@?#y(eRrpSN8!*-?3`dIJ)71{yj2sE6w z3?f&6|BUDyhQ1j_TDmZ#AM=?b{PT`5MBro$ApRT6Kf1h;~ zOU!Lpi9vm<1#Jb|$JoxCX&M{L6E3Di`oS&Iz&N0dWseZUDE9`LX$XO&mW%}oQF`>YGR~(QI{stBoCMofHA^Hrhz?$@g8en&ZO!mq!Tuzbi@egU4jM+!G8<6RdJx zDPQPPN^Xp_dZgJ@!u0HQ#0GTUDQY_L0;OUK;FbR7oTx4gEg)wi2?t|Zq%GByTyaHQ z)NUKw&AIOQ$a!ZGS}6`Gt`xKiC_nTET7U51=$8?p*}0%vW97mGmH+e^bKW7_AR+v< zvZerLvMRy+F1;givJ4I_RhGhfzhORDY~w$0Z#@zq4@3N^@mQ%ndBknDemuF!Efy<5 zP`1_$P#}sdKEWL%%C247P#^zDn-%{boILynA>>3>?MmWB^`o>H3&-wXxHcwArA)HZ4sDlMUZr}(drVDZ)E3`ligeUo*gWIMB#zs>Ga7wHj?$9@hDbS=#|UV@Hd(G= zp1=A*i?V-(dYjmqCeL@N5DEga@8%4lG&Ls9CAOcH-B9VIkEouT{qd$`8~1j#8ym>> zFj6QoSAj8$@IN->u?NNWkfWys!p5w2<0)*VEpq}Bhn5y%-@rWF{7Z0vnQEjgr!kX+ zyi;zq((-?Bp??Zc2?5zvvp2KnOtTkM9J;Eht;`8EH6o~V$uqyJOfhm7n7KQ?ttlWh zdBZfh2QqA6k0?q)?F9u|_~Sy9fPCcMy5CO~LAdN{DY=%zP_@^wF8g+pg9zQR1$$iN^y8 zAx8n~O{KWZ^^?q3CMRaSsXe1M7HCAbR}TN43cL}%(K`D-ciBr5W>*273Mh%Mo?u*Gkz>=>AFz+oEYDmAV^3cM_a4d0nP9haJOY|EJ`N z`d16zM+IZaEIt@2su>VBboHCA_xXsTuudcS<$j*`(a`%g=T557Rae^_S!SFEjT zuhQM1Zj^S4F|t(yr{XX@fhoV{x<<8s+&0bkqPFaD5;%&8xcy?Ndb~&3YE^U^!|LB2 zI+0s({j}ydb7=Hzi@l!v^W1GArd*KUUnjDpKlSF2T~N!?t{w*pHasE;360)D+}(tj z@}+(FPP-vz2@xmF7dRG1{mGpIROOomXoqQ#tz;#=*UFJ!8X{Xi)$n2gU(ZD$6l{*m zb)S^Gg~f{T$uER6{};)@uB3Mx)h}_+K&w_~?J$F~i}`oelfOpPU#rXA-&iQza*NDP zQra40e@BQZ>Yo=KRKgySw3jcYe2Q6yIJp${b%x)!Y$!jz$@AO+&EE2Fe*tgvH76pP zHxW=nJMq+a-2_)j z;lja&Wi5`fqX5>Y zt#I*x2WobQXzZm;`)1L1!ljtZ(pre1A$Fjr((%HvcZ-qbe2sP1tu#d}iHbvvn3jUR zn}`ULZ8;6JK+`6EA8@7rGGC6z{(-l zB~FQC*Fq2H=PO@Wt&tP89mY#*=$sHPVTJ|uzXjg%$-iQU0Bf-Bj@n!awDxu3=FoX@ z9YX^D9?deKn1xU?VDw!j?s%{iX0TR{ox6~*mC(EVb!Kt$J z%!K{k7VwBq`h1&HSdyS^;}{N3>xQSRK>q1 z?yP>;z+d zfi6VN!_VE_jYw*-?&jz7N6BT=Tnoo+dzs27dL$le6%-$hnWDM0|ARBmblEh|=_gj9Pw1)}8t8LV_#spYiM$6I24`W28MA7o8G-yN3)bgnU2a%^@w?C$342_8xz z6k&++n#(zOXYu!i(Oh6HY-9<~Hqflu#l&#`q-nb|(<$f8wH)JiIg!(x+Qk$SYoUq~T)VA&4v zQ8QqCdT8BvYCamfu=0fJL)!YRM%G=X|X|j~LRk6B#w1>ckw#TwM8}_bLpOnUUHq5{;Y~i=Lr~ zOv3zrea3XKGKZ6!Y~I(gp{_gq>h8yo*I>lZkVS1pM zoZRK)zR(q8Jbx9fBiFKNWMfkR{%+1Sexj(CX1JcwL+9_a>C%@$CQ0YBCi>zq-iop*ilb1I|^bbHj!_IOTmGG$Nc44Xv2_|z#qMAJ?XOOhEx@pP^lJyaF1K% zrcN7#ch%Jns?ZtLT-yX&jp1V8miZTdW`n_?O`5{$|?l$`-vdE|KNIl%WmCwa{}F#?f#1O0u~1-5TuP`o}*+7)J2muVfc&i z?QBRF{TxT_`7W)qFLgW3aB37a%K@pB(RKU7AbY;WZ*^}l&~->Rj+FCDlu<77G(<4)kfa8uS|s@!Hrm9 zCted{caR1Pf~+B@tEyi z($9S5_mpLkIwQvif{OlLlU`~6F%6N+i%_(o^&gXBpri0#b9lTUs8vnSt?`l;C@^A*usfp=N=i(;Hm$V$>4 zAnK8{O!;ru7(Olzyz~5*7#wMxk}6aueQV8V>pia6!bahR*cW;fMv@iKXOxbdjeD0l z_EMg;FV^VaNc@2Ryl5p+N1X+4l$yYkj~VGFYD%fBJb}eqdn#v7M3s2Zv@nJP?zO8tySucP>utPEHwz+Qr;%1J;xL+VIH2vFc(bsFU0t zXVZ<=HApo@Ux}KBEf->uL;KmQ&f*>+<zOZUiY@XG zR>dRJ`}{2)dgWvybl^Hff^Es}a@9cVNAhRZcK<-(o4TD&Yi1Ej+`S*Wxc&?iL${{A zqIOw3JwjAA4I~-a6hftebAif`9ys0fauzdnxcl<4RsKVNx<_fi5PiG{B`>T0tGM>3 zU!yy97iJKzKXeD^Xb%;TXuO{BFj#Fl{++lh|5p(ds?Op4JaJUQgK_9FBBqBKIGDa> z>o>ANe1AOY5yaA{`nPZaPW3CDO3e2t-VeePR!qH~Gbz)+nXX@=f^*c&734DT@vakE zM3Rb+>6d^ebNCaTaw-$C-is7DPxB90AZW5DZX*E#%MQ%>Oe3|hldk=C|o=E%rafQv*BSp~; zawBj=MRb|)&e|Ekz;;iP%Uky{x#sZ*E3LicCaFs8hjoKkO2vwZb&bg$-PC~NAssu^ zudE(=<`W!Y6M@}yqaCJOA{|<^vb4W$n^fs7EJoK$07banScklt59C{+e-dSms z(;7)Q^$)=5e2v~Z75uZG2*n9pg#G@FTS>Xwo%ko}9W6Knl|2|)I*XO3a-k8Cy*hoG ziDV(75B57GuajMtaRs!sQ{}ePblVcdur|M+1wE@vt-POB*cGa%F991r{p$P6P3UXZ z1BJhEED}@u*1gJ=9(N;l(TriLGT~8zwYfD{pC zzHYPqMy6Ahn~$R++5A*_HMdF}((~@cW?=!}BB<|%Q@<9f8L#;Nxqe`#sHX@)c6Iz$ z3W=RTOmX8}#BrVe5AN=yIkz`_h>wI69orb%kypT*!Qjp{_pC0EVQG{sq{}ryg{M-C@_}|Bdc-0mq{?Q7NM+mH+jnHxRwo_C-UBLtE^py6Q{^!Nu}gGN zqf7M|QZns_WpEJEBgm?fg+jKZ=}+M{t?2{x86?J<+x7)zQb9sKgeMOLgbwFqn(e7= zXc2>+p^TS5u8p=o)NStmm?`5w{aVdpu;<2T2oPe%-4URC%d7D-j}U| zM%lhxWlD(Z(wZ@+YQXtOf|LarM)yvPrOCs;AtXX(DqibXvxCDuzo7;y37`$HBya|y zSF%sg*`ych=v%o-6d^CICg(CyWyJbg$`I4-Pwi=m?J1%PAQtqOSC-K!o8zwuqia)G zQy&jGk=%{_l3t|M3_>Ez8A#aO|D6_61v5QP{{fFr4^!$fSa^Pr9&{~hsk9=`2nyq_ zM3O{vuXWD2gAlsS3@g`OQ_!+lUz};r1!fbo9r|Ux3qTk8iK}t|rI}-*Lmb=5&R~i( zS?pglq23!GR0KAVzW_ZNyR{SaCXpyMlcLs+p^ERlj1(_WLm8?68t{0XKq8m9Z)Tv&u zpLr@}lDmDp8d{|YJeSPO+@4e88X!&?vdJ1Ob>}Ef|F)8s;AQr87wc4Q4;APV z_${RTCe#nWplBt9&{)-1#^s|iUw8@pERKt>q-0NyKdmKOq(h-ONKN=*TBFy6+cu52 z4He)64of=NHYK`71POaC!Ul{5GCJ)NDv!LYukW)cX8>+hzh0o)x-k`|cGBTdhwRpb zB)OPWqZ6-^_b|*x12265ugFAKZlX^okUx&rn($*)H`i5F2xFciI%nQty)})LA?MHz?`=W>_EUwrWE1=}I1qMmtx~pLF;hB%o%sRUpGjk=ur$ zj0*qVCHbma59mTQxRU!bfpB7f|kj8%hXv(O*xYzALt8+D+ zxoeWxLv4{h&*RaDaJQ)@bE>kOg-L6OWqmo+US*prCNK+7h9yz%zbz&$2gmkZ!F;sn z>cwPHdW-bT&YzOMN48uuc!`Zn4Sh$E$IPU|9chO24n05Yl`rn;beh2XQX6=e0n zvb5M%v~YbSHEstG=u=r*dvPgxs7#U|VO*3vu0!|)zz z0PZI9J}lOvi31D9sAKzin?dL&z%zjN8X375j5yU8YoI_@XL3gk)Kb&>d+5vMb??Yo zOQ;*MN)d(n{qv!Mn*@t2{&I)adZ*O*`G9S`w%JTkgp%3Ch@-3N`;PK9np-I45w}du z1jlJ@j}Hl4sJVa+6qI}_CO50ON?*@R>tMHxCf+PBav=|>6sJO&CS&4Z&(0RRr@-%K zLY%4S-6qckWM$psZuE`BCS+~xSKh2-3>QZAUSqup3kU|37!TkS6**TMca*S4tYr5Oz5_Q$FsbPuUgSlBqhkyXd zLV8oj#-VkFxU0Lv<-fRZMhU%!u_)QZde!p^p&<0u9y-m zud~0XurZ)_JJVUnrg&ZSNEwya_yc?2;S1O#xa33p^bK^sJfx(E<{^;SU%`es@~1o}v^Z@|lvl)1wbhTsIQTRsa!okeOfU4iexd zefGTV7AG#4V`~hHPAT2sihbFL&DA+3X`=}rmBQZriE#1|4Czb8JQ8X!I3&vg1tqU( zg!V9ATp)kn{!?52?wA$?Mh_KpA~7|W;f`dRY%p8{?&%g`P4#W z!Et(mt6!H2_}Wl)7CjW|)mea*5=LqnrmjCuR28a;|9bRCLeR@L0c z5MrPgw2SD~d)9~2ZhxH%2T}rYr?^(F>;Cm_;=%tj2}NTpL0@XSaG7m@$oc+^alP-N zzePQ`QK0#V&SRds07v$5o;s?4GQM95Z@+PkPhdWO&i%giw>gK~jt8bFzL$x9zkEmg z)x=v#^N3(9UuwmdlV*lQCHOaZip{%S=mlbAxmn2*XYt3=*NY9{E6*PL7`Z-%Jk{)a zUMcyYkKS3a>Fv#7pj5b&gA}FnhLcb8jBC?j5##>e>BuKh3$M9LxCcOTta+0FC_gLm zV*z!%$?Q2m^557uU%Z%S1@Fdj3aF@w74SJpvea+D{~eq+?bB{)O3-Jb>#pRU0Ut{mSns#E<*R8`Xq6Y&>wn>LRmAMzlUUDk^G8x-S{%uA3+G!6jJQvfk5ppbs0Kfon?r{C(UR|B9}@3k z7SEQVJ>M3+riG%G-;0mkeO=sNa}1ko8>Tl&5+I*!bKm}a-o@#MRmb%B%HNo@T_8dFriO(lndc>d1i`efO7B z2{oWFJjR4|GVpKZjzsPxG<8Y)M6^8x5#b#w(1c#63j?Wq2{Gr$;Jeeq>tr4kHBKUs zRI6gH#YyGbw>j5aTxeig_t2rAL3GpJFPoD{GOE>H6VR_uZf4(#!C;ib13^)f#v`E9oWl?1pju!dyjMc4<%rfBn7Mm>9D2W7WaLtTWFR_a2Dqy0&qauSADv3ETM zNjY_mW&M3{rF~cB`h|PXu{iN&y5nCH*&w{G8yz8zeOwH@aK2=939wfJR6f0Y;}NDM zmMjNfzLk+n(<5vpk@CF*l0@^UJeJ!HLRlTjLbjQ5IpLUgzh|QUIWzQ=)o)=`5)jGxJNHuwe!WoS4kgp?Sx0d~!1I|dp7}ddl$!xBKvE;e zKZmX{b}k2*5fYNI*H$EJkyCjEeiN~OS``x`Pk&$4I=WFo(Q^U36J)|;y} zSGJ8~wh_t2V)2E#$0~$ifl8aoC$t`5L3dL|a`%)3R)`sLP|Xv2pGrPo>5Bp7<6Xu2 ze{dALg-!?NI%c^e@49$%3rzbHfpJVJ`$^F+pVI=v3-orvsKN)Gtg9jN4!hE4q%&&O@}o`(Egm9ADIv}x zet3mWnY3uMk^ftOBO{?-6TN=_%qos8s&vR-dlj>pEcYoN2 z!b*jgkP)vd|F!c8{E?ny$^E>ExdU+M{6!I=spS3>0xVUb%wfStd-`_YP(l-1OlR(9Hd)yZ12^Ua=@dwTUHH^#D+N(Y1S6tA zg2ja0vk(_B-+={W(V58Teuf9ey?!XPYo5UswrH+`?7d$fPy<4GcM^mmKvO}mi07@b ze!m&X+2r|pA zHV>wo(_Y?uKQqCI5B|1Oc6F50T^d}9j#p|#c)TXvTnpyAr5GbR)~<}~XC7_R&SuX_ z3^R}22N(8t$2JbWRI91;6?9n~y?dFs$Gu~}YIjCT4mwv{U#c?H=6K#4k)gPq(2FG%dBJ{o7ycQlIH}+FDBX(1;pG_WeD3?9 z#Bq~sQ0-z-t;E|I(c&AvZH0(emCZFXHusMT^nSB)`+qVY@PE^ZJV%(8_al(^T_#0O zTF%ry>i4}fzE!<5o2+e2vHKc7n5_QDXpV34Ncs(tKK2ZpE1;gu?$=w6$^x>-+Xt{) z#=zAP_U2Uo1D^+(FtOQTN$rK@h^b-kNb<}YJhUe#*EpNYn>uQ(e?jD&P5QOpu0o@KIhj%O46S^c6#HRt zQY1Do-orv+-5FSVUN8({Nj);0D24%+4fLM%=ZdeR0=)G!ELKty3XG48j6z0D)GL`W z#s06o?~H1q`}z%{Ac7#hh=771pdcWmgI*W03)C6Siz!3K&_G$7Jx?P}$*1?U%xW?veW zbCnX#$)+34A1|7tIC2Z@9W_;)2LoTR=@snk%jP8O@%4KH+GcB(_cES-jL>C-bBPAfLsgpgc zE}cVdzd&YnOF7s%S&28{W{LTtjh?Xd|OfC$8v8u18GX`n@t1lnO6C zF^zNSCuXHA83)m;;4$n9Vdbc>Y*6s{3GBGv%95s67;x{U)SUW;IPLE%A0$^Cdw@P$ zvyZ4lQI>O>t~uO;5%aAs{uMx#unrh^FoM!OeEEHDc>Hkw3IcMdm`X z5|7?kDQ)=+$Z{thu;Oj&Yn5ZX=nCO5N7-4JxficSCpoT4h7l9Qkhog{Sug^XEaXv1 z+aHXChoG}n*|grt&0`ws{PMq0S_`x58@`gGcRAt8?oTVK2U@rYdT=sx#wgQUvv_v7 ziSAV*TrX(^($&lf&E*y~sw}~$?)65^{`bkA;#5Gzcun;4Es6*HHk__w^b>|Yq1(#G zpP5HGRGRp7Vv!>1;EkD5gV)Y1?tZte_R=5AH-rK8Do<=KbN* z3bgBdP0KseL9~Z+dyTpCV~B$N>?LSBx;6>wVgIt-!0T#mxAB_R@R1zxUe=|O2t)w%rp4#o0w&xV~+`HA(al-Fv(O} z(*Dl97r`seoBUrZ5&yGap3vkziCX)8Xw!xN1aDodv&|dxF|nqagJ(?&Ue5w^F?#s=N4rnNLg%3 zRyti>UG3@l+9XIYCf)vL?aHgNWCI_1l^*30{ZARQsn`RBBfn~V{my8>%=&?sJva~j z%wLMuM|UYDp>kpGtno6Tv0?HIdUwdT+{|bZ{V;v-ZK(Tm^G97O9K_jf@|EOfX`>Dj zPo@rw%$W{D!QT>b>}ri=wsRn@E~b`f{Rf~wtl1a4h7FkxhI0k-C76|pmLqF z9yoRI>*T|}gCf1$Z5NrgL@H9IFua=BLRHS~bcgi9tkP-ajLg?2$ zCgy&hhRw}_A*R)D^G{*({C^y3tEbyQ>p+s-Rh#NmQ6TO85rI6uKkCbgM37)tjg$>g zluox7!6?tIa6`+Lu9{3{`gTaG52}Q-$TxrYe&K>K^8xk8Z&i~j-eR(m&Tx-Lzql)K zcwIQeiTfl0)uq*TBv+@~qa6Sj@LC~|s}7~BW?;$-O0DNwT9ZQR#(EC>i{3MxBFajW zZPFY3&7SnWU zzW9@ubVx1J{4GqG>tlSO=hd9=dKL-=8*;d>J-Ox7MRrqii)0D7$lN94IqKlsH||s$ zFt}{Cx^tP`6rk4IEg_(3{U?yVIp?%>ceOFkvQMgLH1k5NLFAQV=|Ugl8m z&-Wy5l&U|*X3I?jw6K9SEQvILJJy!p`y8r}8AB{lM3s)*?1@u$j6F=KOy2v?55l1=4HukDIdRZJpR=!Q!Fz-k2X=%<@e{ zapw1SJRy;}ob@LjFPpVXom^va?>;NS8A_EUSJQ z_0SAAFYb}ksSW{+2QfIXJ?vCjuNA)vD4!UdQ)V+s2oL!6qszoe=HrfN9?JR46xIo; z(W#Wut6tK#i7Zhjzmr-6c3v__*SqB3!&gFAp=;f`^ngmttbN3j3X&&cPf|p4$+KktkX^&RD z^7fP{oopnm+105VxvW z>?0Vr+%sM^W@Yr~Nt4Ud0Q^~LC+)#M!v>`$iI2W<7xJd+< zIwD3pA4NaEZ0DFc*W5rELC&%@6s41*Zl7(|J~h$aP}KpLLQS=?K^GYBGsNHP<0o6a z;Zy3d8R{47^%>JvVdBib>}!lI0yEmDJGMA*sV2`Z#g|v#F)wFqWV*VjoH982#Ktzu zaM9}uw$FSQ)o+YtN@S03?pI+VJ*gz`qBTTc;bE`1;4$zYpH(hVui=f}2qw`kC85kR zV~@EZJbUxrSaQ6Y&p($RI~6Yp@P|mM@J?zTsMhogQA<0ysP9dUo#~dvewXju#~#V0 z?&Z>8tqQR}j8?FM+6jLF?_wT)d8x^v3O7@kr#JD&t;}qv<&rqlIyAP3hL_IJSSdGV z1&uuxI;ll*rc8Cx?*VVWie-;jd1m@hHCjOQZLMtG98H4EuL-EFQywwL!I%liOjgI^ zrt*;}&%~!wbbU^xZ?jEfk=A7IfLdk;LiL6Itkd54)Ugb@pS@NywoPc=cQcnznuE)- z>={@}3cMcJ=~O!(1MMv&kNj|Ul zIVeoP4`d0*kBu?opLVh0Q@a#OUM+Zsc*OeVH~Pm5c-+qEGT!`grDr2rHeI47q>ufY zu6y7ejMf?ZS*l+oHCcL@-m?C**7U_yWu)Qy4WlB)Gn>)t)_iDJTSbiVFw=SyC+1Xi z$bQ$7p&Dj1-HlW|d>qCGdtnd@8_`u^apVN+t3xe=ANriO1MC>+=(~ zECb8c?2UH*wFbyJkjY-v?daz=SNd4|FqD_)b~WG-4F>Yjbn|FypnWc3xo7vP`x*+0 z_sld_%QjY7PFtOcjO3!7Em&F7@?&32PwZT%ChF6jvwr*wpk`hpH2vAD^^yracyh0( z!hBPPOE(ua9`ImCz)dwnKYO&Qv+dYcpB>Gi6Z|;l%Ke-@VP)}0W(ZaMN!SUS>aY6M z4BWgUv+U*}9yKz=j&tJXw=GOB8q1e^xcCB!jF%`60n0aQd(%Q!d%#K+N#&srNJyD4 z5IG&}rUXql){1*ojxGPJZ6-lhkYGjC`ia0m*u>zYqg9dq5xr_|<>*@O&!weY*4#Ts zh*Sn`4b`#wKrp)I)LKt7y_(5uME(zZU6nNt!5L&6XSIaF)D1d z^fu!i@%f(3a^~a{p2tnZS^vr;jWs*iDDUYJlg#H##QEsu6-%DUf+16)8;MU zsQ2x$CU~^O@wKp}#CHMPHk_MCwifHUKMGUf+(;j!;intxB9ePkO5IXhU~XMv7eXKT z=qK^hcu8mZb;v6^kM~O-*CF(tTv}%r1b@{KT^qQu@j=s0W`u40?`=|Ij?C(vd`lkq z2ji89-OHKML;AVfZnE~w`LB#j*xK#>S=4o(tu;d5A7j-fA6cTbqqBRJn^DS@Vf|h8 z_-=Wz7ln6&k`HO7EwhUlS@}uFaPApva<-mvbQG#o?kml_PzG(ki|vWqODc_-+~ZUv zm%lc_MICn!M(cK&xaJ~REP`U|I0IyRznXvgXfa0Kou}VDxbJZ##b3Zs+zk+&1?u(V zf>CDW-4e-i2nd@Fg@J8+R!n@9O}da*6a+ZU5(jR!9Os`4^BX zlN-mszBg5hU?AAmNwm^}NWYCE^A>pb0a{>dAerFPgwB8R8q$HYUlWc1?{y4T%wt+~+eD*RH4oFZ_60 z5_7jA+tOtuzy?yJaD?t((CpESvpBQciXeySPqpnblF?P{p}bw>-pCbtZC7`LGJ7jn z(wnlT(IYQC%x?KYYwPV4O}#n}k(2EAIv94@$=cYR3+$4@xW$*28dr1QNLpTpoD!qK z4Cvo4+O#(GWb0Lb46Mzqpi7ly9#8bZC}6xlIj32$BK>TJn2Q(`u%~=fnO*I?_G22e zA7c74=t01I7D03HdV)(QOOwuy=W~ODJ__Gl6gXvjJ1sHy`*&bb0F^KI7`36J3~4=& z++ONMU|3Zs6qU~pn8r6{8hDjVFhkhW{ytud3XCjo@QeW?GDKXh(uGr8}JdmeXLv2|mP`SUZ zv{JYIM#{u9S&OLq(!|X1fZw&yv`C)0JmsZMh@0#k2J&n<*m_~E@U2SU0~1q%NL)t7 z^c_-C0-9()^wDzwq)_q>e5MQ(jW*_Or5pk>Df?pHq+G5bb^*wezy$8@4YcdUwD zKwLC#lx9xtzpG?-FlFquTNBY9$4{33;-B$ae(I2GUtnx6n>z$|`fmq#Z)cq}qK?-?R$3=V=~vtk1xS*ag2{aC{0~Tu z-_ZECQAG>SVZQ%sp5(w^!iU6LNbt~Xldh{`zfhqe!WGinisVDJf5S5oq3 zr3dWT0Vsidm%BQleM8oAm?w!T54L+;M5_+5AidJRNWh%TrOLuCkF=o8*L@8g1 zy-kl*{Pqqh1nvillaaRyc66mIvT*QyuFrq2uiDo9#5}C@=W|K6WrqQQ%CmO;ZKlKG zG~3!#{eJn~g;sJ1F&fW>jlF?dhf=%Ksc~l?ybcEtEC}TDYm3w>the&j(Z>|xv;6B@ zq?({-2v1)T<1Q#h{HSF&aW^f!rEW4jW>RIj`0E1=y~I#DfGW>q=Fx8Oy{z|j4i1jW zy(g7`B_rwQXODb2*sf>yS9lwalq2D%Kr$uD&TXNN*g zflBhcY3o;zGEpSi5X&VOoO0P}8z(4GQVk+|UX#@ew<&2`sB^Zmy-3gfdFssUu=2S1 zh%{oex=n1?%Q_9D|4V7)vz$f3%MqkPuKQ;bu^g1FoGQyBjec@RmHV;5_W~;X8RU^0 zfJ$hekrKQd%ic|9Nf*zm^=_Ctl9?Az(i9u`u-E95yII$xB{FEP8^EmT^sM5@$6zpa zM<0~70F1ubZdw}jfOY%$0&TxKdwZN3znHpKZ~ri1G0xFEZJD-h$aD#MP~~8w^Lyy0 zMS{F6lHORqHB*+cXLhy${3%y~SNE5(%jy(?nK7cUW_zt(>L4td+M~{}zZ9E#Gb$bE ze+4S_ncC3LS@(BvkbX-r;3B;%vG|}1fSKFvv(fkDor!00-SPi@;3##z^t-3r^JqrM zAR5O%ZwhPp<85=^(6Hc}J)3k?T9j;$e>u(2-Os%-V0F)Rjuf5khtWbqnfLeO{DQ;k zR5I$_#S*9GRAovh+ zS~d)t7pC59Ab>(=!RUPnHYFHIM@yCJ49ZQz%g*b$%xCPUp z>!jCE0t;{9VB1|eEAt53VtfTI>m(p7U*y6{vg~S0G-AYFab*k;v!b%0?lD8+a|tj~ zC|z}b5cs9wNx#GQsXD^|QLdOw$J~~hzHL}b+OIDkX{YE%cm2M4NfosBwG0t`s_kIHJIF?FaTY^If#YpvhK(-p(5IT5;jj)Opf|++ zXpG7Stc~s4kmXmHJY9Swk@(;hpXHl^KPvmG1B3!4$QiNQV$%a-@{p|HitsmmW1!Iz zTfao&i0G2NON@{=6Og7-P|<3$m)*bec0g?VH!Dfgd&?+j7qHcsdexbsck(87GjkhD z_O23g*3};$Ob#TjC&hg~iFBVnL@NA10zOW6QpqSH8hcwEVzX?67I@lIAIIMXWet4& z3WTuLw;#1`jO3Phi>9tOLO^^^7^8c=V?-KrktxV_b2~=u#$N1mCmK^J>*fw_^(KIn zYIP)nR5S>kw|`)Fra6HdYA4j~N47@zj$sAGb1ie_ZAQC}2er#&8^CCGn(g++8RKs1 z-SjJe=eOvOi7(}cI6o#122%RZRr+xDN`dT>}Ylzea#Hd>1zX`&qg+Vy*2~qm~hD4$YMfKnT@w;QiiYyK7uTYeYcr1 z7?B;PzA3~YnHLxn8KLd7X~8U>T+P6!G{kA37{SrhrGj54|EA$<)krjke5P@CtY1Wp`dQkc z(Pq_0t>B|`_&WK+A)k@7Zp%yt+{B>VRnopYL@Q?P+NOBk%%`?jtH z+^28C1NiaoxxtEmFq9tl{4W@bGL`anUa1gk|rN6w}ujm`~=YYGOWrMw?8F6i|G$kvW-!FTN7wxE<<$@40|O zCLDJAw|j0xMPE4yk*3bBuKwf$aw3RXuup~Gc_7u#TQo~F8u7fsz{S?^4eF7)4omhU z@i3_0r^af>rv}>1d8G*C$~A9zZ^+J3Mf%J}!b=wU6x||>Y@K{$rmzJ1wOB$_(-@Da z_Qn?H8-ozpK>lhc>eTCQvKCI33YSK@P@; zxTjp|xzz-gOOG+ztF6$@y8YN5wD=215Dk#!N76$g`j=?wt9j;95d|`DQLEDO(;LW@ z`mYpFJ<*frHJ1%RY?sqjDzv#vF_)i?#dSM^ldd4QrZo(pD)>*QRG}?R)mTVgnnjIL z+S4)C9D=<{3Z`=-e5J%CK)hi1pWFM*X`Cn0!S1q=@PLcFy@_4W`N>0kkK#8Nq&EKOZt<$L}s{wHfH;@TGvja;Zb( zRz}6*v|F98{sKg1Iw%4J!@3&^^rw}-m1&-Ey^}LgMzs2$AFMQKE+E#qI-X2eV<;nu zlJ~f2mb;j?zTP7LycBnW%{=T}_wccc&@pN-m+05T>IW5I=DO3yp>=5e(h|-)2~=}2 zxO=))66$L+cRiTOHk_oV}M#Y@Y_4G=6OjY-uu$k)ktY z$V)ZL4VO)pO_&eO0uPS^cO>@IeJ`Q7+So%#@E7<^X<GRW}>n_s3ky!Av<90MeKk@sKk7g-fIrOjpiD4ljMDf zaY9Zir zzu}fP6Pkyao0@S?QYtbmcXbf~h73LJM^f23)dGPDMQ3+Fqx+U;b@Gv2G+b}=1l7#yC;*s%w zP?@y^DnChuj5A+Rx=#T=EEmcufisVdul< zk%B9vNS&eiCFeF5E)&!o0B6fS?vl3gAx7&vevGCRk2w)M7$Ez}r3Rpe{P-)?1}S9g?M=s8Xd#aFU5=&>elgbd1-C@Mf{p0KpM7Qz z0X(HWWd&>Sr+31X!CPPTF7;P9QWBZ7lg24PyU=S|{jI|e;=Q=dWYJyZzZ~e%l5R(N zId?SQv;1brKhN@G0RL|Mlb?c7gR6LgXahnFp<4YH0O1e5+U^{z{igLYzyY5>ce9Ou z)2z04{XhGq`#enqf1)>plsM$xAjUMV1sZ-9D`6=-;%f6sCFFDSx4XnVp9kPZ&+bEz zIpA|r?3{Z^=ec*tNX}r>g4K*8p}K-^N#xg5A&}mDu1#JlKgEaOomO+{+Z*}=qmnyK zepkrGORpf^kso|bbXQl#ezpRC(QZuV^4IZn(ahUby=|@}Df_h5eLZx1*-lP`W%<+Q zfMdNjo8Hei1@`1=0R5_07GYKU-~X(6UZYPJVos`=OXAe{(Bn}mW ziYGL3SzeV%y?1m*mr}lvHFmawV>&+|;?m@p)x~?*Xkwn~ zJzErnPb#rBuMWr#NbZ_h6bJnPvU@BxIYB-%Y;15gzgvjUstk0o>I)j1Fr4Vp{thQ! zh3$=2m^nxFtE#~(>eLpV&T}4f2hWS2XE%G=9DREF)lu82f{YlC*MEW7SHvkBJe`zZ z^YL1y-ac%v848lK3i_#KDmP+wP&<0n3m;5w%)|B-26c7T38c7lLT*)5sr40x;naqC zLv}4uI_1gv$SuXNrMvppH(GKS=G2xM+DVfVzZyy@zqSQ1n2}9M` zaY8}Z`{0g1;=-p~;_!n3Qs2&+69B0M)%Hh<^ARg{ERQDAT!H8Fw}-MyFuT71q{Del z4B{hH|6}!iNBRr)xHNDT_<*{k*(cx$?weP`fyQ{KEO2&4x)aNTKn}H~AF(Qq>9gc~ z2VRMF+Wjsy@Zs@nuBe_VVl%Xd^lMTDbpz`_;g!Q_X5=q!hkdH*D6^|aPK^|s1b4~F zNv#epwvlZbrwMM|*B%d1J;1H-pZmpt^-6}f8?7q(TZ+rXec&nc><}Z(eIcCu@4ld+ z_2>e^D~GRbgMTriuJw}?s6q?k{=t8!Gm8HnaK1S(?)9j~VNs45KLlm+ zl$JQS_FRJq9FGcD*^`$pim2RO&`nLuUP~e9zuxfYSNCq!3BBLUnX_(GYLdBN{9L}L zQ>&?z*%DZZn9941L<#;vZHyM&+cn||(?_aDH-3Al6?Rclxgj(54f3v0#*auHYlvgH z{xIqJjc4Xs?vs~cV-g?OxQ5ICF{rEJPrOKf6{x6a0;AH0)_R)-s`Fw<#J(=gWFEjf zjD81s*#*}G_aP`8dbI1O?o8S{ZtXE(mW<1Lml-^@e|)5{Y3@SnZ{DQiMRs!^&j~m> zK5n*yKY3tUQT5FF&T%+7r7tUr^$al{!w}B-L0enR_CR=oHE(x5{RO|0BcQxVgz*%8&==n)c>`q z+@4)*or5>+nz=WKbM6>XQwqm0i#?>KXIN--5FGEJ>XjH4{;HQ5NPu7I40#|ZePZ8Y zoZ`J&T>RDlJR1525_+ukIAjd?QVTm*F5A-})MV~`Ry<*3aa=CpbNoh=V35L@*5L}K z7Vzy00&Z)~Zsh(^n&yaNews!`4e}CJOS}^xFSw7wa8;47SLv{OEceXeafnu11c*xA z0x>YxjM~_fvDEN0u0C?P$&!0|0KmE`P5m(b8H{a73>saf=_1I(+?_{S<4o9x0s|Kn zz5ET?f@kuUp`?)c&JCkP<;Yly9g<@zyg-Hc{t4!J18HOi(URF~cf!m+w@jyfUPA>_ zZk2oBJm0fnVLtTzD`#@hJQWWfR|1(wZ-mlw_8>WBVt=~@W3F&DF|x4#I-7+ZfPaSK zeC?unRKHKkj=j+cx)Y#H9n!%LfLsMc{sqJ$8cPcnI(n|!{A<@wu@5mI{%s$B*BzdN zM8Yx(G6h}p?)&F5rKc||A)PP^FrMdUbnONE>>$(mqoq}1IRX01S5KD$1s@~vk$TEM zpm8rdS?;y$$e79Bm~|ZHLu_%RGjm=6PX&LB#c@QiP~s)Dd;x@Z5_`$ekphZbjIjsB zv^PiSWT&qpT1tz?Hi71?wd)3WvH)|gogRxos>SaFL-5_>0A}n@PV)}7F;=REt}#4t zwqqwhA^0(l{(2azCr26p&VHQIv){~YelgDK?{fMU2Mo~3K9FMr*gTEjBq$N1&Mx%m z+%HM13BUX4>iz-7;wRa9T(WBuSRUEAS_(S1#g-%*_rycx{hc80@N|=v}eXQ*qS{i-#Mk{+k2rV@N3|?-wjzlwEn}tK|EPNpBrPL zTo%d^L#)R^%cPpP!!qE03C7?pu9MR7z4DWD!Y%GpEG;?s$gU6Z3UWe2Ya;s$U$xeS zb!(fvn-DIC-&8$ULHY`mNP#G8MZ--^<$Xa2<0{kFzwp3*2^2@j(W*{0Y+?=+%E4ZxrBl(%xhylN@VSA?lq*_u8}9AvysqR zeFECGqTlz|59pjhEnSa0&nu(Us*vI15C^ONhpPcSn#lk>d@^w=UHL&I)qr<{vodj#lwWZwgnH1Zq?|CIb^Y%#JGVSAXv zAVb8yDJC*_WSySl0vAa5G}dBO99@8g_1N{3*gCN{@UuqXB~7Q!?}CM&atOAatuTBa zkjXo~gGQS)xY0NmGgv0R55#=VKy?$#5|g8~u6$Fk>J`~$<Ix9>GC5Szv+bsW4DaJSf0Ot{$67Iv#qg) z0*8MibIuUcVXgVZW|I|MCD>m@8SsRNunq}F5CT)SeiMp+1+!}7$dMx0Q4=ox#xox( z{dDr(bu##uGK%A#ao6XlJz$+9VI^I_XMwvLU{1K|ZVt-ey~mCOkZNb@)tDmCcHo@) zFi4|hpBLjN^B2&^T0y0Cljj`v7m)OfAOc8_?YN5!nvaTt`Je&0mh4J1c^? zHLdf9&X*Ulcr4vz-=J?j{Vvd=;V%H{)A{GK@_(N*%36}8WtQ^arv^qW;sZDS0y^%n zuK(vv{|N+^?mth&{~1O93B-Q_@&7qlf(i*Fe`IRsjXQYjzvo`v!8~2Q5C9XvtIP>S IFlL$mUzuycoB#j- literal 0 HcmV?d00001 diff --git a/blazor/image-editor/images/blazor-image-editor-annotation.jpg b/blazor/image-editor/images/blazor-image-editor-annotation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..247a8cd85ad233d27ccd3f1de359504e712e1ace GIT binary patch literal 91873 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 !J1LZ(*U6HQ?XvO}#ATbd_yqsi8f0{M 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 Ze1wJ;RApnw0eQ}YODB#er(%R{{|4_;nOFb- literal 0 HcmV?d00001 diff --git a/blazor/image-editor/images/blazor-image-editor-delete-text.jpg b/blazor/image-editor/images/blazor-image-editor-delete-text.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ffdcf3a8cd83cdff321d5e6739a5ccf6280879c GIT binary patch literal 94593 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 Ml~4CulK7PW0uudy7XSbN literal 0 HcmV?d00001 diff --git a/blazor/image-editor/images/blazor-image-editor-draw-multiline-text.jpg b/blazor/image-editor/images/blazor-image-editor-draw-multiline-text.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6907e64cef62f22e7320d31f133e0e1e41b6e7eb GIT binary patch literal 96319 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 z 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≈|G^J!)ws-Q^ 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 z%0D(ipgG0_uBjq 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