Utilities by JavaScript for Blazor
-
Local Storage Available to check if available in browser
-
Local Storage Set
-
Local Storage Read
-
Local Storage Remove by key
-
Local Storage Read All without keys
-
Local Storage Remove All
-
Local Storage Count
-
Local Storage Listener for changes
-
Session Storage Available to check if available in browser
-
Session Storage Set
-
Session Storage Read
-
Session Storage Remove by key
-
Session Storage Read All without keys
-
Session Storage Remove All
-
Session Storage Count
-
Session Storage Listener for changes
-
Scroll Hide
-
Scroll Show
-
Scroll To
-
Cookie Read
-
Cookie Delete
-
Alert
-
Prompt
-
Confirm
...... and more coming.
If you like or are using this project please give it a star. Thanks!
You can install the package via the nuget package manager just search for ShadyNagy.Blazor.. You can also install via powershell using the following command.
Install-Package ShadyNagy.Blazor.JavaScriptUtilitiesOr via the dotnet CLI.
dotnet add package ShadyNagy.Blazor.JavaScriptUtilitiesFor Blazor WebAssembly: You will need to add the following using statement and add a call to register the Blazor JavaScript Utilities services in your applications Program.Main method.
using ShadyNagy.Blazor.JavaScriptUtilities;
public static async Task Main(string[] args)
{
builder.Services.AddAllBlazorJavaScriptUtilities();
}Also you can register what you need only ex
builder.Services.AddBlazorScrollController();For Blazor Server: You will need to add the following using statement and add a call to register the Blazor JavaScript Utilities services in your applications Startup.ConfigureServices method.
using ShadyNagy.Blazor.JavaScriptUtilities;
public void ConfigureServices(IServiceCollection services)
{
services.AddAllBlazorJavaScriptUtilities();
}Also you can register what you need only ex
services.AddBlazorScrollController();Add the following line to the head tag of your _Host.cshtml (Blazor Server) or index.html (Blazor WebAssembly).
<link rel="stylesheet" href="_content/ShadyNagy.Blazor.JavaScriptUtilities/blazor-javascript-utilities.min.css" />Then add a reference to the Blazor Utilities JavaScript file at the bottom of the respective page after the reference to the Blazor file before .
<script src="_content/ShadyNagy.Blazor.JavaScriptUtilities/blazor-javascript-utilities-min.js" type="text/javascript" language="javascript"></script>Add the following to your _Imports.razor
@using ShadyNagy.Blazor.JavaScriptUtilities
@using ShadyNagy.Blazor.JavaScriptUtilities.Services
@using ShadyNagy.Blazor.JavaScriptUtilities.Constants@inject IBlazorScrollController BlazorScrollController
@inject IBlazorCookie BlazorCookieTo hide both scrolls
await BlazorScrollController.HideBodyScrollOverflowAsync(ScrollType.Both);Please checkout the sample projects in this repo to see working examples of the features in the Blazor JavaScript Utilities.
| Function | Description |
|---|---|
| AddAllBlazorJavaScriptUtilities() | Register all services |
| AddBlazorCookie() | Register cookie service only |
| AddBlazorScrollController() | Register scrollbar controller service only |
| AddBlazorLocalStorage() | Register local storage service only |
| AddBlazorSessionStorage() | Register session storage service only |
| AddBlazorDialog() | Register alert, prompt and confirm only |
| Function | Description |
|---|---|
| Task IsAvailableAsync() | Is Available on this browser (Async) |
| Task SetAsync(string key, string value) | Set local storage (Async) |
| Task GetAsync(string key) | Get local storage by key (Async) |
| Task CountAsync() | Count how many local storage (Async) |
| Task RemoveAsync(string key) | Remove local storage by key (Async) |
| Task ClearAsync() | Clear all local storage (Async) |
| Task<Dictionary<string, string>> GetAllAsync() | Get All local storage (Async) |
| OnChange | Event to detect changes at local storage (Async) |
| Task AddStorageListenerAsync() | Add Listener to detect changes at local storage (Async) |
| string GetChangedKey() | Get Changed Key if local storage changed (Async) |
| ChangedLocalStorage GetChangedLocalStorage() | Get Changed will get Key, New Value, Old Value and, URL (Async) |
| property | Description |
|---|---|
| Key | Local Storage Key |
| New Value | Local Storage New Value |
| Old Value | Local Storage Old Value |
| URL | Local Storage URL |
| Function | Description |
|---|---|
| Task DeleteCookieAsync(string name) | Delete cookie by name (Async) |
| Task GetCookieAsync(string name) | Read cookie by name (Async) |
| void DeleteCookie(string name) | Delete cookie by name (Sync) |
| string GetCookie(string name) | Read cookie by name (Sync) |
| Function | Description |
|---|---|
| Task ShowAlertAsync(string message) | Show Alert with message (Async) |
| Task ShowConfirmAsync(string message) | Show Confirm with message and return true if click ok (Async) |
| Task ShowPromptAsync(string message, string defaultResponse) | Show Prompt with message and return user input (Async) |
| Function | Description |
|---|---|
| Task HideScrollOverflowByTagAsync(string tagName, ScrollType scrollType) | Hide scrollbar overflow by tag name (Async) |
| Task ShowScrollOverflowByTagAsync(string tagName, ScrollType scrollType) | Show scrollbar overflow by tag name (Async) |
| Task HideScrollOverflowByClassAsync(string tagName, ScrollType scrollType) | Hide scrollbar overflow by class name (Async) |
| Task ShowScrollOverflowByClassAsync(string tagName, ScrollType scrollType) | Show scrollbar overflow by class name (Async) |
| Task HideBodyScrollOverflowAsync(ScrollType scrollType) | Hide scrollbar overflow from body, it will help in modal (Async) |
| Task ShowBodyScrollOverflowAsync(ScrollType scrollType) | Show scrollbar overflow from body, it will help in modal (Async) |
| Task ScrollVToElementByIdAsync(string elementId, string behavior, string block) | Scroll Verical to element by id (Async) |
| Task ScrollVToElementByTagAsync(string tagName, string behavior, string block) | Scroll Verical to element by tag (Async) |
| Task ScrollVToElementByClassAsync(string className, string behavior, string block) | Scroll Verical to element by class name (Async) |
| Task ScrollHToElementByIdAsync(string elementId, string behavior, string inline) | Scroll Horizontal to element by id (Async) |
| Task ScrollHToElementByTagAsync(string tagName, string behavior, string inline) | Scroll Horizontal to element by tag (Async) |
| Task ScrollHToElementByClassAsync(string className, string behavior, string inline) | Scroll Horizontal to element by class name (Async) |
| Task ScrollToBodyAsync(string behavior, string block) | Scroll Verical to body (Async) |
| Task ScrollToBodyTopAsync(string behavior) | Scroll Verical to top of body (Async) |
| Task ScrollToBodyBottomAsync(string behavior) | Scroll Verical to bottom of body (Async) |
| Task HideScrollOverflowByTag(string tagName, ScrollType scrollType) | Hide scrollbar overflow by tag name (Sync) |
| Task ShowScrollOverflowByTag(string tagName, ScrollType scrollType) | Show scrollbar overflow by tag name (Sync) |
| Task HideScrollOverflowByClass(string tagName, ScrollType scrollType) | Hide scrollbar overflow by class name (Sync) |
| Task ShowScrollOverflowByClass(string tagName, ScrollType scrollType) | Show scrollbar overflow by class name (Sync) |
| Task HideBodyScrollOverflow(ScrollType scrollType) | Hide scrollbar overflow from body, it will help in modal (Sync) |
| Task ShowBodyScrollOverflow(ScrollType scrollType) | Show scrollbar overflow from body, it will help in modal (Sync) |
| Type | Description |
|---|---|
| ScrollType.Vertical | Vertical scrollbar will be affected |
| ScrollType.Horizontal | Horizontal scrollbar will be affected |
| ScrollType.Both | Vertical & Horizontal scrollbar will be affected |
| Type | Description |
|---|---|
| ScrollBehaviors.Auto | Auto behavior |
| ScrollBehaviors.Smooth | Smooth behavior |
| Type | Description |
|---|---|
| ScrollBlocks.Start | Start |
| ScrollBlocks.Center | Center |
| ScrollBlocks.End | End |
| ScrollBlocks.Nearest | Nearest |
| JavaScript File | Description |
|---|---|
| blazor-javascript-utilities.js | If all Javascript functions are used |
| cookie.js | If cookie Javascript functions are used |
| scroll-controller.js | If scrollbar controller Javascript functions are used |
| storage.js | If local/session storage Javascript functions are used |
| dialog.js | If alert, prompt and confirm functions are used |

