{"id":13466365,"url":"https://github.com/jdtcn/BlazorDateRangePicker","last_synced_at":"2025-03-25T21:32:06.455Z","repository":{"id":35129238,"uuid":"198690507","full_name":"jdtcn/BlazorDateRangePicker","owner":"jdtcn","description":"A Blazor component for choosing date ranges and dates","archived":false,"fork":false,"pushed_at":"2025-03-18T19:55:50.000Z","size":480,"stargazers_count":200,"open_issues_count":20,"forks_count":35,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-18T20:06:45.410Z","etag":null,"topics":["blazor","daterangepicker"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdtcn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-24T18:35:56.000Z","updated_at":"2025-03-18T19:55:54.000Z","dependencies_parsed_at":"2024-01-24T21:25:11.869Z","dependency_job_id":"ac639631-1c17-481f-91c8-cc9dbc3ac05d","html_url":"https://github.com/jdtcn/BlazorDateRangePicker","commit_stats":{"total_commits":107,"total_committers":5,"mean_commits":21.4,"dds":0.07476635514018692,"last_synced_commit":"f58aee8d54bdc88482f7c88adc7cb3e81c5eade0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtcn%2FBlazorDateRangePicker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtcn%2FBlazorDateRangePicker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtcn%2FBlazorDateRangePicker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtcn%2FBlazorDateRangePicker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdtcn","download_url":"https://codeload.github.com/jdtcn/BlazorDateRangePicker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245548166,"owners_count":20633528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blazor","daterangepicker"],"created_at":"2024-07-31T15:00:43.020Z","updated_at":"2025-03-25T21:32:06.421Z","avatar_url":"https://github.com/jdtcn.png","language":"HTML","funding_links":[],"categories":["Libraries \u0026 Extensions"],"sub_categories":["Components","2D/3D Rendering engines"],"readme":"Date Range Picker for [Blazor](https://blazor.net/)\r\n=====================\r\n\r\n[![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/BlazorDateRangePicker.svg)](https://www.nuget.org/packages/BlazorDateRangePicker/)\r\n\r\n![https://github.com/jdtcn/BlazorDateRangePicker](https://habrastorage.org/webt/ku/ye/jt/kuyejt2khntesrw6asg9hvwiri0.png)\r\n\r\n## [Live Demo](https://blazordaterangepicker.azurewebsites.net/)\r\n\r\nThis date range picker component is a port of js [DateRangePicker](https://github.com/dangrossman/daterangepicker/), rewritten using C# as a Razor Component.\r\nIt creates a dropdown menu from which a user can select a range of dates.\r\n\r\nThere is no dependency with jquery, moment, or bootstrap\r\n\r\nFeatures include limiting the selectable date range, localizable strings and date formats,\r\na single date picker mode, and predefined date ranges.\r\n\r\nJS Interop is used for popup positioning and outside click handling. With future releases of ASP.NET Core Blazor it will be possible without js.\r\n\r\n## Get Started\r\n\r\nDownload library from NuGet in the NuGet Package Manager, or by executing the following command in the Package Manager Console:\r\n````shell\r\nInstall-Package BlazorDateRangePicker\r\n````\r\n\r\nThe component uses [css and js isolation](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/css-isolation), you don't need to add anything to your _Host.cshtml or index.html, just make sure the isolated styles are connected:\r\n\r\n````html\r\n\u003clink href=\"{ASSEMBLY NAME}.styles.css\" rel=\"stylesheet\"\u003e\r\n````\r\n\r\n### Use the component:\r\n\r\n````C#\r\n@using BlazorDateRangePicker\r\n\r\n\u003cDateRangePicker/\u003e\r\n````\r\nGives you:\r\n````HTML\r\n\u003cinput type=\"text\"/\u003e\r\n````\r\n### Tag attributes will be passed to input field:\r\n\r\n````C#\r\n@using BlazorDateRangePicker\r\n\r\n\u003cDateRangePicker class=\"form-control form-control-sm\" placeholder=\"Select dates...\" /\u003e\r\n````\r\nGives you:\r\n````HTML\r\n\u003cinput type=\"text\" class=\"form-control form-control-sm\" placeholder=\"Select dates...\"/\u003e\r\n````\r\n\r\n### Setting properties:\r\n````C#\r\n@using BlazorDateRangePicker\r\n\r\n\u003cDateRangePicker MinDate=\"DateTimeOffset.Now.AddYears(-10)\" MaxDate=\"DateTimeOffset.Now\" /\u003e\r\n````\r\n\r\n### Two-way data binding:\r\n````C#\r\n@using BlazorDateRangePicker\r\n\r\n\u003cDateRangePicker @bind-StartDate=\"StartDate\" @bind-EndDate=\"EndDate\" /\u003e\r\n\r\n@code {\r\n    DateTimeOffset? StartDate { get; set; } = DateTime.Today.AddMonths(-1);\r\n    DateTimeOffset? EndDate { get; set; } = DateTime.Today.AddDays(1).AddTicks(-1);\r\n}\r\n````\r\n\r\n### Handle selection event:\r\n````C#\r\n@using BlazorDateRangePicker\r\n\r\n\u003cDateRangePicker OnRangeSelect=\"OnRangeSelect\" /\u003e\r\n\r\n@code {\r\n    public void OnRangeSelect(DateRange range)\r\n    {\r\n        //Use range.Start and range.End here\r\n    }\r\n}\r\n````\r\n\r\n### More complex usage:\r\nUsing custom markup for picker.\r\n````C#\r\n@using BlazorDateRangePicker\r\n\r\n\u003cDateRangePicker Culture=\"@(System.Globalization.CultureInfo.GetCultureInfo(\"en-US\"))\"\u003e\r\n    \u003cPickerTemplate\u003e\r\n        \u003cdiv id=\"@context.Id\" @onclick=\"context.Toggle\" style=\"background: #fff; cursor: pointer; padding: 5px 10px; width: 250px; border: 1px solid #ccc;\"\u003e\r\n            \u003ci class=\"oi oi-calendar\"\u003e\u003c/i\u003e\u0026nbsp;\r\n            \u003cspan\u003e@context.FormattedRange @(string.IsNullOrEmpty(context.FormattedRange) ? \"Choose dates...\" : \"\")\u003c/span\u003e\r\n            \u003ci class=\"oi oi-chevron-bottom float-right\"\u003e\u003c/i\u003e\r\n        \u003c/div\u003e\r\n    \u003c/PickerTemplate\u003e\r\n\u003c/DateRangePicker\u003e\r\n````\r\nSet id=\"@context.Id\" for outside click handling to root element.\r\n\r\nCustom buttons:\r\n\r\n````C#\r\n\u003cDateRangePicker @bind-StartDate=\"StartDate\" @bind-EndDate=\"EndDate\"\u003e\r\n    \u003cButtonsTemplate\u003e\r\n        \u003cbutton class=\"cancelBtn btn btn-sm btn-default\"\r\n            @onclick=\"@context.ClickCancel\" type=\"button\"\u003eCancel\u003c/button\u003e\r\n        \u003cbutton class=\"cancelBtn btn btn-sm btn-default\"\r\n            @onclick=\"@(e =\u003e ResetClick(e, context))\" type=\"button\"\u003eReset\u003c/button\u003e\r\n        \u003cbutton class=\"applyBtn btn btn-sm btn-primary\" @onclick=\"@context.ClickApply\"\r\n            disabled=\"@(context.TStartDate == null || context.TEndDate == null)\"\r\n            type=\"button\"\u003eApply\u003c/button\u003e\r\n    \u003c/ButtonsTemplate\u003e\r\n\u003c/DateRangePicker\u003e\r\n\r\n@code {\r\n    DateTimeOffset? StartDate { get; set; }\r\n    DateTimeOffset? EndDate { get; set; }\r\n\r\n    void ResetClick(MouseEventArgs e, DateRangePicker picker)\r\n    {\r\n        StartDate = null;\r\n        EndDate = null;\r\n        // Close the picker\r\n        picker.Close();\r\n        // Fire OnRangeSelectEvent\r\n        picker.OnRangeSelect.InvokeAsync(new DateRange());\r\n    }\r\n}\r\n````\r\n\r\nUse Picker.TStartDate and Picker.TEndDate properties to get current picker state before a user clicks the 'apply' button.\r\n\r\n### One configuration for all pickers\r\n\r\n````C#\r\n#Startup.cs\r\n\r\nusing BlazorDateRangePicker;\r\n\r\n//ConfigureServices\r\nservices.AddDateRangePicker(config =\u003e\r\n{\r\n    config.Attributes = new Dictionary\u003cstring, object\u003e\r\n    {\r\n        { \"class\", \"form-control form-control-sm\" }\r\n    };\r\n});\r\n````\r\nIt's possible to create multiple named config instances and bind it to picker with \"Config\" property.\r\n\r\n````C#\r\nservices.AddDateRangePicker(config =\u003e ..., configName: \"CustomConfig\");\r\n\r\n\u003cDateRangePicker Config=\"CustomConfig\" /\u003e\r\n````\r\n\r\n## Properties\r\n\r\n| Name | Type | DefaultValue |  Description |\r\n|------|------|--------------|--------------|\r\n|StartDate|DateTimeOffset?|null|The beginning date of the initially selected date range.|\r\n|EndDate|DateTimeOffset?|null|The end date of the initially selected date range.|\r\n|MinDate|DateTimeOffset?|null|The earliest date a user may select.|\r\n|MaxDate|DateTimeOffset?|null|The latest date a user may select.|\r\n|MinSpan|TimeSpan?|null|The minimum span between the selected start and end dates.|\r\n|MaxSpan|TimeSpan?|null|The maximum span between the selected start and end dates.|\r\n|ShowDropdowns|bool|true|Show year and month select boxes above calendars to jump to a specific month and year.|\r\n|ShowWeekNumbers|bool|false|Show localized week numbers at the start of each week on the calendars.|\r\n|ShowISOWeekNumbers|bool|false|Show ISO week numbers at the start of each week on the calendars.|\r\n|Ranges|Dictionary\u003cstring, DateRange\u003e|null|Set predefined date ranges the user can select from. Each key is the label for the range.|\r\n|ShowCustomRangeLabel|bool|true|Displays \"Custom Range\" at the end of the list of predefined ranges, when the ranges option is used. This option will be highlighted whenever the current date range selection does not match one of the predefined ranges. Clicking it will display the calendars to select a new range.|\r\n|AlwaysShowCalendars|bool|false|Normally, if you use the ranges option to specify pre-defined date ranges, calendars for choosing a custom date range are not shown until the user clicks \"Custom Range\". When this option is set to true, the calendars for choosing a custom date range are always shown instead.|\r\n|Opens|SideType enum: Left/Right/Center|Right|Whether the picker appears aligned to the left, to the right, or centered under the HTML element it's attached to.|\r\n|Drops|DropsType enum: Down/Up|Down|Whether the picker appears below (default) or above the HTML element it's attached to.|\r\n|ButtonClasses|string|btn btn-sm|CSS class names that will be added to both the apply and cancel buttons.|\r\n|ApplyButtonClasses|string|btn-primary|CSS class names that will be added only to the apply button.|\r\n|CancelButtonClasses|string|btn-default|CSS class names that will be added only to the cancel button.|\r\n|Culture|CultureInfo|CultureInfo.CurrentCulture|Allows you to provide localized strings for buttons and labels, customize the date format, and change the first day of week for the calendars.|\r\n|SingleDatePicker|bool|false|Show only a single calendar to choose one date, instead of a range picker with two calendars. The start and end dates provided to your callback will be the same single date chosen.|\r\n|AutoApply|bool|false|Hide the apply and cancel buttons, and automatically apply a new date range as soon as two dates are clicked.|\r\n|LinkedCalendars|bool|false|When enabled, the two calendars displayed will always be for two sequential months (i.e. January and February), and both will be advanced when clicking the left or right arrows above the calendars. When disabled, the two calendars can be individually advanced and display any month/year.|\r\n|DaysEnabledFunction|Func\u003cDateTimeOffset, bool\u003e|_ =\u003e true|A function that is passed each date in the two calendars before they are displayed, and may return true or false to indicate whether that date should be available for selection or not.|\r\n|DaysEnabledFunctionAsync|Func\u003c DateTimeOffset, Task\u003c bool\u003e\u003e|_ =\u003e true|Same as DaysEnabledFunction but with async support.|\r\n|CustomDateFunction|Func\u003cDateTimeOffset, object\u003e|_ =\u003e true|A function to which each date from the calendars is passed before they are displayed, may return a bool value indicates whether the string will be added to the cell, or a string with CSS class name to add to that date's calendar cell. May return string, bool, Task\u003cstring\u003e, Task\u003cbool\u003e|\r\n|CustomDateClass|string|string.Empty|String of CSS class name to apply to that custom date's calendar cell.|\r\n|ApplyLabel|string|\"Apply\"|Apply button text.|\r\n|CancelLabel|string|\"Cancel\"|Cancel button text.|\r\n|CustomRangeLabel|string|\"Custom range\"|Custom range label at the end of the list of predefined ranges.|\r\n|DateFormat|string|CultureInfo.DateTimeFormat.ShortDatePattern|Enforces the desired format for formatting the date, ignoring the settings of the current CultureInfo.|\r\n|Config|string|null|Name of the named configuration to use with this picker instance.|\r\n|ShowOnlyOneCalendar|bool|false|Show only one calendar in the picker instead of two calendars.|\r\n|CloseOnOutsideClick|bool|true|Whether the picker should close on outside click.|\r\n|AutoAdjustCalendars|bool|true|Whether the picker should pick the months based on selected range.|\r\n|PickerTemplate|RenderFragment\u003cDateRangePicker\u003e|null|Custom input field template|\r\n|ButtonsTemplate|RenderFragment\u003cDateRangePicker\u003e|null|Custom picker buttons template|\r\n|DayTemplate|RenderFragment\u003cCalendarItem\u003e|null|Custom day cell template|\r\n|Inline|bool|false|Inline mode if true.|\r\n|ResetOnClear|bool|true|Whether the picker should set dates to null when the user clears the input.|\r\n|TimePicker|bool|false|Adds select boxes to choose times in addition to dates.|\r\n|TimePicker24Hour|bool|true|Use 24-hour instead of 12-hour times, removing the AM/PM selection.|\r\n|TimePickerIncrement|int|1|Increment of the minutes selection list for times (i.e. 30 to allow only selection of times ending in 0 or 30).|\r\n|TimePickerSeconds|bool|false|Show seconds in the timePicker.|\r\n|InitialStartTime|TimeSpan|TimeSpan.Zero|Initial start time value to show in the picker before any date selected|\r\n|InitialEndTime|TimeSpan|TimeSpan.FromDays(1).AddTicks(-1)|Initial end time value to show in the picker before any date selected|\r\n|TimeEnabledFunction|Func\u003cDateTimeOffset?, Task\u003cTimeSettings\u003e\u003e|null|Returns time available for selection.|\r\n\r\n## Events\r\n\r\n| Name | Type | Description |\r\n|------|------|-------------|\r\n|OnRangeSelect|DateRange|Triggered when the apply button is clicked, or when a predefined range is clicked.|\r\n|OnOpened|void|An event that is invoked when the DatePicker is opened.|\r\n|OnClosed|void|An event that is invoked when the DatePicker is closed.|\r\n|OnCancel|bool|An event that is invoked when user cancels the selection (`true` if by pressing \"Cancel\" button, `false` if by backdrop click).|\r\n|OnReset|void|An event that is invoked when the DatePicker is cleared.|\r\n|OnMonthChanged|void|An event that is invoked when left or right calendar's month changed.|\r\n|OnMonthChangedAsync|Task|An event that is invoked when left or right calendar's month changed and supports CancellationToken. Use this event handler to prepare the data for CustomDateFunction.|\r\n|OnSelectionStart|DateTimeOffset|An event that is invoked when StartDate is selected|\r\n|OnSelectionEnd|DateTimeOffset|An event that is invoked when EndDate is selected but before \"Apply\" button is clicked|\r\n\r\n## Methods\r\n\r\n| Name |Description |\r\n|------|------------|\r\n|Open|Show picker popup.|\r\n|Close|Close picker popup.|\r\n|Toggle|Toggle picker popup state.|\r\n|Reset|Rest picker.|\r\n|virtual InvokeClickOutside|A JSInvocable callback to handle outside click. When inherited can be overridden to modify outside click closing behavior.|\r\n\r\n## Types\r\n\r\nDateRange:\r\n````C#\r\npublic class DateRange\r\n{\r\n    public DateTimeOffset Start { get; set; }\r\n    public DateTimeOffset End { get; set; }\r\n}\r\n````\r\n\r\n\u003eNote:\r\n\u003eDateRange Start and End is in local timezone.\r\n\u003e\r\n\u003eThe Start property is the start of a selected day (dateTime.Date).\r\n\u003e\r\n\u003eThe End property is the end of a selected day (dateTime.Date.AddDays(1).AddTicks(-1)).\r\n\r\n## Changelog\r\n\r\n## 6.1.0\r\n\r\n1. Added OnStartTimeChanged and OnEndTimeChanged events (#112)\r\n\r\n### 6.0.0\r\n\r\n1. Replaced reflection usage with source generators, the library is now NativeAOT-compatible\r\n2. Fixed NRE when SingleDatePicker is set to `null` (#111)\r\n\r\n### 5.4.0\r\n\r\n1. Added CustomParseFunction callback (#108)\r\n2. Added net9 support\r\n\r\n### 5.3.0\r\n\r\n1. Fixed the issue with TimePicker24Hour not working on left calendar (#104)\r\n\r\n### 5.2.0\r\n\r\n1. Fixed the issue with caching of clickAndPositionHandler.js (#96)\r\n\r\n### 5.1.0\r\n\r\n1. Fixed the issue with clickAndPositionHandler.js (#96, #97)\r\n\r\n### 5.0.0\r\n\r\n1. Removed inline style usage to make CSP work (#95)\r\n2. Fixed awaiting change handlers before closing (#91)\r\n3. Switched the component to use css and js isolation, you don't need to add js and css links to your _Host.cshtml manually anymore (#66)\r\n4. Removed NET Core 3.1 and NET 5 support\r\n\r\n### 4.5.0\r\n\r\n1. Added net 8 support\r\n2. Fixed TimePicker24Hour has wrong value issue (#90)\r\n3. Added the ability to display two calendars in single date select mode (#87)\r\n\r\n### 4.4.0\r\n\r\n1. Made it possible to change culture on the fly (#89)\r\n2. Added net 8 rc1 support\r\n\r\n### 4.3.0\r\n\r\n1. Updated to net 7\r\n\r\n### 4.2.0\r\n\r\n1. Fixed same date selection issue when TimePicker is enabled\r\n2. Fixed predefined date ranges with time\r\n3. Made `ChosenLabel` property public\r\n4. Added net7 support\r\n\r\n### 4.1.0\r\n\r\n1. Fixed months adjustment issue (#69)\r\n2. Fixed problems with dates 01/01/0001 and 31/12/9999\r\n\r\n### 4.0.0\r\n\r\n1. Updated to NET 6\r\n2. Fixed issue with handling of DateTime.MinValue and DateTime.MaxValue dates (#65)\r\n\r\n### 3.6.0\r\n\r\n1. Disable AutoApply when TimePicker is enabled (#57)\r\n\r\n### 3.5.0\r\n\r\n1. Added time picker\r\n2. Added Prerender property (ability to render DOM only after click on the input) (#52)\r\n\r\n### 3.4.0\r\n\r\n1. Added net 6 support\r\n\r\n### 3.3.0\r\n\r\n1. Fixed issue with month \u0026 year selection (#45)\r\n\r\n### 3.2.0\r\n\r\n1. Added ability to reset the picker by clearing the picker input (#42)\r\n2. Added `ResetOnClear` property\r\n3. Added `OnReset` event\r\n4. Added `Reset` method\r\n\r\n###  2.13.0\r\n\r\n1. Added ability to change input field `id` attribute (#41)\r\n\r\n###  2.12.0\r\n\r\n1. Added new `OnSelectionEnd` event\r\n2. Added new demo example which demonstrates how to override day click handlers\r\n3. Exposed some internals that might be useful for picker customization\r\n\r\n### 2.11.0\r\n\r\n1. Fix month/year select box issue (#34, #35)\r\n\r\n### 2.10.0\r\n\r\n1. Add `DayTemplate` property to customize picker day cell\r\n\r\n2. Demo applications refactored and updated with new examples\r\n\r\n### 2.9.0\r\n\r\n1. Fix issue with two-way dates binding (#32)\r\n2. Fix issue with date range label selection\r\n3. Fix issue with single date selection mode\r\n4. `OnSelectionStart` event now returns selected start date\r\n\r\n### 2.8.0\r\n\r\n1. Add OnSelectionStart event (#29)\r\n2. Add MinSpan property (#29)\r\n\r\n### 2.7.0\r\n\r\n1. Breaking change! CustomDateFunction changed from Func\u003cDateTimeOffset, bool\u003e to Func\u003cDateTimeOffset, object\u003e so that it can return string, bool, Task\u003cstring\u003e, Task\u003cbool\u003e.\r\n2. OnMonthChangedAsync event added to support data loading indication.\r\n3. Fixed issue with compilerconfig.json file (#27).\r\n\r\n### 2.6.0\r\n\r\n1. Add inline mode (see `Inline` property, and last example in demo application) (#20)\r\n\r\n### 2.5.0\r\n\r\n1. Add `OnMonthChanged` event (#19)\r\n\r\n### 2.4.0\r\n\r\n1. Add `ButtonsTemplate` property to make custom picker buttons possible (#17)\r\n\r\n### 2.3.0\r\n\r\n1. Fix an issue with month selection in calendars (#14).\r\n2. Add AutoAdjustCalendars property.\r\n3. Expose LeftCalendar and RightCalendar DateRangePicker options (ability to select the months manually).\r\n4. Fix an issue with FirstDayOfWeek property when the first day is not sunday or monday.\r\n\r\n### 2.2.0\r\n\r\n1. Fixed performance issue with js outside click handler.\r\n\r\n### 2.1.0\r\n\r\n1. OnCancel event added.\r\n\r\n### 2.0.0\r\n\r\n1. Updated to support .NET Core 3.1.0 projects\r\n2. Now in Blazor WebAssembly we need to add library static assets manually\r\n\r\nIn .NET Core 3.0.0 projects you should stay on 1.\\*.\\* version\r\n\r\n## License\r\n\r\nThe MIT License (MIT)\r\n\r\nCopyright (c) 2019-2024 Sergey Zaikin\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdtcn%2FBlazorDateRangePicker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdtcn%2FBlazorDateRangePicker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdtcn%2FBlazorDateRangePicker/lists"}