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.
usingShadyNagy.Blazor.JavaScriptUtilities;publicstaticasyncTaskMain(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.
usingShadyNagy.Blazor.JavaScriptUtilities;publicvoidConfigureServices(IServiceCollectionservices){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).
<linkrel="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 .
<scriptsrc="_content/ShadyNagy.Blazor.JavaScriptUtilities/blazor-javascript-utilities-min.js" type="text/javascript" language="javascript"></script>Add the following to your _Imports.razor
@usingShadyNagy.Blazor.JavaScriptUtilities@usingShadyNagy.Blazor.JavaScriptUtilities.Services@usingShadyNagy.Blazor.JavaScriptUtilities.Constants@inject IBlazorScrollControllerBlazorScrollController@inject IBlazorCookieBlazorCookieTo hide both scrolls
awaitBlazorScrollController.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 |

