using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.JSInterop; namespace AbrBlazorTools { public class BrowserTools : IBrowserTools { private readonly IJSRuntime _js; public BrowserTools(IJSRuntime js) { _js = js; } public async Task GetDimensions() { return await _js.InvokeAsync("methods.getDimensions"); } public async Task CopyText(string text) { return _js.InvokeVoidAsync("navigator.clipboard.writeText", text); } public async Task PrepareResponsiveTable() { await _js.InvokeVoidAsync("methods.PrepareResponsiveTable"); } public async Task GetInputValueById(string id) { return await _js.InvokeAsync("AbrMethods.getInputValue",id); } public async Task GetInputValueByIdAndReplacePersianNumbers(string id) { var text = await GetInputValueById(id); var digits = new string[] { "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹" }; var english = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; for (var i = 0; i < digits.Length; i++) text = text.Replace(digits[i], english[i]); return text; } public async Task ScrollToEnd() { await _js.InvokeVoidAsync("methods.ScrollToEnd"); } } public class BrowserDimension { public int Width { get; set; } public int Height { get; set; } } public interface IBrowserTools { Task GetDimensions(); Task CopyText(string text); Task PrepareResponsiveTable(); Task GetInputValueById(string id); Task GetInputValueByIdAndReplacePersianNumbers(string id); Task ScrollToEnd(); } }