├── .bowerrc ├── .gitignore ├── .vscode ├── launch.json └── tasks.json ├── Controllers ├── AccountController.cs ├── ApiHubController.cs ├── ChatroomController.cs ├── HomeController.cs └── ManageController.cs ├── Data ├── ApplicationDbContext.cs └── SignalRContractResolver.cs ├── Dockerfile ├── Hubs └── Broadcaster.cs ├── Migrations ├── 20161214234848_Initial.Designer.cs ├── 20161214234848_Initial.cs └── ApplicationDbContextModelSnapshot.cs ├── Models ├── AccountViewModels │ ├── ExternalLoginConfirmationViewModel.cs │ ├── ForgotPasswordViewModel.cs │ ├── LoginViewModel.cs │ ├── RegisterViewModel.cs │ ├── ResetPasswordViewModel.cs │ ├── SendCodeViewModel.cs │ └── VerifyCodeViewModel.cs ├── ApplicationUser.cs ├── ManageViewModels │ ├── AddPhoneNumberViewModel.cs │ ├── ChangePasswordViewModel.cs │ ├── ConfigureTwoFactorViewModel.cs │ ├── FactorViewModel.cs │ ├── IndexViewModel.cs │ ├── ManageLoginsViewModel.cs │ ├── RemoveLoginViewModel.cs │ ├── SetPasswordViewModel.cs │ └── VerifyPhoneNumberViewModel.cs ├── Message.cs └── MessageViewModels │ ├── MessageViewModel.cs │ └── NewMessageViewModel.cs ├── NuGet.config ├── Program.cs ├── Properties └── launchSettings.json ├── README.md ├── Services ├── IEmailSender.cs ├── ISmsSender.cs └── MessageServices.cs ├── Startup.cs ├── Views ├── Account │ ├── ConfirmEmail.cshtml │ ├── ExternalLoginConfirmation.cshtml │ ├── ExternalLoginFailure.cshtml │ ├── ForgotPassword.cshtml │ ├── ForgotPasswordConfirmation.cshtml │ ├── Lockout.cshtml │ ├── Login.cshtml │ ├── Register.cshtml │ ├── ResetPassword.cshtml │ ├── ResetPasswordConfirmation.cshtml │ ├── SendCode.cshtml │ └── VerifyCode.cshtml ├── Home │ └── Index.cshtml ├── Manage │ ├── AddPhoneNumber.cshtml │ ├── ChangePassword.cshtml │ ├── Index.cshtml │ ├── ManageLogins.cshtml │ ├── SetPassword.cshtml │ └── VerifyPhoneNumber.cshtml ├── Shared │ ├── Error.cshtml │ ├── _Layout.cshtml │ ├── _LoginPartial.cshtml │ └── _ValidationScriptsPartial.cshtml ├── _ViewImports.cshtml └── _ViewStart.cshtml ├── appsettings.json ├── bower.json ├── bundleconfig.json ├── project.json ├── web.config └── wwwroot ├── css ├── site.css └── site.min.css ├── favicon.ico ├── images ├── banner1.svg ├── banner2.svg ├── banner3.svg └── banner4.svg ├── js ├── site.js └── site.min.js └── lib ├── bootstrap ├── .bower.json ├── CHANGELOG.md ├── Gruntfile.js ├── LICENSE ├── README.md ├── bower.json ├── dist │ ├── css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap-theme.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── grunt │ ├── .jshintrc │ ├── bs-commonjs-generator.js │ ├── bs-glyphicons-data-generator.js │ ├── bs-lessdoc-parser.js │ ├── bs-raw-files-generator.js │ ├── configBridge.json │ └── sauce_browsers.yml ├── js │ ├── .jscsrc │ ├── .jshintrc │ ├── affix.js │ ├── alert.js │ ├── button.js │ ├── carousel.js │ ├── collapse.js │ ├── dropdown.js │ ├── modal.js │ ├── popover.js │ ├── scrollspy.js │ ├── tab.js │ ├── tooltip.js │ └── transition.js ├── less │ ├── .csscomb.json │ ├── .csslintrc │ ├── alerts.less │ ├── badges.less │ ├── bootstrap.less │ ├── breadcrumbs.less │ ├── button-groups.less │ ├── buttons.less │ ├── carousel.less │ ├── close.less │ ├── code.less │ ├── component-animations.less │ ├── dropdowns.less │ ├── forms.less │ ├── glyphicons.less │ ├── grid.less │ ├── input-groups.less │ ├── jumbotron.less │ ├── labels.less │ ├── list-group.less │ ├── media.less │ ├── mixins.less │ ├── mixins │ │ ├── alerts.less │ │ ├── background-variant.less │ │ ├── border-radius.less │ │ ├── buttons.less │ │ ├── center-block.less │ │ ├── clearfix.less │ │ ├── forms.less │ │ ├── gradients.less │ │ ├── grid-framework.less │ │ ├── grid.less │ │ ├── hide-text.less │ │ ├── image.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── nav-divider.less │ │ ├── nav-vertical-align.less │ │ ├── opacity.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── progress-bar.less │ │ ├── reset-filter.less │ │ ├── reset-text.less │ │ ├── resize.less │ │ ├── responsive-visibility.less │ │ ├── size.less │ │ ├── tab-focus.less │ │ ├── table-row.less │ │ ├── text-emphasis.less │ │ ├── text-overflow.less │ │ └── vendor-prefixes.less │ ├── modals.less │ ├── navbar.less │ ├── navs.less │ ├── normalize.less │ ├── pager.less │ ├── pagination.less │ ├── panels.less │ ├── popovers.less │ ├── print.less │ ├── progress-bars.less │ ├── responsive-embed.less │ ├── responsive-utilities.less │ ├── scaffolding.less │ ├── tables.less │ ├── theme.less │ ├── thumbnails.less │ ├── tooltip.less │ ├── type.less │ ├── utilities.less │ ├── variables.less │ └── wells.less ├── nuget │ ├── MyGet.ps1 │ ├── bootstrap.less.nuspec │ └── bootstrap.nuspec ├── package.js └── package.json ├── jquery-validation-unobtrusive ├── .bower.json ├── LICENSE.txt ├── bower.json ├── jquery.validate.unobtrusive.js └── jquery.validate.unobtrusive.min.js ├── jquery-validation ├── .bower.json ├── CONTRIBUTING.md ├── Gruntfile.js ├── LICENSE.md ├── README.md ├── bower.json ├── changelog.md ├── dist │ ├── additional-methods.js │ ├── additional-methods.min.js │ ├── jquery.validate.js │ └── jquery.validate.min.js ├── package.json ├── src │ ├── additional │ │ ├── accept.js │ │ ├── additional.js │ │ ├── alphanumeric.js │ │ ├── bankaccountNL.js │ │ ├── bankorgiroaccountNL.js │ │ ├── bic.js │ │ ├── cifES.js │ │ ├── cpfBR.js │ │ ├── creditcard.js │ │ ├── creditcardtypes.js │ │ ├── currency.js │ │ ├── dateFA.js │ │ ├── dateITA.js │ │ ├── dateNL.js │ │ ├── extension.js │ │ ├── giroaccountNL.js │ │ ├── iban.js │ │ ├── integer.js │ │ ├── ipv4.js │ │ ├── ipv6.js │ │ ├── lettersonly.js │ │ ├── letterswithbasicpunc.js │ │ ├── mobileNL.js │ │ ├── mobileUK.js │ │ ├── nieES.js │ │ ├── nifES.js │ │ ├── notEqualTo.js │ │ ├── nowhitespace.js │ │ ├── pattern.js │ │ ├── phoneNL.js │ │ ├── phoneUK.js │ │ ├── phoneUS.js │ │ ├── phonesUK.js │ │ ├── postalCodeCA.js │ │ ├── postalcodeBR.js │ │ ├── postalcodeIT.js │ │ ├── postalcodeNL.js │ │ ├── postcodeUK.js │ │ ├── require_from_group.js │ │ ├── skip_or_fill_minimum.js │ │ ├── statesUS.js │ │ ├── strippedminlength.js │ │ ├── time.js │ │ ├── time12h.js │ │ ├── url2.js │ │ ├── vinUS.js │ │ ├── zipcodeUS.js │ │ └── ziprange.js │ ├── ajax.js │ ├── core.js │ └── localization │ │ ├── messages_ar.js │ │ ├── messages_bg.js │ │ ├── messages_bn_BD.js │ │ ├── messages_ca.js │ │ ├── messages_cs.js │ │ ├── messages_da.js │ │ ├── messages_de.js │ │ ├── messages_el.js │ │ ├── messages_es.js │ │ ├── messages_es_AR.js │ │ ├── messages_es_PE.js │ │ ├── messages_et.js │ │ ├── messages_eu.js │ │ ├── messages_fa.js │ │ ├── messages_fi.js │ │ ├── messages_fr.js │ │ ├── messages_ge.js │ │ ├── messages_gl.js │ │ ├── messages_he.js │ │ ├── messages_hr.js │ │ ├── messages_hu.js │ │ ├── messages_hy_AM.js │ │ ├── messages_id.js │ │ ├── messages_is.js │ │ ├── messages_it.js │ │ ├── messages_ja.js │ │ ├── messages_ka.js │ │ ├── messages_kk.js │ │ ├── messages_ko.js │ │ ├── messages_lt.js │ │ ├── messages_lv.js │ │ ├── messages_mk.js │ │ ├── messages_my.js │ │ ├── messages_nl.js │ │ ├── messages_no.js │ │ ├── messages_pl.js │ │ ├── messages_pt_BR.js │ │ ├── messages_pt_PT.js │ │ ├── messages_ro.js │ │ ├── messages_ru.js │ │ ├── messages_si.js │ │ ├── messages_sk.js │ │ ├── messages_sl.js │ │ ├── messages_sr.js │ │ ├── messages_sr_lat.js │ │ ├── messages_sv.js │ │ ├── messages_th.js │ │ ├── messages_tj.js │ │ ├── messages_tr.js │ │ ├── messages_uk.js │ │ ├── messages_vi.js │ │ ├── messages_zh.js │ │ ├── messages_zh_TW.js │ │ ├── methods_de.js │ │ ├── methods_es_CL.js │ │ ├── methods_fi.js │ │ ├── methods_nl.js │ │ └── methods_pt.js └── validation.jquery.json └── jquery ├── .bower.json ├── AUTHORS.txt ├── LICENSE.txt ├── README.md ├── bower.json ├── dist ├── jquery.js ├── jquery.min.js ├── jquery.min.map ├── jquery.slim.js ├── jquery.slim.min.js └── jquery.slim.min.map ├── sizzle ├── LICENSE.txt └── dist │ ├── sizzle.js │ ├── sizzle.min.js │ └── sizzle.min.map └── src ├── .jshintrc ├── ajax.js ├── ajax ├── jsonp.js ├── load.js ├── parseJSON.js ├── parseXML.js ├── script.js ├── var │ ├── location.js │ ├── nonce.js │ └── rquery.js └── xhr.js ├── attributes.js ├── attributes ├── attr.js ├── classes.js ├── prop.js ├── support.js └── val.js ├── callbacks.js ├── core.js ├── core ├── DOMEval.js ├── access.js ├── init.js ├── parseHTML.js ├── ready.js ├── support.js └── var │ └── rsingleTag.js ├── css.js ├── css ├── addGetHookIf.js ├── adjustCSS.js ├── curCSS.js ├── defaultDisplay.js ├── hiddenVisibleSelectors.js ├── showHide.js ├── support.js └── var │ ├── cssExpand.js │ ├── getStyles.js │ ├── isHidden.js │ ├── rmargin.js │ ├── rnumnonpx.js │ └── swap.js ├── data.js ├── data ├── Data.js ├── accepts.js ├── support.js └── var │ ├── acceptData.js │ ├── dataPriv.js │ └── dataUser.js ├── deferred.js ├── deferred └── exceptionHook.js ├── deprecated.js ├── dimensions.js ├── effects.js ├── effects ├── Tween.js ├── animatedSelector.js └── support.js ├── event.js ├── event ├── ajax.js ├── alias.js ├── focusin.js ├── support.js └── trigger.js ├── exports ├── amd.js └── global.js ├── intro.js ├── jquery.js ├── manipulation.js ├── manipulation ├── _evalUrl.js ├── buildFragment.js ├── createSafeFragment.js ├── getAll.js ├── setGlobalEval.js ├── support.js ├── var │ ├── nodeNames.js │ ├── rcheckableType.js │ ├── rleadingWhitespace.js │ ├── rscriptType.js │ └── rtagName.js └── wrapMap.js ├── offset.js ├── outro.js ├── queue.js ├── queue └── delay.js ├── selector-native.js ├── selector-sizzle.js ├── selector.js ├── serialize.js ├── support.js ├── traversing.js ├── traversing ├── findFilter.js └── var │ ├── dir.js │ ├── rneedsContext.js │ └── siblings.js ├── var ├── arr.js ├── class2type.js ├── concat.js ├── deletedIds.js ├── document.js ├── documentElement.js ├── hasOwn.js ├── indexOf.js ├── pnum.js ├── push.js ├── rcssNum.js ├── rnotwhite.js ├── slice.js ├── support.js └── toString.js └── wrap.js /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (web)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug/netcoreapp1.0/Chatazon.dll", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "stopAtEntry": false, 13 | "internalConsoleOptions": "openOnSessionStart", 14 | "launchBrowser": { 15 | "enabled": true, 16 | "args": "${auto-detect-url}", 17 | "windows": { 18 | "command": "cmd.exe", 19 | "args": "/C start ${auto-detect-url}" 20 | }, 21 | "osx": { 22 | "command": "open" 23 | }, 24 | "linux": { 25 | "command": "xdg-open" 26 | } 27 | }, 28 | "env": { 29 | "ASPNETCORE_ENVIRONMENT": "Development" 30 | }, 31 | "sourceFileMap": { 32 | "/Views": "${workspaceRoot}/Views" 33 | } 34 | }, 35 | { 36 | "name": ".NET Core Attach", 37 | "type": "coreclr", 38 | "request": "attach", 39 | "processId": "${command.pickProcess}" 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "${workspaceRoot}/project.json" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /Controllers/ApiHubController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Microsoft.AspNetCore.SignalR; 3 | using Microsoft.AspNetCore.SignalR.Infrastructure; 4 | using Microsoft.AspNetCore.SignalR.Hubs; 5 | 6 | namespace Chatazon.Controllers 7 | { 8 | public abstract class ApiHubController : Controller 9 | where T : Hub 10 | { 11 | private readonly IHubContext _hub; 12 | public IHubConnectionContext Clients { get; private set; } 13 | public IGroupManager Groups { get; private set; } 14 | protected ApiHubController(IConnectionManager signalRConnectionManager) 15 | { 16 | var _hub = signalRConnectionManager.GetHubContext(); 17 | Clients = _hub.Clients; 18 | Groups = _hub.Groups; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | 7 | namespace Chatazon.Controllers 8 | { 9 | public class HomeController : Controller 10 | { 11 | public IActionResult Index() 12 | { 13 | return View(); 14 | } 15 | 16 | public IActionResult About() 17 | { 18 | ViewData["Message"] = "Your application description page."; 19 | 20 | return View(); 21 | } 22 | 23 | public IActionResult Contact() 24 | { 25 | ViewData["Message"] = "Your contact page."; 26 | 27 | return View(); 28 | } 29 | 30 | public IActionResult Error() 31 | { 32 | return View(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Data/ApplicationDbContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 6 | using Microsoft.EntityFrameworkCore; 7 | using Chatazon.Models; 8 | 9 | namespace Chatazon.Data 10 | { 11 | public class ApplicationDbContext : IdentityDbContext 12 | { 13 | public ApplicationDbContext(DbContextOptions options) 14 | : base(options) 15 | { 16 | } 17 | 18 | public DbSet Message { get; set; } 19 | 20 | protected override void OnModelCreating(ModelBuilder builder) 21 | { 22 | base.OnModelCreating(builder); 23 | // Customize the ASP.NET Identity model and override the defaults if needed. 24 | // For example, you can rename the ASP.NET Identity table names and more. 25 | // Add your customizations after calling base.OnModelCreating(builder); 26 | 27 | builder.Entity() 28 | .Property(m => m.DateCreated) 29 | .HasDefaultValueSql("strftime('%Y-%m-%d %H:%M:%S')"); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Data/SignalRContractResolver.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using Microsoft.AspNetCore.SignalR.Infrastructure; 4 | using Newtonsoft.Json.Serialization; 5 | 6 | public class SignalRContractResolver : IContractResolver 7 | { 8 | private readonly Assembly _assembly; 9 | private readonly IContractResolver _camelCaseContractResolver; 10 | private readonly IContractResolver _defaultContractSerializer; 11 | 12 | public SignalRContractResolver() 13 | { 14 | _defaultContractSerializer = new DefaultContractResolver(); 15 | _camelCaseContractResolver = new CamelCasePropertyNamesContractResolver(); 16 | _assembly = typeof(Connection).GetTypeInfo().Assembly; 17 | } 18 | 19 | 20 | public JsonContract ResolveContract(Type type) 21 | { 22 | if (type.GetTypeInfo().Assembly.Equals(_assembly)) 23 | return _defaultContractSerializer.ResolveContract(type); 24 | 25 | return _camelCaseContractResolver.ResolveContract(type); 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:latest 2 | 3 | RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev && rm -rf /var/lib/apt/lists/* 4 | 5 | COPY . /app 6 | 7 | WORKDIR /app 8 | 9 | RUN ["dotnet", "restore"] 10 | 11 | RUN ["dotnet", "build"] 12 | 13 | RUN ["dotnet", "ef", "database", "update"] 14 | 15 | EXPOSE 5000/tcp 16 | 17 | CMD ["dotnet", "run", "--server.urls", "http://*:5000"] 18 | -------------------------------------------------------------------------------- /Hubs/Broadcaster.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.AspNetCore.SignalR; 3 | using Chatazon.Models; 4 | 5 | namespace Chatazon.Hubs 6 | { 7 | public class Broadcaster : Hub 8 | { 9 | public override Task OnConnected() 10 | { 11 | // Set connection id for just connected client only 12 | return Clients.Client(Context.ConnectionId).SetConnectionId(Context.ConnectionId); 13 | } 14 | 15 | // Server side methods called from client 16 | public Task Subscribe(string chatroom) 17 | { 18 | return Groups.Add(Context.ConnectionId, chatroom.ToString()); 19 | } 20 | 21 | public Task Unsubscribe(string chatroom) 22 | { 23 | return Groups.Remove(Context.ConnectionId, chatroom.ToString()); 24 | } 25 | } 26 | 27 | // Client side methods to be invoked by Broadcaster Hub 28 | public interface IBroadcaster 29 | { 30 | Task SetConnectionId(string connectionId); 31 | Task AddChatMessage(MessageViewModel message); 32 | } 33 | } -------------------------------------------------------------------------------- /Models/AccountViewModels/ExternalLoginConfirmationViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class ExternalLoginConfirmationViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Models/AccountViewModels/ForgotPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class ForgotPasswordViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Models/AccountViewModels/LoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class LoginViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | 15 | [Required] 16 | [DataType(DataType.Password)] 17 | public string Password { get; set; } 18 | 19 | [Display(Name = "Remember me?")] 20 | public bool RememberMe { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Models/AccountViewModels/RegisterViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class RegisterViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | [Display(Name = "Email")] 14 | public string Email { get; set; } 15 | 16 | [Required] 17 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 18 | [DataType(DataType.Password)] 19 | [Display(Name = "Password")] 20 | public string Password { get; set; } 21 | 22 | [DataType(DataType.Password)] 23 | [Display(Name = "Confirm password")] 24 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 25 | public string ConfirmPassword { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Models/AccountViewModels/ResetPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class ResetPasswordViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | 15 | [Required] 16 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 17 | [DataType(DataType.Password)] 18 | public string Password { get; set; } 19 | 20 | [DataType(DataType.Password)] 21 | [Display(Name = "Confirm password")] 22 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 23 | public string ConfirmPassword { get; set; } 24 | 25 | public string Code { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Models/AccountViewModels/SendCodeViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.Rendering; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class SendCodeViewModel 10 | { 11 | public string SelectedProvider { get; set; } 12 | 13 | public ICollection Providers { get; set; } 14 | 15 | public string ReturnUrl { get; set; } 16 | 17 | public bool RememberMe { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Models/AccountViewModels/VerifyCodeViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.AccountViewModels 8 | { 9 | public class VerifyCodeViewModel 10 | { 11 | [Required] 12 | public string Provider { get; set; } 13 | 14 | [Required] 15 | public string Code { get; set; } 16 | 17 | public string ReturnUrl { get; set; } 18 | 19 | [Display(Name = "Remember this browser?")] 20 | public bool RememberBrowser { get; set; } 21 | 22 | [Display(Name = "Remember me?")] 23 | public bool RememberMe { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Models/ApplicationUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 6 | 7 | namespace Chatazon.Models 8 | { 9 | // Add profile data for application users by adding properties to the ApplicationUser class 10 | public class ApplicationUser : IdentityUser 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Models/ManageViewModels/AddPhoneNumberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class AddPhoneNumberViewModel 10 | { 11 | [Required] 12 | [Phone] 13 | [Display(Name = "Phone number")] 14 | public string PhoneNumber { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Models/ManageViewModels/ChangePasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class ChangePasswordViewModel 10 | { 11 | [Required] 12 | [DataType(DataType.Password)] 13 | [Display(Name = "Current password")] 14 | public string OldPassword { get; set; } 15 | 16 | [Required] 17 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 18 | [DataType(DataType.Password)] 19 | [Display(Name = "New password")] 20 | public string NewPassword { get; set; } 21 | 22 | [DataType(DataType.Password)] 23 | [Display(Name = "Confirm new password")] 24 | [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] 25 | public string ConfirmPassword { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Models/ManageViewModels/ConfigureTwoFactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.Rendering; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class ConfigureTwoFactorViewModel 10 | { 11 | public string SelectedProvider { get; set; } 12 | 13 | public ICollection Providers { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Models/ManageViewModels/FactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Chatazon.Models.ManageViewModels 7 | { 8 | public class FactorViewModel 9 | { 10 | public string Purpose { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Models/ManageViewModels/IndexViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Identity; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class IndexViewModel 10 | { 11 | public bool HasPassword { get; set; } 12 | 13 | public IList Logins { get; set; } 14 | 15 | public string PhoneNumber { get; set; } 16 | 17 | public bool TwoFactor { get; set; } 18 | 19 | public bool BrowserRemembered { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Models/ManageViewModels/ManageLoginsViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Http.Authentication; 6 | using Microsoft.AspNetCore.Identity; 7 | 8 | namespace Chatazon.Models.ManageViewModels 9 | { 10 | public class ManageLoginsViewModel 11 | { 12 | public IList CurrentLogins { get; set; } 13 | 14 | public IList OtherLogins { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Models/ManageViewModels/RemoveLoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class RemoveLoginViewModel 10 | { 11 | public string LoginProvider { get; set; } 12 | public string ProviderKey { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Models/ManageViewModels/SetPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class SetPasswordViewModel 10 | { 11 | [Required] 12 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 13 | [DataType(DataType.Password)] 14 | [Display(Name = "New password")] 15 | public string NewPassword { get; set; } 16 | 17 | [DataType(DataType.Password)] 18 | [Display(Name = "Confirm new password")] 19 | [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] 20 | public string ConfirmPassword { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Models/ManageViewModels/VerifyPhoneNumberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace Chatazon.Models.ManageViewModels 8 | { 9 | public class VerifyPhoneNumberViewModel 10 | { 11 | [Required] 12 | public string Code { get; set; } 13 | 14 | [Required] 15 | [Phone] 16 | [Display(Name = "Phone number")] 17 | public string PhoneNumber { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Models/Message.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | using System.ComponentModel.DataAnnotations.Schema; 4 | 5 | namespace Chatazon.Models 6 | { 7 | public class Message 8 | { 9 | [Key] 10 | public int MessageId { get; set; } 11 | 12 | [Required] 13 | public string Content { get; set; } 14 | 15 | [Required] 16 | [ForeignKey("User")] 17 | public string UserId { get; set; } 18 | 19 | public ApplicationUser User { get; set; } 20 | 21 | [Required] 22 | [DataType(DataType.Date)] 23 | [DatabaseGenerated(DatabaseGeneratedOption.Computed)] 24 | public DateTime DateCreated { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /Models/MessageViewModels/MessageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace Chatazon.Models 5 | { 6 | // This is the model for the JSON data that we send to the client 7 | // for each message. We are not sending back the actual "Message" object 8 | // to the client because we are not wanting to send back all of the data 9 | // about the ApplicationUser who authored the message. This allows us to 10 | // return only the UserName of the ApplicationUser who wrote the message. 11 | public class MessageViewModel 12 | { 13 | public MessageViewModel() { } 14 | public MessageViewModel(Message message) 15 | { 16 | Content = message.Content; 17 | Author = message.User.UserName; 18 | Timestamp = message.DateCreated; 19 | } 20 | [Required] 21 | public string Content { get; set; } 22 | 23 | [Required] 24 | public string Author { get; set; } 25 | 26 | [Required] 27 | [DataType(DataType.Date)] 28 | public DateTime Timestamp { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /Models/MessageViewModels/NewMessageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace Chatazon.Models 4 | { 5 | public class NewMessageViewModel 6 | { 7 | [Required] 8 | public string Content { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /NuGet.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Hosting; 7 | using Microsoft.Extensions.Configuration; 8 | 9 | namespace Chatazon 10 | { 11 | public class Program 12 | { 13 | public static void Main(string[] args) 14 | { 15 | var config = new ConfigurationBuilder() 16 | .AddCommandLine(args) 17 | .AddEnvironmentVariables(prefix: "ASPNETCORE_") 18 | .Build(); 19 | 20 | var host = new WebHostBuilder() 21 | .UseConfiguration(config) 22 | .UseKestrel() 23 | .UseContentRoot(Directory.GetCurrentDirectory()) 24 | .UseIISIntegration() 25 | .UseStartup() 26 | .Build(); 27 | 28 | host.Run(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:1048/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Chatazon": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "launchUrl": "http://localhost:5000", 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Chatazon 2 | 3 | #### NOTE: This example uses the old SignalR client library. 4 | 5 | An example project using websockets in .NET Core. 6 | 7 | [Watch the tutorial on YouTube](https://www.youtube.com/watch?v=Fr4rWZIDdzs&) 8 | 9 | ![Example](https://i.imgur.com/KTmElpH.gif) 10 | 11 | ## Install 12 | 13 | This project uses .NET Core and SignalR library to implement websockets for real-time applications. 14 | 15 | ```bash 16 | dotnet restore 17 | dotnet ef database update 18 | dotnet run 19 | ``` 20 | 21 | ## Usage 22 | 23 | Navigate to `localhost:5000` in your browser, and create an account. Open a different browser session and create a different account. Chat in the chatroom and watch the real-time messaging! 24 | -------------------------------------------------------------------------------- /Services/IEmailSender.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Chatazon.Services 7 | { 8 | public interface IEmailSender 9 | { 10 | Task SendEmailAsync(string email, string subject, string message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Services/ISmsSender.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Chatazon.Services 7 | { 8 | public interface ISmsSender 9 | { 10 | Task SendSmsAsync(string number, string message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Services/MessageServices.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace Chatazon.Services 7 | { 8 | // This class is used by the application to send Email and SMS 9 | // when you turn on two-factor authentication in ASP.NET Identity. 10 | // For more details see this link https://go.microsoft.com/fwlink/?LinkID=532713 11 | public class AuthMessageSender : IEmailSender, ISmsSender 12 | { 13 | public Task SendEmailAsync(string email, string subject, string message) 14 | { 15 | // Plug in your email service here to send an email. 16 | return Task.FromResult(0); 17 | } 18 | 19 | public Task SendSmsAsync(string number, string message) 20 | { 21 | // Plug in your SMS service here to send a text message. 22 | return Task.FromResult(0); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Views/Account/ConfirmEmail.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Confirm Email"; 3 | } 4 | 5 |

