This commit is contained in:
mumana 2019-07-11 03:34:02 +00:00
parent 29503ef230
commit 718c8ace7c
115 changed files with 31500 additions and 2685 deletions

Binary file not shown.

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<repositories>
<repository path="..\..\AyABL\packages.config" />
<repository path="..\..\AyADAL\packages.config" />
<repository path="..\..\BaseGUI\packages.config" />
<repository path="..\..\AyAEL\packages.config" />
<repository path="..\..\AyAEM\packages.config" />
<repository path="..\..\FOPI\packages.config" />
<repository path="..\AyADL\packages.config" />
<repository path="..\..\ListaProyectos\packages.config" />
</repositories>

View file

@ -28,7 +28,6 @@ using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using AyADAL;
using AyABL.ADM;
using AyABL.AGP;
using AyABL.CVP;

View file

@ -1,62 +0,0 @@
<%@ Page Title="Iniciar sesión" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Account_Login" Async="true" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<h2><%: Title %>.</h2>
<div class="row">
<div class="col-md-8">
<section id="loginForm">
<div class="form-horizontal">
<h4>Utilice una cuenta local para iniciar sesión.</h4>
<hr />
<asp:PlaceHolder runat="server" ID="ErrorMessage" Visible="false">
<p class="text-danger">
<asp:Literal runat="server" ID="FailureText" />
</p>
</asp:PlaceHolder>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="UserName" CssClass="col-md-2 control-label">Nombre de usuario</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="UserName" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
CssClass="text-danger" ErrorMessage="El campo de nombre de usuario es obligatorio." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="Password" CssClass="col-md-2 control-label">Contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="Password" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password" CssClass="text-danger" ErrorMessage="El campo de contraseña es obligatorio." />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<div class="checkbox">
<asp:CheckBox runat="server" ID="RememberMe" />
<asp:Label runat="server" AssociatedControlID="RememberMe">¿Recordar cuenta?</asp:Label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" OnClick="LogIn" Text="Iniciar sesión" CssClass="btn btn-default" />
</div>
</div>
</div>
<p>
<asp:HyperLink runat="server" ID="RegisterHyperLink" ViewStateMode="Disabled">Registrarse</asp:HyperLink>
si no tiene una cuenta local.
</p>
</section>
</div>
<div class="col-md-4">
<section id="socialLoginForm">
<uc:openauthproviders runat="server" id="OpenAuthLogin" />
</section>
</div>
</div>
</asp:Content>

View file

@ -1,40 +0,0 @@
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using System;
using System.Web;
using System.Web.UI;
using ListaProyectos;
public partial class Account_Login : Page
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterHyperLink.NavigateUrl = "Register";
OpenAuthLogin.ReturnUrl = Request.QueryString["ReturnUrl"];
var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
if (!String.IsNullOrEmpty(returnUrl))
{
RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl;
}
}
protected void LogIn(object sender, EventArgs e)
{
if (IsValid)
{
// Validate the user password
var manager = new UserManager();
ApplicationUser user = manager.Find(UserName.Text, Password.Text);
if (user != null)
{
IdentityHelper.SignIn(manager, user, RememberMe.Checked);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else
{
FailureText.Text = "Invalid username or password.";
ErrorMessage.Visible = true;
}
}
}
}

View file

@ -1,137 +0,0 @@
<%@ Page Title="Administrar cuenta" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Manage.aspx.cs" Inherits="Account_Manage" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: Title %>.</h2>
<div>
<asp:PlaceHolder runat="server" ID="successMessage" Visible="false" ViewStateMode="Disabled">
<p class="text-success"><%: SuccessMessage %></p>
</asp:PlaceHolder>
</div>
<div class="row">
<div class="col-md-12">
<section id="passwordForm">
<asp:PlaceHolder runat="server" ID="setPassword" Visible="false">
<p>
No dispone de una contraseña local para este sitio. Agregue una contraseña
local para poder iniciar sesión sin necesidad de un inicio de sesión externo.
</p>
<div class="form-horizontal">
<h4>Formulario para establecer contraseña</h4>
<hr />
<asp:ValidationSummary runat="server" ShowModelStateErrors="true" CssClass="text-danger" />
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="password" CssClass="col-md-2 control-label">Contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="password" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="password"
CssClass="text-danger" ErrorMessage="El campo de contraseña es obligatorio."
Display="Dynamic" ValidationGroup="SetPassword" />
<asp:ModelErrorMessage runat="server" ModelStateKey="NewPassword" AssociatedControlID="password"
CssClass="text-danger" SetFocusOnError="true" />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="confirmPassword" CssClass="col-md-2 control-label">Confirmar contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="confirmPassword" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="confirmPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="El campo de confirmación de contraseña es obligatorio."
ValidationGroup="SetPassword" />
<asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="confirmPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="La contraseña y la contraseña de confirmación no coinciden."
ValidationGroup="SetPassword" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" Text="Establecer contraseña" ValidationGroup="SetPassword" OnClick="SetPassword_Click" CssClass="btn btn-default" />
</div>
</div>
</div>
</asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="changePasswordHolder" Visible="false">
<p>Inició sesión como <strong><%: User.Identity.GetUserName() %></strong>.</p>
<div class="form-horizontal">
<h4>Formulario para cambiar contraseña</h4>
<asp:ValidationSummary runat="server" ShowModelStateErrors="true" CssClass="text-danger" />
<div class="form-group">
<asp:Label runat="server" ID="CurrentPasswordLabel" AssociatedControlID="CurrentPassword" CssClass="col-md-2 control-label">Contraseña actual</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="CurrentPassword" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="CurrentPassword"
CssClass="text-danger" ErrorMessage="El campo de contraseña actual es obligatorio."
ValidationGroup="ChangePassword" />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" ID="NewPasswordLabel" AssociatedControlID="NewPassword" CssClass="col-md-2 control-label">Nueva contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="NewPassword" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="NewPassword"
CssClass="text-danger" ErrorMessage="La contraseña nueva es obligatoria."
ValidationGroup="ChangePassword" />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" ID="ConfirmNewPasswordLabel" AssociatedControlID="ConfirmNewPassword" CssClass="col-md-2 control-label">Confirmar la nueva contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="ConfirmNewPassword" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmNewPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="La confirmación de la nueva contraseña es obligatoria."
ValidationGroup="ChangePassword" />
<asp:CompareValidator runat="server" ControlToCompare="NewPassword" ControlToValidate="ConfirmNewPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="La nueva contraseña y la contraseña de confirmación no coinciden."
ValidationGroup="ChangePassword" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" Text="Cambiar contraseña" OnClick="ChangePassword_Click" CssClass="btn btn-default" ValidationGroup="ChangePassword" />
</div>
</div>
</div>
</asp:PlaceHolder>
</section>
<section id="externalLoginsForm">
<asp:ListView runat="server"
ItemType="Microsoft.AspNet.Identity.UserLoginInfo"
SelectMethod="GetLogins" DeleteMethod="RemoveLogin" DataKeyNames="LoginProvider,ProviderKey">
<LayoutTemplate>
<h4>Inicios de sesión registrados</h4>
<table class="table">
<tbody>
<tr runat="server" id="itemPlaceholder"></tr>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#: Item.LoginProvider %></td>
<td>
<asp:Button runat="server" Text="Quitar" CommandName="Delete" CausesValidation="false"
ToolTip='<%# "Quitar este " + Item.LoginProvider + " inicio de sesión de su cuenta" %>'
Visible="<%# CanRemoveExternalLogins %>" CssClass="btn btn-default" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<uc:openauthproviders runat="server" returnurl="~/Account/Manage" />
</section>
</div>
</div>
</asp:Content>

View file

@ -1,127 +0,0 @@
using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Linq;
using ListaProyectos;
public partial class Account_Manage : System.Web.UI.Page
{
protected string SuccessMessage
{
get;
private set;
}
protected bool CanRemoveExternalLogins
{
get;
private set;
}
private bool HasPassword(UserManager manager)
{
var user = manager.FindById(User.Identity.GetUserId());
return (user != null && user.PasswordHash != null);
}
protected void Page_Load()
{
if (!IsPostBack)
{
// Determine las secciones que se van a presentar
UserManager manager = new UserManager();
if (HasPassword(manager))
{
changePasswordHolder.Visible = true;
}
else
{
setPassword.Visible = true;
changePasswordHolder.Visible = false;
}
CanRemoveExternalLogins = manager.GetLogins(User.Identity.GetUserId()).Count() > 1;
// Presentar mensaje de operación correcta
var message = Request.QueryString["m"];
if (message != null)
{
// Seccionar la cadena de consulta desde la acción
Form.Action = ResolveUrl("~/Account/Manage");
SuccessMessage =
message == "ChangePwdSuccess" ? "Se cambió la contraseña."
: message == "SetPwdSuccess" ? "Se estableció la contraseña."
: message == "RemoveLoginSuccess" ? "La cuenta se quitó."
: String.Empty;
successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage);
}
}
}
protected void ChangePassword_Click(object sender, EventArgs e)
{
if (IsValid)
{
UserManager manager = new UserManager();
IdentityResult result = manager.ChangePassword(User.Identity.GetUserId(), CurrentPassword.Text, NewPassword.Text);
if (result.Succeeded)
{
var user = manager.FindById(User.Identity.GetUserId());
IdentityHelper.SignIn(manager, user, isPersistent: false);
Response.Redirect("~/Account/Manage?m=ChangePwdSuccess");
}
else
{
AddErrors(result);
}
}
}
protected void SetPassword_Click(object sender, EventArgs e)
{
if (IsValid)
{
// Cree la información de inicio de sesión local y vincule la cuenta local con el usuario
UserManager manager = new UserManager();
IdentityResult result = manager.AddPassword(User.Identity.GetUserId(), password.Text);
if (result.Succeeded)
{
Response.Redirect("~/Account/Manage?m=SetPwdSuccess");
}
else
{
AddErrors(result);
}
}
}
public IEnumerable<UserLoginInfo> GetLogins()
{
UserManager manager = new UserManager();
var accounts = manager.GetLogins(User.Identity.GetUserId());
CanRemoveExternalLogins = accounts.Count() > 1 || HasPassword(manager);
return accounts;
}
public void RemoveLogin(string loginProvider, string providerKey)
{
UserManager manager = new UserManager();
var result = manager.RemoveLogin(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));
string msg = String.Empty;
if (result.Succeeded)
{
var user = manager.FindById(User.Identity.GetUserId());
IdentityHelper.SignIn(manager, user, isPersistent: false);
msg = "?m=RemoveLoginSuccess";
}
Response.Redirect("~/Account/Manage" + msg);
}
private void AddErrors(IdentityResult result)
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error);
}
}
}

View file

@ -1,22 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="OpenAuthProviders.ascx.cs" Inherits="OpenAuthProviders" %>
<div id="socialLoginList">
<h4>Utilice otro servicio para iniciar sesión.</h4>
<hr />
<asp:ListView runat="server" ID="providerDetails" ItemType="System.String"
SelectMethod="GetProviderNames" ViewStateMode="Disabled">
<ItemTemplate>
<p>
<button type="submit" class="btn btn-default" name="provider" value="<%#: Item %>"
title="Inicie sesión con su <%#: Item %> cuenta.">
<%#: Item %>
</button>
</p>
</ItemTemplate>
<EmptyDataTemplate>
<div>
<p>No existen servicios de autenticación externos configurados. Consulte <a href="https://go.microsoft.com/fwlink/?LinkId=252803">este artículo</a> para obtener información sobre cómo configurar esta aplicación ASP.NET para admitir el inicio de sesión a través de servicios externos.</p>
</div>
</EmptyDataTemplate>
</asp:ListView>
</div>

View file

@ -1,41 +0,0 @@
using Microsoft.Owin.Security;
using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using ListaProyectos;
public partial class OpenAuthProviders : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var provider = Request.Form["provider"];
if (provider == null)
{
return;
}
// Solicitar un redireccionamiento al proveedor del inicio de sesión externo
string redirectUrl = ResolveUrl(String.Format(CultureInfo.InvariantCulture, "~/Account/RegisterExternalLogin?{0}={1}&returnUrl={2}", IdentityHelper.ProviderNameKey, provider, ReturnUrl));
var properties = new AuthenticationProperties() { RedirectUri = redirectUrl };
// Agregar verificación de xsrf al vincular cuentas
if (Context.User.Identity.IsAuthenticated)
{
properties.Dictionary[IdentityHelper.XsrfKey] = Context.User.Identity.GetUserId();
}
Context.GetOwinContext().Authentication.Challenge(properties, provider);
Response.StatusCode = 401;
Response.End();
}
}
public string ReturnUrl { get; set; }
public IEnumerable<string> GetProviderNames()
{
return Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes().Select(t => t.AuthenticationType);
}
}

View file

@ -1,46 +0,0 @@
<%@ Page Title="Registrarse" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Register.aspx.cs" Inherits="Account_Register" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<h2><%: Title %>.</h2>
<p class="text-danger">
<asp:Literal runat="server" ID="ErrorMessage" />
</p>
<div class="form-horizontal">
<h4>Cree una cuenta nueva.</h4>
<hr />
<asp:ValidationSummary runat="server" CssClass="text-danger" />
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="UserName" CssClass="col-md-2 control-label">Nombre de usuario</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="UserName" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
CssClass="text-danger" ErrorMessage="El campo de nombre de usuario es obligatorio." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="Password" CssClass="col-md-2 control-label">Contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="Password" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
CssClass="text-danger" ErrorMessage="El campo de contraseña es obligatorio." />
</div>
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="ConfirmPassword" CssClass="col-md-2 control-label">Confirmar contraseña</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="El campo de confirmación de contraseña es obligatorio." />
<asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
CssClass="text-danger" Display="Dynamic" ErrorMessage="La contraseña y la contraseña de confirmación no coinciden." />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" OnClick="CreateUser_Click" Text="Registrarse" CssClass="btn btn-default" />
</div>
</div>
</div>
</asp:Content>

View file

@ -1,24 +0,0 @@
using Microsoft.AspNet.Identity;
using System;
using System.Linq;
using System.Web.UI;
using ListaProyectos;
public partial class Account_Register : Page
{
protected void CreateUser_Click(object sender, EventArgs e)
{
var manager = new UserManager();
var user = new ApplicationUser() { UserName = UserName.Text };
IdentityResult result = manager.Create(user, Password.Text);
if (result.Succeeded)
{
IdentityHelper.SignIn(manager, user, isPersistent: false);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else
{
ErrorMessage.Text = result.Errors.FirstOrDefault();
}
}
}

View file

@ -1,33 +0,0 @@
<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RegisterExternalLogin.aspx.cs" Inherits="Account_RegisterExternalLogin" Async="true" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<h3>Regístrese con su cuenta <%: ProviderName %></h3>
<asp:PlaceHolder runat="server">
<div class="form-horizontal">
<h4>Formulario de asociación</h4>
<hr />
<asp:ValidationSummary runat="server" ShowModelStateErrors="true" CssClass="text-danger" />
<p class="text-info">
Se ha autenticado con <strong><%: ProviderName %></strong>. Introduzca un nombre de usuario a continuación para el sitio actual
y haga clic en el botón Iniciar sesión.
</p>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="userName" CssClass="col-md-2 control-label">Nombre de usuario</asp:Label>
<div class="col-md-10">
<asp:TextBox runat="server" ID="userName" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="userName"
Display="Dynamic" CssClass="text-danger" ErrorMessage="El nombre de usuario es obligatorio" />
<asp:ModelErrorMessage runat="server" ModelStateKey="UserName" CssClass="text-danger" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" Text="Iniciar sesión" CssClass="btn btn-default" OnClick="LogIn_Click" />
</div>
</div>
</div>
</asp:PlaceHolder>
</asp:Content>

View file

@ -1,110 +0,0 @@
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using System;
using System.Web;
using ListaProyectos;
public partial class Account_RegisterExternalLogin : System.Web.UI.Page
{
protected string ProviderName
{
get { return (string)ViewState["ProviderName"] ?? String.Empty; }
private set { ViewState["ProviderName"] = value; }
}
protected string ProviderAccountKey
{
get { return (string)ViewState["ProviderAccountKey"] ?? String.Empty; }
private set { ViewState["ProviderAccountKey"] = value; }
}
protected void Page_Load()
{
// Procesar el resultado de un proveedor de autenticación en la solicitud
ProviderName = IdentityHelper.GetProviderNameFromRequest(Request);
if (String.IsNullOrEmpty(ProviderName))
{
Response.Redirect("~/Account/Login");
}
if (!IsPostBack)
{
var manager = new UserManager();
var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo();
if (loginInfo == null)
{
Response.Redirect("~/Account/Login");
}
var user = manager.Find(loginInfo.Login);
if (user != null)
{
IdentityHelper.SignIn(manager, user, isPersistent: false);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else if (User.Identity.IsAuthenticated)
{
// Aplicar comprobación de Xsrf durante la vinculación
var verifiedloginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo(IdentityHelper.XsrfKey, User.Identity.GetUserId());
if (verifiedloginInfo == null)
{
Response.Redirect("~/Account/Login");
}
var result = manager.AddLogin(User.Identity.GetUserId(), verifiedloginInfo.Login);
if (result.Succeeded)
{
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else
{
AddErrors(result);
return;
}
}
else
{
userName.Text = loginInfo.DefaultUserName;
}
}
}
protected void LogIn_Click(object sender, EventArgs e)
{
CreateAndLoginUser();
}
private void CreateAndLoginUser()
{
if (!IsValid)
{
return;
}
var manager = new UserManager();
var user = new ApplicationUser() { UserName = userName.Text };
IdentityResult result = manager.Create(user);
if (result.Succeeded)
{
var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo();
if (loginInfo == null)
{
Response.Redirect("~/Account/Login");
return;
}
result = manager.AddLogin(user.Id, loginInfo.Login);
if (result.Succeeded)
{
IdentityHelper.SignIn(manager, user, isPersistent: false);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
return;
}
}
AddErrors(result);
}
private void AddErrors(IdentityResult result)
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error);
}
}
}

View file

@ -19,26 +19,7 @@ namespace ListaProyectos
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Quitar las marcas de comentario de las líneas siguientes para habilitar el inicio de sesión con proveedores de inicio de sesión de terceros
//app.UseMicrosoftAccountAuthentication(
// clientId: "",
// clientSecret: "");
//app.UseTwitterAuthentication(
// consumerKey: "",
// consumerSecret: "");
//app.UseFacebookAuthentication(
// appId: "",
// appSecret: "");
//app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
//{
// ClientId = "",
// ClientSecret = ""
//});
}
}
}

View file