@ViewData["Title"].

6 |
7 |

8 | Thank you for confirming your email. Please Click here to Log in. 9 |

10 |
11 | -------------------------------------------------------------------------------- /Views/Account/ExternalLoginConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @model ExternalLoginConfirmationViewModel 2 | @{ 3 | ViewData["Title"] = "Register"; 4 | } 5 | 6 |

@ViewData["Title"].

7 |

Associate your @ViewData["LoginProvider"] account.

8 | 9 |
10 |

Association Form

11 |
12 |
13 | 14 |

15 | You've successfully authenticated with @ViewData["LoginProvider"]. 16 | Please enter an email address for this site below and click the Register button to finish 17 | logging in. 18 |

19 |
20 | 21 |
22 | 23 | 24 |
25 |
26 |
27 |
28 | 29 |
30 |
31 |
32 | 33 | @section Scripts { 34 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 35 | } 36 | -------------------------------------------------------------------------------- /Views/Account/ExternalLoginFailure.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Login Failure"; 3 | } 4 | 5 |
6 |

@ViewData["Title"].

7 |

Unsuccessful login with service.

8 |
9 | -------------------------------------------------------------------------------- /Views/Account/ForgotPassword.cshtml: -------------------------------------------------------------------------------- 1 | @model ForgotPasswordViewModel 2 | @{ 3 | ViewData["Title"] = "Forgot your password?"; 4 | } 5 | 6 |

@ViewData["Title"]

7 |

8 | For more information on how to enable reset password please see this article. 9 |

10 | 11 | @*
12 |

Enter your email.

13 |
14 |
15 |
16 | 17 |
18 | 19 | 20 |
21 |
22 |
23 |
24 | 25 |
26 |
27 |
*@ 28 | 29 | @section Scripts { 30 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 31 | } 32 | -------------------------------------------------------------------------------- /Views/Account/ForgotPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Forgot Password Confirmation"; 3 | } 4 | 5 |

@ViewData["Title"].

6 |

7 | Please check your email to reset your password. 8 |

9 | -------------------------------------------------------------------------------- /Views/Account/Lockout.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Locked out"; 3 | } 4 | 5 |
6 |

Locked out.

7 |

This account has been locked out, please try again later.

8 |
9 | -------------------------------------------------------------------------------- /Views/Account/ResetPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Reset password confirmation"; 3 | } 4 | 5 |

@ViewData["Title"].

6 |

7 | Your password has been reset. Please Click here to log in. 8 |

9 | -------------------------------------------------------------------------------- /Views/Account/SendCode.cshtml: -------------------------------------------------------------------------------- 1 | @model SendCodeViewModel 2 | @{ 3 | ViewData["Title"] = "Send Verification Code"; 4 | } 5 | 6 |

@ViewData["Title"].

7 | 8 |
9 | 10 |
11 |
12 | Select Two-Factor Authentication Provider: 13 | 14 | 15 |
16 |
17 |
18 | 19 | @section Scripts { 20 | @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 21 | } 22 | -------------------------------------------------------------------------------- /Views/Account/VerifyCode.cshtml: -------------------------------------------------------------------------------- 1 | @model VerifyCodeViewModel 2 | @{ 3 | ViewData["Title"] = "Verify"; 4 | } 5 | 6 |

@ViewData["Title"].

7 | 8 |
9 |
10 | 11 | 12 |

@ViewData["Status"]

13 |
14 |
15 | 16 |
17 | 18 | 19 |
20 |
21 |
22 |
23 |
24 | 25 | 26 |
27 |
28 |
29 |
30 |
31 | 32 |
33 |
34 |
35 | 36 | @section Scripts { 37 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 38 | } 39 | -------------------------------------------------------------------------------- /Views/Manage/AddPhoneNumber.cshtml: -------------------------------------------------------------------------------- 1 | @model AddPhoneNumberViewModel 2 | @{ 3 | ViewData["Title"] = "Add Phone Number"; 4 | } 5 | 6 |

@ViewData["Title"].

7 |
8 |

Add a phone number.

9 |
10 |
11 |
12 | 13 |
14 | 15 | 16 |
17 |
18 |
19 |
20 | 21 |
22 |
23 |
24 | 25 | @section Scripts { 26 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 27 | } 28 | -------------------------------------------------------------------------------- /Views/Manage/VerifyPhoneNumber.cshtml: -------------------------------------------------------------------------------- 1 | @model VerifyPhoneNumberViewModel 2 | @{ 3 | ViewData["Title"] = "Verify Phone Number"; 4 | } 5 | 6 |

@ViewData["Title"].

7 | 8 |
9 | 10 |

Add a phone number.

11 |
@ViewData["Status"]
12 |
13 |
14 |
15 | 16 |
17 | 18 | 19 |
20 |
21 |
22 |
23 | 24 |
25 |
26 |
27 | 28 | @section Scripts { 29 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 30 | } 31 | -------------------------------------------------------------------------------- /Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /Views/Shared/_LoginPartial.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Identity 2 | @using Chatazon.Models 3 | 4 | @inject SignInManager SignInManager 5 | @inject UserManager UserManager 6 | 7 | @if (SignInManager.IsSignedIn(User)) 8 | { 9 | 19 | } 20 | else 21 | { 22 | 26 | } 27 | -------------------------------------------------------------------------------- /Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Chatazon 2 | @using Chatazon.Models 3 | @using Chatazon.Models.AccountViewModels 4 | @using Chatazon.Models.ManageViewModels 5 | @using Microsoft.AspNetCore.Identity 6 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 7 | -------------------------------------------------------------------------------- /Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Data Source=Chatazon.db" 4 | }, 5 | "Logging": { 6 | "IncludeScopes": false, 7 | "LogLevel": { 8 | "Default": "Debug", 9 | "System": "Information", 10 | "Microsoft": "Information" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chatazon", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.6", 6 | "jquery": "2.2.3", 7 | "jquery-validation": "1.15.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /bundleconfig.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "outputFileName": "wwwroot/css/site.min.css", 4 | "inputFiles": [ 5 | "wwwroot/css/site.css" 6 | ] 7 | }, 8 | { 9 | "outputFileName": "wwwroot/js/site.min.js", 10 | "inputFiles": [ 11 | "wwwroot/js/site.js" 12 | ], 13 | "minify": { 14 | "enabled": true, 15 | "renameLocals": true 16 | }, 17 | "sourceMap": false 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | 6 | /* Wrapping element */ 7 | /* Set some basic padding to keep content from hitting the edges */ 8 | .body-content { 9 | padding-left: 15px; 10 | padding-right: 15px; 11 | } 12 | 13 | /* Set widths on the form inputs since otherwise they're 100% wide */ 14 | input, 15 | select, 16 | textarea { 17 | max-width: 280px; 18 | } 19 | 20 | /* Carousel */ 21 | .carousel-caption p { 22 | font-size: 20px; 23 | line-height: 1.4; 24 | } 25 | 26 | /* buttons and links extension to use brackets: [ click me ] */ 27 | .btn-bracketed::before { 28 | display:inline-block; 29 | content: "["; 30 | padding-right: 0.5em; 31 | } 32 | .btn-bracketed::after { 33 | display:inline-block; 34 | content: "]"; 35 | padding-left: 0.5em; 36 | } 37 | 38 | /* Make .svg files in the carousel display properly in older browsers */ 39 | .carousel-inner .item img[src$=".svg"] 40 | { 41 | width: 100%; 42 | } 43 | 44 | /* Hide/rearrange for smaller screens */ 45 | @media screen and (max-width: 767px) { 46 | /* Hide captions */ 47 | .carousel-caption { 48 | display: none 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}input,select,textarea{max-width:280px}.carousel-caption p{font-size:20px;line-height:1.4}.btn-bracketed::before{display:inline-block;content:"[";padding-right:.5em}.btn-bracketed::after{display:inline-block;content:"]";padding-left:.5em}.carousel-inner .item img[src$=".svg"]{width:100%}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/favicon.ico -------------------------------------------------------------------------------- /wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /wwwroot/js/site.min.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": "1.9.1 - 2" 33 | }, 34 | "version": "3.3.6", 35 | "_release": "3.3.6", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.3.6", 39 | "commit": "81df608a40bf0629a1dc08e584849bb1e43e0b7a" 40 | }, 41 | "_source": "https://github.com/twbs/bootstrap.git", 42 | "_target": "3.3.6", 43 | "_originalSource": "bootstrap" 44 | } -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. 2 | 3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. 4 | 5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. 6 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2015 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": "1.9.1 - 2" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthamil/Chatazon/f7ff8b8a19ec9dceeae265fb99af92b055505e8d/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends" : "../js/.jshintrc", 3 | "asi" : false, 4 | "browser" : false, 5 | "es3" : false, 6 | "node" : true 7 | } 8 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/grunt/bs-commonjs-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for the CommonJS module generation 3 | * http://getbootstrap.com 4 | * Copyright 2014-2015 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var fs = require('fs'); 11 | var path = require('path'); 12 | 13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; 14 | 15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { 16 | var destDir = path.dirname(destFilepath); 17 | 18 | function srcPathToDestRequire(srcFilepath) { 19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); 20 | return 'require(\'' + requirePath + '\')'; 21 | } 22 | 23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); 24 | try { 25 | fs.writeFileSync(destFilepath, moduleOutputJs); 26 | } catch (err) { 27 | grunt.fail.warn(err); 28 | } 29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); 30 | }; 31 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/js/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi" : true, 3 | "browser" : true, 4 | "eqeqeq" : false, 5 | "eqnull" : true, 6 | "es3" : true, 7 | "expr" : true, 8 | "jquery" : true, 9 | "latedef" : true, 10 | "laxbreak" : true, 11 | "nonbsp" : true, 12 | "strict" : true, 13 | "undef" : true, 14 | "unused" : true 15 | } 16 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding-top: @jumbotron-padding; 8 | padding-bottom: @jumbotron-padding; 9 | margin-bottom: @jumbotron-padding; 10 | color: @jumbotron-color; 11 | background-color: @jumbotron-bg; 12 | 13 | h1, 14 | .h1 { 15 | color: @jumbotron-heading-color; 16 | } 17 | 18 | p { 19 | margin-bottom: (@jumbotron-padding / 2); 20 | font-size: @jumbotron-font-size; 21 | font-weight: 200; 22 | } 23 | 24 | > hr { 25 | border-top-color: darken(@jumbotron-bg, 10%); 26 | } 27 | 28 | .container &, 29 | .container-fluid & { 30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 31 | padding-left: (@grid-gutter-width / 2); 32 | padding-right: (@grid-gutter-width / 2); 33 | } 34 | 35 | .container { 36 | max-width: 100%; 37 | } 38 | 39 | @media screen and (min-width: @screen-sm-min) { 40 | padding-top: (@jumbotron-padding * 1.6); 41 | padding-bottom: (@jumbotron-padding * 1.6); 42 | 43 | .container &, 44 | .container-fluid & { 45 | padding-left: (@jumbotron-padding * 2); 46 | padding-right: (@jumbotron-padding * 2); 47 | } 48 | 49 | h1, 50 | .h1 { 51 | font-size: @jumbotron-heading-font-size; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | 23 | // Fix collapse in webkit from max-width: 100% and display: table-cell. 24 | &.img-thumbnail { 25 | max-width: none; 26 | } 27 | } 28 | 29 | .media-right, 30 | .media > .pull-right { 31 | padding-left: 10px; 32 | } 33 | 34 | .media-left, 35 | .media > .pull-left { 36 | padding-right: 10px; 37 | } 38 | 39 | .media-left, 40 | .media-right, 41 | .media-body { 42 | display: table-cell; 43 | vertical-align: top; 44 | } 45 | 46 | .media-middle { 47 | vertical-align: middle; 48 | } 49 | 50 | .media-bottom { 51 | vertical-align: bottom; 52 | } 53 | 54 | // Reset margins on headings for tighter default spacing 55 | .media-heading { 56 | margin-top: 0; 57 | margin-bottom: 5px; 58 | } 59 | 60 | // Media list variation 61 | // 62 | // Undo default ul/ol styles 63 | .media-list { 64 | padding-left: 0; 65 | list-style: none; 66 | } 67 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/reset-text.less"; 15 | @import "mixins/text-emphasis.less"; 16 | @import "mixins/text-overflow.less"; 17 | @import "mixins/vendor-prefixes.less"; 18 | 19 | // Components 20 | @import "mixins/alerts.less"; 21 | @import "mixins/buttons.less"; 22 | @import "mixins/panels.less"; 23 | @import "mixins/pagination.less"; 24 | @import "mixins/list-group.less"; 25 | @import "mixins/nav-divider.less"; 26 | @import "mixins/forms.less"; 27 | @import "mixins/progress-bar.less"; 28 | @import "mixins/table-row.less"; 29 | 30 | // Skins 31 | @import "mixins/background-variant.less"; 32 | @import "mixins/border-radius.less"; 33 | @import "mixins/gradients.less"; 34 | 35 | // Layout 36 | @import "mixins/clearfix.less"; 37 | @import "mixins/center-block.less"; 38 | @import "mixins/nav-vertical-align.less"; 39 | @import "mixins/grid-framework.less"; 40 | @import "mixins/grid.less"; 41 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover, 6 | a&:focus { 7 | background-color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (has been removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/image.less: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | .img-responsive(@display: block) { 10 | display: @display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { 21 | background-image: url("@{file-1x}"); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url("@{file-2x}"); 31 | background-size: @width-1x @height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a&, 9 | button& { 10 | color: @color; 11 | 12 | .list-group-item-heading { 13 | color: inherit; 14 | } 15 | 16 | &:hover, 17 | &:focus { 18 | color: @color; 19 | background-color: darken(@background, 5%); 20 | } 21 | &.active, 22 | &.active:hover, 23 | &.active:focus { 24 | color: #fff; 25 | background-color: @color; 26 | border-color: @color; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | line-height: @line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | .border-left-radius(@border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | .border-right-radius(@border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/reset-text.less: -------------------------------------------------------------------------------- 1 | .reset-text() { 2 | font-family: @font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: @line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table !important; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover, 6 | a&:focus { 7 | color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: @cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | } 48 | 49 | 50 | // For Affix plugin 51 | // ------------------------- 52 | 53 | .affix { 54 | position: fixed; 55 | } 56 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/nuget/MyGet.ps1: -------------------------------------------------------------------------------- 1 | $nuget = $env:NuGet 2 | 3 | #parse the version number out of package.json 4 | $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version 5 | 6 | #create packages 7 | & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 8 | & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/nuget/bootstrap.less.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap.less 5 | 3.3 6 | Bootstrap Less 7 | Twitter, Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | http://blog.getbootstrap.com 11 | Bootstrap framework in Less. Includes fonts and JavaScript 12 | en-us 13 | http://getbootstrap.com 14 | http://getbootstrap.com/apple-touch-icon.png 15 | https://github.com/twbs/bootstrap/blob/master/LICENSE 16 | Copyright 2015 17 | false 18 | 19 | 20 | 21 | css js less mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/nuget/bootstrap.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap 5 | 3.3 6 | Bootstrap CSS 7 | Twitter, Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | http://blog.getbootstrap.com 11 | Bootstrap framework in CSS. Includes fonts and JavaScript 12 | en-us 13 | http://getbootstrap.com 14 | http://getbootstrap.com/apple-touch-icon.png 15 | https://github.com/twbs/bootstrap/blob/master/LICENSE 16 | Copyright 2015 17 | false 18 | 19 | 20 | 21 | css js less mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /wwwroot/lib/bootstrap/package.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | 3 | /* jshint strict:false */ 4 | /* global Package:true */ 5 | 6 | Package.describe({ 7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap 8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', 9 | version: '3.3.6', 10 | git: 'https://github.com/twbs/bootstrap.git' 11 | }); 12 | 13 | Package.onUse(function (api) { 14 | api.versionsFrom('METEOR@1.0'); 15 | api.use('jquery', 'client'); 16 | var assets = [ 17 | 'dist/fonts/glyphicons-halflings-regular.eot', 18 | 'dist/fonts/glyphicons-halflings-regular.svg', 19 | 'dist/fonts/glyphicons-halflings-regular.ttf', 20 | 'dist/fonts/glyphicons-halflings-regular.woff', 21 | 'dist/fonts/glyphicons-halflings-regular.woff2' 22 | ]; 23 | if (api.addAssets) { 24 | api.addAssets(assets, 'client'); 25 | } else { 26 | api.addFiles(assets, 'client', { isAsset: true }); 27 | } 28 | api.addFiles([ 29 | 'dist/css/bootstrap.css', 30 | 'dist/js/bootstrap.js' 31 | ], 'client'); 32 | }); 33 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation-unobtrusive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "version": "3.2.6", 4 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 5 | "description": "Add-on to jQuery Validation to enable unobtrusive validation options in data-* attributes.", 6 | "main": [ 7 | "jquery.validate.unobtrusive.js" 8 | ], 9 | "ignore": [ 10 | "**/.*", 11 | "*.json", 12 | "*.md", 13 | "*.txt", 14 | "!LICENSE.txt", 15 | "gulpfile.js" 16 | ], 17 | "keywords": [ 18 | "jquery", 19 | "asp.net", 20 | "mvc", 21 | "validation", 22 | "unobtrusive" 23 | ], 24 | "authors": [ 25 | "Microsoft" 26 | ], 27 | "license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", 28 | "repository": { 29 | "type": "git", 30 | "url": "git://github.com/aspnet/jquery-validation-unobtrusive.git" 31 | }, 32 | "dependencies": { 33 | "jquery-validation": ">=1.8", 34 | "jquery": ">=1.8" 35 | }, 36 | "_release": "3.2.6", 37 | "_resolution": { 38 | "type": "version", 39 | "tag": "v3.2.6", 40 | "commit": "47e82bc6cb86a05247f8c3846192228038572783" 41 | }, 42 | "_source": "https://github.com/aspnet/jquery-validation-unobtrusive.git", 43 | "_target": "3.2.6", 44 | "_originalSource": "jquery-validation-unobtrusive" 45 | } -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation-unobtrusive/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "version": "3.2.6", 4 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 5 | "description": "Add-on to jQuery Validation to enable unobtrusive validation options in data-* attributes.", 6 | "main": [ 7 | "jquery.validate.unobtrusive.js" 8 | ], 9 | "ignore": [ 10 | "**/.*", 11 | "*.json", 12 | "*.md", 13 | "*.txt", 14 | "!LICENSE.txt", 15 | "gulpfile.js" 16 | ], 17 | "keywords": [ 18 | "jquery", 19 | "asp.net", 20 | "mvc", 21 | "validation", 22 | "unobtrusive" 23 | ], 24 | "authors": [ 25 | "Microsoft" 26 | ], 27 | "license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", 28 | "repository": { 29 | "type": "git", 30 | "url": "git://github.com/aspnet/jquery-validation-unobtrusive.git" 31 | }, 32 | "dependencies": { 33 | "jquery-validation": ">=1.8", 34 | "jquery": ">=1.8" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation", 3 | "homepage": "http://jqueryvalidation.org/", 4 | "repository": { 5 | "type": "git", 6 | "url": "git://github.com/jzaefferer/jquery-validation.git" 7 | }, 8 | "authors": [ 9 | "Jörn Zaefferer " 10 | ], 11 | "description": "Form validation made easy", 12 | "main": "dist/jquery.validate.js", 13 | "keywords": [ 14 | "forms", 15 | "validation", 16 | "validate" 17 | ], 18 | "license": "MIT", 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "demo", 25 | "lib" 26 | ], 27 | "dependencies": { 28 | "jquery": ">= 1.7.2" 29 | }, 30 | "version": "1.15.0", 31 | "_release": "1.15.0", 32 | "_resolution": { 33 | "type": "version", 34 | "tag": "1.15.0", 35 | "commit": "1621cadc940900a4a7809fe29f2b568328be4340" 36 | }, 37 | "_source": "https://github.com/jzaefferer/jquery-validation.git", 38 | "_target": "1.15.0", 39 | "_originalSource": "jquery-validation" 40 | } -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright Jörn Zaefferer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation", 3 | "homepage": "http://jqueryvalidation.org/", 4 | "repository": { 5 | "type": "git", 6 | "url": "git://github.com/jzaefferer/jquery-validation.git" 7 | }, 8 | "authors": [ 9 | "Jörn Zaefferer " 10 | ], 11 | "description": "Form validation made easy", 12 | "main": "dist/jquery.validate.js", 13 | "keywords": [ 14 | "forms", 15 | "validation", 16 | "validate" 17 | ], 18 | "license": "MIT", 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "demo", 25 | "lib" 26 | ], 27 | "dependencies": { 28 | "jquery": ">= 1.7.2" 29 | }, 30 | "version": "1.15.0" 31 | } 32 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/additional.js: -------------------------------------------------------------------------------- 1 | ( function() { 2 | 3 | function stripHtml( value ) { 4 | 5 | // Remove html tags and space chars 6 | return value.replace( /<.[^<>]*?>/g, " " ).replace( / | /gi, " " ) 7 | 8 | // Remove punctuation 9 | .replace( /[.(),;:!?%#$'\"_+=\/\-“”’]*/g, "" ); 10 | } 11 | 12 | $.validator.addMethod( "maxWords", function( value, element, params ) { 13 | return this.optional( element ) || stripHtml( value ).match( /\b\w+\b/g ).length <= params; 14 | }, $.validator.format( "Please enter {0} words or less." ) ); 15 | 16 | $.validator.addMethod( "minWords", function( value, element, params ) { 17 | return this.optional( element ) || stripHtml( value ).match( /\b\w+\b/g ).length >= params; 18 | }, $.validator.format( "Please enter at least {0} words." ) ); 19 | 20 | $.validator.addMethod( "rangeWords", function( value, element, params ) { 21 | var valueStripped = stripHtml( value ), 22 | regex = /\b\w+\b/g; 23 | return this.optional( element ) || valueStripped.match( regex ).length >= params[ 0 ] && valueStripped.match( regex ).length <= params[ 1 ]; 24 | }, $.validator.format( "Please enter between {0} and {1} words." ) ); 25 | 26 | }() ); 27 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/alphanumeric.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "alphanumeric", function( value, element ) { 2 | return this.optional( element ) || /^\w+$/i.test( value ); 3 | }, "Letters, numbers, and underscores only please" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/bankaccountNL.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Dutch bank account numbers (not 'giro' numbers) have 9 digits 3 | * and pass the '11 check'. 4 | * We accept the notation with spaces, as that is common. 5 | * acceptable: 123456789 or 12 34 56 789 6 | */ 7 | $.validator.addMethod( "bankaccountNL", function( value, element ) { 8 | if ( this.optional( element ) ) { 9 | return true; 10 | } 11 | if ( !( /^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test( value ) ) ) { 12 | return false; 13 | } 14 | 15 | // Now '11 check' 16 | var account = value.replace( / /g, "" ), // Remove spaces 17 | sum = 0, 18 | len = account.length, 19 | pos, factor, digit; 20 | for ( pos = 0; pos < len; pos++ ) { 21 | factor = len - pos; 22 | digit = account.substring( pos, pos + 1 ); 23 | sum = sum + factor * digit; 24 | } 25 | return sum % 11 === 0; 26 | }, "Please specify a valid bank account number" ); 27 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/bankorgiroaccountNL.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "bankorgiroaccountNL", function( value, element ) { 2 | return this.optional( element ) || 3 | ( $.validator.methods.bankaccountNL.call( this, value, element ) ) || 4 | ( $.validator.methods.giroaccountNL.call( this, value, element ) ); 5 | }, "Please specify a valid bank or giro account number" ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/bic.js: -------------------------------------------------------------------------------- 1 | /** 2 | * BIC is the business identifier code (ISO 9362). This BIC check is not a guarantee for authenticity. 3 | * 4 | * BIC pattern: BBBBCCLLbbb (8 or 11 characters long; bbb is optional) 5 | * 6 | * Validation is case-insensitive. Please make sure to normalize input yourself. 7 | * 8 | * BIC definition in detail: 9 | * - First 4 characters - bank code (only letters) 10 | * - Next 2 characters - ISO 3166-1 alpha-2 country code (only letters) 11 | * - Next 2 characters - location code (letters and digits) 12 | * a. shall not start with '0' or '1' 13 | * b. second character must be a letter ('O' is not allowed) or digit ('0' for test (therefore not allowed), '1' denoting passive participant, '2' typically reverse-billing) 14 | * - Last 3 characters - branch code, optional (shall not start with 'X' except in case of 'XXX' for primary office) (letters and digits) 15 | */ 16 | $.validator.addMethod( "bic", function( value, element ) { 17 | return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value.toUpperCase() ); 18 | }, "Please specify a valid BIC code" ); 19 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/creditcard.js: -------------------------------------------------------------------------------- 1 | // http://jqueryvalidation.org/creditcard-method/ 2 | // based on http://en.wikipedia.org/wiki/Luhn_algorithm 3 | $.validator.addMethod( "creditcard", function( value, element ) { 4 | if ( this.optional( element ) ) { 5 | return "dependency-mismatch"; 6 | } 7 | 8 | // Accept only spaces, digits and dashes 9 | if ( /[^0-9 \-]+/.test( value ) ) { 10 | return false; 11 | } 12 | 13 | var nCheck = 0, 14 | nDigit = 0, 15 | bEven = false, 16 | n, cDigit; 17 | 18 | value = value.replace( /\D/g, "" ); 19 | 20 | // Basing min and max length on 21 | // http://developer.ean.com/general_info/Valid_Credit_Card_Types 22 | if ( value.length < 13 || value.length > 19 ) { 23 | return false; 24 | } 25 | 26 | for ( n = value.length - 1; n >= 0; n-- ) { 27 | cDigit = value.charAt( n ); 28 | nDigit = parseInt( cDigit, 10 ); 29 | if ( bEven ) { 30 | if ( ( nDigit *= 2 ) > 9 ) { 31 | nDigit -= 9; 32 | } 33 | } 34 | 35 | nCheck += nDigit; 36 | bEven = !bEven; 37 | } 38 | 39 | return ( nCheck % 10 ) === 0; 40 | }, "Please enter a valid credit card number." ); 41 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/dateFA.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "dateFA", function( value, element ) { 2 | return this.optional( element ) || /^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test( value ); 3 | }, $.validator.messages.date ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/dateITA.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Return true, if the value is a valid date, also making this formal check dd/mm/yyyy. 3 | * 4 | * @example $.validator.methods.date("01/01/1900") 5 | * @result true 6 | * 7 | * @example $.validator.methods.date("01/13/1990") 8 | * @result false 9 | * 10 | * @example $.validator.methods.date("01.01.1900") 11 | * @result false 12 | * 13 | * @example 14 | * @desc Declares an optional input element whose value must be a valid date. 15 | * 16 | * @name $.validator.methods.dateITA 17 | * @type Boolean 18 | * @cat Plugins/Validate/Methods 19 | */ 20 | $.validator.addMethod( "dateITA", function( value, element ) { 21 | var check = false, 22 | re = /^\d{1,2}\/\d{1,2}\/\d{4}$/, 23 | adata, gg, mm, aaaa, xdata; 24 | if ( re.test( value ) ) { 25 | adata = value.split( "/" ); 26 | gg = parseInt( adata[ 0 ], 10 ); 27 | mm = parseInt( adata[ 1 ], 10 ); 28 | aaaa = parseInt( adata[ 2 ], 10 ); 29 | xdata = new Date( Date.UTC( aaaa, mm - 1, gg, 12, 0, 0, 0 ) ); 30 | if ( ( xdata.getUTCFullYear() === aaaa ) && ( xdata.getUTCMonth() === mm - 1 ) && ( xdata.getUTCDate() === gg ) ) { 31 | check = true; 32 | } else { 33 | check = false; 34 | } 35 | } else { 36 | check = false; 37 | } 38 | return this.optional( element ) || check; 39 | }, $.validator.messages.date ); 40 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/dateNL.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "dateNL", function( value, element ) { 2 | return this.optional( element ) || /^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test( value ); 3 | }, $.validator.messages.date ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/extension.js: -------------------------------------------------------------------------------- 1 | // Older "accept" file extension method. Old docs: http://docs.jquery.com/Plugins/Validation/Methods/accept 2 | $.validator.addMethod( "extension", function( value, element, param ) { 3 | param = typeof param === "string" ? param.replace( /,/g, "|" ) : "png|jpe?g|gif"; 4 | return this.optional( element ) || value.match( new RegExp( "\\.(" + param + ")$", "i" ) ); 5 | }, $.validator.format( "Please enter a value with a valid extension." ) ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/giroaccountNL.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dutch giro account numbers (not bank numbers) have max 7 digits 3 | */ 4 | $.validator.addMethod( "giroaccountNL", function( value, element ) { 5 | return this.optional( element ) || /^[0-9]{1,7}$/.test( value ); 6 | }, "Please specify a valid giro account number" ); 7 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/integer.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "integer", function( value, element ) { 2 | return this.optional( element ) || /^-?\d+$/.test( value ); 3 | }, "A positive or negative non-decimal number please" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/ipv4.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "ipv4", function( value, element ) { 2 | return this.optional( element ) || /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test( value ); 3 | }, "Please enter a valid IP v4 address." ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/ipv6.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "ipv6", function( value, element ) { 2 | return this.optional( element ) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test( value ); 3 | }, "Please enter a valid IP v6 address." ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/lettersonly.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "lettersonly", function( value, element ) { 2 | return this.optional( element ) || /^[a-z]+$/i.test( value ); 3 | }, "Letters only please" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/letterswithbasicpunc.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "letterswithbasicpunc", function( value, element ) { 2 | return this.optional( element ) || /^[a-z\-.,()'"\s]+$/i.test( value ); 3 | }, "Letters or punctuation only please" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/mobileNL.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "mobileNL", function( value, element ) { 2 | return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test( value ); 3 | }, "Please specify a valid mobile number" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/mobileUK.js: -------------------------------------------------------------------------------- 1 | /* For UK phone functions, do the following server side processing: 2 | * Compare original input with this RegEx pattern: 3 | * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ 4 | * Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0' 5 | * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2. 6 | * A number of very detailed GB telephone number RegEx patterns can also be found at: 7 | * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers 8 | */ 9 | $.validator.addMethod( "mobileUK", function( phone_number, element ) { 10 | phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); 11 | return this.optional( element ) || phone_number.length > 9 && 12 | phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/ ); 13 | }, "Please specify a valid mobile number" ); 14 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/nieES.js: -------------------------------------------------------------------------------- 1 | /* 2 | * The número de identidad de extranjero ( NIE )is a code used to identify the non-nationals in Spain 3 | */ 4 | $.validator.addMethod( "nieES", function( value ) { 5 | "use strict"; 6 | 7 | value = value.toUpperCase(); 8 | 9 | // Basic format test 10 | if ( !value.match( "((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)" ) ) { 11 | return false; 12 | } 13 | 14 | // Test NIE 15 | //T 16 | if ( /^[T]{1}/.test( value ) ) { 17 | return ( value[ 8 ] === /^[T]{1}[A-Z0-9]{8}$/.test( value ) ); 18 | } 19 | 20 | //XYZ 21 | if ( /^[XYZ]{1}/.test( value ) ) { 22 | return ( 23 | value[ 8 ] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt( 24 | value.replace( "X", "0" ) 25 | .replace( "Y", "1" ) 26 | .replace( "Z", "2" ) 27 | .substring( 0, 8 ) % 23 28 | ) 29 | ); 30 | } 31 | 32 | return false; 33 | 34 | }, "Please specify a valid NIE number." ); 35 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/nifES.js: -------------------------------------------------------------------------------- 1 | /* 2 | * The Número de Identificación Fiscal ( NIF ) is the way tax identification used in Spain for individuals 3 | */ 4 | $.validator.addMethod( "nifES", function( value ) { 5 | "use strict"; 6 | 7 | value = value.toUpperCase(); 8 | 9 | // Basic format test 10 | if ( !value.match( "((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)" ) ) { 11 | return false; 12 | } 13 | 14 | // Test NIF 15 | if ( /^[0-9]{8}[A-Z]{1}$/.test( value ) ) { 16 | return ( "TRWAGMYFPDXBNJZSQVHLCKE".charAt( value.substring( 8, 0 ) % 23 ) === value.charAt( 8 ) ); 17 | } 18 | 19 | // Test specials NIF (starts with K, L or M) 20 | if ( /^[KLM]{1}/.test( value ) ) { 21 | return ( value[ 8 ] === String.fromCharCode( 64 ) ); 22 | } 23 | 24 | return false; 25 | 26 | }, "Please specify a valid NIF number." ); 27 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/notEqualTo.js: -------------------------------------------------------------------------------- 1 | jQuery.validator.addMethod( "notEqualTo", function( value, element, param ) { 2 | return this.optional( element ) || !$.validator.methods.equalTo.call( this, value, element, param ); 3 | }, "Please enter a different value, values must not be the same." ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/nowhitespace.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "nowhitespace", function( value, element ) { 2 | return this.optional( element ) || /^\S+$/i.test( value ); 3 | }, "No white space please" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/pattern.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Return true if the field value matches the given format RegExp 3 | * 4 | * @example $.validator.methods.pattern("AR1004",element,/^AR\d{4}$/) 5 | * @result true 6 | * 7 | * @example $.validator.methods.pattern("BR1004",element,/^AR\d{4}$/) 8 | * @result false 9 | * 10 | * @name $.validator.methods.pattern 11 | * @type Boolean 12 | * @cat Plugins/Validate/Methods 13 | */ 14 | $.validator.addMethod( "pattern", function( value, element, param ) { 15 | if ( this.optional( element ) ) { 16 | return true; 17 | } 18 | if ( typeof param === "string" ) { 19 | param = new RegExp( "^(?:" + param + ")$" ); 20 | } 21 | return param.test( value ); 22 | }, "Invalid format." ); 23 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/phoneNL.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dutch phone numbers have 10 digits (or 11 and start with +31). 3 | */ 4 | $.validator.addMethod( "phoneNL", function( value, element ) { 5 | return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test( value ); 6 | }, "Please specify a valid phone number." ); 7 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/phoneUK.js: -------------------------------------------------------------------------------- 1 | /* For UK phone functions, do the following server side processing: 2 | * Compare original input with this RegEx pattern: 3 | * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ 4 | * Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0' 5 | * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2. 6 | * A number of very detailed GB telephone number RegEx patterns can also be found at: 7 | * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers 8 | */ 9 | $.validator.addMethod( "phoneUK", function( phone_number, element ) { 10 | phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); 11 | return this.optional( element ) || phone_number.length > 9 && 12 | phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/ ); 13 | }, "Please specify a valid phone number" ); 14 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/phoneUS.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Matches US phone number format 3 | * 4 | * where the area code may not start with 1 and the prefix may not start with 1 5 | * allows '-' or ' ' as a separator and allows parens around area code 6 | * some people may want to put a '1' in front of their number 7 | * 8 | * 1(212)-999-2345 or 9 | * 212 999 2344 or 10 | * 212-999-0983 11 | * 12 | * but not 13 | * 111-123-5434 14 | * and not 15 | * 212 123 4567 16 | */ 17 | $.validator.addMethod( "phoneUS", function( phone_number, element ) { 18 | phone_number = phone_number.replace( /\s+/g, "" ); 19 | return this.optional( element ) || phone_number.length > 9 && 20 | phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/ ); 21 | }, "Please specify a valid phone number" ); 22 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/phonesUK.js: -------------------------------------------------------------------------------- 1 | /* For UK phone functions, do the following server side processing: 2 | * Compare original input with this RegEx pattern: 3 | * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ 4 | * Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0' 5 | * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2. 6 | * A number of very detailed GB telephone number RegEx patterns can also be found at: 7 | * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers 8 | */ 9 | 10 | // Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers 11 | $.validator.addMethod( "phonesUK", function( phone_number, element ) { 12 | phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); 13 | return this.optional( element ) || phone_number.length > 9 && 14 | phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/ ); 15 | }, "Please specify a valid uk phone number" ); 16 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/postalCodeCA.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Matches a valid Canadian Postal Code 3 | * 4 | * @example jQuery.validator.methods.postalCodeCA( "H0H 0H0", element ) 5 | * @result true 6 | * 7 | * @example jQuery.validator.methods.postalCodeCA( "H0H0H0", element ) 8 | * @result false 9 | * 10 | * @name jQuery.validator.methods.postalCodeCA 11 | * @type Boolean 12 | * @cat Plugins/Validate/Methods 13 | */ 14 | $.validator.addMethod( "postalCodeCA", function( value, element ) { 15 | return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test( value ); 16 | }, "Please specify a valid postal code" ); 17 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/postalcodeBR.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Valida CEPs do brasileiros: 3 | * 4 | * Formatos aceitos: 5 | * 99999-999 6 | * 99.999-999 7 | * 99999999 8 | */ 9 | $.validator.addMethod( "postalcodeBR", function( cep_value, element ) { 10 | return this.optional( element ) || /^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test( cep_value ); 11 | }, "Informe um CEP válido." ); 12 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/postalcodeIT.js: -------------------------------------------------------------------------------- 1 | /* Matches Italian postcode (CAP) */ 2 | $.validator.addMethod( "postalcodeIT", function( value, element ) { 3 | return this.optional( element ) || /^\d{5}$/.test( value ); 4 | }, "Please specify a valid postal code" ); 5 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/postalcodeNL.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "postalcodeNL", function( value, element ) { 2 | return this.optional( element ) || /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test( value ); 3 | }, "Please specify a valid postal code" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/postcodeUK.js: -------------------------------------------------------------------------------- 1 | // Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK) 2 | $.validator.addMethod( "postcodeUK", function( value, element ) { 3 | return this.optional( element ) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test( value ); 4 | }, "Please specify a valid UK postcode" ); 5 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/strippedminlength.js: -------------------------------------------------------------------------------- 1 | // TODO check if value starts with <, otherwise don't try stripping anything 2 | $.validator.addMethod( "strippedminlength", function( value, element, param ) { 3 | return $( value ).text().length >= param; 4 | }, $.validator.format( "Please enter at least {0} characters" ) ); 5 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/time.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "time", function( value, element ) { 2 | return this.optional( element ) || /^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test( value ); 3 | }, "Please enter a valid time, between 00:00 and 23:59" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/time12h.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "time12h", function( value, element ) { 2 | return this.optional( element ) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test( value ); 3 | }, "Please enter a valid time in 12-hour am/pm format" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/url2.js: -------------------------------------------------------------------------------- 1 | // Same as url, but TLD is optional 2 | $.validator.addMethod( "url2", function( value, element ) { 3 | return this.optional( element ) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test( value ); 4 | }, $.validator.messages.url ); 5 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/zipcodeUS.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "zipcodeUS", function( value, element ) { 2 | return this.optional( element ) || /^\d{5}(-\d{4})?$/.test( value ); 3 | }, "The specified US ZIP Code is invalid" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/additional/ziprange.js: -------------------------------------------------------------------------------- 1 | $.validator.addMethod( "ziprange", function( value, element ) { 2 | return this.optional( element ) || /^90[2-5]\d\{2\}-\d{4}$/.test( value ); 3 | }, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx" ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/ajax.js: -------------------------------------------------------------------------------- 1 | // Ajax mode: abort 2 | // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); 3 | // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 4 | 5 | var pendingRequests = {}, 6 | ajax; 7 | 8 | // Use a prefilter if available (1.5+) 9 | if ( $.ajaxPrefilter ) { 10 | $.ajaxPrefilter( function( settings, _, xhr ) { 11 | var port = settings.port; 12 | if ( settings.mode === "abort" ) { 13 | if ( pendingRequests[ port ] ) { 14 | pendingRequests[ port ].abort(); 15 | } 16 | pendingRequests[ port ] = xhr; 17 | } 18 | } ); 19 | } else { 20 | 21 | // Proxy ajax 22 | ajax = $.ajax; 23 | $.ajax = function( settings ) { 24 | var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, 25 | port = ( "port" in settings ? settings : $.ajaxSettings ).port; 26 | if ( mode === "abort" ) { 27 | if ( pendingRequests[ port ] ) { 28 | pendingRequests[ port ].abort(); 29 | } 30 | pendingRequests[ port ] = ajax.apply( this, arguments ); 31 | return pendingRequests[ port ]; 32 | } 33 | return ajax.apply( this, arguments ); 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ar.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: AR (Arabic; العربية) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "هذا الحقل إلزامي", 7 | remote: "يرجى تصحيح هذا الحقل للمتابعة", 8 | email: "رجاء إدخال عنوان بريد إلكتروني صحيح", 9 | url: "رجاء إدخال عنوان موقع إلكتروني صحيح", 10 | date: "رجاء إدخال تاريخ صحيح", 11 | dateISO: "رجاء إدخال تاريخ صحيح (ISO)", 12 | number: "رجاء إدخال عدد بطريقة صحيحة", 13 | digits: "رجاء إدخال أرقام فقط", 14 | creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح", 15 | equalTo: "رجاء إدخال نفس القيمة", 16 | extension: "رجاء إدخال ملف بامتداد موافق عليه", 17 | maxlength: $.validator.format( "الحد الأقصى لعدد الحروف هو {0}" ), 18 | minlength: $.validator.format( "الحد الأدنى لعدد الحروف هو {0}" ), 19 | rangelength: $.validator.format( "عدد الحروف يجب أن يكون بين {0} و {1}" ), 20 | range: $.validator.format( "رجاء إدخال عدد قيمته بين {0} و {1}" ), 21 | max: $.validator.format( "رجاء إدخال عدد أقل من أو يساوي (0}" ), 22 | min: $.validator.format( "رجاء إدخال عدد أكبر من أو يساوي (0}" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_bg.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: BG (Bulgarian; български език) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Полето е задължително.", 7 | remote: "Моля, въведете правилната стойност.", 8 | email: "Моля, въведете валиден email.", 9 | url: "Моля, въведете валидно URL.", 10 | date: "Моля, въведете валидна дата.", 11 | dateISO: "Моля, въведете валидна дата (ISO).", 12 | number: "Моля, въведете валиден номер.", 13 | digits: "Моля, въведете само цифри.", 14 | creditcard: "Моля, въведете валиден номер на кредитна карта.", 15 | equalTo: "Моля, въведете същата стойност отново.", 16 | extension: "Моля, въведете стойност с валидно разширение.", 17 | maxlength: $.validator.format( "Моля, въведете повече от {0} символа." ), 18 | minlength: $.validator.format( "Моля, въведете поне {0} символа." ), 19 | rangelength: $.validator.format( "Моля, въведете стойност с дължина между {0} и {1} символа." ), 20 | range: $.validator.format( "Моля, въведете стойност между {0} и {1}." ), 21 | max: $.validator.format( "Моля, въведете стойност по-малка или равна на {0}." ), 22 | min: $.validator.format( "Моля, въведете стойност по-голяма или равна на {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_bn_BD.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: bn_BD (Bengali, Bangladesh) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "এই তথ্যটি আবশ্যক।", 7 | remote: "এই তথ্যটি ঠিক করুন।", 8 | email: "অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।", 9 | url: "অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।", 10 | date: "তারিখ সঠিক নয়।", 11 | dateISO: "অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।", 12 | number: "অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।", 13 | digits: "এখানে শুধু সংখ্যা ব্যবহার করা যাবে।", 14 | creditcard: "অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।", 15 | equalTo: "একই মান আবার লিখুন।", 16 | extension: "সঠিক ধরনের ফাইল আপলোড করুন।", 17 | maxlength: $.validator.format( "{0}টির বেশি অক্ষর লেখা যাবে না।" ), 18 | minlength: $.validator.format( "{0}টির কম অক্ষর লেখা যাবে না।" ), 19 | rangelength: $.validator.format( "{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।" ), 20 | range: $.validator.format( "{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।" ), 21 | max: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।" ), 22 | min: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ca.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: CA (Catalan; català) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Aquest camp és obligatori.", 7 | remote: "Si us plau, omple aquest camp.", 8 | email: "Si us plau, escriu una adreça de correu-e vàlida", 9 | url: "Si us plau, escriu una URL vàlida.", 10 | date: "Si us plau, escriu una data vàlida.", 11 | dateISO: "Si us plau, escriu una data (ISO) vàlida.", 12 | number: "Si us plau, escriu un número enter vàlid.", 13 | digits: "Si us plau, escriu només dígits.", 14 | creditcard: "Si us plau, escriu un número de tarjeta vàlid.", 15 | equalTo: "Si us plau, escriu el mateix valor de nou.", 16 | extension: "Si us plau, escriu un valor amb una extensió acceptada.", 17 | maxlength: $.validator.format( "Si us plau, no escriguis més de {0} caracters." ), 18 | minlength: $.validator.format( "Si us plau, no escriguis menys de {0} caracters." ), 19 | rangelength: $.validator.format( "Si us plau, escriu un valor entre {0} i {1} caracters." ), 20 | range: $.validator.format( "Si us plau, escriu un valor entre {0} i {1}." ), 21 | max: $.validator.format( "Si us plau, escriu un valor menor o igual a {0}." ), 22 | min: $.validator.format( "Si us plau, escriu un valor major o igual a {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_cs.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: CS (Czech; čeština, český jazyk) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Tento údaj je povinný.", 7 | remote: "Prosím, opravte tento údaj.", 8 | email: "Prosím, zadejte platný e-mail.", 9 | url: "Prosím, zadejte platné URL.", 10 | date: "Prosím, zadejte platné datum.", 11 | dateISO: "Prosím, zadejte platné datum (ISO).", 12 | number: "Prosím, zadejte číslo.", 13 | digits: "Prosím, zadávejte pouze číslice.", 14 | creditcard: "Prosím, zadejte číslo kreditní karty.", 15 | equalTo: "Prosím, zadejte znovu stejnou hodnotu.", 16 | extension: "Prosím, zadejte soubor se správnou příponou.", 17 | maxlength: $.validator.format( "Prosím, zadejte nejvíce {0} znaků." ), 18 | minlength: $.validator.format( "Prosím, zadejte nejméně {0} znaků." ), 19 | rangelength: $.validator.format( "Prosím, zadejte od {0} do {1} znaků." ), 20 | range: $.validator.format( "Prosím, zadejte hodnotu od {0} do {1}." ), 21 | max: $.validator.format( "Prosím, zadejte hodnotu menší nebo rovnu {0}." ), 22 | min: $.validator.format( "Prosím, zadejte hodnotu větší nebo rovnu {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_da.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: DA (Danish; dansk) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Dette felt er påkrævet.", 7 | maxlength: $.validator.format( "Indtast højst {0} tegn." ), 8 | minlength: $.validator.format( "Indtast mindst {0} tegn." ), 9 | rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ), 10 | email: "Indtast en gyldig email-adresse.", 11 | url: "Indtast en gyldig URL.", 12 | date: "Indtast en gyldig dato.", 13 | number: "Indtast et tal.", 14 | digits: "Indtast kun cifre.", 15 | equalTo: "Indtast den samme værdi igen.", 16 | range: $.validator.format( "Angiv en værdi mellem {0} og {1}." ), 17 | max: $.validator.format( "Angiv en værdi der højst er {0}." ), 18 | min: $.validator.format( "Angiv en værdi der mindst er {0}." ), 19 | creditcard: "Indtast et gyldigt kreditkortnummer." 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_de.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: DE (German, Deutsch) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Dieses Feld ist ein Pflichtfeld.", 7 | maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ), 8 | minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), 9 | rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ), 10 | email: "Geben Sie bitte eine gültige E-Mail Adresse ein.", 11 | url: "Geben Sie bitte eine gültige URL ein.", 12 | date: "Bitte geben Sie ein gültiges Datum ein.", 13 | number: "Geben Sie bitte eine Nummer ein.", 14 | digits: "Geben Sie bitte nur Ziffern ein.", 15 | equalTo: "Bitte denselben Wert wiederholen.", 16 | range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ), 17 | max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ), 18 | min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ), 19 | creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein." 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_el.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: EL (Greek; ελληνικά) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Αυτό το πεδίο είναι υποχρεωτικό.", 7 | remote: "Παρακαλώ διορθώστε αυτό το πεδίο.", 8 | email: "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.", 9 | url: "Παρακαλώ εισάγετε ένα έγκυρο URL.", 10 | date: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.", 11 | dateISO: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).", 12 | number: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό.", 13 | digits: "Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.", 14 | creditcard: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.", 15 | equalTo: "Παρακαλώ εισάγετε την ίδια τιμή ξανά.", 16 | extension: "Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.", 17 | maxlength: $.validator.format( "Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες." ), 18 | minlength: $.validator.format( "Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες." ), 19 | rangelength: $.validator.format( "Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων." ), 20 | range: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}." ), 21 | max: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}." ), 22 | min: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_es.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: ES (Spanish; Español) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Este campo es obligatorio.", 7 | remote: "Por favor, rellena este campo.", 8 | email: "Por favor, escribe una dirección de correo válida.", 9 | url: "Por favor, escribe una URL válida.", 10 | date: "Por favor, escribe una fecha válida.", 11 | dateISO: "Por favor, escribe una fecha (ISO) válida.", 12 | number: "Por favor, escribe un número válido.", 13 | digits: "Por favor, escribe sólo dígitos.", 14 | creditcard: "Por favor, escribe un número de tarjeta válido.", 15 | equalTo: "Por favor, escribe el mismo valor de nuevo.", 16 | extension: "Por favor, escribe un valor con una extensión aceptada.", 17 | maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ), 18 | minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ), 19 | rangelength: $.validator.format( "Por favor, escribe un valor entre {0} y {1} caracteres." ), 20 | range: $.validator.format( "Por favor, escribe un valor entre {0} y {1}." ), 21 | max: $.validator.format( "Por favor, escribe un valor menor o igual a {0}." ), 22 | min: $.validator.format( "Por favor, escribe un valor mayor o igual a {0}." ), 23 | nifES: "Por favor, escribe un NIF válido.", 24 | nieES: "Por favor, escribe un NIE válido.", 25 | cifES: "Por favor, escribe un CIF válido." 26 | } ); 27 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_et.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: ET (Estonian; eesti, eesti keel) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "See väli peab olema täidetud.", 7 | maxlength: $.validator.format( "Palun sisestage vähem kui {0} tähemärki." ), 8 | minlength: $.validator.format( "Palun sisestage vähemalt {0} tähemärki." ), 9 | rangelength: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki." ), 10 | email: "Palun sisestage korrektne e-maili aadress.", 11 | url: "Palun sisestage korrektne URL.", 12 | date: "Palun sisestage korrektne kuupäev.", 13 | dateISO: "Palun sisestage korrektne kuupäev (YYYY-MM-DD).", 14 | number: "Palun sisestage korrektne number.", 15 | digits: "Palun sisestage ainult numbreid.", 16 | equalTo: "Palun sisestage sama väärtus uuesti.", 17 | range: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1}." ), 18 | max: $.validator.format( "Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}." ), 19 | min: $.validator.format( "Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}." ), 20 | creditcard: "Palun sisestage korrektne krediitkaardi number." 21 | } ); 22 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_eu.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: EU (Basque; euskara, euskera) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Eremu hau beharrezkoa da.", 7 | remote: "Mesedez, bete eremu hau.", 8 | email: "Mesedez, idatzi baliozko posta helbide bat.", 9 | url: "Mesedez, idatzi baliozko URL bat.", 10 | date: "Mesedez, idatzi baliozko data bat.", 11 | dateISO: "Mesedez, idatzi baliozko (ISO) data bat.", 12 | number: "Mesedez, idatzi baliozko zenbaki oso bat.", 13 | digits: "Mesedez, idatzi digituak soilik.", 14 | creditcard: "Mesedez, idatzi baliozko txartel zenbaki bat.", 15 | equalTo: "Mesedez, idatzi berdina berriro ere.", 16 | extension: "Mesedez, idatzi onartutako luzapena duen balio bat.", 17 | maxlength: $.validator.format( "Mesedez, ez idatzi {0} karaktere baino gehiago." ), 18 | minlength: $.validator.format( "Mesedez, ez idatzi {0} karaktere baino gutxiago." ), 19 | rangelength: $.validator.format( "Mesedez, idatzi {0} eta {1} karaktere arteko balio bat." ), 20 | range: $.validator.format( "Mesedez, idatzi {0} eta {1} arteko balio bat." ), 21 | max: $.validator.format( "Mesedez, idatzi {0} edo txikiagoa den balio bat." ), 22 | min: $.validator.format( "Mesedez, idatzi {0} edo handiagoa den balio bat." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_fa.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: FA (Persian; فارسی) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "تکمیل این فیلد اجباری است.", 7 | remote: "لطفا این فیلد را تصحیح کنید.", 8 | email: ".لطفا یک ایمیل صحیح وارد کنید", 9 | url: "لطفا آدرس صحیح وارد کنید.", 10 | date: "لطفا یک تاریخ صحیح وارد کنید", 11 | dateFA: "لطفا یک تاریخ صحیح وارد کنید", 12 | dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).", 13 | number: "لطفا عدد صحیح وارد کنید.", 14 | digits: "لطفا تنها رقم وارد کنید", 15 | creditcard: "لطفا کریدیت کارت صحیح وارد کنید.", 16 | equalTo: "لطفا مقدار برابری وارد کنید", 17 | extension: "لطفا مقداری وارد کنید که ", 18 | maxlength: $.validator.format( "لطفا بیشتر از {0} حرف وارد نکنید." ), 19 | minlength: $.validator.format( "لطفا کمتر از {0} حرف وارد نکنید." ), 20 | rangelength: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ), 21 | range: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ), 22 | max: $.validator.format( "لطفا مقداری کمتر از {0} وارد کنید." ), 23 | min: $.validator.format( "لطفا مقداری بیشتر از {0} وارد کنید." ), 24 | minWords: $.validator.format( "لطفا حداقل {0} کلمه وارد کنید." ), 25 | maxWords: $.validator.format( "لطفا حداکثر {0} کلمه وارد کنید." ) 26 | } ); 27 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_fi.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: FI (Finnish; suomi, suomen kieli) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Tämä kenttä on pakollinen.", 7 | email: "Syötä oikea sähköpostiosoite.", 8 | url: "Syötä oikea URL-osoite.", 9 | date: "Syötä oikea päivämäärä.", 10 | dateISO: "Syötä oikea päivämäärä muodossa VVVV-KK-PP.", 11 | number: "Syötä luku.", 12 | creditcard: "Syötä voimassa oleva luottokorttinumero.", 13 | digits: "Syötä pelkästään numeroita.", 14 | equalTo: "Syötä sama arvo uudestaan.", 15 | maxlength: $.validator.format( "Voit syöttää enintään {0} merkkiä." ), 16 | minlength: $.validator.format( "Vähintään {0} merkkiä." ), 17 | rangelength: $.validator.format( "Syötä vähintään {0} ja enintään {1} merkkiä." ), 18 | range: $.validator.format( "Syötä arvo väliltä {0}–{1}." ), 19 | max: $.validator.format( "Syötä arvo, joka on enintään {0}." ), 20 | min: $.validator.format( "Syötä arvo, joka on vähintään {0}." ) 21 | } ); 22 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ge.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author @tatocaster 3 | * Translated default messages for the jQuery validation plugin. 4 | * Locale: GE (Georgian; ქართული) 5 | */ 6 | $.extend( $.validator.messages, { 7 | required: "ეს ველი სავალდებულოა", 8 | remote: "გთხოვთ შეასწოროთ.", 9 | email: "გთხოვთ შეიყვანოთ სწორი ფორმატით.", 10 | url: "გთხოვთ შეიყვანოთ სწორი ფორმატით.", 11 | date: "გთხოვთ შეიყვანოთ სწორი თარიღი.", 12 | dateISO: "გთხოვთ შეიყვანოთ სწორი ფორმატით ( ISO ).", 13 | number: "გთხოვთ შეიყვანოთ რიცხვი.", 14 | digits: "დაშვებულია მხოლოდ ციფრები.", 15 | creditcard: "გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.", 16 | equalTo: "გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.", 17 | maxlength: $.validator.format( "გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი." ), 18 | minlength: $.validator.format( "შეიყვანეთ მინიმუმ {0} სიმბოლო." ), 19 | rangelength: $.validator.format( "გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები." ), 20 | range: $.validator.format( "შეიყვანეთ {0} -სა {1} -ს შორის." ), 21 | max: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს." ), 22 | min: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_he.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: HE (Hebrew; עברית) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "השדה הזה הינו שדה חובה", 7 | remote: "נא לתקן שדה זה", 8 | email: "נא למלא כתובת דוא\"ל חוקית", 9 | url: "נא למלא כתובת אינטרנט חוקית", 10 | date: "נא למלא תאריך חוקי", 11 | dateISO: "נא למלא תאריך חוקי (ISO)", 12 | number: "נא למלא מספר", 13 | digits: "נא למלא רק מספרים", 14 | creditcard: "נא למלא מספר כרטיס אשראי חוקי", 15 | equalTo: "נא למלא את אותו ערך שוב", 16 | extension: "נא למלא ערך עם סיומת חוקית", 17 | maxlength: $.validator.format( ".נא לא למלא יותר מ- {0} תווים" ), 18 | minlength: $.validator.format( "נא למלא לפחות {0} תווים" ), 19 | rangelength: $.validator.format( "נא למלא ערך בין {0} ל- {1} תווים" ), 20 | range: $.validator.format( "נא למלא ערך בין {0} ל- {1}" ), 21 | max: $.validator.format( "נא למלא ערך קטן או שווה ל- {0}" ), 22 | min: $.validator.format( "נא למלא ערך גדול או שווה ל- {0}" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_hr.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: HR (Croatia; hrvatski jezik) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Ovo polje je obavezno.", 7 | remote: "Ovo polje treba popraviti.", 8 | email: "Unesite ispravnu e-mail adresu.", 9 | url: "Unesite ispravan URL.", 10 | date: "Unesite ispravan datum.", 11 | dateISO: "Unesite ispravan datum (ISO).", 12 | number: "Unesite ispravan broj.", 13 | digits: "Unesite samo brojeve.", 14 | creditcard: "Unesite ispravan broj kreditne kartice.", 15 | equalTo: "Unesite ponovo istu vrijednost.", 16 | extension: "Unesite vrijednost sa ispravnom ekstenzijom.", 17 | maxlength: $.validator.format( "Maksimalni broj znakova je {0} ." ), 18 | minlength: $.validator.format( "Minimalni broj znakova je {0} ." ), 19 | rangelength: $.validator.format( "Unesite vrijednost između {0} i {1} znakova." ), 20 | range: $.validator.format( "Unesite vrijednost između {0} i {1}." ), 21 | max: $.validator.format( "Unesite vrijednost manju ili jednaku {0}." ), 22 | min: $.validator.format( "Unesite vrijednost veću ili jednaku {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_hu.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: HU (Hungarian; Magyar) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Kötelező megadni.", 7 | maxlength: $.validator.format( "Legfeljebb {0} karakter hosszú legyen." ), 8 | minlength: $.validator.format( "Legalább {0} karakter hosszú legyen." ), 9 | rangelength: $.validator.format( "Legalább {0} és legfeljebb {1} karakter hosszú legyen." ), 10 | email: "Érvényes e-mail címnek kell lennie.", 11 | url: "Érvényes URL-nek kell lennie.", 12 | date: "Dátumnak kell lennie.", 13 | number: "Számnak kell lennie.", 14 | digits: "Csak számjegyek lehetnek.", 15 | equalTo: "Meg kell egyeznie a két értéknek.", 16 | range: $.validator.format( "{0} és {1} közé kell esnie." ), 17 | max: $.validator.format( "Nem lehet nagyobb, mint {0}." ), 18 | min: $.validator.format( "Nem lehet kisebb, mint {0}." ), 19 | creditcard: "Érvényes hitelkártyaszámnak kell lennie.", 20 | remote: "Kérem javítsa ki ezt a mezőt.", 21 | dateISO: "Kérem írjon be egy érvényes dátumot (ISO)." 22 | } ); 23 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_hy_AM.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: HY_AM (Armenian; հայերեն լեզու) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Պարտադիր լրացման դաշտ", 7 | remote: "Ներմուծեք ճիշտ արժեքը", 8 | email: "Ներմուծեք վավեր էլեկտրոնային փոստի հասցե", 9 | url: "Ներմուծեք վավեր URL", 10 | date: "Ներմուծեք վավեր ամսաթիվ", 11 | dateISO: "Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։", 12 | number: "Ներմուծեք թիվ", 13 | digits: "Ներմուծեք միայն թվեր", 14 | creditcard: "Ներմուծեք ճիշտ բանկային քարտի համար", 15 | equalTo: "Ներմուծեք միևնուն արժեքը ևս մեկ անգամ", 16 | extension: "Ընտրեք ճիշտ ընդլանումով ֆայլ", 17 | maxlength: $.validator.format( "Ներմուծեք ոչ ավել քան {0} նիշ" ), 18 | minlength: $.validator.format( "Ներմուծեք ոչ պակաս քան {0} նիշ" ), 19 | rangelength: $.validator.format( "Ներմուծեք {0}֊ից {1} երկարությամբ արժեք" ), 20 | range: $.validator.format( "Ներմուծեք թիվ {0}֊ից {1} միջակայքում" ), 21 | max: $.validator.format( "Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին" ), 22 | min: $.validator.format( "Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_id.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: ID (Indonesia; Indonesian) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Kolom ini diperlukan.", 7 | remote: "Harap benarkan kolom ini.", 8 | email: "Silakan masukkan format email yang benar.", 9 | url: "Silakan masukkan format URL yang benar.", 10 | date: "Silakan masukkan format tanggal yang benar.", 11 | dateISO: "Silakan masukkan format tanggal(ISO) yang benar.", 12 | number: "Silakan masukkan angka yang benar.", 13 | digits: "Harap masukan angka saja.", 14 | creditcard: "Harap masukkan format kartu kredit yang benar.", 15 | equalTo: "Harap masukkan nilai yg sama dengan sebelumnya.", 16 | maxlength: $.validator.format( "Input dibatasi hanya {0} karakter." ), 17 | minlength: $.validator.format( "Input tidak kurang dari {0} karakter." ), 18 | rangelength: $.validator.format( "Panjang karakter yg diizinkan antara {0} dan {1} karakter." ), 19 | range: $.validator.format( "Harap masukkan nilai antara {0} dan {1}." ), 20 | max: $.validator.format( "Harap masukkan nilai lebih kecil atau sama dengan {0}." ), 21 | min: $.validator.format( "Harap masukkan nilai lebih besar atau sama dengan {0}." ) 22 | } ); 23 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_is.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: IS (Icelandic; íslenska) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Þessi reitur er nauðsynlegur.", 7 | remote: "Lagaðu þennan reit.", 8 | maxlength: $.validator.format( "Sláðu inn mest {0} stafi." ), 9 | minlength: $.validator.format( "Sláðu inn minnst {0} stafi." ), 10 | rangelength: $.validator.format( "Sláðu inn minnst {0} og mest {1} stafi." ), 11 | email: "Sláðu inn gilt netfang.", 12 | url: "Sláðu inn gilda vefslóð.", 13 | date: "Sláðu inn gilda dagsetningu.", 14 | number: "Sláðu inn tölu.", 15 | digits: "Sláðu inn tölustafi eingöngu.", 16 | equalTo: "Sláðu sama gildi inn aftur.", 17 | range: $.validator.format( "Sláðu inn gildi milli {0} og {1}." ), 18 | max: $.validator.format( "Sláðu inn gildi sem er minna en eða jafnt og {0}." ), 19 | min: $.validator.format( "Sláðu inn gildi sem er stærra en eða jafnt og {0}." ), 20 | creditcard: "Sláðu inn gilt greiðslukortanúmer." 21 | } ); 22 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_it.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: IT (Italian; Italiano) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Campo obbligatorio", 7 | remote: "Controlla questo campo", 8 | email: "Inserisci un indirizzo email valido", 9 | url: "Inserisci un indirizzo web valido", 10 | date: "Inserisci una data valida", 11 | dateISO: "Inserisci una data valida (ISO)", 12 | number: "Inserisci un numero valido", 13 | digits: "Inserisci solo numeri", 14 | creditcard: "Inserisci un numero di carta di credito valido", 15 | equalTo: "Il valore non corrisponde", 16 | extension: "Inserisci un valore con un'estensione valida", 17 | maxlength: $.validator.format( "Non inserire più di {0} caratteri" ), 18 | minlength: $.validator.format( "Inserisci almeno {0} caratteri" ), 19 | rangelength: $.validator.format( "Inserisci un valore compreso tra {0} e {1} caratteri" ), 20 | range: $.validator.format( "Inserisci un valore compreso tra {0} e {1}" ), 21 | max: $.validator.format( "Inserisci un valore minore o uguale a {0}" ), 22 | min: $.validator.format( "Inserisci un valore maggiore o uguale a {0}" ), 23 | nifES: "Inserisci un NIF valido", 24 | nieES: "Inserisci un NIE valido", 25 | cifES: "Inserisci un CIF valido", 26 | currency: "Inserisci una valuta valida" 27 | } ); 28 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ja.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: JA (Japanese; 日本語) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "このフィールドは必須です。", 7 | remote: "このフィールドを修正してください。", 8 | email: "有効なEメールアドレスを入力してください。", 9 | url: "有効なURLを入力してください。", 10 | date: "有効な日付を入力してください。", 11 | dateISO: "有効な日付(ISO)を入力してください。", 12 | number: "有効な数字を入力してください。", 13 | digits: "数字のみを入力してください。", 14 | creditcard: "有効なクレジットカード番号を入力してください。", 15 | equalTo: "同じ値をもう一度入力してください。", 16 | extension: "有効な拡張子を含む値を入力してください。", 17 | maxlength: $.validator.format( "{0} 文字以内で入力してください。" ), 18 | minlength: $.validator.format( "{0} 文字以上で入力してください。" ), 19 | rangelength: $.validator.format( "{0} 文字から {1} 文字までの値を入力してください。" ), 20 | range: $.validator.format( "{0} から {1} までの値を入力してください。" ), 21 | max: $.validator.format( "{0} 以下の値を入力してください。" ), 22 | min: $.validator.format( "{0} 以上の値を入力してください。" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ka.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: KA (Georgian; ქართული) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "ამ ველის შევსება აუცილებელია.", 7 | remote: "გთხოვთ მიუთითოთ სწორი მნიშვნელობა.", 8 | email: "გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.", 9 | url: "გთხოვთ მიუთითოთ კორექტული URL.", 10 | date: "გთხოვთ მიუთითოთ კორექტული თარიღი.", 11 | dateISO: "გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.", 12 | number: "გთხოვთ მიუთითოთ ციფრი.", 13 | digits: "გთხოვთ მიუთითოთ მხოლოდ ციფრები.", 14 | creditcard: "გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.", 15 | equalTo: "გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.", 16 | extension: "გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.", 17 | maxlength: $.validator.format( "დასაშვებია არაუმეტეს {0} სიმბოლო." ), 18 | minlength: $.validator.format( "აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო." ), 19 | rangelength: $.validator.format( "ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე." ), 20 | range: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე." ), 21 | max: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს." ), 22 | min: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_kk.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: KK (Kazakh; қазақ тілі) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Бұл өрісті міндетті түрде толтырыңыз.", 7 | remote: "Дұрыс мағына енгізуіңізді сұраймыз.", 8 | email: "Нақты электронды поштаңызды енгізуіңізді сұраймыз.", 9 | url: "Нақты URL-ды енгізуіңізді сұраймыз.", 10 | date: "Нақты URL-ды енгізуіңізді сұраймыз.", 11 | dateISO: "Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.", 12 | number: "Күнді енгізуіңізді сұраймыз.", 13 | digits: "Тек қана сандарды енгізуіңізді сұраймыз.", 14 | creditcard: "Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.", 15 | equalTo: "Осы мәнді қайта енгізуіңізді сұраймыз.", 16 | extension: "Файлдың кеңейтуін дұрыс таңдаңыз.", 17 | maxlength: $.validator.format( "Ұзындығы {0} символдан көр болмасын." ), 18 | minlength: $.validator.format( "Ұзындығы {0} символдан аз болмасын." ), 19 | rangelength: $.validator.format( "Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз." ), 20 | range: $.validator.format( "Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз." ), 21 | max: $.validator.format( "{0} аз немесе тең санын енгізуіңіді сұраймыз." ), 22 | min: $.validator.format( "{0} көп немесе тең санын енгізуіңізді сұраймыз." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ko.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: KO (Korean; 한국어) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "필수 항목입니다.", 7 | remote: "항목을 수정하세요.", 8 | email: "유효하지 않은 E-Mail주소입니다.", 9 | url: "유효하지 않은 URL입니다.", 10 | date: "올바른 날짜를 입력하세요.", 11 | dateISO: "올바른 날짜(ISO)를 입력하세요.", 12 | number: "유효한 숫자가 아닙니다.", 13 | digits: "숫자만 입력 가능합니다.", 14 | creditcard: "신용카드 번호가 바르지 않습니다.", 15 | equalTo: "같은 값을 다시 입력하세요.", 16 | extension: "올바른 확장자가 아닙니다.", 17 | maxlength: $.validator.format( "{0}자를 넘을 수 없습니다. " ), 18 | minlength: $.validator.format( "{0}자 이상 입력하세요." ), 19 | rangelength: $.validator.format( "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요." ), 20 | range: $.validator.format( "{0} 에서 {1} 사이의 값을 입력하세요." ), 21 | max: $.validator.format( "{0} 이하의 값을 입력하세요." ), 22 | min: $.validator.format( "{0} 이상의 값을 입력하세요." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_lt.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: LT (Lithuanian; lietuvių kalba) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Šis laukas yra privalomas.", 7 | remote: "Prašau pataisyti šį lauką.", 8 | email: "Prašau įvesti teisingą elektroninio pašto adresą.", 9 | url: "Prašau įvesti teisingą URL.", 10 | date: "Prašau įvesti teisingą datą.", 11 | dateISO: "Prašau įvesti teisingą datą (ISO).", 12 | number: "Prašau įvesti teisingą skaičių.", 13 | digits: "Prašau naudoti tik skaitmenis.", 14 | creditcard: "Prašau įvesti teisingą kreditinės kortelės numerį.", 15 | equalTo: "Prašau įvestį tą pačią reikšmę dar kartą.", 16 | extension: "Prašau įvesti reikšmę su teisingu plėtiniu.", 17 | maxlength: $.validator.format( "Prašau įvesti ne daugiau kaip {0} simbolių." ), 18 | minlength: $.validator.format( "Prašau įvesti bent {0} simbolius." ), 19 | rangelength: $.validator.format( "Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių." ), 20 | range: $.validator.format( "Prašau įvesti reikšmę intervale nuo {0} iki {1}." ), 21 | max: $.validator.format( "Prašau įvesti reikšmę mažesnę arba lygią {0}." ), 22 | min: $.validator.format( "Prašau įvesti reikšmę didesnę arba lygią {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_lv.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: LV (Latvian; latviešu valoda) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Šis lauks ir obligāts.", 7 | remote: "Lūdzu, pārbaudiet šo lauku.", 8 | email: "Lūdzu, ievadiet derīgu e-pasta adresi.", 9 | url: "Lūdzu, ievadiet derīgu URL adresi.", 10 | date: "Lūdzu, ievadiet derīgu datumu.", 11 | dateISO: "Lūdzu, ievadiet derīgu datumu (ISO).", 12 | number: "Lūdzu, ievadiet derīgu numuru.", 13 | digits: "Lūdzu, ievadiet tikai ciparus.", 14 | creditcard: "Lūdzu, ievadiet derīgu kredītkartes numuru.", 15 | equalTo: "Lūdzu, ievadiet to pašu vēlreiz.", 16 | extension: "Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.", 17 | maxlength: $.validator.format( "Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes." ), 18 | minlength: $.validator.format( "Lūdzu, ievadiet vismaz {0} rakstzīmes." ), 19 | rangelength: $.validator.format( "Lūdzu ievadiet {0} līdz {1} rakstzīmes." ), 20 | range: $.validator.format( "Lūdzu, ievadiet skaitli no {0} līdz {1}." ), 21 | max: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}." ), 22 | min: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_mk.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: MK (Macedonian; македонски јазик) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Полето е задолжително.", 7 | remote: "Поправете го ова поле", 8 | email: "Внесете правилна e-mail адреса", 9 | url: "Внесете правилен URL.", 10 | date: "Внесете правилен датум", 11 | dateISO: "Внесете правилен датум (ISO).", 12 | number: "Внесете правилен број.", 13 | digits: "Внесете само бројки.", 14 | creditcard: "Внесете правилен број на кредитната картичка.", 15 | equalTo: "Внесете ја истата вредност повторно.", 16 | extension: "Внесете вредност со соодветна екстензија.", 17 | maxlength: $.validator.format( "Внесете максимално {0} знаци." ), 18 | minlength: $.validator.format( "Внесете барем {0} знаци." ), 19 | rangelength: $.validator.format( "Внесете вредност со должина помеѓу {0} и {1} знаци." ), 20 | range: $.validator.format( "Внесете вредност помеѓу {0} и {1}." ), 21 | max: $.validator.format( "Внесете вредност помала или еднаква на {0}." ), 22 | min: $.validator.format( "Внесете вредност поголема или еднаква на {0}" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_my.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: MY (Malay; Melayu) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Medan ini diperlukan.", 7 | remote: "Sila betulkan medan ini.", 8 | email: "Sila masukkan alamat emel yang betul.", 9 | url: "Sila masukkan URL yang betul.", 10 | date: "Sila masukkan tarikh yang betul.", 11 | dateISO: "Sila masukkan tarikh(ISO) yang betul.", 12 | number: "Sila masukkan nombor yang betul.", 13 | digits: "Sila masukkan nilai digit sahaja.", 14 | creditcard: "Sila masukkan nombor kredit kad yang betul.", 15 | equalTo: "Sila masukkan nilai yang sama semula.", 16 | extension: "Sila masukkan nilai yang telah diterima.", 17 | maxlength: $.validator.format( "Sila masukkan tidak lebih dari {0} aksara." ), 18 | minlength: $.validator.format( "Sila masukkan sekurang-kurangnya {0} aksara." ), 19 | rangelength: $.validator.format( "Sila masukkan antara {0} dan {1} panjang aksara." ), 20 | range: $.validator.format( "Sila masukkan nilai antara {0} dan {1} aksara." ), 21 | max: $.validator.format( "Sila masukkan nilai yang kurang atau sama dengan {0}." ), 22 | min: $.validator.format( "Sila masukkan nilai yang lebih atau sama dengan {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_no.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: NO (Norwegian; Norsk) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Dette feltet er obligatorisk.", 7 | maxlength: $.validator.format( "Maksimalt {0} tegn." ), 8 | minlength: $.validator.format( "Minimum {0} tegn." ), 9 | rangelength: $.validator.format( "Angi minimum {0} og maksimum {1} tegn." ), 10 | email: "Oppgi en gyldig epostadresse.", 11 | url: "Angi en gyldig URL.", 12 | date: "Angi en gyldig dato.", 13 | dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).", 14 | dateSE: "Angi en gyldig dato.", 15 | number: "Angi et gyldig nummer.", 16 | numberSE: "Angi et gyldig nummer.", 17 | digits: "Skriv kun tall.", 18 | equalTo: "Skriv samme verdi igjen.", 19 | range: $.validator.format( "Angi en verdi mellom {0} og {1}." ), 20 | max: $.validator.format( "Angi en verdi som er mindre eller lik {0}." ), 21 | min: $.validator.format( "Angi en verdi som er større eller lik {0}." ), 22 | creditcard: "Angi et gyldig kredittkortnummer." 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_pl.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: PL (Polish; język polski, polszczyzna) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "To pole jest wymagane.", 7 | remote: "Proszę o wypełnienie tego pola.", 8 | email: "Proszę o podanie prawidłowego adresu email.", 9 | url: "Proszę o podanie prawidłowego URL.", 10 | date: "Proszę o podanie prawidłowej daty.", 11 | dateISO: "Proszę o podanie prawidłowej daty (ISO).", 12 | number: "Proszę o podanie prawidłowej liczby.", 13 | digits: "Proszę o podanie samych cyfr.", 14 | creditcard: "Proszę o podanie prawidłowej karty kredytowej.", 15 | equalTo: "Proszę o podanie tej samej wartości ponownie.", 16 | extension: "Proszę o podanie wartości z prawidłowym rozszerzeniem.", 17 | maxlength: $.validator.format( "Proszę o podanie nie więcej niż {0} znaków." ), 18 | minlength: $.validator.format( "Proszę o podanie przynajmniej {0} znaków." ), 19 | rangelength: $.validator.format( "Proszę o podanie wartości o długości od {0} do {1} znaków." ), 20 | range: $.validator.format( "Proszę o podanie wartości z przedziału od {0} do {1}." ), 21 | max: $.validator.format( "Proszę o podanie wartości mniejszej bądź równej {0}." ), 22 | min: $.validator.format( "Proszę o podanie wartości większej bądź równej {0}." ), 23 | pattern: $.validator.format( "Pole zawiera niedozwolone znaki." ) 24 | } ); 25 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ro.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: RO (Romanian, limba română) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Acest câmp este obligatoriu.", 7 | remote: "Te rugăm să completezi acest câmp.", 8 | email: "Te rugăm să introduci o adresă de email validă", 9 | url: "Te rugăm sa introduci o adresă URL validă.", 10 | date: "Te rugăm să introduci o dată corectă.", 11 | dateISO: "Te rugăm să introduci o dată (ISO) corectă.", 12 | number: "Te rugăm să introduci un număr întreg valid.", 13 | digits: "Te rugăm să introduci doar cifre.", 14 | creditcard: "Te rugăm să introduci un numar de carte de credit valid.", 15 | equalTo: "Te rugăm să reintroduci valoarea.", 16 | extension: "Te rugăm să introduci o valoare cu o extensie validă.", 17 | maxlength: $.validator.format( "Te rugăm să nu introduci mai mult de {0} caractere." ), 18 | minlength: $.validator.format( "Te rugăm să introduci cel puțin {0} caractere." ), 19 | rangelength: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1} caractere." ), 20 | range: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1}." ), 21 | max: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mică decât {0}." ), 22 | min: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mare decât {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_ru.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: RU (Russian; русский язык) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Это поле необходимо заполнить.", 7 | remote: "Пожалуйста, введите правильное значение.", 8 | email: "Пожалуйста, введите корректный адрес электронной почты.", 9 | url: "Пожалуйста, введите корректный URL.", 10 | date: "Пожалуйста, введите корректную дату.", 11 | dateISO: "Пожалуйста, введите корректную дату в формате ISO.", 12 | number: "Пожалуйста, введите число.", 13 | digits: "Пожалуйста, вводите только цифры.", 14 | creditcard: "Пожалуйста, введите правильный номер кредитной карты.", 15 | equalTo: "Пожалуйста, введите такое же значение ещё раз.", 16 | extension: "Пожалуйста, выберите файл с правильным расширением.", 17 | maxlength: $.validator.format( "Пожалуйста, введите не больше {0} символов." ), 18 | minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ), 19 | rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ), 20 | range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ), 21 | max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ), 22 | min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_si.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: SI (Slovenian) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "To polje je obvezno.", 7 | remote: "Vpis v tem polju ni v pravi obliki.", 8 | email: "Prosimo, vnesite pravi email naslov.", 9 | url: "Prosimo, vnesite pravi URL.", 10 | date: "Prosimo, vnesite pravi datum.", 11 | dateISO: "Prosimo, vnesite pravi datum (ISO).", 12 | number: "Prosimo, vnesite pravo številko.", 13 | digits: "Prosimo, vnesite samo številke.", 14 | creditcard: "Prosimo, vnesite pravo številko kreditne kartice.", 15 | equalTo: "Prosimo, ponovno vnesite enako vsebino.", 16 | extension: "Prosimo, vnesite vsebino z pravo končnico.", 17 | maxlength: $.validator.format( "Prosimo, da ne vnašate več kot {0} znakov." ), 18 | minlength: $.validator.format( "Prosimo, vnesite vsaj {0} znakov." ), 19 | rangelength: $.validator.format( "Prosimo, vnesite od {0} do {1} znakov." ), 20 | range: $.validator.format( "Prosimo, vnesite vrednost med {0} in {1}." ), 21 | max: $.validator.format( "Prosimo, vnesite vrednost manjšo ali enako {0}." ), 22 | min: $.validator.format( "Prosimo, vnesite vrednost večjo ali enako {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_sk.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: SK (Slovak; slovenčina, slovenský jazyk) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Povinné zadať.", 7 | maxlength: $.validator.format( "Maximálne {0} znakov." ), 8 | minlength: $.validator.format( "Minimálne {0} znakov." ), 9 | rangelength: $.validator.format( "Minimálne {0} a maximálne {1} znakov." ), 10 | email: "E-mailová adresa musí byť platná.", 11 | url: "URL musí byť platná.", 12 | date: "Musí byť dátum.", 13 | number: "Musí byť číslo.", 14 | digits: "Môže obsahovať iba číslice.", 15 | equalTo: "Dve hodnoty sa musia rovnať.", 16 | range: $.validator.format( "Musí byť medzi {0} a {1}." ), 17 | max: $.validator.format( "Nemôže byť viac ako {0}." ), 18 | min: $.validator.format( "Nemôže byť menej ako {0}." ), 19 | creditcard: "Číslo platobnej karty musí byť platné." 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_sl.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Language: SL (Slovenian; slovenski jezik) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "To polje je obvezno.", 7 | remote: "Prosimo popravite to polje.", 8 | email: "Prosimo vnesite veljaven email naslov.", 9 | url: "Prosimo vnesite veljaven URL naslov.", 10 | date: "Prosimo vnesite veljaven datum.", 11 | dateISO: "Prosimo vnesite veljaven ISO datum.", 12 | number: "Prosimo vnesite veljavno število.", 13 | digits: "Prosimo vnesite samo števila.", 14 | creditcard: "Prosimo vnesite veljavno številko kreditne kartice.", 15 | equalTo: "Prosimo ponovno vnesite vrednost.", 16 | extension: "Prosimo vnesite vrednost z veljavno končnico.", 17 | maxlength: $.validator.format( "Prosimo vnesite največ {0} znakov." ), 18 | minlength: $.validator.format( "Prosimo vnesite najmanj {0} znakov." ), 19 | rangelength: $.validator.format( "Prosimo vnesite najmanj {0} in največ {1} znakov." ), 20 | range: $.validator.format( "Prosimo vnesite vrednost med {0} in {1}." ), 21 | max: $.validator.format( "Prosimo vnesite vrednost manjše ali enako {0}." ), 22 | min: $.validator.format( "Prosimo vnesite vrednost večje ali enako {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_sr.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: SR (Serbian; српски језик) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Поље је обавезно.", 7 | remote: "Средите ово поље.", 8 | email: "Унесите исправну и-мејл адресу.", 9 | url: "Унесите исправан URL.", 10 | date: "Унесите исправан датум.", 11 | dateISO: "Унесите исправан датум (ISO).", 12 | number: "Унесите исправан број.", 13 | digits: "Унесите само цифе.", 14 | creditcard: "Унесите исправан број кредитне картице.", 15 | equalTo: "Унесите исту вредност поново.", 16 | extension: "Унесите вредност са одговарајућом екстензијом.", 17 | maxlength: $.validator.format( "Унесите мање од {0} карактера." ), 18 | minlength: $.validator.format( "Унесите барем {0} карактера." ), 19 | rangelength: $.validator.format( "Унесите вредност дугачку између {0} и {1} карактера." ), 20 | range: $.validator.format( "Унесите вредност између {0} и {1}." ), 21 | max: $.validator.format( "Унесите вредност мању или једнаку {0}." ), 22 | min: $.validator.format( "Унесите вредност већу или једнаку {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_sr_lat.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Polje je obavezno.", 7 | remote: "Sredite ovo polje.", 8 | email: "Unesite ispravnu e-mail adresu", 9 | url: "Unesite ispravan URL.", 10 | date: "Unesite ispravan datum.", 11 | dateISO: "Unesite ispravan datum (ISO).", 12 | number: "Unesite ispravan broj.", 13 | digits: "Unesite samo cifre.", 14 | creditcard: "Unesite ispravan broj kreditne kartice.", 15 | equalTo: "Unesite istu vrednost ponovo.", 16 | extension: "Unesite vrednost sa odgovarajućom ekstenzijom.", 17 | maxlength: $.validator.format( "Unesite manje od {0} karaktera." ), 18 | minlength: $.validator.format( "Unesite barem {0} karaktera." ), 19 | rangelength: $.validator.format( "Unesite vrednost dugačku između {0} i {1} karaktera." ), 20 | range: $.validator.format( "Unesite vrednost između {0} i {1}." ), 21 | max: $.validator.format( "Unesite vrednost manju ili jednaku {0}." ), 22 | min: $.validator.format( "Unesite vrednost veću ili jednaku {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_sv.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: SV (Swedish; Svenska) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Detta fält är obligatoriskt.", 7 | maxlength: $.validator.format( "Du får ange högst {0} tecken." ), 8 | minlength: $.validator.format( "Du måste ange minst {0} tecken." ), 9 | rangelength: $.validator.format( "Ange minst {0} och max {1} tecken." ), 10 | email: "Ange en korrekt e-postadress.", 11 | url: "Ange en korrekt URL.", 12 | date: "Ange ett korrekt datum.", 13 | dateISO: "Ange ett korrekt datum (ÅÅÅÅ-MM-DD).", 14 | number: "Ange ett korrekt nummer.", 15 | digits: "Ange endast siffror.", 16 | equalTo: "Ange samma värde igen.", 17 | range: $.validator.format( "Ange ett värde mellan {0} och {1}." ), 18 | max: $.validator.format( "Ange ett värde som är mindre eller lika med {0}." ), 19 | min: $.validator.format( "Ange ett värde som är större eller lika med {0}." ), 20 | creditcard: "Ange ett korrekt kreditkortsnummer." 21 | } ); 22 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_th.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: TH (Thai; ไทย) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "โปรดระบุ", 7 | remote: "โปรดแก้ไขให้ถูกต้อง", 8 | email: "โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง", 9 | url: "โปรดระบุ URL ที่ถูกต้อง", 10 | date: "โปรดระบุวันที่ ที่ถูกต้อง", 11 | dateISO: "โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).", 12 | number: "โปรดระบุทศนิยมที่ถูกต้อง", 13 | digits: "โปรดระบุจำนวนเต็มที่ถูกต้อง", 14 | creditcard: "โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง", 15 | equalTo: "โปรดระบุค่าเดิมอีกครั้ง", 16 | extension: "โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง", 17 | maxlength: $.validator.format( "โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ" ), 18 | minlength: $.validator.format( "โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ" ), 19 | rangelength: $.validator.format( "โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ" ), 20 | range: $.validator.format( "โปรดระบุค่าระหว่าง {0} และ {1}" ), 21 | max: $.validator.format( "โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}" ), 22 | min: $.validator.format( "โปรดระบุค่ามากกว่าหรือเท่ากับ {0}" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_tj.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: TJ (Tajikistan; Забони тоҷикӣ) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Ворид кардани ин филд маҷбури аст.", 7 | remote: "Илтимос, маълумоти саҳеҳ ворид кунед.", 8 | email: "Илтимос, почтаи электронии саҳеҳ ворид кунед.", 9 | url: "Илтимос, URL адреси саҳеҳ ворид кунед.", 10 | date: "Илтимос, таърихи саҳеҳ ворид кунед.", 11 | dateISO: "Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.", 12 | number: "Илтимос, рақамҳои саҳеҳ ворид кунед.", 13 | digits: "Илтимос, танҳо рақам ворид кунед.", 14 | creditcard: "Илтимос, кредит карди саҳеҳ ворид кунед.", 15 | equalTo: "Илтимос, миқдори баробар ворид кунед.", 16 | extension: "Илтимос, қофияи файлро дуруст интихоб кунед", 17 | maxlength: $.validator.format( "Илтимос, бештар аз {0} рамз ворид накунед." ), 18 | minlength: $.validator.format( "Илтимос, камтар аз {0} рамз ворид накунед." ), 19 | rangelength: $.validator.format( "Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед." ), 20 | range: $.validator.format( "Илтимос, аз {0} то {1} рақам зиёд ворид кунед." ), 21 | max: $.validator.format( "Илтимос, бештар аз {0} рақам ворид накунед." ), 22 | min: $.validator.format( "Илтимос, камтар аз {0} рақам ворид накунед." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_tr.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: TR (Turkish; Türkçe) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Bu alanın doldurulması zorunludur.", 7 | remote: "Lütfen bu alanı düzeltin.", 8 | email: "Lütfen geçerli bir e-posta adresi giriniz.", 9 | url: "Lütfen geçerli bir web adresi (URL) giriniz.", 10 | date: "Lütfen geçerli bir tarih giriniz.", 11 | dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)", 12 | number: "Lütfen geçerli bir sayı giriniz.", 13 | digits: "Lütfen sadece sayısal karakterler giriniz.", 14 | creditcard: "Lütfen geçerli bir kredi kartı giriniz.", 15 | equalTo: "Lütfen aynı değeri tekrar giriniz.", 16 | extension: "Lütfen geçerli uzantıya sahip bir değer giriniz.", 17 | maxlength: $.validator.format( "Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz." ), 18 | minlength: $.validator.format( "Lütfen en az {0} karakter uzunluğunda bir değer giriniz." ), 19 | rangelength: $.validator.format( "Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz." ), 20 | range: $.validator.format( "Lütfen {0} ile {1} arasında bir değer giriniz." ), 21 | max: $.validator.format( "Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz." ), 22 | min: $.validator.format( "Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz." ), 23 | require_from_group: "Lütfen bu alanların en az {0} tanesini doldurunuz." 24 | } ); 25 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_uk.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: UK (Ukrainian; українська мова) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Це поле необхідно заповнити.", 7 | remote: "Будь ласка, введіть правильне значення.", 8 | email: "Будь ласка, введіть коректну адресу електронної пошти.", 9 | url: "Будь ласка, введіть коректний URL.", 10 | date: "Будь ласка, введіть коректну дату.", 11 | dateISO: "Будь ласка, введіть коректну дату у форматі ISO.", 12 | number: "Будь ласка, введіть число.", 13 | digits: "Вводите потрібно лише цифри.", 14 | creditcard: "Будь ласка, введіть правильний номер кредитної карти.", 15 | equalTo: "Будь ласка, введіть таке ж значення ще раз.", 16 | extension: "Будь ласка, виберіть файл з правильним розширенням.", 17 | maxlength: $.validator.format( "Будь ласка, введіть не більше {0} символів." ), 18 | minlength: $.validator.format( "Будь ласка, введіть не менше {0} символів." ), 19 | rangelength: $.validator.format( "Будь ласка, введіть значення довжиною від {0} до {1} символів." ), 20 | range: $.validator.format( "Будь ласка, введіть число від {0} до {1}." ), 21 | max: $.validator.format( "Будь ласка, введіть число, менше або рівно {0}." ), 22 | min: $.validator.format( "Будь ласка, введіть число, більше або рівно {0}." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_vi.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: VI (Vietnamese; Tiếng Việt) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "Hãy nhập.", 7 | remote: "Hãy sửa cho đúng.", 8 | email: "Hãy nhập email.", 9 | url: "Hãy nhập URL.", 10 | date: "Hãy nhập ngày.", 11 | dateISO: "Hãy nhập ngày (ISO).", 12 | number: "Hãy nhập số.", 13 | digits: "Hãy nhập chữ số.", 14 | creditcard: "Hãy nhập số thẻ tín dụng.", 15 | equalTo: "Hãy nhập thêm lần nữa.", 16 | extension: "Phần mở rộng không đúng.", 17 | maxlength: $.validator.format( "Hãy nhập từ {0} kí tự trở xuống." ), 18 | minlength: $.validator.format( "Hãy nhập từ {0} kí tự trở lên." ), 19 | rangelength: $.validator.format( "Hãy nhập từ {0} đến {1} kí tự." ), 20 | range: $.validator.format( "Hãy nhập từ {0} đến {1}." ), 21 | max: $.validator.format( "Hãy nhập từ {0} trở xuống." ), 22 | min: $.validator.format( "Hãy nhập từ {1} trở lên." ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_zh.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語) 4 | */ 5 | $.extend( $.validator.messages, { 6 | required: "这是必填字段", 7 | remote: "请修正此字段", 8 | email: "请输入有效的电子邮件地址", 9 | url: "请输入有效的网址", 10 | date: "请输入有效的日期", 11 | dateISO: "请输入有效的日期 (YYYY-MM-DD)", 12 | number: "请输入有效的数字", 13 | digits: "只能输入数字", 14 | creditcard: "请输入有效的信用卡号码", 15 | equalTo: "你的输入不相同", 16 | extension: "请输入有效的后缀", 17 | maxlength: $.validator.format( "最多可以输入 {0} 个字符" ), 18 | minlength: $.validator.format( "最少要输入 {0} 个字符" ), 19 | rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ), 20 | range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ), 21 | max: $.validator.format( "请输入不大于 {0} 的数值" ), 22 | min: $.validator.format( "请输入不小于 {0} 的数值" ) 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/messages_zh_TW.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Translated default messages for the jQuery validation plugin. 3 | * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語) 4 | * Region: TW (Taiwan) 5 | */ 6 | $.extend( $.validator.messages, { 7 | required: "必須填寫", 8 | remote: "請修正此欄位", 9 | email: "請輸入有效的電子郵件", 10 | url: "請輸入有效的網址", 11 | date: "請輸入有效的日期", 12 | dateISO: "請輸入有效的日期 (YYYY-MM-DD)", 13 | number: "請輸入正確的數值", 14 | digits: "只可輸入數字", 15 | creditcard: "請輸入有效的信用卡號碼", 16 | equalTo: "請重複輸入一次", 17 | extension: "請輸入有效的後綴", 18 | maxlength: $.validator.format( "最多 {0} 個字" ), 19 | minlength: $.validator.format( "最少 {0} 個字" ), 20 | rangelength: $.validator.format( "請輸入長度為 {0} 至 {1} 之間的字串" ), 21 | range: $.validator.format( "請輸入 {0} 至 {1} 之間的數值" ), 22 | max: $.validator.format( "請輸入不大於 {0} 的數值" ), 23 | min: $.validator.format( "請輸入不小於 {0} 的數值" ) 24 | } ); 25 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/methods_de.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Localized default methods for the jQuery validation plugin. 3 | * Locale: DE 4 | */ 5 | $.extend( $.validator.methods, { 6 | date: function( value, element ) { 7 | return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value ); 8 | }, 9 | number: function( value, element ) { 10 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 11 | } 12 | } ); 13 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/methods_es_CL.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Localized default methods for the jQuery validation plugin. 3 | * Locale: ES_CL 4 | */ 5 | $.extend( $.validator.methods, { 6 | date: function( value, element ) { 7 | return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value ); 8 | }, 9 | number: function( value, element ) { 10 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 11 | } 12 | } ); 13 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/methods_fi.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Localized default methods for the jQuery validation plugin. 3 | * Locale: FI 4 | */ 5 | $.extend( $.validator.methods, { 6 | date: function( value, element ) { 7 | return this.optional( element ) || /^\d{1,2}\.\d{1,2}\.\d{4}$/.test( value ); 8 | }, 9 | number: function( value, element ) { 10 | return this.optional( element ) || /^-?(?:\d+)(?:,\d+)?$/.test( value ); 11 | } 12 | } ); 13 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/methods_nl.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Localized default methods for the jQuery validation plugin. 3 | * Locale: NL 4 | */ 5 | $.extend( $.validator.methods, { 6 | date: function( value, element ) { 7 | return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value ); 8 | } 9 | } ); 10 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/src/localization/methods_pt.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Localized default methods for the jQuery validation plugin. 3 | * Locale: PT_BR 4 | */ 5 | $.extend( $.validator.methods, { 6 | date: function( value, element ) { 7 | return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value ); 8 | } 9 | } ); 10 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery-validation/validation.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "validation", 3 | "title": "jQuery Validation", 4 | "description": "Form validation made easy. Validate a simple comment form with inline rules, or a complex signup form with powerful remote checks.", 5 | "keywords": [ 6 | "forms", 7 | "validation", 8 | "validate" 9 | ], 10 | "author": { 11 | "name": "Jörn Zaefferer", 12 | "email": "joern.zaefferer@gmail.com", 13 | "url": "http://bassistance.de" 14 | }, 15 | "licenses": [ 16 | { 17 | "type": "MIT", 18 | "url": "http://www.opensource.org/licenses/MIT" 19 | } 20 | ], 21 | "bugs": "https://github.com/jzaefferer/jquery-validation/issues", 22 | "homepage": "https://github.com/jzaefferer/jquery-validation", 23 | "docs": "http://jqueryvalidation.org/documentation/", 24 | "download": "https://github.com/jzaefferer/jquery-validation/releases", 25 | "dependencies": { 26 | "jquery": ">=1.4.4" 27 | }, 28 | "version": "1.15.0" 29 | } 30 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "2.2.3", 16 | "_release": "2.2.3", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "2.2.3", 20 | "commit": "af22a351b2ea5801ffb1695abb3bb34d5bed9198" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "2.2.3", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /wwwroot/lib/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ] 14 | } -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "boss": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "eqnull": true, 6 | "expr": true, 7 | "immed": true, 8 | "noarg": true, 9 | "quotmark": "double", 10 | "undef": true, 11 | "unused": true, 12 | 13 | "sub": true, 14 | 15 | // Support: IE < 10, Android < 4.1 16 | // The above browsers are failing a lot of tests in the ES5 17 | // test suite at http://test262.ecmascript.org. 18 | "es3": true, 19 | 20 | "globals": { 21 | "window": true, 22 | "JSON": false, 23 | 24 | "jQuery": true, 25 | "define": true, 26 | "module": true, 27 | "noGlobal": true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 15 | } catch ( e ) { 16 | xml = undefined; 17 | } 18 | 19 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 20 | jQuery.error( "Invalid XML: " + data ); 21 | } 22 | return xml; 23 | }; 24 | 25 | return jQuery.parseXML; 26 | 27 | } ); 28 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/ajax/var/location.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return window.location; 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /\?/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | } ); 12 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/attributes/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | ( function() { 7 | var input = document.createElement( "input" ), 8 | select = document.createElement( "select" ), 9 | opt = select.appendChild( document.createElement( "option" ) ); 10 | 11 | input.type = "checkbox"; 12 | 13 | // Support: iOS<=5.1, Android<=4.2+ 14 | // Default value for a checkbox should be "on" 15 | support.checkOn = input.value !== ""; 16 | 17 | // Support: IE<=11+ 18 | // Must access selectedIndex to make default options select 19 | support.optSelected = opt.selected; 20 | 21 | // Support: Android<=2.3 22 | // Options inside disabled selects are incorrectly marked as disabled 23 | select.disabled = true; 24 | support.optDisabled = !opt.disabled; 25 | 26 | // Support: IE<=11+ 27 | // An input loses its value after becoming a radio 28 | input = document.createElement( "input" ); 29 | input.value = "t"; 30 | input.type = "radio"; 31 | support.radioValue = input.value === "t"; 32 | } )(); 33 | 34 | return support; 35 | 36 | } ); 37 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/core/DOMEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document" 3 | ], function( document ) { 4 | function DOMEval( code, doc ) { 5 | doc = doc || document; 6 | 7 | var script = doc.createElement( "script" ); 8 | 9 | script.text = code; 10 | doc.head.appendChild( script ).parentNode.removeChild( script ); 11 | } 12 | 13 | return DOMEval; 14 | } ); 15 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/core/parseHTML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../var/document", 4 | "./var/rsingleTag", 5 | "../manipulation/buildFragment" 6 | ], function( jQuery, document, rsingleTag, buildFragment ) { 7 | 8 | // Argument "data" should be string of html 9 | // context (optional): If specified, the fragment will be created in this context, 10 | // defaults to document 11 | // keepScripts (optional): If true, will include scripts passed in the html string 12 | jQuery.parseHTML = function( data, context, keepScripts ) { 13 | if ( !data || typeof data !== "string" ) { 14 | return null; 15 | } 16 | if ( typeof context === "boolean" ) { 17 | keepScripts = context; 18 | context = false; 19 | } 20 | context = context || document; 21 | 22 | var parsed = rsingleTag.exec( data ), 23 | scripts = !keepScripts && []; 24 | 25 | // Single tag 26 | if ( parsed ) { 27 | return [ context.createElement( parsed[ 1 ] ) ]; 28 | } 29 | 30 | parsed = buildFragment( [ data ], context, scripts ); 31 | 32 | if ( scripts && scripts.length ) { 33 | jQuery( scripts ).remove(); 34 | } 35 | 36 | return jQuery.merge( [], parsed.childNodes ); 37 | }; 38 | 39 | return jQuery.parseHTML; 40 | 41 | } ); 42 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/core/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | // Support: Safari 8+ 7 | // In Safari 8 documents created via document.implementation.createHTMLDocument 8 | // collapse sibling forms: the second one becomes a child of the first one. 9 | // Because of that, this security measure has to be disabled in Safari 8. 10 | // https://bugs.webkit.org/show_bug.cgi?id=137337 11 | support.createHTMLDocument = ( function() { 12 | var body = document.implementation.createHTMLDocument( "" ).body; 13 | body.innerHTML = "
"; 14 | return body.childNodes.length === 2; 15 | } )(); 16 | 17 | return support; 18 | } ); 19 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // Match a standalone tag 4 | return ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ ); 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | 5 | // Define the hook, we'll check on the first run if it's really needed. 6 | return { 7 | get: function() { 8 | if ( conditionFn() ) { 9 | 10 | // Hook not needed (or it's not possible to use it due 11 | // to missing dependency), remove it. 12 | delete this.get; 13 | return; 14 | } 15 | 16 | // Hook needed; redefine it so that the support test is not executed again. 17 | return ( this.get = hookFn ).apply( this, arguments ); 18 | } 19 | }; 20 | } 21 | 22 | return addGetHookIf; 23 | 24 | } ); 25 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | return !jQuery.expr.filters.visible( elem ); 8 | }; 9 | jQuery.expr.filters.visible = function( elem ) { 10 | 11 | // Support: Opera <= 12.12 12 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 13 | // Use OR instead of AND as the element is not visible if either is true 14 | // See tickets #10406 and #13132 15 | return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0; 16 | }; 17 | 18 | } ); 19 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/showHide.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../data/var/dataPriv" 3 | ], function( dataPriv ) { 4 | 5 | function showHide( elements, show ) { 6 | var display, elem, 7 | values = [], 8 | index = 0, 9 | length = elements.length; 10 | 11 | // Determine new display value for elements that need to change 12 | for ( ; index < length; index++ ) { 13 | elem = elements[ index ]; 14 | if ( !elem.style ) { 15 | continue; 16 | } 17 | 18 | display = elem.style.display; 19 | if ( show ) { 20 | if ( display === "none" ) { 21 | 22 | // Restore a pre-hide() value if we have one 23 | values[ index ] = dataPriv.get( elem, "display" ) || ""; 24 | } 25 | } else { 26 | if ( display !== "none" ) { 27 | values[ index ] = "none"; 28 | 29 | // Remember the value we're replacing 30 | dataPriv.set( elem, "display", display ); 31 | } 32 | } 33 | } 34 | 35 | // Set the display of the elements in a second loop 36 | // to avoid the constant reflow 37 | for ( index = 0; index < length; index++ ) { 38 | if ( values[ index ] != null ) { 39 | elements[ index ].style.display = values[ index ]; 40 | } 41 | } 42 | 43 | return elements; 44 | } 45 | 46 | return showHide; 47 | 48 | } ); 49 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return function( elem ) { 3 | 4 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) 5 | // IE throws on elements created in popups 6 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 7 | var view = elem.ownerDocument.defaultView; 8 | 9 | if ( !view || !view.opener ) { 10 | view = window; 11 | } 12 | 13 | return view.getComputedStyle( elem ); 14 | }; 15 | } ); 16 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | 5 | // css is assumed 6 | ], function( jQuery ) { 7 | 8 | return function( elem, el ) { 9 | 10 | // isHidden might be called from jQuery#filter function; 11 | // in that case, element will be second argument 12 | elem = el || elem; 13 | return jQuery.css( elem, "display" ) === "none" || 14 | !jQuery.contains( elem.ownerDocument, elem ); 15 | }; 16 | } ); 17 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^margin/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/css/var/swap.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // A method for quickly swapping in/out CSS properties to get correct calculations. 4 | return function( elem, options, callback, args ) { 5 | var ret, name, 6 | old = {}; 7 | 8 | // Remember the old values, and insert the new ones 9 | for ( name in options ) { 10 | old[ name ] = elem.style[ name ]; 11 | elem.style[ name ] = options[ name ]; 12 | } 13 | 14 | ret = callback.apply( elem, args || [] ); 15 | 16 | // Revert the old values 17 | for ( name in options ) { 18 | elem.style[ name ] = old[ name ]; 19 | } 20 | 21 | return ret; 22 | }; 23 | 24 | } ); 25 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/data/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | ( function() { 7 | var div = document.createElement( "div" ); 8 | 9 | // Support: IE<9 10 | support.deleteExpando = true; 11 | try { 12 | delete div.test; 13 | } catch ( e ) { 14 | support.deleteExpando = false; 15 | } 16 | 17 | // Null elements to avoid leaks in IE. 18 | div = null; 19 | } )(); 20 | 21 | return support; 22 | 23 | } ); 24 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/data/var/acceptData.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | /** 4 | * Determines whether an object can have data 5 | */ 6 | return function( owner ) { 7 | 8 | // Accepts only: 9 | // - Node 10 | // - Node.ELEMENT_NODE 11 | // - Node.DOCUMENT_NODE 12 | // - Object 13 | // - Any 14 | /* jshint -W018 */ 15 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 16 | }; 17 | 18 | } ); 19 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/data/var/dataPriv.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/data/var/dataUser.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/deferred/exceptionHook.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../deferred" 4 | ], function( jQuery ) { 5 | 6 | // These usually indicate a programmer mistake during development, 7 | // warn about them ASAP rather than swallowing them by default. 8 | var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 9 | 10 | jQuery.Deferred.exceptionHook = function( error, stack ) { 11 | 12 | // Support: IE9 13 | // Console exists when dev tools are open, which can happen at any time 14 | if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 15 | window.console.warn( "jQuery.Deferred exception: " + error.message, stack ); 16 | } 17 | }; 18 | 19 | } ); 20 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core" 3 | ], function( jQuery ) { 4 | 5 | jQuery.fn.extend( { 6 | 7 | bind: function( types, data, fn ) { 8 | return this.on( types, null, data, fn ); 9 | }, 10 | unbind: function( types, fn ) { 11 | return this.off( types, null, fn ); 12 | }, 13 | 14 | delegate: function( selector, types, data, fn ) { 15 | return this.on( types, selector, data, fn ); 16 | }, 17 | undelegate: function( selector, types, fn ) { 18 | 19 | // ( namespace ) or ( selector, types [, fn] ) 20 | return arguments.length === 1 ? 21 | this.off( selector, "**" ) : 22 | this.off( types, selector || "**", fn ); 23 | }, 24 | size: function() { 25 | return this.length; 26 | } 27 | } ); 28 | 29 | jQuery.fn.andSelf = jQuery.fn.addBack; 30 | 31 | } ); 32 | 33 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep( jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | } ).length; 11 | }; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ 8 | "ajaxStart", 9 | "ajaxStop", 10 | "ajaxComplete", 11 | "ajaxError", 12 | "ajaxSuccess", 13 | "ajaxSend" 14 | ], function( i, type ) { 15 | jQuery.fn[ type ] = function( fn ) { 16 | return this.on( type, fn ); 17 | }; 18 | } ); 19 | 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/event/alias.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | 4 | "../event", 5 | "./trigger" 6 | ], function( jQuery ) { 7 | 8 | jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " + 9 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 10 | "change select submit keydown keypress keyup error contextmenu" ).split( " " ), 11 | function( i, name ) { 12 | 13 | // Handle event binding 14 | jQuery.fn[ name ] = function( data, fn ) { 15 | return arguments.length > 0 ? 16 | this.on( name, null, data, fn ) : 17 | this.trigger( name ); 18 | }; 19 | } ); 20 | 21 | jQuery.fn.extend( { 22 | hover: function( fnOver, fnOut ) { 23 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 24 | } 25 | } ); 26 | 27 | } ); 28 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusin = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | } ); 10 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Register as a named AMD module, since jQuery can be concatenated with other 6 | // files that may use define, but not via a proper concatenation script that 7 | // understands anonymous AMD modules. A named AMD is safest and most robust 8 | // way to register. Lowercase jquery is used because AMD module names are 9 | // derived from file names, and jQuery is normally delivered in a lowercase 10 | // file name. Do this after creating the global so that if an AMD module wants 11 | // to call noConflict to hide this version of jQuery, it will work. 12 | 13 | // Note that for maximum portability, libraries that are not jQuery should 14 | // declare themselves as anonymous modules, and avoid setting a global if an 15 | // AMD loader is present. jQuery is a special case. For more information, see 16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 17 | 18 | if ( typeof define === "function" && define.amd ) { 19 | define( "jquery", [], function() { 20 | return jQuery; 21 | } ); 22 | } 23 | 24 | } ); 25 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | var 2 | 3 | // Map over jQuery in case of overwrite 4 | _jQuery = window.jQuery, 5 | 6 | // Map over the $ in case of overwrite 7 | _$ = window.$; 8 | 9 | jQuery.noConflict = function( deep ) { 10 | if ( window.$ === jQuery ) { 11 | window.$ = _$; 12 | } 13 | 14 | if ( deep && window.jQuery === jQuery ) { 15 | window.jQuery = _jQuery; 16 | } 17 | 18 | return jQuery; 19 | }; 20 | 21 | // Expose jQuery and $ identifiers, even in AMD 22 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 23 | // and CommonJS for browser emulators (#13566) 24 | if ( !noGlobal ) { 25 | window.jQuery = window.$ = jQuery; 26 | } 27 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./data", 9 | "./queue", 10 | "./queue/delay", 11 | "./attributes", 12 | "./event", 13 | "./event/alias", 14 | "./event/focusin", 15 | "./manipulation", 16 | "./manipulation/_evalUrl", 17 | "./wrap", 18 | "./css", 19 | "./css/hiddenVisibleSelectors", 20 | "./serialize", 21 | "./ajax", 22 | "./ajax/xhr", 23 | "./ajax/script", 24 | "./ajax/jsonp", 25 | "./ajax/load", 26 | "./event/ajax", 27 | "./effects", 28 | "./effects/animatedSelector", 29 | "./offset", 30 | "./dimensions", 31 | "./deprecated", 32 | "./exports/amd" 33 | ], function( jQuery ) { 34 | 35 | return ( window.jQuery = window.$ = jQuery ); 36 | 37 | } ); 38 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax( { 7 | url: url, 8 | 9 | // Make this explicit, since user can override this through ajaxSetup (#11264) 10 | type: "GET", 11 | dataType: "script", 12 | async: false, 13 | global: false, 14 | "throws": true 15 | } ); 16 | }; 17 | 18 | return jQuery._evalUrl; 19 | 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/createSafeFragment.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./var/nodeNames" 3 | ], function( nodeNames ) { 4 | 5 | function createSafeFragment( document ) { 6 | var list = nodeNames.split( "|" ), 7 | safeFrag = document.createDocumentFragment(); 8 | 9 | if ( safeFrag.createElement ) { 10 | while ( list.length ) { 11 | safeFrag.createElement( 12 | list.pop() 13 | ); 14 | } 15 | } 16 | return safeFrag; 17 | } 18 | 19 | return createSafeFragment; 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/getAll.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | function getAll( context, tag ) { 6 | 7 | // Support: IE9-11+ 8 | // Use typeof to avoid zero-argument method invocation on host objects (#15151) 9 | var ret = typeof context.getElementsByTagName !== "undefined" ? 10 | context.getElementsByTagName( tag || "*" ) : 11 | typeof context.querySelectorAll !== "undefined" ? 12 | context.querySelectorAll( tag || "*" ) : 13 | []; 14 | 15 | return tag === undefined || tag && jQuery.nodeName( context, tag ) ? 16 | jQuery.merge( [ context ], ret ) : 17 | ret; 18 | } 19 | 20 | return getAll; 21 | } ); 22 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/setGlobalEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../data/var/dataPriv" 3 | ], function( dataPriv ) { 4 | 5 | // Mark scripts as having already been evaluated 6 | function setGlobalEval( elems, refElements ) { 7 | var i = 0, 8 | l = elems.length; 9 | 10 | for ( ; i < l; i++ ) { 11 | dataPriv.set( 12 | elems[ i ], 13 | "globalEval", 14 | !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 15 | ); 16 | } 17 | } 18 | 19 | return setGlobalEval; 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | ( function() { 7 | var fragment = document.createDocumentFragment(), 8 | div = fragment.appendChild( document.createElement( "div" ) ), 9 | input = document.createElement( "input" ); 10 | 11 | // Support: Android 4.0-4.3, Safari<=5.1 12 | // Check state lost if the name is set (#11217) 13 | // Support: Windows Web Apps (WWA) 14 | // `name` and `type` must use .setAttribute for WWA (#14901) 15 | input.setAttribute( "type", "radio" ); 16 | input.setAttribute( "checked", "checked" ); 17 | input.setAttribute( "name", "t" ); 18 | 19 | div.appendChild( input ); 20 | 21 | // Support: Safari<=5.1, Android<4.2 22 | // Older WebKit doesn't clone checked state correctly in fragments 23 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 24 | 25 | // Support: IE<=11+ 26 | // Make sure textarea (and checkbox) defaultValue is properly cloned 27 | div.innerHTML = ""; 28 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 29 | } )(); 30 | 31 | return support; 32 | 33 | } ); 34 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/var/nodeNames.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return "abbr|article|aside|audio|bdi|canvas|data|datalist|" + 3 | "details|dialog|figcaption|figure|footer|header|hgroup|main|" + 4 | "mark|meter|nav|output|picture|progress|section|summary|template|time|video"; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^(?:checkbox|radio)$/i ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/var/rleadingWhitespace.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^\s+/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/var/rscriptType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^$|\/(?:java|ecma)script/i ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/var/rtagName.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /<([\w:-]+)/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/manipulation/wrapMap.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // We have to close these tags to support XHTML (#13200) 4 | var wrapMap = { 5 | 6 | // Support: IE9 7 | option: [ 1, "" ], 8 | 9 | // XHTML parsers do not magically insert elements in the 10 | // same way that tag soup parsers do. So we cannot shorten 11 | // this by omitting or other required elements. 12 | thead: [ 1, "", "
" ], 13 | col: [ 2, "", "
" ], 14 | tr: [ 2, "", "
" ], 15 | td: [ 3, "", "
" ], 16 | 17 | _default: [ 0, "", "" ] 18 | }; 19 | 20 | // Support: IE9 21 | wrapMap.optgroup = wrapMap.option; 22 | 23 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 24 | wrapMap.th = wrapMap.td; 25 | 26 | return wrapMap; 27 | } ); 28 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | return jQuery; 2 | })); 3 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = window.setTimeout( next, time ); 15 | hooks.stop = function() { 16 | window.clearTimeout( timeout ); 17 | }; 18 | } ); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | } ); 23 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "../external/sizzle/dist/sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[ ":" ] = jQuery.expr.pseudos; 9 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | } ); 15 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define( [ "./selector-sizzle" ], function() {} ); 2 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/traversing/var/dir.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | 5 | return function( elem, dir, until ) { 6 | var matched = [], 7 | truncate = until !== undefined; 8 | 9 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 10 | if ( elem.nodeType === 1 ) { 11 | if ( truncate && jQuery( elem ).is( until ) ) { 12 | break; 13 | } 14 | matched.push( elem ); 15 | } 16 | } 17 | return matched; 18 | }; 19 | 20 | } ); 21 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | } ); 7 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/traversing/var/siblings.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | return function( n, elem ) { 4 | var matched = []; 5 | 6 | for ( ; n; n = n.nextSibling ) { 7 | if ( n.nodeType === 1 && n !== elem ) { 8 | matched.push( n ); 9 | } 10 | } 11 | 12 | return matched; 13 | }; 14 | 15 | } ); 16 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return []; 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // [[Class]] -> type pairs 4 | return {}; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/deletedIds.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return []; 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/document.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return window.document; 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/documentElement.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./document" 3 | ], function( document ) { 4 | return document.documentElement; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/rcssNum.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/pnum" 3 | ], function( pnum ) { 4 | 5 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 6 | 7 | } ); 8 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /\S+/g ); 3 | } ); 4 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // All support tests are defined in their respective modules. 4 | return {}; 5 | } ); 6 | -------------------------------------------------------------------------------- /wwwroot/lib/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | } ); 6 | --------------------------------------------------------------------------------