@ -0,0 +1,639 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Owin.Host.SystemWeb</name>
</assembly>
<members>
<member name="T:Owin.Loader.DefaultLoader">
<summary>
Locates the startup class based on the following convention:
AssemblyName.Startup, with a method named Configuration
</summary>
</member>
<member name="M:Owin.Loader.DefaultLoader.#ctor">
<summary>
</summary>
</member>
<member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}})">
<summary>
Allows for a fallback loader to be specified.
</summary>
<param name="next"></param>
</member>
<member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}},System.Func{System.Type,System.Object})">
<summary>
Allows for a fallback loader and a Dependency Injection activator to be specified.
</summary>
<param name="next"></param>
<param name="activator"></param>
</member>
<member name="M:Owin.Loader.DefaultLoader.#ctor(System.Func{System.String,System.Collections.Generic.IList{System.String},System.Action{Owin.IAppBuilder}},System.Func{System.Type,System.Object},System.Collections.Generic.IEnumerable{System.Reflection.Assembly})">
<summary>
</summary>
<param name="next"></param>
<param name="activator"></param>
<param name="referencedAssemblies"></param>
</member>
<member name="M:Owin.Loader.DefaultLoader.Load(System.String,System.Collections.Generic.IList{System.String})">
<summary>
Executes the loader, searching for the entry point by name.
</summary>
<param name="startupName">The name of the assembly and type entry point</param>
<param name="errorDetails"></param>
<returns></returns>
</member>
<member name="M:Owin.Loader.DefaultLoader.DotByDot(System.String)">
<summary>
</summary>
<param name="text"></param>
<returns></returns>
</member>
<member name="T:Owin.Loader.NullLoader">
<summary>
A default fallback loader that does nothing.
</summary>
</member>
<member name="P:Owin.Loader.NullLoader.Instance">
<summary>
A singleton instance of the NullLoader type.
</summary>
</member>
<member name="M:Owin.Loader.NullLoader.Load(System.String,System.Collections.Generic.IList{System.String})">
<summary>
A placeholder method that always returns null.
</summary>
<param name="startup"></param>
<param name="errors"></param>
<returns>null.</returns>
</member>
<member name="T:SharedResourceNamespace.LoaderResources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.AssemblyNotFound">
<summary>
Looks up a localized string similar to For the app startup parameter value &apos;{0}&apos;, the assembly &apos;{1}&apos; was not found..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.ClassNotFoundInAssembly">
<summary>
Looks up a localized string similar to For the app startup parameter value &apos;{0}&apos;, the class &apos;{1}&apos; was not found in assembly &apos;{2}&apos;..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.Exception_AttributeNameConflict">
<summary>
Looks up a localized string similar to The OwinStartup attribute discovered in assembly &apos;{0}&apos; referencing startup type &apos;{1}&apos; conflicts with the attribute in assembly &apos;{2}&apos; referencing startup type &apos;{3}&apos; because they have the same FriendlyName &apos;{4}&apos;. Remove or rename one of the attributes, or reference the desired type directly..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.Exception_StartupTypeConflict">
<summary>
Looks up a localized string similar to The discovered startup type &apos;{0}&apos; conflicts with the type &apos;{1}&apos;. Remove or rename one of the types, or reference the desired type directly..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.FriendlyNameMismatch">
<summary>
Looks up a localized string similar to The OwinStartupAttribute.FriendlyName value &apos;{0}&apos; does not match the given value &apos;{1}&apos; in Assembly &apos;{2}&apos;..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.MethodNotFoundInClass">
<summary>
Looks up a localized string similar to No &apos;{0}&apos; method was found in class &apos;{1}&apos;..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.NoAssemblyWithStartupClass">
<summary>
Looks up a localized string similar to No assembly found containing a Startup or [AssemblyName].Startup class..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.NoOwinStartupAttribute">
<summary>
Looks up a localized string similar to No assembly found containing an OwinStartupAttribute..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.StartupTypePropertyEmpty">
<summary>
Looks up a localized string similar to The OwinStartupAttribute.StartupType value is empty in Assembly &apos;{0}&apos;..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.StartupTypePropertyMissing">
<summary>
Looks up a localized string similar to The type &apos;{0}&apos; referenced from assembly &apos;{1}&apos; does not define a property &apos;StartupType&apos; of type &apos;Type&apos;..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.TypeOrMethodNotFound">
<summary>
Looks up a localized string similar to The given type or method &apos;{0}&apos; was not found. Try specifying the Assembly..
</summary>
</member>
<member name="P:SharedResourceNamespace.LoaderResources.UnexpectedMethodSignature">
<summary>
Looks up a localized string similar to The &apos;{0}&apos; method on class &apos;{1}&apos; does not have the expected signature &apos;void {0}(IAppBuilder)&apos;..
</summary>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager">
<summary>
This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
from requests. The cookies are stored in the System.Web object model rather than directly in the headers.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.#ctor">
<summary>
This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
from requests. The cookies are stored in the System.Web object model rather than directly in the headers.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.Fallback">
<summary>
A fallback manager used if HttpContextBase can't be located.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.ChunkSize">
<summary>
The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple
cookies. Set this value to null to disable this behavior. The default is 4090 characters, which is supported by all
common browsers.
Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.ThrowForPartialCookies">
<summary>
Throw if not all chunks of a cookie are available on a request for re-assembly.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
<summary>
Get the reassembled cookie. Non chunked cookies are returned normally.
Cookies with missing chunks just have their "chunks:XX" header returned.
</summary>
<param name="context"></param>
<param name="key"></param>
<returns>The reassembled cookie, if any, or null.</returns>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
<summary>
Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit
then it will be broken down into multiple cookies as follows:
Set-Cookie: CookieName=chunks:3; path=/
Set-Cookie: CookieNameC1=Segment1; path=/
Set-Cookie: CookieNameC2=Segment2; path=/
Set-Cookie: CookieNameC3=Segment3; path=/
</summary>
<param name="context"></param>
<param name="key"></param>
<param name="value"></param>
<param name="options"></param>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
<summary>
Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on
the request, delete each chunk.
</summary>
<param name="context"></param>
<param name="key"></param>
<param name="options"></param>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.DataProtection.MachineKeyDataProtectionProvider">
<summary>
Used to provide the data protection services that are derived from the MachineKey API. It is the best choice of
data protection when you application is hosted by ASP.NET and all servers in the farm are running with the same Machine Key values.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.DataProtection.MachineKeyDataProtectionProvider.Create(System.String[])">
<summary>
Returns a new instance of IDataProtection for the provider.
</summary>
<param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
<returns>An instance of a data protection service</returns>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler">
<summary>
Processes requests from System.Web as OWIN requests.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.#ctor">
<summary>
Processes requests using the default OWIN application.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.IsReusable">
<summary>
Gets a value indicating whether another request can use the System.Web.IHttpHandler instance.
</summary>
<returns>
true.
</returns>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(System.Web.HttpContextBase,System.AsyncCallback,System.Object)">
<summary>
Initiates an asynchronous call to the HTTP handler.
</summary>
<param name="httpContext">
An System.Web.HttpContextBase object that provides references to intrinsic server
objects (for example, Request, Response, Session, and Server) used to service
HTTP requests.
</param>
<param name="callback">
The System.AsyncCallback to call when the asynchronous method call is complete.
If callback is null, the delegate is not called.
</param>
<param name="extraData">
Any extra data needed to process the request.
</param>
<returns>
An System.IAsyncResult that contains information about the status of the process.
</returns>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.EndProcessRequest(System.IAsyncResult)">
<summary>
Provides an asynchronous process End method when the process ends.
</summary>
<param name="result">
An System.IAsyncResult that contains information about the status of the process.
</param>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler">
<summary>
Processes a route through an OWIN pipeline.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.#ctor(System.Action{Owin.IAppBuilder})">
<summary>
Initialize an OwinRouteHandler
</summary>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.OwinRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
<summary>
Provides the object that processes the request.
</summary>
<returns>
An object that processes the request.
</returns>
<param name="requestContext">An object that encapsulates information about the request.</param>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.PreApplicationStart">
<summary>
Registers the OWIN request processing module at application startup.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.PreApplicationStart.Initialize">
<summary>
Registers the OWIN request processing module.
</summary>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_AppLoderFailure">
<summary>
Looks up a localized string similar to The following errors occurred while attempting to load the app..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_CannotRegisterAfterHeadersSent">
<summary>
Looks up a localized string similar to Cannot register for &apos;OnSendingHeaders&apos; event after response headers have been sent..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_CookieLimitTooSmall">
<summary>
Looks up a localized string similar to The cookie key and options are larger than ChunksSize, leaving no room for data..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_DuplicateKey">
<summary>
Looks up a localized string similar to The key &apos;{0}&apos; is already present in the dictionary..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_HowToDisableAutoAppStartup">
<summary>
Looks up a localized string similar to To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of &quot;false&quot; in your web.config..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_HowToSpecifyAppStartup">
<summary>
Looks up a localized string similar to To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_ImcompleteChunkedCookie">
<summary>
Looks up a localized string similar to The chunked cookie is incomplete. Only {0} of the expected {1} chunks were found, totaling {2} characters. A client size limit may have been exceeded..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Exception_UnsupportedPipelineStage">
<summary>
Looks up a localized string similar to The given stage &apos;{0}&apos; is not supported..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.HttpContext_OwinEnvironmentNotFound">
<summary>
Looks up a localized string similar to No owin.Environment item was found in the context..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ClientCertException">
<summary>
Looks up a localized string similar to An exception was thrown while trying to load the client certificate:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_EntryPointException">
<summary>
Looks up a localized string similar to The OWIN entry point threw an exception:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_OwinCallContextCallbackException">
<summary>
Looks up a localized string similar to The IAsyncResult callback for OwinCallHandler threw an exception:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_RegisterModuleException">
<summary>
Looks up a localized string similar to Failed to register the OWIN module:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_RequestDisconnectCallbackExceptions">
<summary>
Looks up a localized string similar to The application threw one or more exceptions when notified of a client disconnect:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ShutdownDetectionSetupException">
<summary>
Looks up a localized string similar to Shutdown detection setup failed:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_ShutdownException">
<summary>
Looks up a localized string similar to One or more exceptions were thrown during app pool shutdown:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_TimerCallbackException">
<summary>
Looks up a localized string similar to An exception was thrown from a timer callback:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketException">
<summary>
Looks up a localized string similar to An exception was thrown while processing the WebSocket:.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketsSupportDetected">
<summary>
Looks up a localized string similar to Support for WebSockets has been detected..
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.Resources.Trace_WebSocketsSupportNotDetected">
<summary>
Looks up a localized string similar to No support for WebSockets has been detected..
</summary>
</member>
<member name="T:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager">
<summary>
An implementation of ICookieManager that uses the System.Web.HttpContextBase object model.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.#ctor">
<summary>
Creates a new instance of SystemWebCookieManager.
</summary>
</member>
<member name="P:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.Fallback">
<summary>
A fallback manager used if HttpContextBase can't be located.
</summary>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.GetRequestCookie(Microsoft.Owin.IOwinContext,System.String)">
<summary>
Reads the requested cookie from System.Web.HttpContextBase.Request.Cookies.
</summary>
<param name="context"></param>
<param name="key"></param>
<returns></returns>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.AppendResponseCookie(Microsoft.Owin.IOwinContext,System.String,System.String,Microsoft.Owin.CookieOptions)">
<summary>
Appends the requested cookie to System.Web.HttpContextBase.Response.Cookies.
</summary>
<param name="context"></param>
<param name="key"></param>
<param name="value"></param>
<param name="options"></param>
</member>
<member name="M:Microsoft.Owin.Host.SystemWeb.SystemWebCookieManager.DeleteCookie(Microsoft.Owin.IOwinContext,System.String,Microsoft.Owin.CookieOptions)">
<summary>
Deletes the requested cookie by appending an expired cookie to System.Web.HttpContextBase.Response.Cookies.
</summary>
<param name="context"></param>
<param name="key"></param>
<param name="options"></param>
</member>
<member name="T:System.Web.HttpContextBaseExtensions">
<summary>
Provides extension methods for <see cref="T:System.Web.HttpContextBase"/>.
</summary>
</member>
<member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpContextBase)">
<summary>
Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
</summary>
<param name="context"></param>
<returns></returns>
</member>
<member name="M:System.Web.HttpContextBaseExtensions.GetOwinContext(System.Web.HttpRequestBase)">
<summary>
Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="T:System.Web.HttpContextExtensions">
<summary>
Provides extension methods for <see cref="T:System.Web.HttpContext"/>.
</summary>
</member>
<member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpContext)">
<summary>
Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
</summary>
<param name="context"></param>
<returns></returns>
</member>
<member name="M:System.Web.HttpContextExtensions.GetOwinContext(System.Web.HttpRequest)">
<summary>
Gets the <see cref="T:Microsoft.Owin.IOwinContext"/> for the current request.
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="T:System.Web.Routing.RouteCollectionExtensions">
<summary>
Provides extension methods for registering OWIN applications as System.Web routes.
</summary>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String)">
<summary>
Registers a route for the default OWIN application.
</summary>
<param name="routes">The route collection.</param>
<param name="pathBase">The route path to map to the default OWIN application.</param>
<returns>The created route.</returns>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,``0)">
<summary>
Registers a route for a specific OWIN application entry point.
</summary>
<typeparam name="TApp">The OWIN application entry point type.</typeparam>
<param name="routes">The route collection.</param>
<param name="pathBase">The route path to map to the given OWIN application.</param>
<param name="app">The OWIN application entry point.</param>
<returns>The created route.</returns>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
<summary>
Invokes the System.Action startup delegate to build the OWIN application
and then registers a route for it on the given path.
</summary>
<param name="routes">The route collection.</param>
<param name="pathBase">The route path to map to the given OWIN application.</param>
<param name="startup">A System.Action delegate invoked to build the OWIN application.</param>
<returns>The created route.</returns>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String)">
<summary>
Registers a route for the default OWIN application.
</summary>
<param name="routes">The route collection.</param>
<param name="name">The given name of the route.</param>
<param name="pathBase">The route path to map to the default OWIN application.</param>
<returns>The created route.</returns>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath``1(System.Web.Routing.RouteCollection,System.String,System.String,``0)">
<summary>
Registers a route for a specific OWIN application entry point.
</summary>
<typeparam name="TApp">The OWIN application entry point type.</typeparam>
<param name="routes">The route collection.</param>
<param name="name">The given name of the route.</param>
<param name="pathBase">The route path to map to the given OWIN application.</param>
<param name="app">The OWIN application entry point.</param>
<returns>The created route.</returns>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinPath(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
<summary>
Invokes the System.Action startup delegate to build the OWIN application
and then registers a route for it on the given path.
</summary>
<param name="routes">The route collection.</param>
<param name="name">The given name of the route.</param>
<param name="pathBase">The route path to map to the given OWIN application.</param>
<param name="startup">A System.Action delegate invoked to build the OWIN application.</param>
<returns>The created route.</returns>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="defaults">The values to use if the URL does not contain all the parameters.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="defaults">The values to use if the URL does not contain all the parameters.</param>
<param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="defaults">The values to use if the URL does not contain all the parameters.</param>
<param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
<param name="dataTokens">Custom values that are passed to the route handler, but which are not used to determine whether the route matches a specific URL pattern. These values are passed to the route handler, where they can be used for processing the request.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeName">The name of the route.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeName">The name of the route.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="defaults">The values to use if the URL does not contain all the parameters.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeName">The name of the route.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="defaults">The values to use if the URL does not contain all the parameters.</param>
<param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
<member name="M:System.Web.Routing.RouteCollectionExtensions.MapOwinRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Web.Routing.RouteValueDictionary,System.Action{Owin.IAppBuilder})">
<summary>
Provides a way to define routes for an OWIN pipeline.
</summary>
<param name="routes">The route collection.</param>
<param name="routeName">The name of the route.</param>
<param name="routeUrl">The URL pattern for the route.</param>
<param name="defaults">The values to use if the URL does not contain all the parameters.</param>
<param name="constraints">A regular expression that specifies valid values for a URL parameter.</param>
<param name="dataTokens">Custom values that are passed to the route handler, but which are not used to determine whether the route matches a specific URL pattern. These values are passed to the route handler, where they can be used for processing the request.</param>
<param name="startup">The method to initialize the pipeline that processes requests for the route.</param>
</member>
</members>
</doc>

View file

@ -0,0 +1,545 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Owin.Security.Cookies</name>
</assembly>
<members>
<member name="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationDefaults">
<summary>
Default values related to cookie-based authentication middleware
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieAuthenticationDefaults.AuthenticationType">
<summary>
The default value used for CookieAuthenticationOptions.AuthenticationType
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieAuthenticationDefaults.CookiePrefix">
<summary>
The prefix used to provide a default CookieAuthenticationOptions.CookieName
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieAuthenticationDefaults.LoginPath">
<summary>
The default value used by UseApplicationSignInCookie for the
CookieAuthenticationOptions.LoginPath
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieAuthenticationDefaults.LogoutPath">
<summary>
The default value used by UseApplicationSignInCookie for the
CookieAuthenticationOptions.LogoutPath
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieAuthenticationDefaults.ReturnUrlParameter">
<summary>
The default value of the CookieAuthenticationOptions.ReturnUrlParameter
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieSecureOption">
<summary>
Determines how the identity cookie's security property is set.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieSecureOption.SameAsRequest">
<summary>
If the URI that provides the cookie is HTTPS, then the cookie will only be returned to the server on
subsequent HTTPS requests. Otherwise if the URI that provides the cookie is HTTP, then the cookie will
be returned to the server on all HTTP and HTTPS requests. This is the default value because it ensures
HTTPS for all authenticated requests on deployed servers, and also supports HTTP for localhost development
and for servers that do not have HTTPS support.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieSecureOption.Never">
<summary>
CookieOptions.Secure is never marked true. Use this value when your login page is HTTPS, but other pages
on the site which are HTTP also require authentication information. This setting is not recommended because
the authentication information provided with an HTTP request may be observed and used by other computers
on your local network or wireless connection.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieSecureOption.Always">
<summary>
CookieOptions.Secure is always marked true. Use this value when your login page and all subsequent pages
requiring the authenticated identity are HTTPS. Local development will also need to be done with HTTPS urls.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware">
<summary>
Cookie based authentication middleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Owin.IAppBuilder,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions)">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware"/>
</summary>
<param name="next">The next middleware in the OWIN pipeline to invoke</param>
<param name="app">The OWIN application</param>
<param name="options">Configuration options for the middleware</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware.CreateHandler">
<summary>
Provides the <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler"/> object for processing authentication-related requests.
</summary>
<returns>An <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler"/> configured with the <see cref="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions"/> supplied to the constructor.</returns>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions">
<summary>
Contains the options used by the CookiesAuthenticationMiddleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.#ctor">
<summary>
Create an instance of the options initialized with the default values
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.CookieName">
<summary>
Determines the cookie name used to persist the identity. The default value is ".AspNet.Cookies".
This value should be changed if you change the name of the AuthenticationType, especially if your
system uses the cookie authentication middleware multiple times.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.CookieDomain">
<summary>
Determines the domain used to create the cookie. Is not provided by default.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.CookiePath">
<summary>
Determines the path used to create the cookie. The default value is "/" for highest browser compatability.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.CookieHttpOnly">
<summary>
Determines if the browser should allow the cookie to be accessed by client-side javascript. The
default is true, which means the cookie will only be passed to http requests and is not made available
to script on the page.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.CookieSecure">
<summary>
Determines if the cookie should only be transmitted on HTTPS request. The default is to limit the cookie
to HTTPS requests if the page which is doing the SignIn is also HTTPS. If you have an HTTPS sign in page
and portions of your site are HTTP you may need to change this value.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.ExpireTimeSpan">
<summary>
Controls how much time the cookie will remain valid from the point it is created. The expiration
information is in the protected cookie ticket. Because of that an expired cookie will be ignored
even if it is passed to the server after the browser should have purged it
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.SlidingExpiration">
<summary>
The SlidingExpiration is set to true to instruct the middleware to re-issue a new cookie with a new
expiration time any time it processes a request which is more than halfway through the expiration window.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.LoginPath">
<summary>
The LoginPath property informs the middleware that it should change an outgoing 401 Unauthorized status
code into a 302 redirection onto the given login path. The current url which generated the 401 is added
to the LoginPath as a query string parameter named by the ReturnUrlParameter. Once a request to the
LoginPath grants a new SignIn identity, the ReturnUrlParameter value is used to redirect the browser back
to the url which caused the original unauthorized status code.
If the LoginPath is null or empty, the middleware will not look for 401 Unauthorized status codes, and it will
not redirect automatically when a login occurs.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.LogoutPath">
<summary>
If the LogoutPath is provided the middleware then a request to that path will redirect based on the ReturnUrlParameter.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.ReturnUrlParameter">
<summary>
The ReturnUrlParameter determines the name of the query string parameter which is appended by the middleware
when a 401 Unauthorized status code is changed to a 302 redirect onto the login path. This is also the query
string parameter looked for when a request arrives on the login path or logout path, in order to return to the
original url after the action is performed.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.Provider">
<summary>
The Provider may be assigned to an instance of an object created by the application at startup time. The middleware
calls methods on the provider which give the application control at certain points where processing is occuring.
If it is not provided a default instance is supplied which does nothing when the methods are called.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.TicketDataFormat">
<summary>
The TicketDataFormat is used to protect and unprotect the identity and other properties which are stored in the
cookie value. If it is not provided a default data handler is created using the data protection service contained
in the IAppBuilder.Properties. The default data protection service is based on machine key when running on ASP.NET,
and on DPAPI when running in a different process.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.SystemClock">
<summary>
The SystemClock provides access to the system's current time coordinates. If it is not provided a default instance is
used which calls DateTimeOffset.UtcNow. This is typically not replaced except for unit testing.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.CookieManager">
<summary>
The component used to get cookies from the request or set them on the response.
ChunkingCookieManager will be used by default.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions.SessionStore">
<summary>
An optional container in which to store the identity across requests. When used, only a session identifier is sent
to the client. This can be used to mitigate potential problems with very large identities.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieApplyRedirectContext">
<summary>
Context passed when a Challenge, SignIn, or SignOut causes a redirect in the cookie middleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieApplyRedirectContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions,System.String)">
<summary>
Creates a new context object.
</summary>
<param name="context">The OWIN request context</param>
<param name="options">The cookie middleware options</param>
<param name="redirectUri">The initial redirect URI</param>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieApplyRedirectContext.RedirectUri">
<summary>
Gets or Sets the URI used for the redirect operation.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider">
<summary>
This default implementation of the ICookieAuthenticationProvider may be used if the
application only needs to override a few of the interface methods. This may be used as a base class
or may be instantiated directly.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.#ctor">
<summary>
Create a new instance of the default provider.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.OnValidateIdentity">
<summary>
A delegate assigned to this property will be invoked when the related method is called
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.OnResponseSignIn">
<summary>
A delegate assigned to this property will be invoked when the related method is called
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.OnResponseSignedIn">
<summary>
A delegate assigned to this property will be invoked when the related method is called
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.OnResponseSignOut">
<summary>
A delegate assigned to this property will be invoked when the related method is called
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.OnApplyRedirect">
<summary>
A delegate assigned to this property will be invoked when the related method is called
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.OnException">
<summary>
A delegate assigned to this property will be invoked when the related method is called
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.ValidateIdentity(Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext)">
<summary>
Implements the interface method by invoking the related delegate method
</summary>
<param name="context"></param>
<returns></returns>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.ResponseSignIn(Microsoft.Owin.Security.Cookies.CookieResponseSignInContext)">
<summary>
Implements the interface method by invoking the related delegate method
</summary>
<param name="context"></param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.ResponseSignedIn(Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext)">
<summary>
Implements the interface method by invoking the related delegate method
</summary>
<param name="context"></param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.ResponseSignOut(Microsoft.Owin.Security.Cookies.CookieResponseSignOutContext)">
<summary>
Implements the interface method by invoking the related delegate method
</summary>
<param name="context"></param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.ApplyRedirect(Microsoft.Owin.Security.Cookies.CookieApplyRedirectContext)">
<summary>
Implements the interface method by invoking the related delegate method
</summary>
<param name="context">Contains information about the event</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.Exception(Microsoft.Owin.Security.Cookies.CookieExceptionContext)">
<summary>
Implements the interface method by invoking the related delegate method
</summary>
<param name="context">Contains information about the event</param>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieExceptionContext">
<summary>
Context object passed to the ICookieAuthenticationProvider method Exception.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieExceptionContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions,Microsoft.Owin.Security.Cookies.CookieExceptionContext.ExceptionLocation,System.Exception,Microsoft.Owin.Security.AuthenticationTicket)">
<summary>
Creates a new instance of the context object.
</summary>
<param name="context">The OWIN request context</param>
<param name="options">The middleware options</param>
<param name="location">The location of the exception</param>
<param name="exception">The exception thrown.</param>
<param name="ticket">The current ticket, if any.</param>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieExceptionContext.ExceptionLocation">
<summary>
The code paths where exceptions may be reported.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieExceptionContext.ExceptionLocation.AuthenticateAsync">
<summary>
The exception was reported in the AuthenticateAsync code path.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieExceptionContext.ExceptionLocation.ApplyResponseGrant">
<summary>
The exception was reported in the ApplyResponseGrant code path, during sign-in, sign-out, or refresh.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Cookies.CookieExceptionContext.ExceptionLocation.ApplyResponseChallenge">
<summary>
The exception was reported in the ApplyResponseChallenge code path, during redirect generation.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieExceptionContext.Location">
<summary>
The code path the exception occurred in.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieExceptionContext.Exception">
<summary>
The exception thrown.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieExceptionContext.Rethrow">
<summary>
True if the exception should be re-thrown (default), false if it should be suppressed.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieExceptionContext.Ticket">
<summary>
The current authentication ticket, if any.
In the AuthenticateAsync code path, if the given exception is not re-thrown then this ticket
will be returned to the application. The ticket may be replaced if needed.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext">
<summary>
Context object passed to the ICookieAuthenticationProvider method ResponseSignedIn.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions,System.String,System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
<summary>
Creates a new instance of the context object.
</summary>
<param name="context">The OWIN request context</param>
<param name="options">The middleware options</param>
<param name="authenticationType">Initializes AuthenticationType property</param>
<param name="identity">Initializes Identity property</param>
<param name="properties">Initializes Properties property</param>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext.AuthenticationType">
<summary>
The name of the AuthenticationType creating a cookie
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext.Identity">
<summary>
Contains the claims that were converted into the outgoing cookie.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext.Properties">
<summary>
Contains the extra data that was contained in the outgoing cookie.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieResponseSignInContext">
<summary>
Context object passed to the ICookieAuthenticationProvider method ResponseSignIn.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieResponseSignInContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions,System.String,System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties,Microsoft.Owin.CookieOptions)">
<summary>
Creates a new instance of the context object.
</summary>
<param name="context">The OWIN request context</param>
<param name="options">The middleware options</param>
<param name="authenticationType">Initializes AuthenticationType property</param>
<param name="identity">Initializes Identity property</param>
<param name="properties">Initializes Extra property</param>
<param name="cookieOptions">Initializes options for the authentication cookie.</param>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignInContext.AuthenticationType">
<summary>
The name of the AuthenticationType creating a cookie
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignInContext.Identity">
<summary>
Contains the claims about to be converted into the outgoing cookie.
May be replaced or altered during the ResponseSignIn call.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignInContext.Properties">
<summary>
Contains the extra data about to be contained in the outgoing cookie.
May be replaced or altered during the ResponseSignIn call.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignInContext.CookieOptions">
<summary>
The options for creating the outgoing cookie.
May be replace or altered during the ResponseSignIn call.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieResponseSignOutContext">
<summary>
Context object passed to the ICookieAuthenticationProvider method ResponseSignOut
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieResponseSignOutContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions,Microsoft.Owin.CookieOptions)">
<summary>
</summary>
<param name="context"></param>
<param name="options"></param>
<param name="cookieOptions"></param>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieResponseSignOutContext.CookieOptions">
<summary>
The options for creating the outgoing cookie.
May be replace or altered during the ResponseSignOut call.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext">
<summary>
Context object passed to the ICookieAuthenticationProvider method ValidateIdentity.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.AuthenticationTicket,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions)">
<summary>
Creates a new instance of the context object.
</summary>
<param name="context"></param>
<param name="ticket">Contains the initial values for identity and extra data</param>
<param name="options"></param>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext.Identity">
<summary>
Contains the claims identity arriving with the request. May be altered to change the
details of the authenticated user.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext.Properties">
<summary>
Contains the extra meta-data arriving with the request ticket. May be altered.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext.ReplaceIdentity(System.Security.Principal.IIdentity)">
<summary>
Called to replace the claims identity. The supplied identity will replace the value of the
Identity property, which determines the identity of the authenticated request.
</summary>
<param name="identity">The identity used as the replacement</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext.RejectIdentity">
<summary>
Called to reject the incoming identity. This may be done if the application has determined the
account is no longer active, and the request should be treated as if it was anonymous.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider">
<summary>
Specifies callback methods which the <see cref="T:Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware"></see> invokes to enable developer control over the authentication process. />
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider.ValidateIdentity(Microsoft.Owin.Security.Cookies.CookieValidateIdentityContext)">
<summary>
Called each time a request identity has been validated by the middleware. By implementing this method the
application may alter or reject the identity which has arrived with the request.
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider.ResponseSignIn(Microsoft.Owin.Security.Cookies.CookieResponseSignInContext)">
<summary>
Called when an endpoint has provided sign in information before it is converted into a cookie. By
implementing this method the claims and extra information that go into the ticket may be altered.
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider.ResponseSignedIn(Microsoft.Owin.Security.Cookies.CookieResponseSignedInContext)">
<summary>
Called when an endpoint has provided sign in information after it is converted into a cookie.
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider.ApplyRedirect(Microsoft.Owin.Security.Cookies.CookieApplyRedirectContext)">
<summary>
Called when a Challenge, SignIn, or SignOut causes a redirect in the cookie middleware
</summary>
<param name="context">Contains information about the event</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider.ResponseSignOut(Microsoft.Owin.Security.Cookies.CookieResponseSignOutContext)">
<summary>
Called during the sign-out flow to augment the cookie cleanup process.
</summary>
<param name="context">Contains information about the login session as well as information about the authentication cookie.</param>
</member>
<member name="M:Microsoft.Owin.Security.Cookies.ICookieAuthenticationProvider.Exception(Microsoft.Owin.Security.Cookies.CookieExceptionContext)">
<summary>
Called when an exception occurs during request or response processing.
</summary>
<param name="context">Contains information about the exception that occurred</param>
</member>
<member name="T:Owin.CookieAuthenticationExtensions">
<summary>
Extension methods provided by the cookies authentication middleware
</summary>
</member>
<member name="M:Owin.CookieAuthenticationExtensions.UseCookieAuthentication(Owin.IAppBuilder,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions)">
<summary>
Adds a cookie-based authentication middleware to your web application pipeline.
</summary>
<param name="app">The IAppBuilder passed to your configuration method</param>
<param name="options">An options class that controls the middleware behavior</param>
<returns>The original app parameter</returns>
</member>
<member name="M:Owin.CookieAuthenticationExtensions.UseCookieAuthentication(Owin.IAppBuilder,Microsoft.Owin.Security.Cookies.CookieAuthenticationOptions,Owin.PipelineStage)">
<summary>
Adds a cookie-based authentication middleware to your web application pipeline.
</summary>
<param name="app">The IAppBuilder passed to your configuration method</param>
<param name="options">An options class that controls the middleware behavior</param>
<param name="stage"></param>
<returns>The original app parameter</returns>
</member>
</members>
</doc>

View file

@ -0,0 +1,378 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Owin.Security.Google</name>
</assembly>
<members>
<member name="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware">
<summary>
OWIN middleware for authenticating users using Google OAuth 2.0
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Owin.IAppBuilder,Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions)">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware"/>
</summary>
<param name="next">The next middleware in the OWIN pipeline to invoke</param>
<param name="app">The OWIN application</param>
<param name="options">Configuration options for the middleware</param>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware.CreateHandler">
<summary>
Provides the <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler"/> object for processing authentication-related requests.
</summary>
<returns>An <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler"/> configured with the <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions"/> supplied to the constructor.</returns>
</member>
<member name="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions">
<summary>
Configuration options for <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware"/>
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.#ctor">
<summary>
Initializes a new <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions"/>
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.ClientId">
<summary>
Gets or sets the Google-assigned client id
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.ClientSecret">
<summary>
Gets or sets the Google-assigned client secret
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.AuthorizationEndpoint">
<summary>
Gets or sets the URI where the client will be redirected to authenticate.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.TokenEndpoint">
<summary>
Gets or sets the URI the middleware will access to exchange the OAuth token.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.UserInformationEndpoint">
<summary>
Gets or sets the URI the middleware will access to obtain the user information.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.BackchannelCertificateValidator">
<summary>
Gets or sets the a pinned certificate validator to use to validate the endpoints used
in back channel communications belong to Google.
</summary>
<value>
The pinned certificate validator.
</value>
<remarks>If this property is null then the default certificate checks are performed,
validating the subject name and if the signing chain is a trusted party.</remarks>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.BackchannelTimeout">
<summary>
Gets or sets timeout value in milliseconds for back channel communications with Google.
</summary>
<value>
The back channel timeout in milliseconds.
</value>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.BackchannelHttpHandler">
<summary>
The HttpMessageHandler used to communicate with Google.
This cannot be set at the same time as BackchannelCertificateValidator unless the value
can be downcast to a WebRequestHandler.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.Caption">
<summary>
Get or sets the text that the user can display on a sign in user interface.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.CallbackPath">
<summary>
The request path within the application's base path where the user-agent will be returned.
The middleware will process this request when it arrives.
Default value is "/signin-google".
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.SignInAsAuthenticationType">
<summary>
Gets or sets the name of another authentication middleware which will be responsible for actually issuing a user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.Provider">
<summary>
Gets or sets the <see cref="T:Microsoft.Owin.Security.Google.IGoogleOAuth2AuthenticationProvider"/> used to handle authentication events.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.StateDataFormat">
<summary>
Gets or sets the type used to secure data handled by the middleware.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.Scope">
<summary>
A list of permissions to request.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.AccessType">
<summary>
access_type. Set to 'offline' to request a refresh token.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions.CookieManager">
<summary>
An abstraction for reading and setting cookies during the authentication process.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Google.GoogleOAuth2ApplyRedirectContext">
<summary>
Context passed when a Challenge causes a redirect to authorize endpoint in the Google OAuth 2.0 middleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2ApplyRedirectContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions,Microsoft.Owin.Security.AuthenticationProperties,System.String)">
<summary>
Creates a new context object.
</summary>
<param name="context">The OWIN request context</param>
<param name="options">The Google OAuth 2.0 middleware options</param>
<param name="properties">The authenticaiton properties of the challenge</param>
<param name="redirectUri">The initial redirect URI</param>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2ApplyRedirectContext.RedirectUri">
<summary>
Gets the URI used for the redirect operation.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2ApplyRedirectContext.Properties">
<summary>
Gets the authenticaiton properties of the challenge
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext">
<summary>
Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.#ctor(Microsoft.Owin.IOwinContext,Newtonsoft.Json.Linq.JObject,System.String,System.String,System.String)">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext"/>
</summary>
<param name="context">The OWIN environment</param>
<param name="user">The JSON-serialized Google user info</param>
<param name="accessToken">Google OAuth 2.0 access token</param>
<param name="refreshToken">Goolge OAuth 2.0 refresh token</param>
<param name="expires">Seconds until expiration</param>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.#ctor(Microsoft.Owin.IOwinContext,Newtonsoft.Json.Linq.JObject,Newtonsoft.Json.Linq.JObject)">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext"/>
</summary>
<param name="context">The OWIN environment</param>
<param name="user">The JSON-serialized Google user info</param>
<param name="tokenResponse">The JSON-serialized token response Google</param>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.User">
<summary>
Gets the JSON-serialized user
</summary>
<remarks>
Contains the Google user obtained from the UserInformationEndpoint
</remarks>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.AccessToken">
<summary>
Gets the Google access token
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.RefreshToken">
<summary>
Gets the Google refresh token
</summary>
<remarks>
This value is not null only when access_type authorize parameter is offline.
</remarks>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.ExpiresIn">
<summary>
Gets the Google access token expiration time
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.Id">
<summary>
Gets the Google user ID
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.Name">
<summary>
Gets the user's name
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.GivenName">
<summary>
Gets the user's given name
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.FamilyName">
<summary>
Gets the user's family name
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.Profile">
<summary>
Gets the user's profile link
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.Email">
<summary>
Gets the user's email
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.Identity">
<summary>
Gets the <see cref="T:System.Security.Claims.ClaimsIdentity"/> representing the user
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.TokenResponse">
<summary>
Token response from Google
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext.Properties">
<summary>
Gets or sets a property bag for common authentication properties
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider">
<summary>
Default <see cref="T:Microsoft.Owin.Security.Google.IGoogleOAuth2AuthenticationProvider"/> implementation.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.#ctor">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider"/>
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.OnAuthenticated">
<summary>
Gets or sets the function that is invoked when the Authenticated method is invoked.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.OnReturnEndpoint">
<summary>
Gets or sets the function that is invoked when the ReturnEndpoint method is invoked.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.OnApplyRedirect">
<summary>
Gets or sets the delegate that is invoked when the ApplyRedirect method is invoked.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.Authenticated(Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext)">
<summary>
Invoked whenever Google succesfully authenticates a user
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.ReturnEndpoint(Microsoft.Owin.Security.Google.GoogleOAuth2ReturnEndpointContext)">
<summary>
Invoked prior to the <see cref="T:System.Security.Claims.ClaimsIdentity"/> being saved in a local cookie and the browser being redirected to the originally requested URL.
</summary>
<param name="context">Contains context information and authentication ticket of the return endpoint.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider.ApplyRedirect(Microsoft.Owin.Security.Google.GoogleOAuth2ApplyRedirectContext)">
<summary>
Called when a Challenge causes a redirect to authorize endpoint in the Google OAuth 2.0 middleware
</summary>
<param name="context">Contains redirect URI and <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> of the challenge </param>
</member>
<member name="T:Microsoft.Owin.Security.Google.GoogleOAuth2ReturnEndpointContext">
<summary>
Provides context information to middleware providers.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.GoogleOAuth2ReturnEndpointContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.AuthenticationTicket)">
<summary>
Initialize a <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2ReturnEndpointContext"/>
</summary>
<param name="context">OWIN environment</param>
<param name="ticket">The authentication ticket</param>
</member>
<member name="T:Microsoft.Owin.Security.Google.IGoogleOAuth2AuthenticationProvider">
<summary>
Specifies callback methods which the <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware"></see> invokes to enable developer control over the authentication process. />
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Google.IGoogleOAuth2AuthenticationProvider.Authenticated(Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticatedContext)">
<summary>
Invoked whenever Google succesfully authenticates a user
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Google.IGoogleOAuth2AuthenticationProvider.ReturnEndpoint(Microsoft.Owin.Security.Google.GoogleOAuth2ReturnEndpointContext)">
<summary>
Invoked prior to the <see cref="T:System.Security.Claims.ClaimsIdentity"/> being saved in a local cookie and the browser being redirected to the originally requested URL.
</summary>
<param name="context">Contains context information and authentication ticket of the return endpoint.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Google.IGoogleOAuth2AuthenticationProvider.ApplyRedirect(Microsoft.Owin.Security.Google.GoogleOAuth2ApplyRedirectContext)">
<summary>
Called when a Challenge causes a redirect to authorize endpoint in the Google OAuth 2.0 middleware
</summary>
<param name="context">Contains redirect URI and <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> of the challenge </param>
</member>
<member name="T:Microsoft.Owin.Security.Google.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.Resources.Exception_OptionMustBeProvided">
<summary>
Looks up a localized string similar to The &apos;{0}&apos; option must be provided..
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Google.Resources.Exception_ValidatorHandlerMismatch">
<summary>
Looks up a localized string similar to An ICertificateValidator cannot be specified at the same time as an HttpMessageHandler unless it is a WebRequestHandler..
</summary>
</member>
<member name="T:Owin.GoogleAuthenticationExtensions">
<summary>
Extension methods for using <see cref="T:Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationMiddleware"/>
</summary>
</member>
<member name="M:Owin.GoogleAuthenticationExtensions.UseGoogleAuthentication(Owin.IAppBuilder,Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions)">
<summary>
Authenticate users using Google OAuth 2.0
</summary>
<param name="app">The <see cref="T:Owin.IAppBuilder"/> passed to the configuration method</param>
<param name="options">Middleware configuration options</param>
<returns>The updated <see cref="T:Owin.IAppBuilder"/></returns>
</member>
<member name="M:Owin.GoogleAuthenticationExtensions.UseGoogleAuthentication(Owin.IAppBuilder,System.String,System.String)">
<summary>
Authenticate users using Google OAuth 2.0
</summary>
<param name="app">The <see cref="T:Owin.IAppBuilder"/> passed to the configuration method</param>
<param name="clientId">The google assigned client id</param>
<param name="clientSecret">The google assigned client secret</param>
<returns>The updated <see cref="T:Owin.IAppBuilder"/></returns>
</member>
</members>
</doc>

View file

@ -0,0 +1,357 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Owin.Security.MicrosoftAccount</name>
</assembly>
<members>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware">
<summary>
OWIN middleware for authenticating users using the Microsoft Account service
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware.#ctor(Microsoft.Owin.OwinMiddleware,Owin.IAppBuilder,Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions)">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware"/>
</summary>
<param name="next">The next middleware in the OWIN pipeline to invoke</param>
<param name="app">The OWIN application</param>
<param name="options">Configuration options for the middleware</param>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware.CreateHandler">
<summary>
Provides the <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler"/> object for processing authentication-related requests.
</summary>
<returns>An <see cref="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler"/> configured with the <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions"/> supplied to the constructor.</returns>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions">
<summary>
Configuration options for <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware"/>
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.#ctor">
<summary>
Initializes a new <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions"/>.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.BackchannelCertificateValidator">
<summary>
Gets or sets the a pinned certificate validator to use to validate the endpoints used
in back channel communications belong to Microsoft Account.
</summary>
<value>
The pinned certificate validator.
</value>
<remarks>If this property is null then the default certificate checks are performed,
validating the subject name and if the signing chain is a trusted party.</remarks>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.Caption">
<summary>
Get or sets the text that the user can display on a sign in user interface.
</summary>
<remarks>
The default value is 'Microsoft'
</remarks>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.ClientId">
<summary>
The application client ID assigned by the Microsoft authentication service.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.ClientSecret">
<summary>
The application client secret assigned by the Microsoft authentication service.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.AuthorizationEndpoint">
<summary>
Gets or sets the URI where the client will be redirected to authenticate.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.TokenEndpoint">
<summary>
Gets or sets the URI the middleware will access to exchange the OAuth token.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.UserInformationEndpoint">
<summary>
Gets or sets the URI the middleware will access to obtain the user information.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.BackchannelTimeout">
<summary>
Gets or sets timeout value in milliseconds for back channel communications with Microsoft.
</summary>
<value>
The back channel timeout.
</value>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.BackchannelHttpHandler">
<summary>
The HttpMessageHandler used to communicate with Microsoft.
This cannot be set at the same time as BackchannelCertificateValidator unless the value
can be downcast to a WebRequestHandler.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.Scope">
<summary>
A list of permissions to request.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.CallbackPath">
<summary>
The request path within the application's base path where the user-agent will be returned.
The middleware will process this request when it arrives.
Default value is "/signin-microsoft".
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.SignInAsAuthenticationType">
<summary>
Gets or sets the name of another authentication middleware which will be responsible for actually issuing a user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.Provider">
<summary>
Gets or sets the <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.IMicrosoftAccountAuthenticationProvider"/> used to handle authentication events.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.StateDataFormat">
<summary>
Gets or sets the type used to secure data handled by the middleware.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions.CookieManager">
<summary>
An abstraction for reading and setting cookies during the authentication process.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.IMicrosoftAccountAuthenticationProvider">
<summary>
Specifies callback methods which the <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware"></see> invokes to enable developer control over the authentication process. />
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.IMicrosoftAccountAuthenticationProvider.Authenticated(Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext)">
<summary>
Invoked whenever Microsoft succesfully authenticates a user
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.IMicrosoftAccountAuthenticationProvider.ReturnEndpoint(Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountReturnEndpointContext)">
<summary>
Invoked prior to the <see cref="T:System.Security.Claims.ClaimsIdentity"/> being saved in a local cookie and the browser being redirected to the originally requested URL.
</summary>
<param name="context"></param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.IMicrosoftAccountAuthenticationProvider.ApplyRedirect(Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountApplyRedirectContext)">
<summary>
Called when a Challenge causes a redirect to authorize endpoint in the Microsoft middleware
</summary>
<param name="context">Contains redirect URI and <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> of the challenge </param>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext">
<summary>
Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.#ctor(Microsoft.Owin.IOwinContext,Newtonsoft.Json.Linq.JObject,System.String,System.String,System.String)">
<summary>
Initializes a <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext"/>
</summary>
<param name="context">The OWIN environment</param>
<param name="user">The JSON-serialized user</param>
<param name="accessToken">The access token provided by the Microsoft authentication service</param>
<param name="refreshToken">The refresh token provided by Microsoft authentication service</param>
<param name="expires">Seconds until expiration</param>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.User">
<summary>
Gets the JSON-serialized user
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.AccessToken">
<summary>
Gets the access token provided by the Microsoft authentication service
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.RefreshToken">
<summary>
Gets the refresh token provided by Microsoft authentication service
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.ExpiresIn">
<summary>
Gets the Microsoft access token expiration time
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.Id">
<summary>
Gets the Microsoft Account user ID
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.Name">
<summary>
Gets the user name
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.FirstName">
<summary>
Gets the user first name
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.LastName">
<summary>
Gets the user last name
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.Email">
<summary>
Gets the user email address
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.Identity">
<summary>
Gets the <see cref="T:System.Security.Claims.ClaimsIdentity"/> representing the user
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext.Properties">
<summary>
Gets or sets a property bag for common authentication properties
</summary>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider">
<summary>
Default <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.IMicrosoftAccountAuthenticationProvider"/> implementation.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.#ctor">
<summary>
Initializes a new <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider"/>
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.OnAuthenticated">
<summary>
Gets or sets the function that is invoked when the Authenticated method is invoked.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.OnReturnEndpoint">
<summary>
Gets or sets the function that is invoked when the ReturnEndpoint method is invoked.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.OnApplyRedirect">
<summary>
Gets or sets the delegate that is invoked when the ApplyRedirect method is invoked.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.Authenticated(Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticatedContext)">
<summary>
Invoked whenever Microsoft succesfully authenticates a user
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/>.</param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.ReturnEndpoint(Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountReturnEndpointContext)">
<summary>
Invoked prior to the <see cref="T:System.Security.Claims.ClaimsIdentity"/> being saved in a local cookie and the browser being redirected to the originally requested URL.
</summary>
<param name="context">Contains information about the login session as well as the user <see cref="T:System.Security.Claims.ClaimsIdentity"/></param>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completed operation.</returns>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider.ApplyRedirect(Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountApplyRedirectContext)">
<summary>
Called when a Challenge causes a redirect to authorize endpoint in the Microsoft account middleware
</summary>
<param name="context">Contains redirect URI and <see cref="T:Microsoft.Owin.Security.AuthenticationProperties"/> of the challenge </param>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountReturnEndpointContext">
<summary>
Provides context information to middleware providers.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountReturnEndpointContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.AuthenticationTicket)">
<summary>
Initializes a new <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountReturnEndpointContext"/>.
</summary>
<param name="context">OWIN environment</param>
<param name="ticket">The authentication ticket</param>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountApplyRedirectContext">
<summary>
Context passed when a Challenge causes a redirect to authorize endpoint in the Microsoft account middleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountApplyRedirectContext.#ctor(Microsoft.Owin.IOwinContext,Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions,Microsoft.Owin.Security.AuthenticationProperties,System.String)">
<summary>
Creates a new context object.
</summary>
<param name="context">The OWIN request context</param>
<param name="options">The Microsoft account middleware options</param>
<param name="properties">The authenticaiton properties of the challenge</param>
<param name="redirectUri">The initial redirect URI</param>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountApplyRedirectContext.RedirectUri">
<summary>
Gets the URI used for the redirect operation.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountApplyRedirectContext.Properties">
<summary>
Gets the authenticaiton properties of the challenge
</summary>
</member>
<member name="T:Microsoft.Owin.Security.MicrosoftAccount.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.Resources.Exception_MissingId">
<summary>
Looks up a localized string similar to The user does not have an id..
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.Resources.Exception_OptionMustBeProvided">
<summary>
Looks up a localized string similar to The &apos;{0}&apos; option must be provided..
</summary>
</member>
<member name="P:Microsoft.Owin.Security.MicrosoftAccount.Resources.Exception_ValidatorHandlerMismatch">
<summary>
Looks up a localized string similar to An ICertificateValidator cannot be specified at the same time as an HttpMessageHandler unless it is a WebRequestHandler..
</summary>
</member>
<member name="T:Owin.MicrosoftAccountAuthenticationExtensions">
<summary>
Extension methods for using <see cref="T:Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware"/>
</summary>
</member>
<member name="M:Owin.MicrosoftAccountAuthenticationExtensions.UseMicrosoftAccountAuthentication(Owin.IAppBuilder,Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions)">
<summary>
Authenticate users using Microsoft Account
</summary>
<param name="app">The <see cref="T:Owin.IAppBuilder"/> passed to the configuration method</param>
<param name="options">Middleware configuration options</param>
<returns>The updated <see cref="T:Owin.IAppBuilder"/></returns>
</member>
<member name="M:Owin.MicrosoftAccountAuthenticationExtensions.UseMicrosoftAccountAuthentication(Owin.IAppBuilder,System.String,System.String)">
<summary>
Authenticate users using Microsoft Account
</summary>
<param name="app">The <see cref="T:Owin.IAppBuilder"/> passed to the configuration method</param>
<param name="clientId">The application client ID assigned by the Microsoft authentication service</param>
<param name="clientSecret">The application client secret assigned by the Microsoft authentication service</param>
<returns></returns>
</member>
</members>
</doc>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,494 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Owin.Security</name>
</assembly>
<members>
<member name="T:Microsoft.Owin.Security.AppBuilderSecurityExtensions">
<summary>
Provides extensions methods for app.Property values that are only needed by implementations of authentication middleware.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.GetDefaultSignInAsAuthenticationType(Owin.IAppBuilder)">
<summary>
Returns the previously set AuthenticationType that external sign in middleware should use when the
browser navigates back to their return url.
</summary>
<param name="app">App builder passed to the application startup code</param>
<returns></returns>
</member>
<member name="M:Microsoft.Owin.Security.AppBuilderSecurityExtensions.SetDefaultSignInAsAuthenticationType(Owin.IAppBuilder,System.String)">
<summary>
Called by middleware to change the name of the AuthenticationType that external middleware should use
when the browser navigates back to their return url.
</summary>
<param name="app">App builder passed to the application startup code</param>
<param name="authenticationType">AuthenticationType that external middleware should sign in as.</param>
</member>
<member name="T:Microsoft.Owin.Security.AuthenticationMode">
<summary>
Controls the behavior of authentication middleware
</summary>
</member>
<member name="F:Microsoft.Owin.Security.AuthenticationMode.Active">
<summary>
In Active mode the authentication middleware will alter the user identity as the request arrives, and
will also alter a plain 401 as the response leaves.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.AuthenticationMode.Passive">
<summary>
In Passive mode the authentication middleware will only provide user identity when asked, and will only
alter 401 responses where the authentication type named in the extra challenge data.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.AuthenticationOptions">
<summary>
Base Options for all authentication middleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.AuthenticationOptions.#ctor(System.String)">
<summary>
Initialize properties of AuthenticationOptions base class
</summary>
<param name="authenticationType">Assigned to the AuthenticationType property</param>
</member>
<member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationType">
<summary>
The AuthenticationType in the options corresponds to the IIdentity AuthenticationType property. A different
value may be assigned in order to use the same authentication middleware type more than once in a pipeline.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.AuthenticationOptions.AuthenticationMode">
<summary>
If Active the authentication middleware alter the request user coming in and
alter 401 Unauthorized responses going out. If Passive the authentication middleware will only provide
identity and alter responses when explicitly indicated by the AuthenticationType.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.AuthenticationOptions.Description">
<summary>
Additional information about the authentication type which is made available to the application.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Constants">
<summary>
String constants used only by the Security assembly
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Constants.DefaultSignInAsAuthenticationType">
<summary>
Used by middleware extension methods to coordinate the default value Options property SignInAsAuthenticationType
</summary>
</member>
<member name="T:Microsoft.Owin.Security.DataProtection.IDataProtector">
<summary>
Service used to protect and unprotect data
</summary>
</member>
<member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Protect(System.Byte[])">
<summary>
Called to protect user data.
</summary>
<param name="userData">The original data that must be protected</param>
<returns>A different byte array that may be unprotected or altered only by software that has access to
the an identical IDataProtection service.</returns>
</member>
<member name="M:Microsoft.Owin.Security.DataProtection.IDataProtector.Unprotect(System.Byte[])">
<summary>
Called to unprotect user data
</summary>
<param name="protectedData">The byte array returned by a call to Protect on an identical IDataProtection service.</param>
<returns>The byte array identical to the original userData passed to Protect.</returns>
</member>
<member name="T:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider">
<summary>
Factory used to create IDataProtection instances
</summary>
</member>
<member name="M:Microsoft.Owin.Security.DataProtection.IDataProtectionProvider.Create(System.String[])">
<summary>
Returns a new instance of IDataProtection for the provider.
</summary>
<param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
<returns>An instance of a data protection service</returns>
</member>
<member name="T:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider">
<summary>
Used to provide the data protection services that are derived from the Data Protection API. It is the best choice of
data protection when you application is not hosted by ASP.NET and all processes are running as the same domain identity.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor">
<summary>
Initializes a new DpapiDataProtectionProvider with a random application
name. This is only useful to protect data for the duration of the
current application execution.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.#ctor(System.String)">
<summary>
Initializes a new DpapiDataProtectionProvider which uses the given
appName as part of the protection algorithm
</summary>
<param name="appName">A user provided value needed to round-trip secured
data. The default value comes from the IAppBuilder.Properties["owin.AppName"]
when self-hosted.</param>
</member>
<member name="M:Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider.Create(System.String[])">
<summary>
Returns a new instance of IDataProtection for the provider.
</summary>
<param name="purposes">Additional entropy used to ensure protected data may only be unprotected for the correct purposes.</param>
<returns>An instance of a data protection service</returns>
</member>
<member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1">
<summary>
Base class for the per-request work performed by most authentication middleware.
</summary>
<typeparam name="TOptions">Specifies which type for of AuthenticationOptions property</typeparam>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler`1.Initialize(`0,Microsoft.Owin.IOwinContext)">
<summary>
Initialize is called once per request to contextualize this instance with appropriate state.
</summary>
<param name="options">The original options passed by the application control behavior</param>
<param name="context">The utility object to observe the current request and response</param>
<returns>async completion</returns>
</member>
<member name="T:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler">
<summary>
Base class for the per-request work performed by most authentication middleware.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.TeardownAsync">
<summary>
Called once per request after Initialize and Invoke.
</summary>
<returns>async completion</returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.InvokeAsync">
<summary>
Called once by common code after initialization. If an authentication middleware responds directly to
specifically known paths it must override this virtual, compare the request path to it's known paths,
provide any response information as appropriate, and true to stop further processing.
</summary>
<returns>Returning false will cause the common code to call the next middleware in line. Returning true will
cause the common code to begin the async completion journey without calling the rest of the middleware
pipeline.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateAsync">
<summary>
Causes the authentication logic in AuthenticateCore to be performed for the current request
at most once and returns the results. Calling Authenticate more than once will always return
the original value.
This method should always be called instead of calling AuthenticateCore directly.
</summary>
<returns>The ticket data provided by the authentication logic</returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.AuthenticateCoreAsync">
<summary>
The core authentication logic which must be provided by the handler. Will be invoked at most
once per request. Do not call directly, call the wrapping Authenticate method instead.
</summary>
<returns>The ticket data provided by the authentication logic</returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseAsync">
<summary>
Causes the ApplyResponseCore to be invoked at most once per request. This method will be
invoked either earlier, when the response headers are sent as a result of a response write or flush,
or later, as the last step when the original async call to the middleware is returning.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseCoreAsync">
<summary>
Core method that may be overridden by handler. The default behavior is to call two common response
activities, one that deals with sign-in/sign-out concerns, and a second to deal with 401 challenges.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseGrantAsync">
<summary>
Override this method to dela with sign-in/sign-out concerns, if an authentication scheme in question
deals with grant/revoke as part of it's request flow. (like setting/deleting cookies)
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.ApplyResponseChallengeAsync">
<summary>
Override this method to deal with 401 challenge concerns, if an authentication scheme in question
deals an authentication interaction as part of it's request flow. (like adding a response header, or
changing the 401 result to 302 of a login page or external sign-in location.)
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.Owin.Security.Infrastructure.SecurityHelper">
<summary>
Helper code used when implementing authentication middleware
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.#ctor(Microsoft.Owin.IOwinContext)">
<summary>
Helper code used when implementing authentication middleware
</summary>
<param name="context"></param>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.AddUserIdentity(System.Security.Principal.IIdentity)">
<summary>
Add an additional ClaimsIdentity to the ClaimsPrincipal in the "server.User" environment key
</summary>
<param name="identity"></param>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupChallenge(System.String,Microsoft.Owin.Security.AuthenticationMode)">
<summary>
Find response challenge details for a specific authentication middleware
</summary>
<param name="authenticationType">The authentication type to look for</param>
<param name="authenticationMode">The authentication mode the middleware is running under</param>
<returns>The information instructing the middleware how it should behave</returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignIn(System.String)">
<summary>
Find response sign-in details for a specific authentication middleware
</summary>
<param name="authenticationType">The authentication type to look for</param>
<returns>The information instructing the middleware how it should behave</returns>
</member>
<member name="M:Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupSignOut(System.String,Microsoft.Owin.Security.AuthenticationMode)">
<summary>
Find response sign-out details for a specific authentication middleware
</summary>
<param name="authenticationType">The authentication type to look for</param>
<param name="authenticationMode">The authentication mode the middleware is running under</param>
<returns>The information instructing the middleware how it should behave</returns>
</member>
<member name="T:Microsoft.Owin.Security.AuthenticationTicket">
<summary>
Contains user identity information as well as additional authentication state.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.AuthenticationTicket.#ctor(System.Security.Claims.ClaimsIdentity,Microsoft.Owin.Security.AuthenticationProperties)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.AuthenticationTicket"/> class
</summary>
<param name="identity"></param>
<param name="properties"></param>
</member>
<member name="P:Microsoft.Owin.Security.AuthenticationTicket.Identity">
<summary>
Gets the authenticated user identity.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.AuthenticationTicket.Properties">
<summary>
Additional state values for the authentication session.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.ICertificateValidator">
<summary>
Interface for providing pinned certificate validation, which checks HTTPS
communication against a known good list of certificates to protect against
compromised or rogue CAs issuing certificates for hosts without the
knowledge of the host owner.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.ICertificateValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
<summary>
Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication.
</summary>
<param name="sender">An object that contains state information for this validation.</param>
<param name="certificate">The certificate used to authenticate the remote party.</param>
<param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
<param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
<returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
</member>
<member name="T:Microsoft.Owin.Security.CertificateThumbprintValidator">
<summary>
Provides pinned certificate validation based on the certificate thumbprint.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateThumbprintValidator"/> class.
</summary>
<param name="validThumbprints">A set of thumbprints which are valid for an HTTPS request.</param>
</member>
<member name="M:Microsoft.Owin.Security.CertificateThumbprintValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
<summary>
Validates that the certificate thumbprints in the signing chain match at least one whitelisted thumbprint.
</summary>
<param name="sender">An object that contains state information for this validation.</param>
<param name="certificate">The certificate used to authenticate the remote party.</param>
<param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
<param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
<returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
</member>
<member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.HandleResponse">
<summary>
Discontinue all processing for this request and return to the client.
The caller is responsible for generating the full response.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Notifications.BaseNotification`1.SkipToNextMiddleware">
<summary>
Discontinue processing the request in the current middleware and pass control to the next one.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Continue">
<summary>
Continue with normal processing.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.Skipped">
<summary>
Discontinue processing the request in the current middleware and pass control to the next one.
</summary>
</member>
<member name="F:Microsoft.Owin.Security.Notifications.NotificationResultState.HandledResponse">
<summary>
Discontinue all processing for this request.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Notifications.RedirectToIdentityProviderNotification`2.HandleResponse">
<summary>
Discontinue all processing for this request and return to the client.
The caller is responsible for generating the full response.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket">
<summary>
Gets or set the <see cref="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.AuthenticationTicket"/>
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Notifications.SecurityTokenValidatedNotification`2.ProtocolMessage">
<summary>
Gets or sets the Protocol message
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Provider.BaseContext`1">
<summary>
Base class used for certain event contexts
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Provider.EndpointContext`1">
<summary>
Base class used for certain event contexts
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.#ctor(Microsoft.Owin.IOwinContext,`0)">
<summary>
Creates an instance of this context
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Provider.EndpointContext`1.IsRequestCompleted">
<summary>
True if the request should not be processed further by other components.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.Provider.EndpointContext`1.RequestCompleted">
<summary>
Prevents the request from being processed further by other components.
IsRequestCompleted becomes true after calling.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Resources.Exception_AuthenticationTokenDoesNotProvideSyncMethods">
<summary>
Looks up a localized string similar to The AuthenticationTokenProvider&apos;s required synchronous events have not been registered..
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Resources.Exception_DefaultDpapiRequiresAppNameKey">
<summary>
Looks up a localized string similar to The default data protection provider may only be used when the IAppBuilder.Properties contains an appropriate &apos;host.AppName&apos; key..
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Resources.Exception_MissingDefaultSignInAsAuthenticationType">
<summary>
Looks up a localized string similar to A default value for SignInAsAuthenticationType was not found in IAppBuilder Properties. This can happen if your authentication middleware are added in the wrong order, or if one is missing..
</summary>
</member>
<member name="P:Microsoft.Owin.Security.Resources.Exception_UnhookAuthenticationStateType">
<summary>
Looks up a localized string similar to The state passed to UnhookAuthentication may only be the return value from HookAuthentication..
</summary>
</member>
<member name="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator">
<summary>
Provides pinned certificate validation based on the subject key identifier of the certificate.
</summary>
</member>
<member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.#ctor(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator"/> class.
</summary>
<param name="validSubjectKeyIdentifiers">A set of subject key identifiers which are valid for an HTTPS request.</param>
</member>
<member name="M:Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
<summary>
Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication.
</summary>
<param name="sender">An object that contains state information for this validation.</param>
<param name="certificate">The certificate used to authenticate the remote party.</param>
<param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
<param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
<returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
</member>
<member name="T:Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm">
<summary>
The algorithm used to generate the subject public key information blob hashes.
</summary>
</member>
<member name="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator">
<summary>
Implements a cert pinning validator passed on
http://datatracker.ietf.org/doc/draft-ietf-websec-key-pinning/?include_text=1
</summary>
</member>
<member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.#ctor(System.Collections.Generic.IEnumerable{System.String},Microsoft.Owin.Security.SubjectPublicKeyInfoAlgorithm)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator"/> class.
</summary>
<param name="validBase64EncodedSubjectPublicKeyInfoHashes">A collection of valid base64 encoded hashes of the certificate public key information blob.</param>
<param name="algorithm">The algorithm used to generate the hashes.</param>
</member>
<member name="M:Microsoft.Owin.Security.CertificateSubjectPublicKeyInfoValidator.Validate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
<summary>
Validates at least one SPKI hash is known.
</summary>
<param name="sender">An object that contains state information for this validation.</param>
<param name="certificate">The certificate used to authenticate the remote party.</param>
<param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
<param name="sslPolicyErrors">One or more errors associated with the remote certificate.</param>
<returns>A Boolean value that determines whether the specified certificate is accepted for authentication.</returns>
</member>
<member name="M:Microsoft.Win32.NativeMethods.CryptEncodeObject(System.UInt32,System.IntPtr,Microsoft.Win32.NativeMethods.CERT_PUBLIC_KEY_INFO@,System.Byte[],System.UInt32@)">
<summary>
Encodes a structure of the type indicated by the value of the lpszStructType parameter.
</summary>
<param name="dwCertEncodingType">Type of encoding used.</param>
<param name="lpszStructType">The high-order word is zero, the low-order word specifies the integer identifier for the type of the specified structure so
we can use the constants in http://msdn.microsoft.com/en-us/library/windows/desktop/aa378145%28v=vs.85%29.aspx</param>
<param name="pvStructInfo">A pointer to the structure to be encoded.</param>
<param name="pbEncoded">A pointer to a buffer to receive the encoded structure. This parameter can be NULL to retrieve the size of this information for memory allocation purposes.</param>
<param name="pcbEncoded">A pointer to a DWORD variable that contains the size, in bytes, of the buffer pointed to by the pbEncoded parameter.</param>
<returns></returns>
</member>
</members>
</doc>

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,331 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
select {
word-wrap: normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

View file

@ -1,587 +0,0 @@
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default.disabled,
.btn-primary.disabled,
.btn-success.disabled,
.btn-info.disabled,
.btn-warning.disabled,
.btn-danger.disabled,
.btn-default[disabled],
.btn-primary[disabled],
.btn-success[disabled],
.btn-info[disabled],
.btn-warning[disabled],
.btn-danger[disabled],
fieldset[disabled] .btn-default,
fieldset[disabled] .btn-primary,
fieldset[disabled] .btn-success,
fieldset[disabled] .btn-info,
fieldset[disabled] .btn-warning,
fieldset[disabled] .btn-danger {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #2e6da4;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
border-color: #2b669a;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,7 @@ using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using AyADAL;
@ -100,7 +101,7 @@ public partial class Listado : General
#region Variables (R1)
GridView grvListaDatosTemp;
GridView grvListaDatosTemp, grvUbicacionesTemp;
ArrayList arlCondicionesFiltroBusqueda = new ArrayList();
//Variables para realizar la busqueda
@ -116,7 +117,7 @@ public partial class Listado : General
ProyectoBL objProyectoBL;
ObjetivoEspecificoBL objObjetivoEspecificoBL;
ResultadoBL objResultadoBL;
UbicacionBL objUbicacionBL;
//*****************CVP***********************
CicloVidaBL objCicloVidaBL;
EtapaBL objEtapaBL;
@ -168,6 +169,8 @@ public partial class Listado : General
llenarGridView();
mostrarFilaTabla(1);
}
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Check", "validarEstado()", true);
}
catch (Exception ex)
{
@ -284,6 +287,26 @@ public partial class Listado : General
}
}
protected void grvEtapas_RowDataBound(object sender, GridViewRowEventArgs e) //M5
{
try
{
GridViewRow selectedRow = e.Row;
if (e.Row.RowType == DataControlRowType.DataRow)
{
HtmlInputCheckBox cb = (HtmlInputCheckBox)selectedRow.FindControl("chkItem");
if (e.Row.Cells[6].Text.Trim() == "1")
cb.Checked = true;
}
}
catch (Exception ex)
{
MensajeError("Error en R3M5", ex);
}
}
#endregion
#region Metodos Personalizados (R4)
@ -353,6 +376,20 @@ public partial class Listado : General
//Carga el buscador con las columnas del grid
LlenarDDLBusqueda(grvListaDatosTemp);
grvUbicacionesTemp = (GridView)divDatosInferiores.FindControl("grvUbicaciones");
GridViewBoundField bdFkUbicacion = new GridViewBoundField("FKPROYECTO", "FK", false, false, false);
GridViewBoundField bdProvincia = new GridViewBoundField("PROVINCIA", "PROVINCIA", false, false, true);
GridViewBoundField bdCanton = new GridViewBoundField("CANTON", "CANTÓN", false, false, true);
GridViewBoundField bdDistrito = new GridViewBoundField("DISTRITO", "DISTRITO", false, false, true);
GridViewBoundField bdBarrios = new GridViewBoundField("LISTABARRIOS", "COMUNIDADES", false, false, true);
grvUbicacionesTemp.Columns.Add(bdFkUbicacion);
grvUbicacionesTemp.Columns.Add(bdProvincia);
grvUbicacionesTemp.Columns.Add(bdCanton);
grvUbicacionesTemp.Columns.Add(bdDistrito);
grvUbicacionesTemp.Columns.Add(bdBarrios);
}
catch (Exception ex)
{
@ -507,12 +544,14 @@ public partial class Listado : General
GridViewBoundField bdfInicio = new GridViewBoundField("FECHAINICIOETAPA", "INICIA", false, true, true);
GridViewBoundField bdfConclusion = new GridViewBoundField("FECHAFINETAPA", "CONCLUYE", false, true, true);
GridViewBoundField bdfSituacion = new GridViewBoundField("SITUACION", "SITUACION ACTUAL", false, false, true);
GridViewBoundField bdfEtapaActual = new GridViewBoundField("ETAPAACTUAL", "ACTUAL", false, false, true);
grvEtapasTemp.Columns.Add(bdfPkEtapa);
grvEtapasTemp.Columns.Add(bdfEtapa);
grvEtapasTemp.Columns.Add(bdfInicio);
grvEtapasTemp.Columns.Add(bdfConclusion);
grvEtapasTemp.Columns.Add(bdfSituacion);
grvEtapasTemp.Columns.Add(bdfEtapaActual);
grvEtapasTemp.Columns[0].ItemStyle.Width = 25;
grvEtapasTemp.Columns[1].ItemStyle.Width = 25;
@ -889,6 +928,8 @@ public partial class Listado : General
llenarGRVPIRecursosE();
llenarGRVTotalFinanciamiento();
llenarGRVEIRecursosI();
llenarGRVEIRecursosE();
@ -897,6 +938,8 @@ public partial class Listado : General
llenarGRVPartida();
llenarGRVTotalPartida();
mostrarRecurso();
mostrarEvaluacion();
@ -942,10 +985,19 @@ public partial class Listado : General
{
txtProyecto.Text = dsProyecto.Tables[0].Rows[0]["NOMBREPROYECTO"].ToString();
txtNumeroBPIP.Text = dsProyecto.Tables[0].Rows[0]["NUMEROBPIPPROYECTO"].ToString();
txtEstadoProyecto.Text = string.IsNullOrEmpty(dsProyecto.Tables[0].Rows[0]["NOMBREESTADO"].ToString()) ? "Sin Asignar" : dsProyecto.Tables[0].Rows[0]["NOMBREESTADO"].ToString();
//RELACION PND
txtNumeroAccion.Text = dsProyecto.Tables[0].Rows[0]["NUMEROACCIONESTRATEGICAPROYECTO"].ToString();
txtNumeroAccion.ToolTip = txtNumeroAccion.Text;
txtMetaAccion.Text = dsProyecto.Tables[0].Rows[0]["METAACCIONESTRATEGICAPROYECTO"].ToString();
txtMetaAccion.ToolTip = txtMetaAccion.Text;
txtMetaInstitucional.Text = dsProyecto.Tables[0].Rows[0]["METAINSTITUCIONALPROYECTO"].ToString();
txtMetaInstitucional.ToolTip = txtMetaInstitucional.Text;
/******************/
txtPrioridad.Text = dsProyecto.Tables[0].Rows[0]["PRIORIDAD"].ToString();
txtComplejidad.Text = dsProyecto.Tables[0].Rows[0]["NOMBRECOMPLEJIDAD"].ToString();
txtDescripcion.Text = dsProyecto.Tables[0].Rows[0]["DESCRIPCIONPROYECTO"].ToString();
txtAreaTematica.Text = dsProyecto.Tables[0].Rows[0]["AREATEMATICA"].ToString();
txtObjetivo.Text = dsProyecto.Tables[0].Rows[0]["OBJETIVOGENERALPROYECTO"].ToString();
@ -953,17 +1005,19 @@ public partial class Listado : General
txtBeneficioIndir.Text = dsProyecto.Tables[0].Rows[0]["BENEFICIARIOINDIRECTOPROYECTO"].ToString();
txtDependencia.Text = dsProyecto.Tables[0].Rows[0]["NOMBREDEPENDENCIA"].ToString();
txtCategoria.Text = dsProyecto.Tables[0].Rows[0]["CATEGORIA"].ToString();
txtProvincia.Text = dsProyecto.Tables[0].Rows[0]["NOMBREUBICACION"].ToString();
txtSector.Text = dsProyecto.Tables[0].Rows[0]["SECTOR"].ToString();
txtCanton.Text = dsProyecto.Tables[0].Rows[0]["CANTONPROYECTO"].ToString();
txtDistrito.Text = dsProyecto.Tables[0].Rows[0]["DISTRITOPROYECTO"].ToString();
txtRegion.Text = dsProyecto.Tables[0].Rows[0]["NOMBREREGION"].ToString();
txtPatrocinador.Text = dsProyecto.Tables[0].Rows[0]["PATROCINADORPROYECTO"].ToString();
txtTotalEstimado.Text = dsProyecto.Tables[0].Rows[0]["COSTOESTIMADOPROYECTO"].ToString();
txtLider.Text = dsProyecto.Tables[0].Rows[0]["LIDERPROYECTO"].ToString();
if (!string.IsNullOrWhiteSpace(txtNumeroBPIP.Text))
txtProyecto.ReadOnly = true;
//MOSTRAR OBJETIVOS Y RESULTADOS
llenarGridObjetivos();
llenarGridResultados();
llenarGridUbicaciones();
}
@ -1014,6 +1068,21 @@ public partial class Listado : General
}
}
private void llenarGridUbicaciones() //M5
{
try
{
objUbicacionBL = new UbicacionBL();
DataSet dsUbicaciones = objUbicacionBL.getUbicacion(Int32.Parse(ViewState["PkProyecto"].ToString()));
detalleGRVDatos(dsUbicaciones, grvUbicacionesTemp);
}
catch (Exception ex)
{
MensajeError("Error en R6M5", ex);
}
}
//***************************************************** CVP ********************************************
private int mostrarCVP() //M5
@ -1177,6 +1246,96 @@ public partial class Listado : General
}
}
private void llenarGRVTotalFinanciamiento() //M11
{
string strTipoFinanciamiento = string.Empty;
string strTipoRecurso = string.Empty;
try
{
//Limpiar el datagrid
detalleGRVDatos(null, grvTotalFinanciamiento);
objFinanciamientoBL = new FinanciamientoBL();
objDistribucionPartidaBL = new DistribucionPartidaBL();
objFinanciamientoBL.objFinanciamientoEL.Proyecto = Int32.Parse(ViewState["PkProyecto"].ToString());
objDistribucionPartidaBL.objDistribucionPartidaEL.Proyecto = Int32.Parse(ViewState["PkProyecto"].ToString());
DataSet dsRecursos = objFinanciamientoBL.getTotalFinanciamiento();
DataSet dsPartidas = objDistribucionPartidaBL.getTotalPartida();
if (dsRecursos.Tables.Count == 0)
dsRecursos.Tables.Add();
detalleGRVDatos(dsRecursos, grvTotalFinanciamiento);
decimal vMontoTotalFinanciamiento = 0M;
decimal vMontoTotalPartidas = 0M;
#region VERIFICAR MONTO PARTIDAS
if (dsPartidas != null || dsPartidas.Tables.Count > 0 || dsPartidas.Tables[0].Rows.Count > 0)
{
for (int i = 1; i <= dsPartidas.Tables[0].Columns.Count - 1; ++i)
{
vMontoTotalPartidas += Convert.ToDecimal(dsPartidas.Tables[0].Rows[0][i].ToString());
}
}
#endregion
if (grvTotalFinanciamiento.HeaderRow != null)
{
grvTotalFinanciamiento.HeaderRow.Cells[0].Text = "";
//Dar formato a las cifras por año
for (int i = 0; i <= grvTotalFinanciamiento.Rows.Count - 1; ++i)
{
for (int j = 1; j <= grvTotalFinanciamiento.Rows[i].Cells.Count - 1; ++j)
{
vMontoTotalFinanciamiento += Convert.ToDecimal(grvTotalFinanciamiento.Rows[i].Cells[j].Text);
if (grvTotalFinanciamiento.Rows[i].Cells[j].Text != "0.00")
grvTotalFinanciamiento.Rows[i].Cells[j].Text = Decimal.Parse(grvTotalFinanciamiento.Rows[i].Cells[j].Text).ToString("###,###,###,###.#0");
grvTotalFinanciamiento.Rows[i].Cells[j].HorizontalAlign = HorizontalAlign.Right;
grvTotalFinanciamiento.FooterRow.Cells[j].BorderStyle = BorderStyle.None;
}
grvTotalFinanciamiento.Rows[i].Font.Bold = true;
}
}
#region Mostrar Total
if (grvTotalFinanciamiento.Rows.Count > 0)
{
grvTotalFinanciamiento.Rows[0].Cells[0].Text = "TOTAL ANUAL";
}
var vMontosCoinciden = vMontoTotalPartidas == vMontoTotalFinanciamiento;
grvTotalFinanciamiento.FooterRow.Cells[0].Text = "TOTAL GENERAL";
grvTotalFinanciamiento.FooterRow.Cells[0].Font.Bold = true;
grvTotalFinanciamiento.FooterRow.Cells[0].HorizontalAlign = HorizontalAlign.Left;
grvTotalFinanciamiento.FooterRow.Cells[1].Text = vMontoTotalFinanciamiento.ToString("###,###,###,###.#0");
grvTotalFinanciamiento.FooterRow.Cells[1].Font.Bold = true;
grvTotalFinanciamiento.FooterRow.Cells[1].HorizontalAlign = HorizontalAlign.Right;
grvTotalFinanciamiento.FooterRow.Cells[1].BackColor = vMontosCoinciden ? System.Drawing.Color.Green : System.Drawing.Color.IndianRed;
grvTotalFinanciamiento.FooterRow.Cells[1].ForeColor = System.Drawing.Color.White;
grvTotalFinanciamiento.FooterRow.Cells[0].BorderStyle = BorderStyle.Solid;
grvTotalFinanciamiento.FooterRow.Cells[1].BorderStyle = BorderStyle.Solid;
#endregion
}
catch (Exception ex)
{
MensajeError("Error en R6M11", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
private void llenarGRVEIRecursosI() //M9
{
string strTipoFinanciamiento = string.Empty;
@ -1334,8 +1493,88 @@ public partial class Listado : General
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
private void llenarGRVTotalPartida() //M14
{
string strTipoFinanciamiento = string.Empty;
string strTipoRecurso = string.Empty;
try
{
objDistribucionPartidaBL.objDistribucionPartidaEL.Proyecto = Int32.Parse(ViewState["PkProyecto"].ToString());
objFinanciamientoBL.objFinanciamientoEL.Proyecto = Int32.Parse(ViewState["PkProyecto"].ToString());
DataSet dsPartidas = objDistribucionPartidaBL.getTotalPartida();
DataSet dsRecursos = objFinanciamientoBL.getTotalFinanciamiento();
if (dsPartidas.Tables.Count == 0)
dsPartidas.Tables.Add();
detalleGRVDatos(dsPartidas, grvTotalPartidas);
decimal vMontoTotalPartidas = 0M;
decimal vMontoTotalFinanciamiento = 0M;
#region VERIFICAR MONTO FINANCIAMIENTO
if (dsRecursos != null || dsRecursos.Tables.Count > 0 || dsRecursos.Tables[0].Rows.Count > 0)
{
for (int i = 1; i <= dsRecursos.Tables[0].Columns.Count - 1; ++i)
{
vMontoTotalFinanciamiento += Convert.ToDecimal(dsRecursos.Tables[0].Rows[0][i].ToString());
}
}
#endregion
if (grvTotalPartidas.HeaderRow != null)
{
grvTotalPartidas.HeaderRow.Cells[0].Text = "";
for (int i = 0; i <= grvTotalPartidas.Rows.Count - 1; ++i)
{
for (int j = 1; j <= grvTotalPartidas.Rows[i].Cells.Count - 1; ++j)
{
vMontoTotalPartidas += Convert.ToDecimal(grvTotalPartidas.Rows[i].Cells[j].Text);
if (grvTotalPartidas.Rows[i].Cells[j].Text != "0.00")
grvTotalPartidas.Rows[i].Cells[j].Text = Decimal.Parse(grvTotalPartidas.Rows[i].Cells[j].Text).ToString("###,###,###,###.#0");
grvTotalPartidas.Rows[i].Cells[j].HorizontalAlign = HorizontalAlign.Right;
grvTotalPartidas.FooterRow.Cells[j].BorderStyle = BorderStyle.None;
}
grvTotalPartidas.Rows[i].Font.Bold = true;
}
#region Mostrar Total
if (grvTotalPartidas.Rows.Count > 0)
{
grvTotalPartidas.Rows[0].Cells[0].Text = "TOTAL ANUAL";
}
var vMontosCoinciden = vMontoTotalPartidas == vMontoTotalFinanciamiento;
grvTotalPartidas.FooterRow.Cells[0].Text = "TOTAL GENERAL";
grvTotalPartidas.FooterRow.Cells[0].Font.Bold = true;
grvTotalPartidas.FooterRow.Cells[0].HorizontalAlign = HorizontalAlign.Left;
grvTotalPartidas.FooterRow.Cells[1].Text = vMontoTotalPartidas.ToString("###,###,###,###.#0");
grvTotalPartidas.FooterRow.Cells[1].Font.Bold = true;
grvTotalPartidas.FooterRow.Cells[1].HorizontalAlign = HorizontalAlign.Right;
grvTotalPartidas.FooterRow.Cells[1].BackColor = vMontosCoinciden ? System.Drawing.Color.Green : System.Drawing.Color.IndianRed;
grvTotalPartidas.FooterRow.Cells[1].ForeColor = System.Drawing.Color.White;
grvTotalPartidas.FooterRow.Cells[0].BorderStyle = BorderStyle.Solid;
grvTotalPartidas.FooterRow.Cells[1].BorderStyle = BorderStyle.Solid;
#endregion
}
}
catch (Exception ex)
{
MensajeError("Error en R6M14", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
//***************************************************** RHP ********************************************
private void mostrarRecurso() //M13
@ -1499,7 +1738,7 @@ public partial class Listado : General
//***************************************************** IGP ********************************************
private void mostrarInformacionGeneral() //M17
private void mostrarInformacionGeneral() //M19
{
try
{
@ -1511,13 +1750,14 @@ public partial class Listado : General
if (dsInformacion.Tables[0].Rows.Count != 0)
{
txtEncargado.Text = dsInformacion.Tables[0].Rows[0]["ENCARGADOINFORMACIONGENERAL"].ToString();
txtProvinciaICP.Text = dsInformacion.Tables[0].Rows[0]["NOMBREUBICACION"].ToString();
//txtProvinciaICP.Text = dsInformacion.Tables[0].Rows[0]["NOMBREUBICACION"].ToString();
txtRegionAyA.Text = dsInformacion.Tables[0].Rows[0]["NOMBREREGION"].ToString();
txtRegionGeneral.Text = dsInformacion.Tables[0].Rows[0]["NOMBREREGION"].ToString();
}
}
catch (Exception ex)
{
MensajeError("Error en R6M17", ex);
MensajeError("Error en R6M19", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}

View file

@ -0,0 +1,219 @@
<!-- IGNORE THE HTML BLOCK BELOW, THE INTERESTING PART IS AFTER IT -->
<h1 align="center">Popper.js</h1>
<p align="center">
<strong>A library used to position poppers in web applications.</strong>
</p>
<p align="center">
<a href="https://travis-ci.org/FezVrasta/popper.js/branches" target="_blank"><img src="https://travis-ci.org/FezVrasta/popper.js.svg?branch=master" alt="Build Status"/></a>
<img src="http://img.badgesize.io/https://unpkg.com/popper.js/dist/popper.min.js?compression=gzip" alt="Stable Release Size"/>
<a href="https://www.bithound.io/github/FezVrasta/popper.js"><img src="https://www.bithound.io/github/FezVrasta/popper.js/badges/score.svg" alt="bitHound Overall Score"></a>
<a href="https://codeclimate.com/github/FezVrasta/popper.js/coverage"><img src="https://codeclimate.com/github/FezVrasta/popper.js/badges/coverage.svg" alt="Istanbul Code Coverage"/></a>
<a href="https://gitter.im/FezVrasta/popper.js" target="_blank"><img src="https://img.shields.io/gitter/room/nwjs/nw.js.svg" alt="Get support or discuss"/></a>
<br />
<a href="https://saucelabs.com/u/popperjs" target="_blank"><img src="https://badges.herokuapp.com/browsers?labels=none&googlechrome=latest&firefox=latest&microsoftedge=latest&iexplore=11,10&safari=latest&iphone=latest" alt="SauceLabs Reports"/></a>
</p>
<img src="https://raw.githubusercontent.com/FezVrasta/popper.js/master/popperjs.png" align="right" width=250 />
<!-- 🚨 HEY! HERE BEGINS THE INTERESTING STUFF 🚨 -->
## Wut? Poppers?
A popper is an element on the screen which "pops out" from the natural flow of your application.
Common examples of poppers are tooltips, popovers and drop-downs.
## So, yet another tooltip library?
Well, basically, **no**.
Popper.js is a **positioning engine**, its purpose is to calculate the position of an element
to make it possible to position it near a given reference element.
The engine is completely modular and most of its features are implemented as **modifiers**
(similar to middlewares or plugins).
The whole code base is written in ES2015 and its features are automatically tested on real browsers thanks to [SauceLabs](https://saucelabs.com/) and [TravisCI](https://travis-ci.org/).
Popper.js has zero dependencies. No jQuery, no LoDash, nothing.
It's used by big companies like [Twitter in Bootstrap v4](https://getbootstrap.com/), [Microsoft in WebClipper](https://github.com/OneNoteDev/WebClipper) and [Atlassian in AtlasKit](https://aui-cdn.atlassian.com/atlaskit/registry/).
### Popper.js
This is the engine, the library that computes and, optionally, applies the styles to
the poppers.
Some of the key points are:
- Position elements keeping them in their original DOM context (doesn't mess with your DOM!);
- Allows to export the computed informations to integrate with React and other view libraries;
- Supports Shadow DOM elements;
- Completely customizable thanks to the modifiers based structure;
Visit our [project page](https://fezvrasta.github.io/popper.js) to see a lot of examples of what you can do with Popper.js!
Find [the documentation here](/docs/_includes/popper-documentation.md).
### Tooltip.js
Since lots of users just need a simple way to integrate powerful tooltips in their projects,
we created **Tooltip.js**.
It's a small library that makes it easy to automatically create tooltips using as engine Popper.js.
Its API is almost identical to the famous tooltip system of Bootstrap, in this way it will be
easy to integrate it in your projects.
The tooltips generated by Tooltip.js are accessible thanks to the `aria` tags.
Find [the documentation here](/docs/_includes/tooltip-documentation.md).
## Installation
Popper.js is available on the following package managers and CDNs:
| Source | |
|:-------|:---------------------------------------------------------------------------------|
| npm | `npm install popper.js --save` |
| yarn | `yarn add popper.js` |
| NuGet | `PM> Install-Package popper.js` |
| Bower | `bower install popper.js --save` |
| unpkg | [`https://unpkg.com/popper.js`](https://unpkg.com/popper.js) |
| cdnjs | [`https://cdnjs.com/libraries/popper.js`](https://cdnjs.com/libraries/popper.js) |
Tooltip.js as well:
| Source | |
|:-------|:---------------------------------------------------------------------------------|
| npm | `npm install tooltip.js --save` |
| yarn | `yarn add tooltip.js` |
| Bower* | `bower install tooltip.js=https://unpkg.com/tooltip.js --save` |
| unpkg | [`https://unpkg.com/tooltip.js`](https://unpkg.com/tooltip.js) |
| cdnjs | [`https://cdnjs.com/libraries/popper.js`](https://cdnjs.com/libraries/popper.js) |
\*: Bower isn't officially supported, it can be used to install Tooltip.js only trough the unpkg.com CDN. This method has the limitation of not being able to define a specific version of the library. Bower and Popper.js suggests to use npm or Yarn for your projects.
For more info, [read the related issue](https://github.com/FezVrasta/popper.js/issues/390).
### Dist targets
Popper.js is currently shipped with 3 targets in mind: UMD, ESM and ESNext.
- UMD - Universal Module Definition: AMD, RequireJS and globals;
- ESM - ES Modules: For webpack/Rollup or browser supporting the spec;
- ESNext: Available in `dist/`, can be used with webpack and `babel-preset-env`;
Make sure to use the right one for your needs. If you want to import it with a `<script>` tag, use UMD.
## Usage
Given an existing popper DOM node, ask Popper.js to position it near its button
```js
var reference = document.querySelector('.my-button');
var popper = document.querySelector('.my-popper');
var anotherPopper = new Popper(
reference,
popper,
{
// popper options here
}
);
```
### Callbacks
Popper.js supports two kinds of callbacks, the `onCreate` callback is called after
the popper has been initalized. The `onUpdate` one is called on any subsequent update.
```js
const reference = document.querySelector('.my-button');
const popper = document.querySelector('.my-popper');
new Popper(reference, popper, {
onCreate: (data) => {
// data is an object containing all the informations computed
// by Popper.js and used to style the popper and its arrow
// The complete description is available in Popper.js documentation
},
onUpdate: (data) => {
// same as `onCreate` but called on subsequent updates
}
});
```
### Writing your own modifiers
Popper.js is based on a "plugin-like" architecture, most of its features are fully encapsulated "modifiers".
A modifier is a function that is called each time Popper.js needs to compute the position of the popper. For this reason, modifiers should be very performant to avoid bottlenecks.
To learn how to create a modifier, [read the modifiers documentation](docs/_includes/popper-documentation.md#modifiers--object)
### React, Vue.js, Angular, AngularJS, Ember.js (etc...) integration
Integrating 3rd party libraries in React or other libraries can be a pain because
they usually alter the DOM and drive the libraries crazy.
Popper.js limits all its DOM modifications inside the `applyStyle` modifier,
you can simply disable it and manually apply the popper coordinates using
your library of choice.
For a comprehensive list of libraries that let you use Popper.js into existing
frameworks, visit the [MENTIONS](/MENTIONS.md) page.
Alternatively, you may even override your own `applyStyles` with your custom one and
integrate Popper.js by yourself!
```js
function applyReactStyle(data) {
// export data in your framework and use its content to apply the style to your popper
};
const reference = document.querySelector('.my-button');
const popper = document.querySelector('.my-popper');
new Popper(reference, popper, {
modifiers: {
applyStyle: { enabled: false },
applyReactStyle: {
enabled: true,
fn: applyReactStyle,
order: 800,
},
},
});
```
### Migration from Popper.js v0
Since the API changed, we prepared some migration instructions to make it easy to upgrade to
Popper.js v1.
https://github.com/FezVrasta/popper.js/issues/62
Feel free to comment inside the issue if you have any questions.
### Performances
Popper.js is very performant. It usually takes 0.5ms to compute a popper's position (on an iMac with 3.5G GHz Intel Core i5).
This means that it will not cause any [jank](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool/anatomy-of-jank), leading to a smooth user experience.
## Notes
### Libraries using Popper.js
The aim of Popper.js is to provide a stable and powerful positioning engine ready to
be used in 3rd party libraries.
Visit the [MENTIONS](/MENTIONS.md) page for an updated list of projects.
### Credits
I want to thank some friends and projects for the work they did:
- [@AndreaScn](https://github.com/AndreaScn) for his work on the GitHub Page and the manual testing he did during the development;
- [@vampolo](https://github.com/vampolo) for the original idea and for the name of the library;
- [Sysdig](https://github.com/Draios) for all the awesome things I learned during these years that made it possible for me to write this library;
- [Tether.js](http://github.hubspot.com/tether/) for having inspired me in writing a positioning library ready for the real world;
- [The Contributors](https://github.com/FezVrasta/popper.js/graphs/contributors) for their much appreciated Pull Requests and bug reports;
- **you** for the star you'll give to this project and for being so awesome to give this project a try 🙂
### Copyright and license
Code and documentation copyright 2016 **Federico Zivolo**. Code released under the [MIT license](LICENSE.md). Docs released under Creative Commons.

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,159 @@
/**
* @fileoverview This file only declares the public portions of the API.
* It should not define internal pieces such as utils or modifier details.
*
* Original definitions by: edcarroll <https://github.com/edcarroll>, ggray <https://github.com/giladgray>, rhysd <https://rhysd.github.io>, joscha <https://github.com/joscha>, seckardt <https://github.com/seckardt>, marcfallows <https://github.com/marcfallows>
*/
/**
* This kind of namespace declaration is not necessary, but is kept here for backwards-compatibility with
* popper.js 1.x. It can be removed in 2.x so that the default export is simply the Popper class
* and all the types / interfaces are top-level named exports.
*/
declare namespace Popper {
export type Position = 'top' | 'right' | 'bottom' | 'left';
export type Placement = 'auto-start'
| 'auto'
| 'auto-end'
| 'top-start'
| 'top'
| 'top-end'
| 'right-start'
| 'right'
| 'right-end'
| 'bottom-end'
| 'bottom'
| 'bottom-start'
| 'left-end'
| 'left'
| 'left-start';
export type Boundary = 'scrollParent' | 'viewport' | 'window';
export type Behavior = 'flip' | 'clockwise' | 'counterclockwise';
export type ModifierFn = (data: Data, options: Object) => Data;
export interface BaseModifier {
order?: number;
enabled?: boolean;
fn?: ModifierFn;
}
export interface Modifiers {
shift?: BaseModifier;
offset?: BaseModifier & {
offset?: number | string,
};
preventOverflow?: BaseModifier & {
priority?: Position[],
padding?: number,
boundariesElement?: Boundary | Element,
escapeWithReference?: boolean
};
keepTogether?: BaseModifier;
arrow?: BaseModifier & {
element?: string | Element,
};
flip?: BaseModifier & {
behavior?: Behavior | Position[],
padding?: number,
boundariesElement?: Boundary | Element,
};
inner?: BaseModifier;
hide?: BaseModifier;
applyStyle?: BaseModifier & {
onLoad?: Function,
gpuAcceleration?: boolean,
};
computeStyle?: BaseModifier & {
gpuAcceleration?: boolean;
x?: 'bottom' | 'top',
y?: 'left' | 'right'
};
[name: string]: (BaseModifier & Record<string, any>) | undefined;
}
export interface Offset {
top: number;
left: number;
width: number;
height: number;
}
export interface Data {
instance: Popper;
placement: Placement;
originalPlacement: Placement;
flipped: boolean;
hide: boolean;
arrowElement: Element;
styles: CSSStyleDeclaration;
boundaries: Object;
offsets: {
popper: Offset,
reference: Offset,
arrow: {
top: number,
left: number,
},
};
}
export interface PopperOptions {
placement?: Placement;
positionFixed?: boolean;
eventsEnabled?: boolean;
modifiers?: Modifiers;
removeOnDestroy?: boolean;
onCreate?(data: Data): void;
onUpdate?(data: Data): void;
}
export interface ReferenceObject {
clientHeight: number;
clientWidth: number;
getBoundingClientRect(): ClientRect;
}
}
// Re-export types in the Popper namespace so that they can be accessed as top-level named exports.
// These re-exports should be removed in 2.x when the "declare namespace Popper" syntax is removed.
export type Position = Popper.Position;
export type Placement = Popper.Placement;
export type Boundary = Popper.Boundary;
export type Behavior = Popper.Behavior;
export type ModifierFn = Popper.ModifierFn;
export type BaseModifier = Popper.BaseModifier;
export type Modifiers = Popper.Modifiers;
export type Offset = Popper.Offset;
export type Data = Popper.Data;
export type PopperOptions = Popper.PopperOptions;
export type ReferenceObject = Popper.ReferenceObject;
declare class Popper {
static modifiers: (BaseModifier & { name: string })[];
static placements: Placement[];
static Defaults: PopperOptions;
options: PopperOptions;
constructor(reference: Element | ReferenceObject, popper: Element, options?: PopperOptions);
destroy(): void;
update(): void;
scheduleUpdate(): void;
enableEventListeners(): void;
disableEventListeners(): void;
}
export default Popper;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
/*!
* jQuery JavaScript Library v3.3.1
* jQuery JavaScript Library v3.4.1
* https://jquery.com/
*
* Includes Sizzle.js
@ -9,7 +9,7 @@
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2018-01-20T17:24Z
* Date: 2019-05-01T21:04Z
*/
( function( global, factory ) {
@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
var preservedScriptAttributes = {
type: true,
src: true,
nonce: true,
noModule: true
};
function DOMEval( code, doc, node ) {
function DOMEval( code, node, doc ) {
doc = doc || document;
var i,
var i, val,
script = doc.createElement( "script" );
script.text = code;
if ( node ) {
for ( i in preservedScriptAttributes ) {
if ( node[ i ] ) {
script[ i ] = node[ i ];
// Support: Firefox 64+, Edge 18+
// Some browsers don't support the "nonce" property on scripts.
// On the other hand, just using `getAttribute` is not enough as
// the `nonce` attribute is reset to an empty string whenever it
// becomes browsing-context connected.
// See https://github.com/whatwg/html/issues/2369
// See https://html.spec.whatwg.org/#nonce-attributes
// The `node.getAttribute` check was added for the sake of
// `jQuery.globalEval` so that it can fake a nonce-containing node
// via an object.
val = node[ i ] || node.getAttribute && node.getAttribute( i );
if ( val ) {
script.setAttribute( i, val );
}
}
}
@ -129,7 +142,7 @@ function toType( obj ) {
var
version = "3.3.1",
version = "3.4.1",
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
// Extend the base object
for ( name in options ) {
src = target[ name ];
copy = options[ name ];
// Prevent Object.prototype pollution
// Prevent never-ending loop
if ( target === copy ) {
if ( name === "__proto__" || target === copy ) {
continue;
}
// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
( copyIsArray = Array.isArray( copy ) ) ) ) {
src = target[ name ];
if ( copyIsArray ) {
copyIsArray = false;
clone = src && Array.isArray( src ) ? src : [];
// Ensure proper type for the source value
if ( copyIsArray && !Array.isArray( src ) ) {
clone = [];
} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
clone = {};
} else {
clone = src && jQuery.isPlainObject( src ) ? src : {};
clone = src;
}
copyIsArray = false;
// Never move original objects, clone them
target[ name ] = jQuery.extend( deep, clone, copy );
@ -329,9 +345,6 @@ jQuery.extend( {
},
isEmptyObject: function( obj ) {
/* eslint-disable no-unused-vars */
// See https://github.com/eslint/eslint/issues/6125
var name;
for ( name in obj ) {
@ -341,8 +354,8 @@ jQuery.extend( {
},
// Evaluates a script in a global context
globalEval: function( code ) {
DOMEval( code );
globalEval: function( code, options ) {
DOMEval( code, { nonce: options && options.nonce } );
},
each: function( obj, callback ) {
@ -498,14 +511,14 @@ function isArrayLike( obj ) {
}
var Sizzle =
/*!
* Sizzle CSS Selector Engine v2.3.3
* Sizzle CSS Selector Engine v2.3.4
* https://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Copyright JS Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
* https://js.foundation/
*
* Date: 2016-08-08
* Date: 2019-04-08
*/
(function( window ) {
@ -539,6 +552,7 @@ var i,
classCache = createCache(),
tokenCache = createCache(),
compilerCache = createCache(),
nonnativeSelectorCache = createCache(),
sortOrder = function( a, b ) {
if ( a === b ) {
hasDuplicate = true;
@ -600,8 +614,7 @@ var i,
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
rdescend = new RegExp( whitespace + "|>" ),
rpseudo = new RegExp( pseudos ),
ridentifier = new RegExp( "^" + identifier + "$" ),
@ -622,6 +635,7 @@ var i,
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
},
rhtml = /HTML$/i,
rinputs = /^(?:input|select|textarea|button)$/i,
rheader = /^h\d$/i,
@ -676,9 +690,9 @@ var i,
setDocument();
},
disabledAncestor = addCombinator(
inDisabledFieldset = addCombinator(
function( elem ) {
return elem.disabled === true && ("form" in elem || "label" in elem);
return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
},
{ dir: "parentNode", next: "legend" }
);
@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
// Take advantage of querySelectorAll
if ( support.qsa &&
!compilerCache[ selector + " " ] &&
(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
!nonnativeSelectorCache[ selector + " " ] &&
(!rbuggyQSA || !rbuggyQSA.test( selector )) &&
if ( nodeType !== 1 ) {
newContext = context;
newSelector = selector;
// qSA looks outside Element context, which is not what we want
// Thanks to Andrew Dupont for this workaround technique
// Support: IE <=8
// Support: IE 8 only
// Exclude object elements
} else if ( context.nodeName.toLowerCase() !== "object" ) {
(nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
newSelector = selector;
newContext = context;
// qSA considers elements outside a scoping root when evaluating child or
// descendant combinators, which is not what we want.
// In such cases, we work around the behavior by prefixing every selector in the
// list with an ID selector referencing the scope context.
// Thanks to Andrew Dupont for this technique.
if ( nodeType === 1 && rdescend.test( selector ) ) {
// Capture the context ID, setting it first if necessary
if ( (nid = context.getAttribute( "id" )) ) {
@ -824,17 +842,16 @@ function Sizzle( selector, context, results, seed ) {
context;
}
if ( newSelector ) {
try {
push.apply( results,
newContext.querySelectorAll( newSelector )
);
return results;
} catch ( qsaError ) {
} finally {
if ( nid === expando ) {
context.removeAttribute( "id" );
}
try {
push.apply( results,
newContext.querySelectorAll( newSelector )
);
return results;
} catch ( qsaError ) {
nonnativeSelectorCache( selector, true );
} finally {
if ( nid === expando ) {
context.removeAttribute( "id" );
}
}
}
@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
// Where there is no isDisabled, check manually
/* jshint -W018 */
elem.isDisabled !== !disabled &&
disabledAncestor( elem ) === disabled;
inDisabledFieldset( elem ) === disabled;
}
return elem.disabled === disabled;
@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
* @returns {Boolean} True iff elem is a non-HTML XML node
*/
isXML = Sizzle.isXML = function( elem ) {
// documentElement is verified for cases where it doesn't yet exist
// (such as loading iframes in IE - #4833)
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
return documentElement ? documentElement.nodeName !== "HTML" : false;
var namespace = elem.namespaceURI,
docElem = (elem.ownerDocument || elem).documentElement;
// Support: IE <=8
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
// https://bugs.jquery.com/ticket/4833
return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
};
/**
@ -1480,11 +1500,8 @@ Sizzle.matchesSelector = function( elem, expr ) {
setDocument( elem );
}
// Make sure that attribute selectors are quoted
expr = expr.replace( rattributeQuotes, "='$1']" );
if ( support.matchesSelector && documentIsHTML &&
!compilerCache[ expr + " " ] &&
!nonnativeSelectorCache[ expr + " " ] &&
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
elem.document && elem.document.nodeType !== 11 ) {
return ret;
}
} catch (e) {}
} catch (e) {
nonnativeSelectorCache( expr, true );
}
}
return Sizzle( expr, document, null, [ elem ] ).length > 0;
@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
"contains": markFunction(function( text ) {
text = text.replace( runescape, funescape );
return function( elem ) {
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
};
}),
@ -2096,7 +2115,11 @@ Expr = Sizzle.selectors = {
}),
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
var i = argument < 0 ? argument + length : argument;
var i = argument < 0 ?
argument + length :
argument > length ?
length :
argument;
for ( ; --i >= 0; ) {
matchIndexes.push( i );
}
@ -3146,18 +3169,18 @@ jQuery.each( {
return siblings( elem.firstChild );
},
contents: function( elem ) {
if ( nodeName( elem, "iframe" ) ) {
return elem.contentDocument;
}
if ( typeof elem.contentDocument !== "undefined" ) {
return elem.contentDocument;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
return jQuery.merge( [], elem.childNodes );
return jQuery.merge( [], elem.childNodes );
}
}, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) {
@ -4466,6 +4489,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
var documentElement = document.documentElement;
var isAttached = function( elem ) {
return jQuery.contains( elem.ownerDocument, elem );
},
composed = { composed: true };
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
// Check attachment across shadow DOM boundaries when possible (gh-3504)
// Support: iOS 10.0-10.2 only
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
// leading to errors. We need to check for `getRootNode`.
if ( documentElement.getRootNode ) {
isAttached = function( elem ) {
return jQuery.contains( elem.ownerDocument, elem ) ||
elem.getRootNode( composed ) === elem.ownerDocument;
};
}
var isHiddenWithinTree = function( elem, el ) {
// isHiddenWithinTree might be called from jQuery#filter function;
@ -4480,7 +4523,7 @@ var isHiddenWithinTree = function( elem, el ) {
// Support: Firefox <=43 - 45
// Disconnected elements can have computed display: none, so first confirm that elem is
// in the document.
jQuery.contains( elem.ownerDocument, elem ) &&
isAttached( elem ) &&
jQuery.css( elem, "display" ) === "none";
};
@ -4522,7 +4565,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
// Starting value computation is required for potential unit mismatches
initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
initialInUnit = elem.nodeType &&
( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
rcssNum.exec( jQuery.css( elem, prop ) );
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@ -4669,7 +4713,7 @@ jQuery.fn.extend( {
} );
var rcheckableType = ( /^(?:checkbox|radio)$/i );
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
@ -4741,7 +4785,7 @@ function setGlobalEval( elems, refElements ) {
var rhtml = /<|&#?\w+;/;
function buildFragment( elems, context, scripts, selection, ignored ) {
var elem, tmp, tag, wrap, contains, j,
var elem, tmp, tag, wrap, attached, j,
fragment = context.createDocumentFragment(),
nodes = [],
i = 0,
@ -4805,13 +4849,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
continue;
}
contains = jQuery.contains( elem.ownerDocument, elem );
attached = isAttached( elem );
// Append to fragment
tmp = getAll( fragment.appendChild( elem ), "script" );
// Preserve script evaluation history
if ( contains ) {
if ( attached ) {
setGlobalEval( tmp );
}
@ -4854,8 +4898,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
div.innerHTML = "<textarea>x</textarea>";
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
} )();
var documentElement = document.documentElement;
var
@ -4871,8 +4913,19 @@ function returnFalse() {
return false;
}
// Support: IE <=9 - 11+
// focus() and blur() are asynchronous, except when they are no-op.
// So expect focus to be synchronous when the element is already active,
// and blur to be synchronous when the element is not already active.
// (focus and blur are always synchronous in other supported browsers,
// this just defines when we can count on it).
function expectSync( elem, type ) {
return ( elem === safeActiveElement() ) === ( type === "focus" );
}
// Support: IE <=9 only
// See #13393 for more info
// Accessing document.activeElement can throw unexpectedly
// https://bugs.jquery.com/ticket/13393
function safeActiveElement() {
try {
return document.activeElement;
@ -5172,9 +5225,10 @@ jQuery.event = {
while ( ( handleObj = matched.handlers[ j++ ] ) &&
!event.isImmediatePropagationStopped() ) {
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
// a subset or equal to those in the bound event (both can have no namespace).
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
// If the event is namespaced, then each handler is only invoked if it is
// specially universal or its namespaces are a superset of the event's.
if ( !event.rnamespace || handleObj.namespace === false ||
event.rnamespace.test( handleObj.namespace ) ) {
event.handleObj = handleObj;
event.data = handleObj.data;
@ -5298,39 +5352,51 @@ jQuery.event = {
// Prevent triggered image.load events from bubbling to window.load
noBubble: true
},
focus: {
// Fire native event if possible so blur/focus sequence is correct
trigger: function() {
if ( this !== safeActiveElement() && this.focus ) {
this.focus();
return false;
}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
if ( this === safeActiveElement() && this.blur ) {
this.blur();
return false;
}
},
delegateType: "focusout"
},
click: {
// For checkbox, fire native event so checked state will be right
trigger: function() {
if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
this.click();
return false;
// Utilize native event to ensure correct state for checkable inputs
setup: function( data ) {
// For mutual compressibility with _default, replace `this` access with a local var.
// `|| data` is dead code meant only to preserve the variable through minification.
var el = this || data;
// Claim the first handler
if ( rcheckableType.test( el.type ) &&
el.click && nodeName( el, "input" ) ) {
// dataPriv.set( el, "click", ... )
leverageNative( el, "click", returnTrue );
}
// Return false to allow normal processing in the caller
return false;
},
trigger: function( data ) {
// For mutual compressibility with _default, replace `this` access with a local var.
// `|| data` is dead code meant only to preserve the variable through minification.
var el = this || data;
// Force setup before triggering a click
if ( rcheckableType.test( el.type ) &&
el.click && nodeName( el, "input" ) ) {
leverageNative( el, "click" );
}
// Return non-false to allow normal event-path propagation
return true;
},
// For cross-browser consistency, don't fire native .click() on links
// For cross-browser consistency, suppress native .click() on links
// Also prevent it if we're currently inside a leveraged native-event stack
_default: function( event ) {
return nodeName( event.target, "a" );
var target = event.target;
return rcheckableType.test( target.type ) &&
target.click && nodeName( target, "input" ) &&
dataPriv.get( target, "click" ) ||
nodeName( target, "a" );
}
},
@ -5347,6 +5413,93 @@ jQuery.event = {
}
};
// Ensure the presence of an event listener that handles manually-triggered
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
function leverageNative( el, type, expectSync ) {
// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
if ( !expectSync ) {
if ( dataPriv.get( el, type ) === undefined ) {
jQuery.event.add( el, type, returnTrue );
}
return;
}
// Register the controller as a special universal handler for all event namespaces
dataPriv.set( el, type, false );
jQuery.event.add( el, type, {
namespace: false,
handler: function( event ) {
var notAsync, result,
saved = dataPriv.get( this, type );
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
// Interrupt processing of the outer synthetic .trigger()ed event
// Saved data should be false in such cases, but might be a leftover capture object
// from an async native handler (gh-4350)
if ( !saved.length ) {
// Store arguments for use when handling the inner native event
// There will always be at least one argument (an event object), so this array
// will not be confused with a leftover capture object.
saved = slice.call( arguments );
dataPriv.set( this, type, saved );
// Trigger the native event and capture its result
// Support: IE <=9 - 11+
// focus() and blur() are asynchronous
notAsync = expectSync( this, type );
this[ type ]();
result = dataPriv.get( this, type );
if ( saved !== result || notAsync ) {
dataPriv.set( this, type, false );
} else {
result = {};
}
if ( saved !== result ) {
// Cancel the outer synthetic event
event.stopImmediatePropagation();
event.preventDefault();
return result.value;
}
// If this is an inner synthetic event for an event with a bubbling surrogate
// (focus or blur), assume that the surrogate already propagated from triggering the
// native event and prevent that from happening again here.
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
// less bad than duplication.
} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
event.stopPropagation();
}
// If this is a native event triggered above, everything is now in order
// Fire an inner synthetic event with the original arguments
} else if ( saved.length ) {
// ...and capture the result
dataPriv.set( this, type, {
value: jQuery.event.trigger(
// Support: IE <=9 - 11+
// Extend with the prototype to reset the above stopImmediatePropagation()
jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
saved.slice( 1 ),
this
)
} );
// Abort handling of the native event
event.stopImmediatePropagation();
}
}
} );
}
jQuery.removeEvent = function( elem, type, handle ) {
// This "if" is needed for plain objects
@ -5459,6 +5612,7 @@ jQuery.each( {
shiftKey: true,
view: true,
"char": true,
code: true,
charCode: true,
key: true,
keyCode: true,
@ -5505,6 +5659,33 @@ jQuery.each( {
}
}, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
jQuery.event.special[ type ] = {
// Utilize native event if possible so blur/focus sequence is correct
setup: function() {
// Claim the first handler
// dataPriv.set( this, "focus", ... )
// dataPriv.set( this, "blur", ... )
leverageNative( this, type, expectSync );
// Return false to allow normal processing in the caller
return false;
},
trigger: function() {
// Force setup before trigger
leverageNative( this, type );
// Return non-false to allow normal event-path propagation
return true;
},
delegateType: delegateType
};
} );
// Create mouseenter/leave events using mouseover/out and event-time checks
// so that event delegation works in jQuery.
// Do the same for pointerenter/pointerleave and pointerover/pointerout
@ -5755,11 +5936,13 @@ function domManip( collection, args, callback, ignored ) {
if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
// Optional AJAX dependency, but won't run scripts if not present
if ( jQuery._evalUrl ) {
jQuery._evalUrl( node.src );
if ( jQuery._evalUrl && !node.noModule ) {
jQuery._evalUrl( node.src, {
nonce: node.nonce || node.getAttribute( "nonce" )
} );
}
} else {
DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
}
}
}
@ -5781,7 +5964,7 @@ function remove( elem, selector, keepData ) {
}
if ( node.parentNode ) {
if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
if ( keepData && isAttached( node ) ) {
setGlobalEval( getAll( node, "script" ) );
}
node.parentNode.removeChild( node );
@ -5799,7 +5982,7 @@ jQuery.extend( {
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var i, l, srcElements, destElements,
clone = elem.cloneNode( true ),
inPage = jQuery.contains( elem.ownerDocument, elem );
inPage = isAttached( elem );
// Fix IE cloning issues
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@ -6095,8 +6278,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
// Support: IE 9 only
// Detect overflow:scroll screwiness (gh-3699)
// Support: Chrome <=64
// Don't get tricked when zoom affects offsetWidth (gh-4029)
div.style.position = "absolute";
scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
documentElement.removeChild( container );
@ -6167,7 +6352,7 @@ function curCSS( elem, name, computed ) {
if ( computed ) {
ret = computed.getPropertyValue( name ) || computed[ name ];
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
if ( ret === "" && !isAttached( elem ) ) {
ret = jQuery.style( elem, name );
}
@ -6223,30 +6408,13 @@ function addGetHookIf( conditionFn, hookFn ) {
}
var
var cssPrefixes = [ "Webkit", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style,
vendorProps = {};
// Swappable if display is none or starts with table
// except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: "0",
fontWeight: "400"
},
cssPrefixes = [ "Webkit", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style;
// Return a css property mapped to a potentially vendor prefixed property
// Return a vendor-prefixed property or undefined
function vendorPropName( name ) {
// Shortcut for names that are not vendor prefixed
if ( name in emptyStyle ) {
return name;
}
// Check for vendor prefixed names
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
i = cssPrefixes.length;
@ -6259,16 +6427,33 @@ function vendorPropName( name ) {
}
}
// Return a property mapped along what jQuery.cssProps suggests or to
// a vendor prefixed property.
// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
function finalPropName( name ) {
var ret = jQuery.cssProps[ name ];
if ( !ret ) {
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
var final = jQuery.cssProps[ name ] || vendorProps[ name ];
if ( final ) {
return final;
}
return ret;
if ( name in emptyStyle ) {
return name;
}
return vendorProps[ name ] = vendorPropName( name ) || name;
}
var
// Swappable if display is none or starts with table
// except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: "0",
fontWeight: "400"
};
function setPositiveNumber( elem, value, subtract ) {
// Any relative (+/-) values have already been
@ -6340,7 +6525,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
delta -
extra -
0.5
) );
// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
// Use an explicit zero to avoid NaN (gh-3964)
) ) || 0;
}
return delta;
@ -6350,9 +6538,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
// Start with computed style
var styles = getStyles( elem ),
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
// Fake content-box until we know it's needed to know the true value.
boxSizingNeeded = !support.boxSizingReliable() || extra,
isBorderBox = boxSizingNeeded &&
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
valueIsBorderBox = isBorderBox,
val = curCSS( elem, dimension, styles ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
valueIsBorderBox = isBorderBox;
offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
// Support: Firefox <=54
// Return a confounding non-pixel value or feign ignorance, as appropriate.
@ -6363,22 +6558,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
val = "auto";
}
// Check for style in case a browser which returns unreliable values
// for getComputedStyle silently falls back to the reliable elem.style
valueIsBorderBox = valueIsBorderBox &&
( support.boxSizingReliable() || val === elem.style[ dimension ] );
// Fall back to offsetWidth/offsetHeight when value is "auto"
// This happens for inline elements with no explicit setting (gh-3571)
// Support: Android <=4.1 - 4.3 only
// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
if ( val === "auto" ||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
// Support: IE 9-11 only
// Also use offsetWidth/offsetHeight for when box sizing is unreliable
// We use getClientRects() to check for hidden/disconnected.
// In those cases, the computed value can be trusted to be border-box
if ( ( !support.boxSizingReliable() && isBorderBox ||
val === "auto" ||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
elem.getClientRects().length ) {
val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
// offsetWidth/offsetHeight provide border-box values
valueIsBorderBox = true;
// Where available, offsetWidth/offsetHeight approximate border box dimensions.
// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
// retrieved value as a content box dimension.
valueIsBorderBox = offsetProp in elem;
if ( valueIsBorderBox ) {
val = elem[ offsetProp ];
}
}
// Normalize "" and auto
@ -6424,6 +6626,13 @@ jQuery.extend( {
"flexGrow": true,
"flexShrink": true,
"fontWeight": true,
"gridArea": true,
"gridColumn": true,
"gridColumnEnd": true,
"gridColumnStart": true,
"gridRow": true,
"gridRowEnd": true,
"gridRowStart": true,
"lineHeight": true,
"opacity": true,
"order": true,
@ -6479,7 +6688,9 @@ jQuery.extend( {
}
// If a number was passed in, add the unit (except for certain CSS properties)
if ( type === "number" ) {
// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
// "px" to a few hardcoded values.
if ( type === "number" && !isCustomProp ) {
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
}
@ -6579,18 +6790,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
set: function( elem, value, extra ) {
var matches,
styles = getStyles( elem ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
subtract = extra && boxModelAdjustment(
elem,
dimension,
extra,
isBorderBox,
styles
);
// Only read styles.position if the test has a chance to fail
// to avoid forcing a reflow.
scrollboxSizeBuggy = !support.scrollboxSize() &&
styles.position === "absolute",
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
boxSizingNeeded = scrollboxSizeBuggy || extra,
isBorderBox = boxSizingNeeded &&
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
subtract = extra ?
boxModelAdjustment(
elem,
dimension,
extra,
isBorderBox,
styles
) :
0;
// Account for unreliable border-box dimensions by comparing offset* to computed and
// faking a content-box to get border and padding (gh-3699)
if ( isBorderBox && support.scrollboxSize() === styles.position ) {
if ( isBorderBox && scrollboxSizeBuggy ) {
subtract -= Math.ceil(
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
parseFloat( styles[ dimension ] ) -
@ -6758,9 +6980,9 @@ Tween.propHooks = {
// Use .style if available and use plain properties where available.
if ( jQuery.fx.step[ tween.prop ] ) {
jQuery.fx.step[ tween.prop ]( tween );
} else if ( tween.elem.nodeType === 1 &&
( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
jQuery.cssHooks[ tween.prop ] ) ) {
} else if ( tween.elem.nodeType === 1 && (
jQuery.cssHooks[ tween.prop ] ||
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
} else {
tween.elem[ tween.prop ] = tween.now;
@ -8467,6 +8689,10 @@ jQuery.param = function( a, traditional ) {
encodeURIComponent( value == null ? "" : value );
};
if ( a == null ) {
return "";
}
// If an array was passed in, assume that it is an array of form elements.
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
@ -8969,12 +9195,14 @@ jQuery.extend( {
if ( !responseHeaders ) {
responseHeaders = {};
while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
.concat( match[ 2 ] );
}
}
match = responseHeaders[ key.toLowerCase() ];
match = responseHeaders[ key.toLowerCase() + " " ];
}
return match == null ? null : match;
return match == null ? null : match.join( ", " );
},
// Raw string
@ -9363,7 +9591,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
} );
jQuery._evalUrl = function( url ) {
jQuery._evalUrl = function( url, options ) {
return jQuery.ajax( {
url: url,
@ -9373,7 +9601,16 @@ jQuery._evalUrl = function( url ) {
cache: true,
async: false,
global: false,
"throws": true
// Only evaluate the response if it is successful (gh-4126)
// dataFilter is not invoked for failure responses, so using it instead
// of the default converter is kludgy but it works.
converters: {
"text script": function() {}
},
dataFilter: function( response ) {
jQuery.globalEval( response, options );
}
} );
};
@ -9656,24 +9893,21 @@ jQuery.ajaxPrefilter( "script", function( s ) {
// Bind script tag hack transport
jQuery.ajaxTransport( "script", function( s ) {
// This transport only deals with cross domain requests
if ( s.crossDomain ) {
// This transport only deals with cross domain or forced-by-attrs requests
if ( s.crossDomain || s.scriptAttrs ) {
var script, callback;
return {
send: function( _, complete ) {
script = jQuery( "<script>" ).prop( {
charset: s.scriptCharset,
src: s.url
} ).on(
"load error",
callback = function( evt ) {
script = jQuery( "<script>" )
.attr( s.scriptAttrs || {} )
.prop( { charset: s.scriptCharset, src: s.url } )
.on( "load error", callback = function( evt ) {
script.remove();
callback = null;
if ( evt ) {
complete( evt.type === "error" ? 404 : 200, evt.type );
}
}
);
} );
// Use native DOM manipulation to avoid our domManip AJAX trickery
document.head.appendChild( script[ 0 ] );

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
/*!
* jQuery JavaScript Library v3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
* jQuery JavaScript Library v3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
* https://jquery.com/
*
* Includes Sizzle.js
@ -9,7 +9,7 @@
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2018-01-20T17:24Z
* Date: 2019-05-01T21:04Z
*/
( function( global, factory ) {
@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
var preservedScriptAttributes = {
type: true,
src: true,
nonce: true,
noModule: true
};
function DOMEval( code, doc, node ) {
function DOMEval( code, node, doc ) {
doc = doc || document;
var i,
var i, val,
script = doc.createElement( "script" );
script.text = code;
if ( node ) {
for ( i in preservedScriptAttributes ) {
if ( node[ i ] ) {
script[ i ] = node[ i ];
// Support: Firefox 64+, Edge 18+
// Some browsers don't support the "nonce" property on scripts.
// On the other hand, just using `getAttribute` is not enough as
// the `nonce` attribute is reset to an empty string whenever it
// becomes browsing-context connected.
// See https://github.com/whatwg/html/issues/2369
// See https://html.spec.whatwg.org/#nonce-attributes
// The `node.getAttribute` check was added for the sake of
// `jQuery.globalEval` so that it can fake a nonce-containing node
// via an object.
val = node[ i ] || node.getAttribute && node.getAttribute( i );
if ( val ) {
script.setAttribute( i, val );
}
}
}
@ -129,7 +142,7 @@ function toType( obj ) {
var
version = "3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
version = "3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
// Extend the base object
for ( name in options ) {
src = target[ name ];
copy = options[ name ];
// Prevent Object.prototype pollution
// Prevent never-ending loop
if ( target === copy ) {
if ( name === "__proto__" || target === copy ) {
continue;
}
// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
( copyIsArray = Array.isArray( copy ) ) ) ) {
src = target[ name ];
if ( copyIsArray ) {
copyIsArray = false;
clone = src && Array.isArray( src ) ? src : [];
// Ensure proper type for the source value
if ( copyIsArray && !Array.isArray( src ) ) {
clone = [];
} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
clone = {};
} else {
clone = src && jQuery.isPlainObject( src ) ? src : {};
clone = src;
}
copyIsArray = false;
// Never move original objects, clone them
target[ name ] = jQuery.extend( deep, clone, copy );
@ -329,9 +345,6 @@ jQuery.extend( {
},
isEmptyObject: function( obj ) {
/* eslint-disable no-unused-vars */
// See https://github.com/eslint/eslint/issues/6125
var name;
for ( name in obj ) {
@ -341,8 +354,8 @@ jQuery.extend( {
},
// Evaluates a script in a global context
globalEval: function( code ) {
DOMEval( code );
globalEval: function( code, options ) {
DOMEval( code, { nonce: options && options.nonce } );
},
each: function( obj, callback ) {
@ -498,14 +511,14 @@ function isArrayLike( obj ) {
}
var Sizzle =
/*!
* Sizzle CSS Selector Engine v2.3.3
* Sizzle CSS Selector Engine v2.3.4
* https://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Copyright JS Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
* https://js.foundation/
*
* Date: 2016-08-08
* Date: 2019-04-08
*/
(function( window ) {
@ -539,6 +552,7 @@ var i,
classCache = createCache(),
tokenCache = createCache(),
compilerCache = createCache(),
nonnativeSelectorCache = createCache(),
sortOrder = function( a, b ) {
if ( a === b ) {
hasDuplicate = true;
@ -600,8 +614,7 @@ var i,
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
rdescend = new RegExp( whitespace + "|>" ),
rpseudo = new RegExp( pseudos ),
ridentifier = new RegExp( "^" + identifier + "$" ),
@ -622,6 +635,7 @@ var i,
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
},
rhtml = /HTML$/i,
rinputs = /^(?:input|select|textarea|button)$/i,
rheader = /^h\d$/i,
@ -676,9 +690,9 @@ var i,
setDocument();
},
disabledAncestor = addCombinator(
inDisabledFieldset = addCombinator(
function( elem ) {
return elem.disabled === true && ("form" in elem || "label" in elem);
return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
},
{ dir: "parentNode", next: "legend" }
);
@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
// Take advantage of querySelectorAll
if ( support.qsa &&
!compilerCache[ selector + " " ] &&
(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
!nonnativeSelectorCache[ selector + " " ] &&
(!rbuggyQSA || !rbuggyQSA.test( selector )) &&
if ( nodeType !== 1 ) {
newContext = context;
newSelector = selector;
// qSA looks outside Element context, which is not what we want
// Thanks to Andrew Dupont for this workaround technique
// Support: IE <=8
// Support: IE 8 only
// Exclude object elements
} else if ( context.nodeName.toLowerCase() !== "object" ) {
(nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
newSelector = selector;
newContext = context;
// qSA considers elements outside a scoping root when evaluating child or
// descendant combinators, which is not what we want.
// In such cases, we work around the behavior by prefixing every selector in the
// list with an ID selector referencing the scope context.
// Thanks to Andrew Dupont for this technique.
if ( nodeType === 1 && rdescend.test( selector ) ) {
// Capture the context ID, setting it first if necessary
if ( (nid = context.getAttribute( "id" )) ) {
@ -824,17 +842,16 @@ function Sizzle( selector, context, results, seed ) {
context;
}
if ( newSelector ) {
try {
push.apply( results,
newContext.querySelectorAll( newSelector )
);
return results;
} catch ( qsaError ) {
} finally {
if ( nid === expando ) {
context.removeAttribute( "id" );
}
try {
push.apply( results,
newContext.querySelectorAll( newSelector )
);
return results;
} catch ( qsaError ) {
nonnativeSelectorCache( selector, true );
} finally {
if ( nid === expando ) {
context.removeAttribute( "id" );
}
}
}
@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
// Where there is no isDisabled, check manually
/* jshint -W018 */
elem.isDisabled !== !disabled &&
disabledAncestor( elem ) === disabled;
inDisabledFieldset( elem ) === disabled;
}
return elem.disabled === disabled;
@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
* @returns {Boolean} True iff elem is a non-HTML XML node
*/
isXML = Sizzle.isXML = function( elem ) {
// documentElement is verified for cases where it doesn't yet exist
// (such as loading iframes in IE - #4833)
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
return documentElement ? documentElement.nodeName !== "HTML" : false;
var namespace = elem.namespaceURI,
docElem = (elem.ownerDocument || elem).documentElement;
// Support: IE <=8
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
// https://bugs.jquery.com/ticket/4833
return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
};
/**
@ -1480,11 +1500,8 @@ Sizzle.matchesSelector = function( elem, expr ) {
setDocument( elem );
}
// Make sure that attribute selectors are quoted
expr = expr.replace( rattributeQuotes, "='$1']" );
if ( support.matchesSelector && documentIsHTML &&
!compilerCache[ expr + " " ] &&
!nonnativeSelectorCache[ expr + " " ] &&
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
elem.document && elem.document.nodeType !== 11 ) {
return ret;
}
} catch (e) {}
} catch (e) {
nonnativeSelectorCache( expr, true );
}
}
return Sizzle( expr, document, null, [ elem ] ).length > 0;
@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
"contains": markFunction(function( text ) {
text = text.replace( runescape, funescape );
return function( elem ) {
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
};
}),
@ -2096,7 +2115,11 @@ Expr = Sizzle.selectors = {
}),
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
var i = argument < 0 ? argument + length : argument;
var i = argument < 0 ?
argument + length :
argument > length ?
length :
argument;
for ( ; --i >= 0; ) {
matchIndexes.push( i );
}
@ -3146,18 +3169,18 @@ jQuery.each( {
return siblings( elem.firstChild );
},
contents: function( elem ) {
if ( nodeName( elem, "iframe" ) ) {
return elem.contentDocument;
}
if ( typeof elem.contentDocument !== "undefined" ) {
return elem.contentDocument;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
return jQuery.merge( [], elem.childNodes );
return jQuery.merge( [], elem.childNodes );
}
}, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) {
@ -4466,6 +4489,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
var documentElement = document.documentElement;
var isAttached = function( elem ) {
return jQuery.contains( elem.ownerDocument, elem );
},
composed = { composed: true };
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
// Check attachment across shadow DOM boundaries when possible (gh-3504)
// Support: iOS 10.0-10.2 only
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
// leading to errors. We need to check for `getRootNode`.
if ( documentElement.getRootNode ) {
isAttached = function( elem ) {
return jQuery.contains( elem.ownerDocument, elem ) ||
elem.getRootNode( composed ) === elem.ownerDocument;
};
}
var isHiddenWithinTree = function( elem, el ) {
// isHiddenWithinTree might be called from jQuery#filter function;
@ -4480,7 +4523,7 @@ var isHiddenWithinTree = function( elem, el ) {
// Support: Firefox <=43 - 45
// Disconnected elements can have computed display: none, so first confirm that elem is
// in the document.
jQuery.contains( elem.ownerDocument, elem ) &&
isAttached( elem ) &&
jQuery.css( elem, "display" ) === "none";
};
@ -4522,7 +4565,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
// Starting value computation is required for potential unit mismatches
initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
initialInUnit = elem.nodeType &&
( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
rcssNum.exec( jQuery.css( elem, prop ) );
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@ -4669,7 +4713,7 @@ jQuery.fn.extend( {
} );
var rcheckableType = ( /^(?:checkbox|radio)$/i );
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
@ -4741,7 +4785,7 @@ function setGlobalEval( elems, refElements ) {
var rhtml = /<|&#?\w+;/;
function buildFragment( elems, context, scripts, selection, ignored ) {
var elem, tmp, tag, wrap, contains, j,
var elem, tmp, tag, wrap, attached, j,
fragment = context.createDocumentFragment(),
nodes = [],
i = 0,
@ -4805,13 +4849,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
continue;
}
contains = jQuery.contains( elem.ownerDocument, elem );
attached = isAttached( elem );
// Append to fragment
tmp = getAll( fragment.appendChild( elem ), "script" );
// Preserve script evaluation history
if ( contains ) {
if ( attached ) {
setGlobalEval( tmp );
}
@ -4854,8 +4898,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
div.innerHTML = "<textarea>x</textarea>";
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
} )();
var documentElement = document.documentElement;
var
@ -4871,8 +4913,19 @@ function returnFalse() {
return false;
}
// Support: IE <=9 - 11+
// focus() and blur() are asynchronous, except when they are no-op.
// So expect focus to be synchronous when the element is already active,
// and blur to be synchronous when the element is not already active.
// (focus and blur are always synchronous in other supported browsers,
// this just defines when we can count on it).
function expectSync( elem, type ) {
return ( elem === safeActiveElement() ) === ( type === "focus" );
}
// Support: IE <=9 only
// See #13393 for more info
// Accessing document.activeElement can throw unexpectedly
// https://bugs.jquery.com/ticket/13393
function safeActiveElement() {
try {
return document.activeElement;
@ -5172,9 +5225,10 @@ jQuery.event = {
while ( ( handleObj = matched.handlers[ j++ ] ) &&
!event.isImmediatePropagationStopped() ) {
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
// a subset or equal to those in the bound event (both can have no namespace).
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
// If the event is namespaced, then each handler is only invoked if it is
// specially universal or its namespaces are a superset of the event's.
if ( !event.rnamespace || handleObj.namespace === false ||
event.rnamespace.test( handleObj.namespace ) ) {
event.handleObj = handleObj;
event.data = handleObj.data;
@ -5298,39 +5352,51 @@ jQuery.event = {
// Prevent triggered image.load events from bubbling to window.load
noBubble: true
},
focus: {
// Fire native event if possible so blur/focus sequence is correct
trigger: function() {
if ( this !== safeActiveElement() && this.focus ) {
this.focus();
return false;
}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
if ( this === safeActiveElement() && this.blur ) {
this.blur();
return false;
}
},
delegateType: "focusout"
},
click: {
// For checkbox, fire native event so checked state will be right
trigger: function() {
if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
this.click();
return false;
// Utilize native event to ensure correct state for checkable inputs
setup: function( data ) {
// For mutual compressibility with _default, replace `this` access with a local var.
// `|| data` is dead code meant only to preserve the variable through minification.
var el = this || data;
// Claim the first handler
if ( rcheckableType.test( el.type ) &&
el.click && nodeName( el, "input" ) ) {
// dataPriv.set( el, "click", ... )
leverageNative( el, "click", returnTrue );
}
// Return false to allow normal processing in the caller
return false;
},
trigger: function( data ) {
// For mutual compressibility with _default, replace `this` access with a local var.
// `|| data` is dead code meant only to preserve the variable through minification.
var el = this || data;
// Force setup before triggering a click
if ( rcheckableType.test( el.type ) &&
el.click && nodeName( el, "input" ) ) {
leverageNative( el, "click" );
}
// Return non-false to allow normal event-path propagation
return true;
},
// For cross-browser consistency, don't fire native .click() on links
// For cross-browser consistency, suppress native .click() on links
// Also prevent it if we're currently inside a leveraged native-event stack
_default: function( event ) {
return nodeName( event.target, "a" );
var target = event.target;
return rcheckableType.test( target.type ) &&
target.click && nodeName( target, "input" ) &&
dataPriv.get( target, "click" ) ||
nodeName( target, "a" );
}
},
@ -5347,6 +5413,93 @@ jQuery.event = {
}
};
// Ensure the presence of an event listener that handles manually-triggered
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
function leverageNative( el, type, expectSync ) {
// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
if ( !expectSync ) {
if ( dataPriv.get( el, type ) === undefined ) {
jQuery.event.add( el, type, returnTrue );
}
return;
}
// Register the controller as a special universal handler for all event namespaces
dataPriv.set( el, type, false );
jQuery.event.add( el, type, {
namespace: false,
handler: function( event ) {
var notAsync, result,
saved = dataPriv.get( this, type );
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
// Interrupt processing of the outer synthetic .trigger()ed event
// Saved data should be false in such cases, but might be a leftover capture object
// from an async native handler (gh-4350)
if ( !saved.length ) {
// Store arguments for use when handling the inner native event
// There will always be at least one argument (an event object), so this array
// will not be confused with a leftover capture object.
saved = slice.call( arguments );
dataPriv.set( this, type, saved );
// Trigger the native event and capture its result
// Support: IE <=9 - 11+
// focus() and blur() are asynchronous
notAsync = expectSync( this, type );
this[ type ]();
result = dataPriv.get( this, type );
if ( saved !== result || notAsync ) {
dataPriv.set( this, type, false );
} else {
result = {};
}
if ( saved !== result ) {
// Cancel the outer synthetic event
event.stopImmediatePropagation();
event.preventDefault();
return result.value;
}
// If this is an inner synthetic event for an event with a bubbling surrogate
// (focus or blur), assume that the surrogate already propagated from triggering the
// native event and prevent that from happening again here.
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
// less bad than duplication.
} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
event.stopPropagation();
}
// If this is a native event triggered above, everything is now in order
// Fire an inner synthetic event with the original arguments
} else if ( saved.length ) {
// ...and capture the result
dataPriv.set( this, type, {
value: jQuery.event.trigger(
// Support: IE <=9 - 11+
// Extend with the prototype to reset the above stopImmediatePropagation()
jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
saved.slice( 1 ),
this
)
} );
// Abort handling of the native event
event.stopImmediatePropagation();
}
}
} );
}
jQuery.removeEvent = function( elem, type, handle ) {
// This "if" is needed for plain objects
@ -5459,6 +5612,7 @@ jQuery.each( {
shiftKey: true,
view: true,
"char": true,
code: true,
charCode: true,
key: true,
keyCode: true,
@ -5505,6 +5659,33 @@ jQuery.each( {
}
}, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
jQuery.event.special[ type ] = {
// Utilize native event if possible so blur/focus sequence is correct
setup: function() {
// Claim the first handler
// dataPriv.set( this, "focus", ... )
// dataPriv.set( this, "blur", ... )
leverageNative( this, type, expectSync );
// Return false to allow normal processing in the caller
return false;
},
trigger: function() {
// Force setup before trigger
leverageNative( this, type );
// Return non-false to allow normal event-path propagation
return true;
},
delegateType: delegateType
};
} );
// Create mouseenter/leave events using mouseover/out and event-time checks
// so that event delegation works in jQuery.
// Do the same for pointerenter/pointerleave and pointerover/pointerout
@ -5755,11 +5936,13 @@ function domManip( collection, args, callback, ignored ) {
if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
// Optional AJAX dependency, but won't run scripts if not present
if ( jQuery._evalUrl ) {
jQuery._evalUrl( node.src );
if ( jQuery._evalUrl && !node.noModule ) {
jQuery._evalUrl( node.src, {
nonce: node.nonce || node.getAttribute( "nonce" )
} );
}
} else {
DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
}
}
}
@ -5781,7 +5964,7 @@ function remove( elem, selector, keepData ) {
}
if ( node.parentNode ) {
if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
if ( keepData && isAttached( node ) ) {
setGlobalEval( getAll( node, "script" ) );
}
node.parentNode.removeChild( node );
@ -5799,7 +5982,7 @@ jQuery.extend( {
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var i, l, srcElements, destElements,
clone = elem.cloneNode( true ),
inPage = jQuery.contains( elem.ownerDocument, elem );
inPage = isAttached( elem );
// Fix IE cloning issues
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@ -6095,8 +6278,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
// Support: IE 9 only
// Detect overflow:scroll screwiness (gh-3699)
// Support: Chrome <=64
// Don't get tricked when zoom affects offsetWidth (gh-4029)
div.style.position = "absolute";
scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
documentElement.removeChild( container );
@ -6167,7 +6352,7 @@ function curCSS( elem, name, computed ) {
if ( computed ) {
ret = computed.getPropertyValue( name ) || computed[ name ];
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
if ( ret === "" && !isAttached( elem ) ) {
ret = jQuery.style( elem, name );
}
@ -6223,30 +6408,13 @@ function addGetHookIf( conditionFn, hookFn ) {
}
var
var cssPrefixes = [ "Webkit", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style,
vendorProps = {};
// Swappable if display is none or starts with table
// except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: "0",
fontWeight: "400"
},
cssPrefixes = [ "Webkit", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style;
// Return a css property mapped to a potentially vendor prefixed property
// Return a vendor-prefixed property or undefined
function vendorPropName( name ) {
// Shortcut for names that are not vendor prefixed
if ( name in emptyStyle ) {
return name;
}
// Check for vendor prefixed names
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
i = cssPrefixes.length;
@ -6259,16 +6427,33 @@ function vendorPropName( name ) {
}
}
// Return a property mapped along what jQuery.cssProps suggests or to
// a vendor prefixed property.
// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
function finalPropName( name ) {
var ret = jQuery.cssProps[ name ];
if ( !ret ) {
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
var final = jQuery.cssProps[ name ] || vendorProps[ name ];
if ( final ) {
return final;
}
return ret;
if ( name in emptyStyle ) {
return name;
}
return vendorProps[ name ] = vendorPropName( name ) || name;
}
var
// Swappable if display is none or starts with table
// except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: "0",
fontWeight: "400"
};
function setPositiveNumber( elem, value, subtract ) {
// Any relative (+/-) values have already been
@ -6340,7 +6525,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
delta -
extra -
0.5
) );
// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
// Use an explicit zero to avoid NaN (gh-3964)
) ) || 0;
}
return delta;
@ -6350,9 +6538,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
// Start with computed style
var styles = getStyles( elem ),
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
// Fake content-box until we know it's needed to know the true value.
boxSizingNeeded = !support.boxSizingReliable() || extra,
isBorderBox = boxSizingNeeded &&
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
valueIsBorderBox = isBorderBox,
val = curCSS( elem, dimension, styles ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
valueIsBorderBox = isBorderBox;
offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
// Support: Firefox <=54
// Return a confounding non-pixel value or feign ignorance, as appropriate.
@ -6363,22 +6558,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
val = "auto";
}
// Check for style in case a browser which returns unreliable values
// for getComputedStyle silently falls back to the reliable elem.style
valueIsBorderBox = valueIsBorderBox &&
( support.boxSizingReliable() || val === elem.style[ dimension ] );
// Fall back to offsetWidth/offsetHeight when value is "auto"
// This happens for inline elements with no explicit setting (gh-3571)
// Support: Android <=4.1 - 4.3 only
// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
if ( val === "auto" ||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
// Support: IE 9-11 only
// Also use offsetWidth/offsetHeight for when box sizing is unreliable
// We use getClientRects() to check for hidden/disconnected.
// In those cases, the computed value can be trusted to be border-box
if ( ( !support.boxSizingReliable() && isBorderBox ||
val === "auto" ||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
elem.getClientRects().length ) {
val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
// offsetWidth/offsetHeight provide border-box values
valueIsBorderBox = true;
// Where available, offsetWidth/offsetHeight approximate border box dimensions.
// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
// retrieved value as a content box dimension.
valueIsBorderBox = offsetProp in elem;
if ( valueIsBorderBox ) {
val = elem[ offsetProp ];
}
}
// Normalize "" and auto
@ -6424,6 +6626,13 @@ jQuery.extend( {
"flexGrow": true,
"flexShrink": true,
"fontWeight": true,
"gridArea": true,
"gridColumn": true,
"gridColumnEnd": true,
"gridColumnStart": true,
"gridRow": true,
"gridRowEnd": true,
"gridRowStart": true,
"lineHeight": true,
"opacity": true,
"order": true,
@ -6479,7 +6688,9 @@ jQuery.extend( {
}
// If a number was passed in, add the unit (except for certain CSS properties)
if ( type === "number" ) {
// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
// "px" to a few hardcoded values.
if ( type === "number" && !isCustomProp ) {
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
}
@ -6579,18 +6790,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
set: function( elem, value, extra ) {
var matches,
styles = getStyles( elem ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
subtract = extra && boxModelAdjustment(
elem,
dimension,
extra,
isBorderBox,
styles
);
// Only read styles.position if the test has a chance to fail
// to avoid forcing a reflow.
scrollboxSizeBuggy = !support.scrollboxSize() &&
styles.position === "absolute",
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
boxSizingNeeded = scrollboxSizeBuggy || extra,
isBorderBox = boxSizingNeeded &&
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
subtract = extra ?
boxModelAdjustment(
elem,
dimension,
extra,
isBorderBox,
styles
) :
0;
// Account for unreliable border-box dimensions by comparing offset* to computed and
// faking a content-box to get border and padding (gh-3699)
if ( isBorderBox && support.scrollboxSize() === styles.position ) {
if ( isBorderBox && scrollboxSizeBuggy ) {
subtract -= Math.ceil(
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
parseFloat( styles[ dimension ] ) -
@ -7646,6 +7868,10 @@ jQuery.param = function( a, traditional ) {
encodeURIComponent( value == null ? "" : value );
};
if ( a == null ) {
return "";
}
// If an array was passed in, assume that it is an array of form elements.
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more