diff --git a/templates/service/MyCompanyName.MyProjectName.sln b/templates/service/MyCompanyName.MyProjectName.sln
index de0a97c8bc..0787dccc39 100644
--- a/templates/service/MyCompanyName.MyProjectName.sln
+++ b/templates/service/MyCompanyName.MyProjectName.sln
@@ -25,8 +25,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.HttpApi.Client", "src\MyCompanyName.MyProjectName.HttpApi.Client\MyCompanyName.MyProjectName.HttpApi.Client.csproj", "{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Web", "src\MyCompanyName.MyProjectName.Web\MyCompanyName.MyProjectName.Web.csproj", "{8C5B0D35-9734-4439-977C-2F1AC9E1D69E}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.TestBase", "test\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj", "{6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Domain.Tests", "test\MyCompanyName.MyProjectName.Domain.Tests\MyCompanyName.MyProjectName.Domain.Tests.csproj", "{44FB6636-5427-415D-8883-CB7E42D548F2}"
@@ -37,7 +35,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Application.Tests", "test\MyCompanyName.MyProjectName.Application.Tests\MyCompanyName.MyProjectName.Application.Tests.csproj", "{13A9EAD6-F3A4-4357-BA4A-A7E8FEB4A264}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.DemoApp", "app\MyCompanyName.MyProjectName.DemoApp\MyCompanyName.MyProjectName.DemoApp.csproj", "{E7353C9A-4357-4A40-A39A-52B73F5A0CA1}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Host", "host\MyCompanyName.MyProjectName.Host\MyCompanyName.MyProjectName.Host.csproj", "{E7353C9A-4357-4A40-A39A-52B73F5A0CA1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -77,10 +75,6 @@ Global
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.Build.0 = Release|Any CPU
- {8C5B0D35-9734-4439-977C-2F1AC9E1D69E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8C5B0D35-9734-4439-977C-2F1AC9E1D69E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8C5B0D35-9734-4439-977C-2F1AC9E1D69E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8C5B0D35-9734-4439-977C-2F1AC9E1D69E}.Release|Any CPU.Build.0 = Release|Any CPU
{6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -118,7 +112,6 @@ Global
{F1C58097-4C08-4D88-8976-6B3389391481} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {8C5B0D35-9734-4439-977C-2F1AC9E1D69E} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{6E5B22E7-E2DB-45D4-B828-8019D8FD51E8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{44FB6636-5427-415D-8883-CB7E42D548F2} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{E5906DE1-B2F5-472E-BE1B-1D96A68B834D} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/20180711153639_Initial.Designer.cs b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/20180711153639_Initial.Designer.cs
deleted file mode 100644
index 7f69d96beb..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/20180711153639_Initial.Designer.cs
+++ /dev/null
@@ -1,336 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using MyCompanyName.MyProjectName.DemoApp;
-
-namespace MyCompanyName.MyProjectName.DemoApp.Migrations
-{
- [DbContext(typeof(DemoAppDbContext))]
- [Migration("20180711153639_Initial")]
- partial class Initial
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.1.1-rtm-30846")
- .HasAnnotation("Relational:MaxIdentifierLength", 128)
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ConcurrencyStamp");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("NormalizedName")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedName");
-
- b.ToTable("AbpRoles");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClaimType")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("ClaimValue")
- .HasMaxLength(1024);
-
- b.Property("RoleId");
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AbpRoleClaims");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AccessFailedCount")
- .ValueGeneratedOnAdd()
- .HasColumnName("AccessFailedCount")
- .HasDefaultValue(0);
-
- b.Property("ConcurrencyStamp")
- .IsRequired()
- .HasColumnName("ConcurrencyStamp")
- .HasMaxLength(256);
-
- b.Property("Email")
- .HasColumnName("Email")
- .HasMaxLength(256);
-
- b.Property("EmailConfirmed")
- .ValueGeneratedOnAdd()
- .HasColumnName("EmailConfirmed")
- .HasDefaultValue(false);
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("LockoutEnabled")
- .ValueGeneratedOnAdd()
- .HasColumnName("LockoutEnabled")
- .HasDefaultValue(false);
-
- b.Property("LockoutEnd");
-
- b.Property("NormalizedEmail")
- .HasColumnName("NormalizedEmail")
- .HasMaxLength(256);
-
- b.Property("NormalizedUserName")
- .IsRequired()
- .HasColumnName("NormalizedUserName")
- .HasMaxLength(256);
-
- b.Property("PasswordHash")
- .HasColumnName("PasswordHash")
- .HasMaxLength(256);
-
- b.Property("PhoneNumber")
- .HasColumnName("PhoneNumber")
- .HasMaxLength(16);
-
- b.Property("PhoneNumberConfirmed")
- .ValueGeneratedOnAdd()
- .HasColumnName("PhoneNumberConfirmed")
- .HasDefaultValue(false);
-
- b.Property("SecurityStamp")
- .IsRequired()
- .HasColumnName("SecurityStamp")
- .HasMaxLength(256);
-
- b.Property("TenantId")
- .HasColumnName("TenantId");
-
- b.Property("TwoFactorEnabled")
- .ValueGeneratedOnAdd()
- .HasColumnName("TwoFactorEnabled")
- .HasDefaultValue(false);
-
- b.Property("UserName")
- .IsRequired()
- .HasColumnName("UserName")
- .HasMaxLength(256);
-
- b.HasKey("Id");
-
- b.HasIndex("Email");
-
- b.HasIndex("NormalizedEmail");
-
- b.HasIndex("NormalizedUserName");
-
- b.HasIndex("UserName");
-
- b.ToTable("AbpUsers");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClaimType")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("ClaimValue")
- .HasMaxLength(1024);
-
- b.Property("TenantId");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("AbpUserClaims");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b =>
- {
- b.Property("UserId");
-
- b.Property("LoginProvider")
- .HasMaxLength(64);
-
- b.Property("ProviderDisplayName")
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .IsRequired()
- .HasMaxLength(196);
-
- b.Property("TenantId");
-
- b.HasKey("UserId", "LoginProvider");
-
- b.HasIndex("LoginProvider", "ProviderKey");
-
- b.ToTable("AbpUserLogins");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
- {
- b.Property("UserId");
-
- b.Property("RoleId");
-
- b.Property("TenantId");
-
- b.HasKey("UserId", "RoleId");
-
- b.HasIndex("RoleId", "UserId");
-
- b.ToTable("AbpUserRoles");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b =>
- {
- b.Property("UserId");
-
- b.Property("LoginProvider")
- .HasMaxLength(128);
-
- b.Property("Name");
-
- b.Property("TenantId");
-
- b.Property("Value");
-
- b.HasKey("UserId", "LoginProvider", "Name");
-
- b.ToTable("AbpUserTokens");
- });
-
- modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .IsRequired()
- .HasMaxLength(64);
-
- b.Property("ProviderName")
- .IsRequired()
- .HasMaxLength(64);
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("Name", "ProviderName", "ProviderKey");
-
- b.ToTable("AbpPermissionGrants");
- });
-
- modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .HasMaxLength(64);
-
- b.Property("ProviderName")
- .HasMaxLength(64);
-
- b.Property("Value")
- .IsRequired()
- .HasMaxLength(2048);
-
- b.HasKey("Id");
-
- b.HasIndex("Name", "ProviderName", "ProviderKey");
-
- b.ToTable("AbpSettings");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityRole")
- .WithMany("Claims")
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Claims")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Logins")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityRole")
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Roles")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Tokens")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/20180711153639_Initial.cs b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/20180711153639_Initial.cs
deleted file mode 100644
index 68dae7e9c6..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/20180711153639_Initial.cs
+++ /dev/null
@@ -1,277 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace MyCompanyName.MyProjectName.DemoApp.Migrations
-{
- public partial class Initial : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "AbpPermissionGrants",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- Name = table.Column(maxLength: 128, nullable: false),
- ProviderName = table.Column(maxLength: 64, nullable: false),
- ProviderKey = table.Column(maxLength: 64, nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpRoles",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- Name = table.Column(maxLength: 256, nullable: false),
- NormalizedName = table.Column(maxLength: 256, nullable: false),
- ConcurrencyStamp = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpRoles", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpSettings",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- Name = table.Column(maxLength: 128, nullable: false),
- Value = table.Column(maxLength: 2048, nullable: false),
- ProviderName = table.Column(maxLength: 64, nullable: true),
- ProviderKey = table.Column(maxLength: 64, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpSettings", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUsers",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- UserName = table.Column(maxLength: 256, nullable: false),
- NormalizedUserName = table.Column(maxLength: 256, nullable: false),
- Email = table.Column(maxLength: 256, nullable: true),
- NormalizedEmail = table.Column(maxLength: 256, nullable: true),
- EmailConfirmed = table.Column(nullable: false, defaultValue: false),
- PasswordHash = table.Column(maxLength: 256, nullable: true),
- SecurityStamp = table.Column(maxLength: 256, nullable: false),
- ConcurrencyStamp = table.Column(maxLength: 256, nullable: false),
- PhoneNumber = table.Column(maxLength: 16, nullable: true),
- PhoneNumberConfirmed = table.Column(nullable: false, defaultValue: false),
- TwoFactorEnabled = table.Column(nullable: false, defaultValue: false),
- LockoutEnd = table.Column(nullable: true),
- LockoutEnabled = table.Column(nullable: false, defaultValue: false),
- AccessFailedCount = table.Column(nullable: false, defaultValue: 0),
- ExtraProperties = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUsers", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpRoleClaims",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- ClaimType = table.Column(maxLength: 256, nullable: false),
- ClaimValue = table.Column(maxLength: 1024, nullable: true),
- RoleId = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpRoleClaims", x => x.Id);
- table.ForeignKey(
- name: "FK_AbpRoleClaims_AbpRoles_RoleId",
- column: x => x.RoleId,
- principalTable: "AbpRoles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserClaims",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- ClaimType = table.Column(maxLength: 256, nullable: false),
- ClaimValue = table.Column(maxLength: 1024, nullable: true),
- UserId = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserClaims", x => x.Id);
- table.ForeignKey(
- name: "FK_AbpUserClaims_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserLogins",
- columns: table => new
- {
- TenantId = table.Column(nullable: true),
- UserId = table.Column(nullable: false),
- LoginProvider = table.Column(maxLength: 64, nullable: false),
- ProviderKey = table.Column(maxLength: 196, nullable: false),
- ProviderDisplayName = table.Column(maxLength: 128, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider });
- table.ForeignKey(
- name: "FK_AbpUserLogins_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserRoles",
- columns: table => new
- {
- TenantId = table.Column(nullable: true),
- UserId = table.Column(nullable: false),
- RoleId = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId });
- table.ForeignKey(
- name: "FK_AbpUserRoles_AbpRoles_RoleId",
- column: x => x.RoleId,
- principalTable: "AbpRoles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_AbpUserRoles_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserTokens",
- columns: table => new
- {
- TenantId = table.Column(nullable: true),
- UserId = table.Column(nullable: false),
- LoginProvider = table.Column(maxLength: 128, nullable: false),
- Name = table.Column(nullable: false),
- Value = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
- table.ForeignKey(
- name: "FK_AbpUserTokens_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpPermissionGrants_Name_ProviderName_ProviderKey",
- table: "AbpPermissionGrants",
- columns: new[] { "Name", "ProviderName", "ProviderKey" });
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpRoleClaims_RoleId",
- table: "AbpRoleClaims",
- column: "RoleId");
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpRoles_NormalizedName",
- table: "AbpRoles",
- column: "NormalizedName");
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpSettings_Name_ProviderName_ProviderKey",
- table: "AbpSettings",
- columns: new[] { "Name", "ProviderName", "ProviderKey" });
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUserClaims_UserId",
- table: "AbpUserClaims",
- column: "UserId");
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUserLogins_LoginProvider_ProviderKey",
- table: "AbpUserLogins",
- columns: new[] { "LoginProvider", "ProviderKey" });
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUserRoles_RoleId_UserId",
- table: "AbpUserRoles",
- columns: new[] { "RoleId", "UserId" });
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUsers_Email",
- table: "AbpUsers",
- column: "Email");
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUsers_NormalizedEmail",
- table: "AbpUsers",
- column: "NormalizedEmail");
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUsers_NormalizedUserName",
- table: "AbpUsers",
- column: "NormalizedUserName");
-
- migrationBuilder.CreateIndex(
- name: "IX_AbpUsers_UserName",
- table: "AbpUsers",
- column: "UserName");
- }
-
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "AbpPermissionGrants");
-
- migrationBuilder.DropTable(
- name: "AbpRoleClaims");
-
- migrationBuilder.DropTable(
- name: "AbpSettings");
-
- migrationBuilder.DropTable(
- name: "AbpUserClaims");
-
- migrationBuilder.DropTable(
- name: "AbpUserLogins");
-
- migrationBuilder.DropTable(
- name: "AbpUserRoles");
-
- migrationBuilder.DropTable(
- name: "AbpUserTokens");
-
- migrationBuilder.DropTable(
- name: "AbpRoles");
-
- migrationBuilder.DropTable(
- name: "AbpUsers");
- }
- }
-}
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/DemoAppDbContextModelSnapshot.cs b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/DemoAppDbContextModelSnapshot.cs
deleted file mode 100644
index ad9f1b82c9..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Migrations/DemoAppDbContextModelSnapshot.cs
+++ /dev/null
@@ -1,334 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using MyCompanyName.MyProjectName.DemoApp;
-
-namespace MyCompanyName.MyProjectName.DemoApp.Migrations
-{
- [DbContext(typeof(DemoAppDbContext))]
- partial class DemoAppDbContextModelSnapshot : ModelSnapshot
- {
- protected override void BuildModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.1.1-rtm-30846")
- .HasAnnotation("Relational:MaxIdentifierLength", 128)
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ConcurrencyStamp");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("NormalizedName")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedName");
-
- b.ToTable("AbpRoles");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClaimType")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("ClaimValue")
- .HasMaxLength(1024);
-
- b.Property("RoleId");
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AbpRoleClaims");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AccessFailedCount")
- .ValueGeneratedOnAdd()
- .HasColumnName("AccessFailedCount")
- .HasDefaultValue(0);
-
- b.Property("ConcurrencyStamp")
- .IsRequired()
- .HasColumnName("ConcurrencyStamp")
- .HasMaxLength(256);
-
- b.Property("Email")
- .HasColumnName("Email")
- .HasMaxLength(256);
-
- b.Property("EmailConfirmed")
- .ValueGeneratedOnAdd()
- .HasColumnName("EmailConfirmed")
- .HasDefaultValue(false);
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("LockoutEnabled")
- .ValueGeneratedOnAdd()
- .HasColumnName("LockoutEnabled")
- .HasDefaultValue(false);
-
- b.Property("LockoutEnd");
-
- b.Property("NormalizedEmail")
- .HasColumnName("NormalizedEmail")
- .HasMaxLength(256);
-
- b.Property("NormalizedUserName")
- .IsRequired()
- .HasColumnName("NormalizedUserName")
- .HasMaxLength(256);
-
- b.Property("PasswordHash")
- .HasColumnName("PasswordHash")
- .HasMaxLength(256);
-
- b.Property("PhoneNumber")
- .HasColumnName("PhoneNumber")
- .HasMaxLength(16);
-
- b.Property("PhoneNumberConfirmed")
- .ValueGeneratedOnAdd()
- .HasColumnName("PhoneNumberConfirmed")
- .HasDefaultValue(false);
-
- b.Property("SecurityStamp")
- .IsRequired()
- .HasColumnName("SecurityStamp")
- .HasMaxLength(256);
-
- b.Property("TenantId")
- .HasColumnName("TenantId");
-
- b.Property("TwoFactorEnabled")
- .ValueGeneratedOnAdd()
- .HasColumnName("TwoFactorEnabled")
- .HasDefaultValue(false);
-
- b.Property("UserName")
- .IsRequired()
- .HasColumnName("UserName")
- .HasMaxLength(256);
-
- b.HasKey("Id");
-
- b.HasIndex("Email");
-
- b.HasIndex("NormalizedEmail");
-
- b.HasIndex("NormalizedUserName");
-
- b.HasIndex("UserName");
-
- b.ToTable("AbpUsers");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClaimType")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("ClaimValue")
- .HasMaxLength(1024);
-
- b.Property("TenantId");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("AbpUserClaims");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b =>
- {
- b.Property("UserId");
-
- b.Property("LoginProvider")
- .HasMaxLength(64);
-
- b.Property("ProviderDisplayName")
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .IsRequired()
- .HasMaxLength(196);
-
- b.Property("TenantId");
-
- b.HasKey("UserId", "LoginProvider");
-
- b.HasIndex("LoginProvider", "ProviderKey");
-
- b.ToTable("AbpUserLogins");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
- {
- b.Property("UserId");
-
- b.Property("RoleId");
-
- b.Property("TenantId");
-
- b.HasKey("UserId", "RoleId");
-
- b.HasIndex("RoleId", "UserId");
-
- b.ToTable("AbpUserRoles");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b =>
- {
- b.Property("UserId");
-
- b.Property("LoginProvider")
- .HasMaxLength(128);
-
- b.Property("Name");
-
- b.Property("TenantId");
-
- b.Property("Value");
-
- b.HasKey("UserId", "LoginProvider", "Name");
-
- b.ToTable("AbpUserTokens");
- });
-
- modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .IsRequired()
- .HasMaxLength(64);
-
- b.Property("ProviderName")
- .IsRequired()
- .HasMaxLength(64);
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("Name", "ProviderName", "ProviderKey");
-
- b.ToTable("AbpPermissionGrants");
- });
-
- modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .HasMaxLength(64);
-
- b.Property("ProviderName")
- .HasMaxLength(64);
-
- b.Property("Value")
- .IsRequired()
- .HasMaxLength(2048);
-
- b.HasKey("Id");
-
- b.HasIndex("Name", "ProviderName", "ProviderKey");
-
- b.ToTable("AbpSettings");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityRole")
- .WithMany("Claims")
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Claims")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Logins")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityRole")
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Roles")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b =>
- {
- b.HasOne("Volo.Abp.Identity.IdentityUser")
- .WithMany("Tokens")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/Index.cshtml b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/Index.cshtml
deleted file mode 100644
index 0532ccc90b..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/Index.cshtml
+++ /dev/null
@@ -1,4 +0,0 @@
-@page
-@model MyCompanyName.MyProjectName.DemoApp.Pages.IndexModel
-Welcome to the MyProjectName demo application.
-Login
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/Index.cshtml.cs b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/Index.cshtml.cs
deleted file mode 100644
index aae7b3c55a..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/Index.cshtml.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-
-namespace MyCompanyName.MyProjectName.DemoApp.Pages
-{
- public class IndexModel : PageModel
- {
- public void OnGet()
- {
- }
- }
-}
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/_ViewImports.cshtml b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/_ViewImports.cshtml
deleted file mode 100644
index c1da1f5f10..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/Pages/_ViewImports.cshtml
+++ /dev/null
@@ -1,4 +0,0 @@
-@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
-@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI
-@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap
-@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/abp.resourcemapping.js b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/abp.resourcemapping.js
deleted file mode 100644
index 56d68b1b51..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/abp.resourcemapping.js
+++ /dev/null
@@ -1,12 +0,0 @@
-module.exports = {
- aliases: {
- "@node_modules": "./node_modules",
- "@libs": "./wwwroot/libs"
- },
- clean: [
- "@libs"
- ],
- mappings: {
-
- }
-}
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/gulpfile.js b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/gulpfile.js
deleted file mode 100644
index 754602029a..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/gulpfile.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var gulp = require("gulp"),
- path = require('path'),
- copyResources = require('./node_modules/@abp/aspnetcore.mvc.ui/gulp/copy-resources.js');
-
-copyResources.init(path.resolve('./'));
-
-gulp.task('default', [copyResources.taskName], function () {
-
-});
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/package.json b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/package.json
deleted file mode 100644
index 254cd5ab59..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "version": "0.1.0",
- "name": "demo-app",
- "private": true,
- "dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "^0.4.9"
- }
-}
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/abp/core/abp.js b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/abp/core/abp.js
deleted file mode 100644
index 4c87489e22..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/abp/core/abp.js
+++ /dev/null
@@ -1,546 +0,0 @@
-var abp = abp || {};
-(function () {
-
- /* Application paths *****************************************/
-
- //Current application root path (including virtual directory if exists).
- abp.appPath = abp.appPath || '/';
-
- abp.pageLoadTime = new Date();
-
- //Converts given path to absolute path using abp.appPath variable.
- abp.toAbsAppPath = function (path) {
- if (path.indexOf('/') == 0) {
- path = path.substring(1);
- }
-
- return abp.appPath + path;
- };
-
- /* LOGGING ***************************************************/
- //Implements Logging API that provides secure & controlled usage of console.log
-
- abp.log = abp.log || {};
-
- abp.log.levels = {
- DEBUG: 1,
- INFO: 2,
- WARN: 3,
- ERROR: 4,
- FATAL: 5
- };
-
- abp.log.level = abp.log.levels.DEBUG;
-
- abp.log.log = function (logObject, logLevel) {
- if (!window.console || !window.console.log) {
- return;
- }
-
- if (logLevel != undefined && logLevel < abp.log.level) {
- return;
- }
-
- console.log(logObject);
- };
-
- abp.log.debug = function (logObject) {
- abp.log.log("DEBUG: ", abp.log.levels.DEBUG);
- abp.log.log(logObject, abp.log.levels.DEBUG);
- };
-
- abp.log.info = function (logObject) {
- abp.log.log("INFO: ", abp.log.levels.INFO);
- abp.log.log(logObject, abp.log.levels.INFO);
- };
-
- abp.log.warn = function (logObject) {
- abp.log.log("WARN: ", abp.log.levels.WARN);
- abp.log.log(logObject, abp.log.levels.WARN);
- };
-
- abp.log.error = function (logObject) {
- abp.log.log("ERROR: ", abp.log.levels.ERROR);
- abp.log.log(logObject, abp.log.levels.ERROR);
- };
-
- abp.log.fatal = function (logObject) {
- abp.log.log("FATAL: ", abp.log.levels.FATAL);
- abp.log.log(logObject, abp.log.levels.FATAL);
- };
-
- /* LOCALIZATION ***********************************************/
-
- abp.localization = abp.localization || {};
-
- abp.localization.values = {};
-
- abp.localization.localize = function (key, sourceName) {
- sourceName = sourceName || abp.localization.defaultResourceName;
-
- var source = abp.localization.values[sourceName];
-
- if (!source) {
- abp.log.warn('Could not find localization source: ' + sourceName);
- return key;
- }
-
- var value = source[key];
- if (value == undefined) {
- return key;
- }
-
- var copiedArguments = Array.prototype.slice.call(arguments, 0);
- copiedArguments.splice(1, 1);
- copiedArguments[0] = value;
-
- return abp.utils.formatString.apply(this, copiedArguments);
- };
-
- abp.localization.getResource = function (name) {
- return function () {
- var copiedArguments = Array.prototype.slice.call(arguments, 0);
- copiedArguments.splice(1, 0, name);
- return abp.localization.localize.apply(this, copiedArguments);
- };
- };
-
- abp.localization.defaultResourceName = undefined;
-
- /* AUTHORIZATION **********************************************/
-
- abp.auth = abp.auth || {};
-
- abp.auth.policies = abp.auth.policies || {};
-
- abp.auth.grantedPolicies = abp.auth.grantedPolicies || {};
-
- abp.auth.isGranted = function (policyName) {
- return abp.auth.policies[policyName] != undefined && abp.auth.grantedPolicies[policyName] != undefined;
- };
-
- abp.auth.isAnyGranted = function () {
- if (!arguments || arguments.length <= 0) {
- return true;
- }
-
- for (var i = 0; i < arguments.length; i++) {
- if (abp.auth.isGranted(arguments[i])) {
- return true;
- }
- }
-
- return false;
- };
-
- abp.auth.areAllGranted = function () {
- if (!arguments || arguments.length <= 0) {
- return true;
- }
-
- for (var i = 0; i < arguments.length; i++) {
- if (!abp.auth.isGranted(arguments[i])) {
- return false;
- }
- }
-
- return true;
- };
-
- abp.auth.tokenCookieName = 'Abp.AuthToken';
-
- abp.auth.setToken = function (authToken, expireDate) {
- abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath, abp.domain);
- };
-
- abp.auth.getToken = function () {
- return abp.utils.getCookieValue(abp.auth.tokenCookieName);
- }
-
- abp.auth.clearToken = function () {
- abp.auth.setToken();
- }
-
- /* NOTIFICATION *********************************************/
- //Defines Notification API, not implements it
-
- abp.notify = abp.notify || {};
-
- abp.notify.success = function (message, title, options) {
- abp.log.warn('abp.notify.success is not implemented!');
- };
-
- abp.notify.info = function (message, title, options) {
- abp.log.warn('abp.notify.info is not implemented!');
- };
-
- abp.notify.warn = function (message, title, options) {
- abp.log.warn('abp.notify.warn is not implemented!');
- };
-
- abp.notify.error = function (message, title, options) {
- abp.log.warn('abp.notify.error is not implemented!');
- };
-
- /* MESSAGE **************************************************/
- //Defines Message API, not implements it
-
- abp.message = abp.message || {};
-
- abp.message._showMessage = function (message, title) {
- alert((title || '') + ' ' + message);
- };
-
- abp.message.info = function (message, title) {
- abp.log.warn('abp.message.info is not implemented!');
- return abp.message._showMessage(message, title);
- };
-
- abp.message.success = function (message, title) {
- abp.log.warn('abp.message.success is not implemented!');
- return abp.message._showMessage(message, title);
- };
-
- abp.message.warn = function (message, title) {
- abp.log.warn('abp.message.warn is not implemented!');
- return abp.message._showMessage(message, title);
- };
-
- abp.message.error = function (message, title) {
- abp.log.warn('abp.message.error is not implemented!');
- return abp.message._showMessage(message, title);
- };
-
- abp.message.confirm = function (message, titleOrCallback, callback) {
- abp.log.warn('abp.message.confirm is not properly implemented!');
-
- if (titleOrCallback && !(typeof titleOrCallback == 'string')) {
- callback = titleOrCallback;
- }
-
- var result = confirm(message);
- callback && callback(result);
- };
-
- /* UI *******************************************************/
-
- abp.ui = abp.ui || {};
-
- /* UI BLOCK */
- //Defines UI Block API, not implements it
-
- abp.ui.block = function (elm) {
- abp.log.warn('abp.ui.block is not implemented!');
- };
-
- abp.ui.unblock = function (elm) {
- abp.log.warn('abp.ui.unblock is not implemented!');
- };
-
- /* UI BUSY */
- //Defines UI Busy API, not implements it
-
- abp.ui.setBusy = function (elm, optionsOrPromise) {
- abp.log.warn('abp.ui.setBusy is not implemented!');
- };
-
- abp.ui.clearBusy = function (elm) {
- abp.log.warn('abp.ui.clearBusy is not implemented!');
- };
-
- /* SIMPLE EVENT BUS *****************************************/
-
- abp.event = (function () {
-
- var _callbacks = {};
-
- var on = function (eventName, callback) {
- if (!_callbacks[eventName]) {
- _callbacks[eventName] = [];
- }
-
- _callbacks[eventName].push(callback);
- };
-
- var off = function (eventName, callback) {
- var callbacks = _callbacks[eventName];
- if (!callbacks) {
- return;
- }
-
- var index = -1;
- for (var i = 0; i < callbacks.length; i++) {
- if (callbacks[i] === callback) {
- index = i;
- break;
- }
- }
-
- if (index < 0) {
- return;
- }
-
- _callbacks[eventName].splice(index, 1);
- };
-
- var trigger = function (eventName) {
- var callbacks = _callbacks[eventName];
- if (!callbacks || !callbacks.length) {
- return;
- }
-
- var args = Array.prototype.slice.call(arguments, 1);
- for (var i = 0; i < callbacks.length; i++) {
- callbacks[i].apply(this, args);
- }
- };
-
- // Public interface ///////////////////////////////////////////////////
-
- return {
- on: on,
- off: off,
- trigger: trigger
- };
- })();
-
-
- /* UTILS ***************************************************/
-
- abp.utils = abp.utils || {};
-
- /* Creates a name namespace.
- * Example:
- * var taskService = abp.utils.createNamespace(abp, 'services.task');
- * taskService will be equal to abp.services.task
- * first argument (root) must be defined first
- ************************************************************/
- abp.utils.createNamespace = function (root, ns) {
- var parts = ns.split('.');
- for (var i = 0; i < parts.length; i++) {
- if (typeof root[parts[i]] == 'undefined') {
- root[parts[i]] = {};
- }
-
- root = root[parts[i]];
- }
-
- return root;
- };
-
- /* Find and replaces a string (search) to another string (replacement) in
- * given string (str).
- * Example:
- * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string'
- ************************************************************/
- abp.utils.replaceAll = function (str, search, replacement) {
- var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
- return str.replace(new RegExp(fix, 'g'), replacement);
- };
-
- /* Formats a string just like string.format in C#.
- * Example:
- * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana'
- ************************************************************/
- abp.utils.formatString = function () {
- if (arguments.length < 1) {
- return null;
- }
-
- var str = arguments[0];
-
- for (var i = 1; i < arguments.length; i++) {
- var placeHolder = '{' + (i - 1) + '}';
- str = abp.utils.replaceAll(str, placeHolder, arguments[i]);
- }
-
- return str;
- };
-
- abp.utils.toPascalCase = function (str) {
- if (!str || !str.length) {
- return str;
- }
-
- if (str.length === 1) {
- return str.charAt(0).toUpperCase();
- }
-
- return str.charAt(0).toUpperCase() + str.substr(1);
- }
-
- abp.utils.toCamelCase = function (str) {
- if (!str || !str.length) {
- return str;
- }
-
- if (str.length === 1) {
- return str.charAt(0).toLowerCase();
- }
-
- return str.charAt(0).toLowerCase() + str.substr(1);
- }
-
- abp.utils.truncateString = function (str, maxLength) {
- if (!str || !str.length || str.length <= maxLength) {
- return str;
- }
-
- return str.substr(0, maxLength);
- };
-
- abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) {
- postfix = postfix || '...';
-
- if (!str || !str.length || str.length <= maxLength) {
- return str;
- }
-
- if (maxLength <= postfix.length) {
- return postfix.substr(0, maxLength);
- }
-
- return str.substr(0, maxLength - postfix.length) + postfix;
- };
-
- abp.utils.isFunction = function (obj) {
- return !!(obj && obj.constructor && obj.call && obj.apply);
- };
-
- /**
- * parameterInfos should be an array of { name, value } objects
- * where name is query string parameter name and value is it's value.
- * includeQuestionMark is true by default.
- */
- abp.utils.buildQueryString = function (parameterInfos, includeQuestionMark) {
- if (includeQuestionMark === undefined) {
- includeQuestionMark = true;
- }
-
- var qs = '';
-
- function addSeperator() {
- if (!qs.length) {
- if (includeQuestionMark) {
- qs = qs + '?';
- }
- } else {
- qs = qs + '&';
- }
- }
-
- for (var i = 0; i < parameterInfos.length; ++i) {
- var parameterInfo = parameterInfos[i];
- if (parameterInfo.value === undefined) {
- continue;
- }
-
- if (parameterInfo.value === null) {
- parameterInfo.value = '';
- }
-
- addSeperator();
-
- if (parameterInfo.value.toJSON && typeof parameterInfo.value.toJSON === "function") {
- qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value.toJSON());
- } else if (Array.isArray(parameterInfo.value) && parameterInfo.value.length) {
- for (var j = 0; j < parameterInfo.value.length; j++) {
- if (j > 0) {
- addSeperator();
- }
-
- qs = qs + parameterInfo.name + '[' + j + ']=' + encodeURIComponent(parameterInfo.value[j]);
- }
- } else {
- qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value);
- }
- }
-
- return qs;
- }
-
- /**
- * Sets a cookie value for given key.
- * This is a simple implementation created to be used by ABP.
- * Please use a complete cookie library if you need.
- * @param {string} key
- * @param {string} value
- * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session.
- * @param {string} path (optional)
- */
- abp.utils.setCookieValue = function (key, value, expireDate, path) {
- var cookieValue = encodeURIComponent(key) + '=';
-
- if (value) {
- cookieValue = cookieValue + encodeURIComponent(value);
- }
-
- if (expireDate) {
- cookieValue = cookieValue + "; expires=" + expireDate.toUTCString();
- }
-
- if (path) {
- cookieValue = cookieValue + "; path=" + path;
- }
-
- document.cookie = cookieValue;
- };
-
- /**
- * Gets a cookie with given key.
- * This is a simple implementation created to be used by ABP.
- * Please use a complete cookie library if you need.
- * @param {string} key
- * @returns {string} Cookie value or null
- */
- abp.utils.getCookieValue = function (key) {
- var equalities = document.cookie.split('; ');
- for (var i = 0; i < equalities.length; i++) {
- if (!equalities[i]) {
- continue;
- }
-
- var splitted = equalities[i].split('=');
- if (splitted.length != 2) {
- continue;
- }
-
- if (decodeURIComponent(splitted[0]) === key) {
- return decodeURIComponent(splitted[1] || '');
- }
- }
-
- return null;
- };
-
- /**
- * Deletes cookie for given key.
- * This is a simple implementation created to be used by ABP.
- * Please use a complete cookie library if you need.
- * @param {string} key
- * @param {string} path (optional)
- */
- abp.utils.deleteCookie = function (key, path) {
- var cookieValue = encodeURIComponent(key) + '=';
-
- cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString();
-
- if (path) {
- cookieValue = cookieValue + "; path=" + path;
- }
-
- document.cookie = cookieValue;
- }
-
- /* SECURITY ***************************************/
- abp.security = abp.security || {};
- abp.security.antiForgery = abp.security.antiForgery || {};
-
- abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN';
- abp.security.antiForgery.tokenHeaderName = 'X-XSRF-TOKEN';
-
- abp.security.antiForgery.getToken = function () {
- return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName);
- };
-
-})();
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js
deleted file mode 100644
index 6a84bfbb61..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js
+++ /dev/null
@@ -1,389 +0,0 @@
-var abp = abp || {};
-(function($) {
-
- if (!$) {
- throw "abp/jquery library requires the jquery library included to the page!";
- }
-
- // ABP CORE OVERRIDES /////////////////////////////////////////////////////
-
- abp.message._showMessage = function (message, title) {
- alert((title || '') + ' ' + message);
-
- return $.Deferred(function ($dfd) {
- $dfd.resolve();
- });
- };
-
- abp.message.confirm = function (message, titleOrCallback, callback) {
- if (titleOrCallback && !(typeof titleOrCallback == 'string')) {
- callback = titleOrCallback;
- }
-
- var result = confirm(message);
- callback && callback(result);
-
- return $.Deferred(function ($dfd) {
- $dfd.resolve(result);
- });
- };
-
- abp.utils.isFunction = function (obj) {
- return $.isFunction(obj);
- };
-
- // JQUERY EXTENSIONS //////////////////////////////////////////////////////
-
- $.fn.findWithSelf = function (selector) {
- return this.filter(selector).add(this.find(selector));
- };
-
- // DOM ////////////////////////////////////////////////////////////////////
-
- abp.dom = abp.dom || {};
-
- abp.dom.onNodeAdded = function (callback) {
- abp.event.on('abp.dom.nodeAdded', callback);
- };
-
- abp.dom.onNodeRemoved = function (callback) {
- abp.event.on('abp.dom.nodeRemoved', callback);
- };
-
- var mutationObserverCallback = function (mutationsList) {
- for (var i = 0; i < mutationsList.length; i++) {
- var mutation = mutationsList[i];
- if (mutation.type === 'childList') {
- if (mutation.addedNodes && mutation.removedNodes.length) {
- for (var k = 0; k < mutation.removedNodes.length; k++) {
- abp.event.trigger(
- 'abp.dom.nodeRemoved',
- {
- $el: $(mutation.removedNodes[k])
- }
- );
- }
- }
-
- if (mutation.addedNodes && mutation.addedNodes.length) {
- for (var j = 0; j < mutation.addedNodes.length; j++) {
- abp.event.trigger(
- 'abp.dom.nodeAdded',
- {
- $el: $(mutation.addedNodes[j])
- }
- );
- }
- }
- }
- }
- };
-
- new MutationObserver(mutationObserverCallback).observe(
- $('body')[0],
- {
- subtree: true,
- childList: true
- }
- );
-
- // AJAX ///////////////////////////////////////////////////////////////////
-
- abp.ajax = function (userOptions) {
- userOptions = userOptions || {};
-
- var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions);
-
- options.success = undefined;
- options.error = undefined;
-
- return $.Deferred(function ($dfd) {
- $.ajax(options)
- .done(function (data, textStatus, jqXHR) {
- $dfd.resolve(data);
- userOptions.success && userOptions.success(data);
- }).fail(function (jqXHR) {
- if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') {
- abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd);
- } else {
- abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd);
- }
- });
- });
- };
-
- $.extend(abp.ajax, {
- defaultOpts: {
- dataType: 'json',
- type: 'POST',
- contentType: 'application/json',
- headers: {
- 'X-Requested-With': 'XMLHttpRequest'
- }
- },
-
- defaultError: {
- message: 'An error has occurred!',
- details: 'Error detail not sent by server.'
- },
-
- defaultError401: {
- message: 'You are not authenticated!',
- details: 'You should be authenticated (sign in) in order to perform this operation.'
- },
-
- defaultError403: {
- message: 'You are not authorized!',
- details: 'You are not allowed to perform this operation.'
- },
-
- defaultError404: {
- message: 'Resource not found!',
- details: 'The resource requested could not found on the server.'
- },
-
- logError: function (error) {
- abp.log.error(error);
- },
-
- showError: function (error) {
- if (error.details) {
- return abp.message.error(error.details, error.message);
- } else {
- return abp.message.error(error.message || abp.ajax.defaultError.message);
- }
- },
-
- handleTargetUrl: function (targetUrl) {
- if (!targetUrl) {
- location.href = abp.appPath;
- } else {
- location.href = targetUrl;
- }
- },
-
- handleErrorStatusCode: function (status) {
- switch (status) {
- case 401:
- abp.ajax.handleUnAuthorizedRequest(
- abp.ajax.showError(abp.ajax.defaultError401),
- abp.appPath
- );
- break;
- case 403:
- abp.ajax.showError(abp.ajax.defaultError403);
- break;
- case 404:
- abp.ajax.showError(abp.ajax.defaultError404);
- break;
- default:
- abp.ajax.showError(abp.ajax.defaultError);
- break;
- }
- },
-
- handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) {
- if (userOptions.abpHandleError !== false) {
- abp.ajax.handleErrorStatusCode(jqXHR.status);
- }
-
- $dfd.reject.apply(this, arguments);
- userOptions.error && userOptions.error.apply(this, arguments);
- },
-
- handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) {
- var messagePromise = null;
-
- if (userOptions.abpHandleError !== false) {
- messagePromise = abp.ajax.showError(jqXHR.responseJSON.error);
- }
-
- abp.ajax.logError(jqXHR.responseJSON.error);
-
- $dfd && $dfd.reject(jqXHR.responseJSON.error, jqXHR);
- userOptions.error && userOptions.error(jqXHR.responseJSON.error, jqXHR);
-
- if (jqXHR.status === 401 && userOptions.abpHandleError !== false) {
- abp.ajax.handleUnAuthorizedRequest(messagePromise);
- }
- },
-
- handleUnAuthorizedRequest: function (messagePromise, targetUrl) {
- if (messagePromise) {
- messagePromise.done(function () {
- abp.ajax.handleTargetUrl(targetUrl);
- });
- } else {
- abp.ajax.handleTargetUrl(targetUrl);
- }
- },
-
- blockUI: function (options) {
- if (options.blockUI) {
- if (options.blockUI === true) { //block whole page
- abp.ui.setBusy();
- } else { //block an element
- abp.ui.setBusy(options.blockUI);
- }
- }
- },
-
- unblockUI: function (options) {
- if (options.blockUI) {
- if (options.blockUI === true) { //unblock whole page
- abp.ui.clearBusy();
- } else { //unblock an element
- abp.ui.clearBusy(options.blockUI);
- }
- }
- },
-
- ajaxSendHandler: function (event, request, settings) {
- var token = abp.security.antiForgery.getToken();
- if (!token) {
- return;
- }
-
- if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) {
- request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token);
- }
- }
- });
-
- $(document).ajaxSend(function (event, request, settings) {
- return abp.ajax.ajaxSendHandler(event, request, settings);
- });
-
- abp.event.on('abp.configurationInitialized', function () {
- var l = abp.localization.getResource('AbpUi');
-
- abp.ajax.defaultError.message = l('DefaultErrorMessage');
- abp.ajax.defaultError.details = l('DefaultErrorMessageDetail');
- abp.ajax.defaultError401.message = l('DefaultErrorMessage401');
- abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail');
- abp.ajax.defaultError403.message = l('DefaultErrorMessage403');
- abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail');
- abp.ajax.defaultError404.message = l('DefaultErrorMessage404');
- abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail');
- });
-
- // RESOURCE LOADER ////////////////////////////////////////////////////////
-
- /* UrlStates enum */
- var UrlStates = {
- LOADING: 'LOADING',
- LOADED: 'LOADED',
- FAILED: 'FAILED'
- };
-
- /* UrlInfo class */
- function UrlInfo(url) {
- this.url = url;
- this.state = UrlStates.LOADING;
- this.loadCallbacks = [];
- this.failCallbacks = [];
- }
-
- UrlInfo.prototype.succeed = function () {
- this.state = UrlStates.LOADED;
- for (var i = 0; i < this.loadCallbacks.length; i++) {
- this.loadCallbacks[i]();
- }
- };
-
- UrlInfo.prototype.failed = function () {
- this.state = UrlStates.FAILED;
- for (var i = 0; i < this.failCallbacks.length; i++) {
- this.failCallbacks[i]();
- }
- };
-
- UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) {
- switch (this.state) {
- case UrlStates.LOADED:
- loadCallback && loadCallback();
- break;
- case UrlStates.FAILED:
- failCallback && failCallback();
- break;
- case UrlStates.LOADING:
- this.addCallbacks(loadCallback, failCallback);
- break;
- }
- };
-
- UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) {
- loadCallback && this.loadCallbacks.push(loadCallback);
- failCallback && this.failCallbacks.push(failCallback);
- };
-
- /* ResourceLoader API */
-
- abp.ResourceLoader = (function () {
-
- var _urlInfos = {};
-
- function getCacheKey(url) {
- return url;
- }
-
- function appendTimeToUrl(url) {
-
- if (url.indexOf('?') < 0) {
- url += '?';
- } else {
- url += '&';
- }
-
- url += '_=' + new Date().getTime();
-
- return url;
- }
-
- var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) {
-
- var cacheKey = getCacheKey(url);
-
- var urlInfo = _urlInfos[cacheKey];
-
- if (urlInfo) {
- urlInfo.handleCallbacks(loadCallback, failCallback);
- return;
- }
-
- _urlInfos[cacheKey] = urlInfo = new UrlInfo(url);
- urlInfo.addCallbacks(loadCallback, failCallback);
-
- serverLoader(urlInfo);
- };
-
- var _loadScript = function (url, loadCallback, failCallback) {
- _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) {
- $.getScript(url)
- .done(function () {
- urlInfo.succeed();
- })
- .fail(function () {
- urlInfo.failed();
- });
- });
- };
-
- var _loadStyle = function (url) {
- _loadFromUrl(url, undefined, undefined, function (urlInfo) {
-
- $('', {
- rel: 'stylesheet',
- type: 'text/css',
- href: appendTimeToUrl(url)
- }).appendTo('head');
- });
- };
-
- return {
- loadScript: _loadScript,
- loadStyle: _loadStyle
- }
- })();
-
-})(jQuery);
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/bootstrap/css/bootstrap.css b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/bootstrap/css/bootstrap.css
deleted file mode 100644
index 7d43e1f107..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/bootstrap/css/bootstrap.css
+++ /dev/null
@@ -1,8981 +0,0 @@
-/*!
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-:root {
- --blue: #007bff;
- --indigo: #6610f2;
- --purple: #6f42c1;
- --pink: #e83e8c;
- --red: #dc3545;
- --orange: #fd7e14;
- --yellow: #ffc107;
- --green: #28a745;
- --teal: #20c997;
- --cyan: #17a2b8;
- --white: #fff;
- --gray: #6c757d;
- --gray-dark: #343a40;
- --primary: #007bff;
- --secondary: #6c757d;
- --success: #28a745;
- --info: #17a2b8;
- --warning: #ffc107;
- --danger: #dc3545;
- --light: #f8f9fa;
- --dark: #343a40;
- --breakpoint-xs: 0;
- --breakpoint-sm: 576px;
- --breakpoint-md: 768px;
- --breakpoint-lg: 992px;
- --breakpoint-xl: 1200px;
- --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
- --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
-}
-
-*,
-*::before,
-*::after {
- box-sizing: border-box;
-}
-
-html {
- font-family: sans-serif;
- line-height: 1.15;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- -ms-overflow-style: scrollbar;
- -webkit-tap-highlight-color: transparent;
-}
-
-@-ms-viewport {
- width: device-width;
-}
-
-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, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
- 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;
-}
-
-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;
-}
-
-dfn {
- font-style: italic;
-}
-
-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;
- -webkit-text-decoration-skip: objects;
-}
-
-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;
- -ms-overflow-style: scrollbar;
-}
-
-figure {
- margin: 0 0 1rem;
-}
-
-img {
- vertical-align: middle;
- border-style: none;
-}
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-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;
-}
-
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button;
-}
-
-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-cancel-button,
-[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;
-}
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
- margin-bottom: 0.5rem;
- font-family: inherit;
- font-weight: 500;
- line-height: 1.2;
- color: inherit;
-}
-
-h1, .h1 {
- font-size: 2.5rem;
-}
-
-h2, .h2 {
- font-size: 2rem;
-}
-
-h3, .h3 {
- font-size: 1.75rem;
-}
-
-h4, .h4 {
- font-size: 1.5rem;
-}
-
-h5, .h5 {
- font-size: 1.25rem;
-}
-
-h6, .h6 {
- font-size: 1rem;
-}
-
-.lead {
- font-size: 1.25rem;
- font-weight: 300;
-}
-
-.display-1 {
- font-size: 6rem;
- font-weight: 300;
- line-height: 1.2;
-}
-
-.display-2 {
- font-size: 5.5rem;
- font-weight: 300;
- line-height: 1.2;
-}
-
-.display-3 {
- font-size: 4.5rem;
- font-weight: 300;
- line-height: 1.2;
-}
-
-.display-4 {
- font-size: 3.5rem;
- font-weight: 300;
- line-height: 1.2;
-}
-
-hr {
- margin-top: 1rem;
- margin-bottom: 1rem;
- border: 0;
- border-top: 1px solid rgba(0, 0, 0, 0.1);
-}
-
-small,
-.small {
- font-size: 80%;
- font-weight: 400;
-}
-
-mark,
-.mark {
- padding: 0.2em;
- background-color: #fcf8e3;
-}
-
-.list-unstyled {
- padding-left: 0;
- list-style: none;
-}
-
-.list-inline {
- padding-left: 0;
- list-style: none;
-}
-
-.list-inline-item {
- display: inline-block;
-}
-
-.list-inline-item:not(:last-child) {
- margin-right: 0.5rem;
-}
-
-.initialism {
- font-size: 90%;
- text-transform: uppercase;
-}
-
-.blockquote {
- margin-bottom: 1rem;
- font-size: 1.25rem;
-}
-
-.blockquote-footer {
- display: block;
- font-size: 80%;
- color: #6c757d;
-}
-
-.blockquote-footer::before {
- content: "\2014 \00A0";
-}
-
-.img-fluid {
- max-width: 100%;
- height: auto;
-}
-
-.img-thumbnail {
- padding: 0.25rem;
- background-color: #fff;
- border: 1px solid #dee2e6;
- border-radius: 0.25rem;
- max-width: 100%;
- height: auto;
-}
-
-.figure {
- display: inline-block;
-}
-
-.figure-img {
- margin-bottom: 0.5rem;
- line-height: 1;
-}
-
-.figure-caption {
- font-size: 90%;
- color: #6c757d;
-}
-
-code {
- font-size: 87.5%;
- color: #e83e8c;
- word-break: break-word;
-}
-
-a > code {
- color: inherit;
-}
-
-kbd {
- padding: 0.2rem 0.4rem;
- font-size: 87.5%;
- color: #fff;
- background-color: #212529;
- border-radius: 0.2rem;
-}
-
-kbd kbd {
- padding: 0;
- font-size: 100%;
- font-weight: 700;
-}
-
-pre {
- display: block;
- font-size: 87.5%;
- color: #212529;
-}
-
-pre code {
- font-size: inherit;
- color: inherit;
- word-break: normal;
-}
-
-.pre-scrollable {
- max-height: 340px;
- overflow-y: scroll;
-}
-
-.container {
- width: 100%;
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
-}
-
-@media (min-width: 576px) {
- .container {
- max-width: 540px;
- }
-}
-
-@media (min-width: 768px) {
- .container {
- max-width: 720px;
- }
-}
-
-@media (min-width: 992px) {
- .container {
- max-width: 960px;
- }
-}
-
-@media (min-width: 1200px) {
- .container {
- max-width: 1140px;
- }
-}
-
-.container-fluid {
- width: 100%;
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
-}
-
-.row {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- margin-right: -15px;
- margin-left: -15px;
-}
-
-.no-gutters {
- margin-right: 0;
- margin-left: 0;
-}
-
-.no-gutters > .col,
-.no-gutters > [class*="col-"] {
- padding-right: 0;
- padding-left: 0;
-}
-
-.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
-.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
-.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
-.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
-.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
-.col-xl-auto {
- position: relative;
- width: 100%;
- min-height: 1px;
- padding-right: 15px;
- padding-left: 15px;
-}
-
-.col {
- -ms-flex-preferred-size: 0;
- flex-basis: 0;
- -ms-flex-positive: 1;
- flex-grow: 1;
- max-width: 100%;
-}
-
-.col-auto {
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: auto;
- max-width: none;
-}
-
-.col-1 {
- -ms-flex: 0 0 8.333333%;
- flex: 0 0 8.333333%;
- max-width: 8.333333%;
-}
-
-.col-2 {
- -ms-flex: 0 0 16.666667%;
- flex: 0 0 16.666667%;
- max-width: 16.666667%;
-}
-
-.col-3 {
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
-}
-
-.col-4 {
- -ms-flex: 0 0 33.333333%;
- flex: 0 0 33.333333%;
- max-width: 33.333333%;
-}
-
-.col-5 {
- -ms-flex: 0 0 41.666667%;
- flex: 0 0 41.666667%;
- max-width: 41.666667%;
-}
-
-.col-6 {
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
-}
-
-.col-7 {
- -ms-flex: 0 0 58.333333%;
- flex: 0 0 58.333333%;
- max-width: 58.333333%;
-}
-
-.col-8 {
- -ms-flex: 0 0 66.666667%;
- flex: 0 0 66.666667%;
- max-width: 66.666667%;
-}
-
-.col-9 {
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
-}
-
-.col-10 {
- -ms-flex: 0 0 83.333333%;
- flex: 0 0 83.333333%;
- max-width: 83.333333%;
-}
-
-.col-11 {
- -ms-flex: 0 0 91.666667%;
- flex: 0 0 91.666667%;
- max-width: 91.666667%;
-}
-
-.col-12 {
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
-}
-
-.order-first {
- -ms-flex-order: -1;
- order: -1;
-}
-
-.order-last {
- -ms-flex-order: 13;
- order: 13;
-}
-
-.order-0 {
- -ms-flex-order: 0;
- order: 0;
-}
-
-.order-1 {
- -ms-flex-order: 1;
- order: 1;
-}
-
-.order-2 {
- -ms-flex-order: 2;
- order: 2;
-}
-
-.order-3 {
- -ms-flex-order: 3;
- order: 3;
-}
-
-.order-4 {
- -ms-flex-order: 4;
- order: 4;
-}
-
-.order-5 {
- -ms-flex-order: 5;
- order: 5;
-}
-
-.order-6 {
- -ms-flex-order: 6;
- order: 6;
-}
-
-.order-7 {
- -ms-flex-order: 7;
- order: 7;
-}
-
-.order-8 {
- -ms-flex-order: 8;
- order: 8;
-}
-
-.order-9 {
- -ms-flex-order: 9;
- order: 9;
-}
-
-.order-10 {
- -ms-flex-order: 10;
- order: 10;
-}
-
-.order-11 {
- -ms-flex-order: 11;
- order: 11;
-}
-
-.order-12 {
- -ms-flex-order: 12;
- order: 12;
-}
-
-.offset-1 {
- margin-left: 8.333333%;
-}
-
-.offset-2 {
- margin-left: 16.666667%;
-}
-
-.offset-3 {
- margin-left: 25%;
-}
-
-.offset-4 {
- margin-left: 33.333333%;
-}
-
-.offset-5 {
- margin-left: 41.666667%;
-}
-
-.offset-6 {
- margin-left: 50%;
-}
-
-.offset-7 {
- margin-left: 58.333333%;
-}
-
-.offset-8 {
- margin-left: 66.666667%;
-}
-
-.offset-9 {
- margin-left: 75%;
-}
-
-.offset-10 {
- margin-left: 83.333333%;
-}
-
-.offset-11 {
- margin-left: 91.666667%;
-}
-
-@media (min-width: 576px) {
- .col-sm {
- -ms-flex-preferred-size: 0;
- flex-basis: 0;
- -ms-flex-positive: 1;
- flex-grow: 1;
- max-width: 100%;
- }
- .col-sm-auto {
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: auto;
- max-width: none;
- }
- .col-sm-1 {
- -ms-flex: 0 0 8.333333%;
- flex: 0 0 8.333333%;
- max-width: 8.333333%;
- }
- .col-sm-2 {
- -ms-flex: 0 0 16.666667%;
- flex: 0 0 16.666667%;
- max-width: 16.666667%;
- }
- .col-sm-3 {
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .col-sm-4 {
- -ms-flex: 0 0 33.333333%;
- flex: 0 0 33.333333%;
- max-width: 33.333333%;
- }
- .col-sm-5 {
- -ms-flex: 0 0 41.666667%;
- flex: 0 0 41.666667%;
- max-width: 41.666667%;
- }
- .col-sm-6 {
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .col-sm-7 {
- -ms-flex: 0 0 58.333333%;
- flex: 0 0 58.333333%;
- max-width: 58.333333%;
- }
- .col-sm-8 {
- -ms-flex: 0 0 66.666667%;
- flex: 0 0 66.666667%;
- max-width: 66.666667%;
- }
- .col-sm-9 {
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .col-sm-10 {
- -ms-flex: 0 0 83.333333%;
- flex: 0 0 83.333333%;
- max-width: 83.333333%;
- }
- .col-sm-11 {
- -ms-flex: 0 0 91.666667%;
- flex: 0 0 91.666667%;
- max-width: 91.666667%;
- }
- .col-sm-12 {
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .order-sm-first {
- -ms-flex-order: -1;
- order: -1;
- }
- .order-sm-last {
- -ms-flex-order: 13;
- order: 13;
- }
- .order-sm-0 {
- -ms-flex-order: 0;
- order: 0;
- }
- .order-sm-1 {
- -ms-flex-order: 1;
- order: 1;
- }
- .order-sm-2 {
- -ms-flex-order: 2;
- order: 2;
- }
- .order-sm-3 {
- -ms-flex-order: 3;
- order: 3;
- }
- .order-sm-4 {
- -ms-flex-order: 4;
- order: 4;
- }
- .order-sm-5 {
- -ms-flex-order: 5;
- order: 5;
- }
- .order-sm-6 {
- -ms-flex-order: 6;
- order: 6;
- }
- .order-sm-7 {
- -ms-flex-order: 7;
- order: 7;
- }
- .order-sm-8 {
- -ms-flex-order: 8;
- order: 8;
- }
- .order-sm-9 {
- -ms-flex-order: 9;
- order: 9;
- }
- .order-sm-10 {
- -ms-flex-order: 10;
- order: 10;
- }
- .order-sm-11 {
- -ms-flex-order: 11;
- order: 11;
- }
- .order-sm-12 {
- -ms-flex-order: 12;
- order: 12;
- }
- .offset-sm-0 {
- margin-left: 0;
- }
- .offset-sm-1 {
- margin-left: 8.333333%;
- }
- .offset-sm-2 {
- margin-left: 16.666667%;
- }
- .offset-sm-3 {
- margin-left: 25%;
- }
- .offset-sm-4 {
- margin-left: 33.333333%;
- }
- .offset-sm-5 {
- margin-left: 41.666667%;
- }
- .offset-sm-6 {
- margin-left: 50%;
- }
- .offset-sm-7 {
- margin-left: 58.333333%;
- }
- .offset-sm-8 {
- margin-left: 66.666667%;
- }
- .offset-sm-9 {
- margin-left: 75%;
- }
- .offset-sm-10 {
- margin-left: 83.333333%;
- }
- .offset-sm-11 {
- margin-left: 91.666667%;
- }
-}
-
-@media (min-width: 768px) {
- .col-md {
- -ms-flex-preferred-size: 0;
- flex-basis: 0;
- -ms-flex-positive: 1;
- flex-grow: 1;
- max-width: 100%;
- }
- .col-md-auto {
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: auto;
- max-width: none;
- }
- .col-md-1 {
- -ms-flex: 0 0 8.333333%;
- flex: 0 0 8.333333%;
- max-width: 8.333333%;
- }
- .col-md-2 {
- -ms-flex: 0 0 16.666667%;
- flex: 0 0 16.666667%;
- max-width: 16.666667%;
- }
- .col-md-3 {
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .col-md-4 {
- -ms-flex: 0 0 33.333333%;
- flex: 0 0 33.333333%;
- max-width: 33.333333%;
- }
- .col-md-5 {
- -ms-flex: 0 0 41.666667%;
- flex: 0 0 41.666667%;
- max-width: 41.666667%;
- }
- .col-md-6 {
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .col-md-7 {
- -ms-flex: 0 0 58.333333%;
- flex: 0 0 58.333333%;
- max-width: 58.333333%;
- }
- .col-md-8 {
- -ms-flex: 0 0 66.666667%;
- flex: 0 0 66.666667%;
- max-width: 66.666667%;
- }
- .col-md-9 {
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .col-md-10 {
- -ms-flex: 0 0 83.333333%;
- flex: 0 0 83.333333%;
- max-width: 83.333333%;
- }
- .col-md-11 {
- -ms-flex: 0 0 91.666667%;
- flex: 0 0 91.666667%;
- max-width: 91.666667%;
- }
- .col-md-12 {
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .order-md-first {
- -ms-flex-order: -1;
- order: -1;
- }
- .order-md-last {
- -ms-flex-order: 13;
- order: 13;
- }
- .order-md-0 {
- -ms-flex-order: 0;
- order: 0;
- }
- .order-md-1 {
- -ms-flex-order: 1;
- order: 1;
- }
- .order-md-2 {
- -ms-flex-order: 2;
- order: 2;
- }
- .order-md-3 {
- -ms-flex-order: 3;
- order: 3;
- }
- .order-md-4 {
- -ms-flex-order: 4;
- order: 4;
- }
- .order-md-5 {
- -ms-flex-order: 5;
- order: 5;
- }
- .order-md-6 {
- -ms-flex-order: 6;
- order: 6;
- }
- .order-md-7 {
- -ms-flex-order: 7;
- order: 7;
- }
- .order-md-8 {
- -ms-flex-order: 8;
- order: 8;
- }
- .order-md-9 {
- -ms-flex-order: 9;
- order: 9;
- }
- .order-md-10 {
- -ms-flex-order: 10;
- order: 10;
- }
- .order-md-11 {
- -ms-flex-order: 11;
- order: 11;
- }
- .order-md-12 {
- -ms-flex-order: 12;
- order: 12;
- }
- .offset-md-0 {
- margin-left: 0;
- }
- .offset-md-1 {
- margin-left: 8.333333%;
- }
- .offset-md-2 {
- margin-left: 16.666667%;
- }
- .offset-md-3 {
- margin-left: 25%;
- }
- .offset-md-4 {
- margin-left: 33.333333%;
- }
- .offset-md-5 {
- margin-left: 41.666667%;
- }
- .offset-md-6 {
- margin-left: 50%;
- }
- .offset-md-7 {
- margin-left: 58.333333%;
- }
- .offset-md-8 {
- margin-left: 66.666667%;
- }
- .offset-md-9 {
- margin-left: 75%;
- }
- .offset-md-10 {
- margin-left: 83.333333%;
- }
- .offset-md-11 {
- margin-left: 91.666667%;
- }
-}
-
-@media (min-width: 992px) {
- .col-lg {
- -ms-flex-preferred-size: 0;
- flex-basis: 0;
- -ms-flex-positive: 1;
- flex-grow: 1;
- max-width: 100%;
- }
- .col-lg-auto {
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: auto;
- max-width: none;
- }
- .col-lg-1 {
- -ms-flex: 0 0 8.333333%;
- flex: 0 0 8.333333%;
- max-width: 8.333333%;
- }
- .col-lg-2 {
- -ms-flex: 0 0 16.666667%;
- flex: 0 0 16.666667%;
- max-width: 16.666667%;
- }
- .col-lg-3 {
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .col-lg-4 {
- -ms-flex: 0 0 33.333333%;
- flex: 0 0 33.333333%;
- max-width: 33.333333%;
- }
- .col-lg-5 {
- -ms-flex: 0 0 41.666667%;
- flex: 0 0 41.666667%;
- max-width: 41.666667%;
- }
- .col-lg-6 {
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .col-lg-7 {
- -ms-flex: 0 0 58.333333%;
- flex: 0 0 58.333333%;
- max-width: 58.333333%;
- }
- .col-lg-8 {
- -ms-flex: 0 0 66.666667%;
- flex: 0 0 66.666667%;
- max-width: 66.666667%;
- }
- .col-lg-9 {
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .col-lg-10 {
- -ms-flex: 0 0 83.333333%;
- flex: 0 0 83.333333%;
- max-width: 83.333333%;
- }
- .col-lg-11 {
- -ms-flex: 0 0 91.666667%;
- flex: 0 0 91.666667%;
- max-width: 91.666667%;
- }
- .col-lg-12 {
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .order-lg-first {
- -ms-flex-order: -1;
- order: -1;
- }
- .order-lg-last {
- -ms-flex-order: 13;
- order: 13;
- }
- .order-lg-0 {
- -ms-flex-order: 0;
- order: 0;
- }
- .order-lg-1 {
- -ms-flex-order: 1;
- order: 1;
- }
- .order-lg-2 {
- -ms-flex-order: 2;
- order: 2;
- }
- .order-lg-3 {
- -ms-flex-order: 3;
- order: 3;
- }
- .order-lg-4 {
- -ms-flex-order: 4;
- order: 4;
- }
- .order-lg-5 {
- -ms-flex-order: 5;
- order: 5;
- }
- .order-lg-6 {
- -ms-flex-order: 6;
- order: 6;
- }
- .order-lg-7 {
- -ms-flex-order: 7;
- order: 7;
- }
- .order-lg-8 {
- -ms-flex-order: 8;
- order: 8;
- }
- .order-lg-9 {
- -ms-flex-order: 9;
- order: 9;
- }
- .order-lg-10 {
- -ms-flex-order: 10;
- order: 10;
- }
- .order-lg-11 {
- -ms-flex-order: 11;
- order: 11;
- }
- .order-lg-12 {
- -ms-flex-order: 12;
- order: 12;
- }
- .offset-lg-0 {
- margin-left: 0;
- }
- .offset-lg-1 {
- margin-left: 8.333333%;
- }
- .offset-lg-2 {
- margin-left: 16.666667%;
- }
- .offset-lg-3 {
- margin-left: 25%;
- }
- .offset-lg-4 {
- margin-left: 33.333333%;
- }
- .offset-lg-5 {
- margin-left: 41.666667%;
- }
- .offset-lg-6 {
- margin-left: 50%;
- }
- .offset-lg-7 {
- margin-left: 58.333333%;
- }
- .offset-lg-8 {
- margin-left: 66.666667%;
- }
- .offset-lg-9 {
- margin-left: 75%;
- }
- .offset-lg-10 {
- margin-left: 83.333333%;
- }
- .offset-lg-11 {
- margin-left: 91.666667%;
- }
-}
-
-@media (min-width: 1200px) {
- .col-xl {
- -ms-flex-preferred-size: 0;
- flex-basis: 0;
- -ms-flex-positive: 1;
- flex-grow: 1;
- max-width: 100%;
- }
- .col-xl-auto {
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: auto;
- max-width: none;
- }
- .col-xl-1 {
- -ms-flex: 0 0 8.333333%;
- flex: 0 0 8.333333%;
- max-width: 8.333333%;
- }
- .col-xl-2 {
- -ms-flex: 0 0 16.666667%;
- flex: 0 0 16.666667%;
- max-width: 16.666667%;
- }
- .col-xl-3 {
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .col-xl-4 {
- -ms-flex: 0 0 33.333333%;
- flex: 0 0 33.333333%;
- max-width: 33.333333%;
- }
- .col-xl-5 {
- -ms-flex: 0 0 41.666667%;
- flex: 0 0 41.666667%;
- max-width: 41.666667%;
- }
- .col-xl-6 {
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .col-xl-7 {
- -ms-flex: 0 0 58.333333%;
- flex: 0 0 58.333333%;
- max-width: 58.333333%;
- }
- .col-xl-8 {
- -ms-flex: 0 0 66.666667%;
- flex: 0 0 66.666667%;
- max-width: 66.666667%;
- }
- .col-xl-9 {
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .col-xl-10 {
- -ms-flex: 0 0 83.333333%;
- flex: 0 0 83.333333%;
- max-width: 83.333333%;
- }
- .col-xl-11 {
- -ms-flex: 0 0 91.666667%;
- flex: 0 0 91.666667%;
- max-width: 91.666667%;
- }
- .col-xl-12 {
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .order-xl-first {
- -ms-flex-order: -1;
- order: -1;
- }
- .order-xl-last {
- -ms-flex-order: 13;
- order: 13;
- }
- .order-xl-0 {
- -ms-flex-order: 0;
- order: 0;
- }
- .order-xl-1 {
- -ms-flex-order: 1;
- order: 1;
- }
- .order-xl-2 {
- -ms-flex-order: 2;
- order: 2;
- }
- .order-xl-3 {
- -ms-flex-order: 3;
- order: 3;
- }
- .order-xl-4 {
- -ms-flex-order: 4;
- order: 4;
- }
- .order-xl-5 {
- -ms-flex-order: 5;
- order: 5;
- }
- .order-xl-6 {
- -ms-flex-order: 6;
- order: 6;
- }
- .order-xl-7 {
- -ms-flex-order: 7;
- order: 7;
- }
- .order-xl-8 {
- -ms-flex-order: 8;
- order: 8;
- }
- .order-xl-9 {
- -ms-flex-order: 9;
- order: 9;
- }
- .order-xl-10 {
- -ms-flex-order: 10;
- order: 10;
- }
- .order-xl-11 {
- -ms-flex-order: 11;
- order: 11;
- }
- .order-xl-12 {
- -ms-flex-order: 12;
- order: 12;
- }
- .offset-xl-0 {
- margin-left: 0;
- }
- .offset-xl-1 {
- margin-left: 8.333333%;
- }
- .offset-xl-2 {
- margin-left: 16.666667%;
- }
- .offset-xl-3 {
- margin-left: 25%;
- }
- .offset-xl-4 {
- margin-left: 33.333333%;
- }
- .offset-xl-5 {
- margin-left: 41.666667%;
- }
- .offset-xl-6 {
- margin-left: 50%;
- }
- .offset-xl-7 {
- margin-left: 58.333333%;
- }
- .offset-xl-8 {
- margin-left: 66.666667%;
- }
- .offset-xl-9 {
- margin-left: 75%;
- }
- .offset-xl-10 {
- margin-left: 83.333333%;
- }
- .offset-xl-11 {
- margin-left: 91.666667%;
- }
-}
-
-.table {
- width: 100%;
- max-width: 100%;
- margin-bottom: 1rem;
- background-color: transparent;
-}
-
-.table th,
-.table td {
- padding: 0.75rem;
- vertical-align: top;
- border-top: 1px solid #dee2e6;
-}
-
-.table thead th {
- vertical-align: bottom;
- border-bottom: 2px solid #dee2e6;
-}
-
-.table tbody + tbody {
- border-top: 2px solid #dee2e6;
-}
-
-.table .table {
- background-color: #fff;
-}
-
-.table-sm th,
-.table-sm td {
- padding: 0.3rem;
-}
-
-.table-bordered {
- border: 1px solid #dee2e6;
-}
-
-.table-bordered th,
-.table-bordered td {
- border: 1px solid #dee2e6;
-}
-
-.table-bordered thead th,
-.table-bordered thead td {
- border-bottom-width: 2px;
-}
-
-.table-borderless th,
-.table-borderless td,
-.table-borderless thead th,
-.table-borderless tbody + tbody {
- border: 0;
-}
-
-.table-striped tbody tr:nth-of-type(odd) {
- background-color: rgba(0, 0, 0, 0.05);
-}
-
-.table-hover tbody tr:hover {
- background-color: rgba(0, 0, 0, 0.075);
-}
-
-.table-primary,
-.table-primary > th,
-.table-primary > td {
- background-color: #b8daff;
-}
-
-.table-hover .table-primary:hover {
- background-color: #9fcdff;
-}
-
-.table-hover .table-primary:hover > td,
-.table-hover .table-primary:hover > th {
- background-color: #9fcdff;
-}
-
-.table-secondary,
-.table-secondary > th,
-.table-secondary > td {
- background-color: #d6d8db;
-}
-
-.table-hover .table-secondary:hover {
- background-color: #c8cbcf;
-}
-
-.table-hover .table-secondary:hover > td,
-.table-hover .table-secondary:hover > th {
- background-color: #c8cbcf;
-}
-
-.table-success,
-.table-success > th,
-.table-success > td {
- background-color: #c3e6cb;
-}
-
-.table-hover .table-success:hover {
- background-color: #b1dfbb;
-}
-
-.table-hover .table-success:hover > td,
-.table-hover .table-success:hover > th {
- background-color: #b1dfbb;
-}
-
-.table-info,
-.table-info > th,
-.table-info > td {
- background-color: #bee5eb;
-}
-
-.table-hover .table-info:hover {
- background-color: #abdde5;
-}
-
-.table-hover .table-info:hover > td,
-.table-hover .table-info:hover > th {
- background-color: #abdde5;
-}
-
-.table-warning,
-.table-warning > th,
-.table-warning > td {
- background-color: #ffeeba;
-}
-
-.table-hover .table-warning:hover {
- background-color: #ffe8a1;
-}
-
-.table-hover .table-warning:hover > td,
-.table-hover .table-warning:hover > th {
- background-color: #ffe8a1;
-}
-
-.table-danger,
-.table-danger > th,
-.table-danger > td {
- background-color: #f5c6cb;
-}
-
-.table-hover .table-danger:hover {
- background-color: #f1b0b7;
-}
-
-.table-hover .table-danger:hover > td,
-.table-hover .table-danger:hover > th {
- background-color: #f1b0b7;
-}
-
-.table-light,
-.table-light > th,
-.table-light > td {
- background-color: #fdfdfe;
-}
-
-.table-hover .table-light:hover {
- background-color: #ececf6;
-}
-
-.table-hover .table-light:hover > td,
-.table-hover .table-light:hover > th {
- background-color: #ececf6;
-}
-
-.table-dark,
-.table-dark > th,
-.table-dark > td {
- background-color: #c6c8ca;
-}
-
-.table-hover .table-dark:hover {
- background-color: #b9bbbe;
-}
-
-.table-hover .table-dark:hover > td,
-.table-hover .table-dark:hover > th {
- background-color: #b9bbbe;
-}
-
-.table-active,
-.table-active > th,
-.table-active > td {
- background-color: rgba(0, 0, 0, 0.075);
-}
-
-.table-hover .table-active:hover {
- background-color: rgba(0, 0, 0, 0.075);
-}
-
-.table-hover .table-active:hover > td,
-.table-hover .table-active:hover > th {
- background-color: rgba(0, 0, 0, 0.075);
-}
-
-.table .thead-dark th {
- color: #fff;
- background-color: #212529;
- border-color: #32383e;
-}
-
-.table .thead-light th {
- color: #495057;
- background-color: #e9ecef;
- border-color: #dee2e6;
-}
-
-.table-dark {
- color: #fff;
- background-color: #212529;
-}
-
-.table-dark th,
-.table-dark td,
-.table-dark thead th {
- border-color: #32383e;
-}
-
-.table-dark.table-bordered {
- border: 0;
-}
-
-.table-dark.table-striped tbody tr:nth-of-type(odd) {
- background-color: rgba(255, 255, 255, 0.05);
-}
-
-.table-dark.table-hover tbody tr:hover {
- background-color: rgba(255, 255, 255, 0.075);
-}
-
-@media (max-width: 575.98px) {
- .table-responsive-sm {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- }
- .table-responsive-sm > .table-bordered {
- border: 0;
- }
-}
-
-@media (max-width: 767.98px) {
- .table-responsive-md {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- }
- .table-responsive-md > .table-bordered {
- border: 0;
- }
-}
-
-@media (max-width: 991.98px) {
- .table-responsive-lg {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- }
- .table-responsive-lg > .table-bordered {
- border: 0;
- }
-}
-
-@media (max-width: 1199.98px) {
- .table-responsive-xl {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- }
- .table-responsive-xl > .table-bordered {
- border: 0;
- }
-}
-
-.table-responsive {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
-}
-
-.table-responsive > .table-bordered {
- border: 0;
-}
-
-.form-control {
- display: block;
- width: 100%;
- padding: 0.375rem 0.75rem;
- font-size: 1rem;
- line-height: 1.5;
- color: #495057;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid #ced4da;
- border-radius: 0.25rem;
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .form-control {
- transition: none;
- }
-}
-
-.form-control::-ms-expand {
- background-color: transparent;
- border: 0;
-}
-
-.form-control:focus {
- color: #495057;
- background-color: #fff;
- border-color: #80bdff;
- outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.form-control::-webkit-input-placeholder {
- color: #6c757d;
- opacity: 1;
-}
-
-.form-control::-moz-placeholder {
- color: #6c757d;
- opacity: 1;
-}
-
-.form-control:-ms-input-placeholder {
- color: #6c757d;
- opacity: 1;
-}
-
-.form-control::-ms-input-placeholder {
- color: #6c757d;
- opacity: 1;
-}
-
-.form-control::placeholder {
- color: #6c757d;
- opacity: 1;
-}
-
-.form-control:disabled, .form-control[readonly] {
- background-color: #e9ecef;
- opacity: 1;
-}
-
-select.form-control:not([size]):not([multiple]) {
- height: calc(2.25rem + 2px);
-}
-
-select.form-control:focus::-ms-value {
- color: #495057;
- background-color: #fff;
-}
-
-.form-control-file,
-.form-control-range {
- display: block;
- width: 100%;
-}
-
-.col-form-label {
- padding-top: calc(0.375rem + 1px);
- padding-bottom: calc(0.375rem + 1px);
- margin-bottom: 0;
- font-size: inherit;
- line-height: 1.5;
-}
-
-.col-form-label-lg {
- padding-top: calc(0.5rem + 1px);
- padding-bottom: calc(0.5rem + 1px);
- font-size: 1.25rem;
- line-height: 1.5;
-}
-
-.col-form-label-sm {
- padding-top: calc(0.25rem + 1px);
- padding-bottom: calc(0.25rem + 1px);
- font-size: 0.875rem;
- line-height: 1.5;
-}
-
-.form-control-plaintext {
- display: block;
- width: 100%;
- padding-top: 0.375rem;
- padding-bottom: 0.375rem;
- margin-bottom: 0;
- line-height: 1.5;
- color: #212529;
- background-color: transparent;
- border: solid transparent;
- border-width: 1px 0;
-}
-
-.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,
-.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,
-.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,
-.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,
-.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
-.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,
-.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,
-.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,
-.input-group-lg > .input-group-append > .form-control-plaintext.btn {
- padding-right: 0;
- padding-left: 0;
-}
-
-.form-control-sm, .input-group-sm > .form-control,
-.input-group-sm > .input-group-prepend > .input-group-text,
-.input-group-sm > .input-group-append > .input-group-text,
-.input-group-sm > .input-group-prepend > .btn,
-.input-group-sm > .input-group-append > .btn {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5;
- border-radius: 0.2rem;
-}
-
-select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
-.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),
-.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),
-.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),
-.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {
- height: calc(1.8125rem + 2px);
-}
-
-.form-control-lg, .input-group-lg > .form-control,
-.input-group-lg > .input-group-prepend > .input-group-text,
-.input-group-lg > .input-group-append > .input-group-text,
-.input-group-lg > .input-group-prepend > .btn,
-.input-group-lg > .input-group-append > .btn {
- padding: 0.5rem 1rem;
- font-size: 1.25rem;
- line-height: 1.5;
- border-radius: 0.3rem;
-}
-
-select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
-.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),
-.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),
-.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),
-.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {
- height: calc(2.875rem + 2px);
-}
-
-.form-group {
- margin-bottom: 1rem;
-}
-
-.form-text {
- display: block;
- margin-top: 0.25rem;
-}
-
-.form-row {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- margin-right: -5px;
- margin-left: -5px;
-}
-
-.form-row > .col,
-.form-row > [class*="col-"] {
- padding-right: 5px;
- padding-left: 5px;
-}
-
-.form-check {
- position: relative;
- display: block;
- padding-left: 1.25rem;
-}
-
-.form-check-input {
- position: absolute;
- margin-top: 0.3rem;
- margin-left: -1.25rem;
-}
-
-.form-check-input:disabled ~ .form-check-label {
- color: #6c757d;
-}
-
-.form-check-label {
- margin-bottom: 0;
-}
-
-.form-check-inline {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- padding-left: 0;
- margin-right: 0.75rem;
-}
-
-.form-check-inline .form-check-input {
- position: static;
- margin-top: 0;
- margin-right: 0.3125rem;
- margin-left: 0;
-}
-
-.valid-feedback {
- display: none;
- width: 100%;
- margin-top: 0.25rem;
- font-size: 80%;
- color: #28a745;
-}
-
-.valid-tooltip {
- position: absolute;
- top: 100%;
- z-index: 5;
- display: none;
- max-width: 100%;
- padding: .5rem;
- margin-top: .1rem;
- font-size: .875rem;
- line-height: 1;
- color: #fff;
- background-color: rgba(40, 167, 69, 0.8);
- border-radius: .2rem;
-}
-
-.was-validated .form-control:valid, .form-control.is-valid, .was-validated
-.custom-select:valid,
-.custom-select.is-valid {
- border-color: #28a745;
-}
-
-.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
-.custom-select:valid:focus,
-.custom-select.is-valid:focus {
- border-color: #28a745;
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
-}
-
-.was-validated .form-control:valid ~ .valid-feedback,
-.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
-.form-control.is-valid ~ .valid-tooltip, .was-validated
-.custom-select:valid ~ .valid-feedback,
-.was-validated
-.custom-select:valid ~ .valid-tooltip,
-.custom-select.is-valid ~ .valid-feedback,
-.custom-select.is-valid ~ .valid-tooltip {
- display: block;
-}
-
-.was-validated .form-control-file:valid ~ .valid-feedback,
-.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,
-.form-control-file.is-valid ~ .valid-tooltip {
- display: block;
-}
-
-.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
- color: #28a745;
-}
-
-.was-validated .form-check-input:valid ~ .valid-feedback,
-.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
-.form-check-input.is-valid ~ .valid-tooltip {
- display: block;
-}
-
-.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
- color: #28a745;
-}
-
-.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
- background-color: #71dd8a;
-}
-
-.was-validated .custom-control-input:valid ~ .valid-feedback,
-.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
-.custom-control-input.is-valid ~ .valid-tooltip {
- display: block;
-}
-
-.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
- background-color: #34ce57;
-}
-
-.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
-}
-
-.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
- border-color: #28a745;
-}
-
-.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {
- border-color: inherit;
-}
-
-.was-validated .custom-file-input:valid ~ .valid-feedback,
-.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
-.custom-file-input.is-valid ~ .valid-tooltip {
- display: block;
-}
-
-.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
-}
-
-.invalid-feedback {
- display: none;
- width: 100%;
- margin-top: 0.25rem;
- font-size: 80%;
- color: #dc3545;
-}
-
-.invalid-tooltip {
- position: absolute;
- top: 100%;
- z-index: 5;
- display: none;
- max-width: 100%;
- padding: .5rem;
- margin-top: .1rem;
- font-size: .875rem;
- line-height: 1;
- color: #fff;
- background-color: rgba(220, 53, 69, 0.8);
- border-radius: .2rem;
-}
-
-.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
-.custom-select:invalid,
-.custom-select.is-invalid {
- border-color: #dc3545;
-}
-
-.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
-.custom-select:invalid:focus,
-.custom-select.is-invalid:focus {
- border-color: #dc3545;
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
-}
-
-.was-validated .form-control:invalid ~ .invalid-feedback,
-.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
-.form-control.is-invalid ~ .invalid-tooltip, .was-validated
-.custom-select:invalid ~ .invalid-feedback,
-.was-validated
-.custom-select:invalid ~ .invalid-tooltip,
-.custom-select.is-invalid ~ .invalid-feedback,
-.custom-select.is-invalid ~ .invalid-tooltip {
- display: block;
-}
-
-.was-validated .form-control-file:invalid ~ .invalid-feedback,
-.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,
-.form-control-file.is-invalid ~ .invalid-tooltip {
- display: block;
-}
-
-.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
- color: #dc3545;
-}
-
-.was-validated .form-check-input:invalid ~ .invalid-feedback,
-.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
-.form-check-input.is-invalid ~ .invalid-tooltip {
- display: block;
-}
-
-.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
- color: #dc3545;
-}
-
-.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
- background-color: #efa2a9;
-}
-
-.was-validated .custom-control-input:invalid ~ .invalid-feedback,
-.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
-.custom-control-input.is-invalid ~ .invalid-tooltip {
- display: block;
-}
-
-.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
- background-color: #e4606d;
-}
-
-.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
-}
-
-.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
- border-color: #dc3545;
-}
-
-.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {
- border-color: inherit;
-}
-
-.was-validated .custom-file-input:invalid ~ .invalid-feedback,
-.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
-.custom-file-input.is-invalid ~ .invalid-tooltip {
- display: block;
-}
-
-.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
-}
-
-.form-inline {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-flow: row wrap;
- flex-flow: row wrap;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.form-inline .form-check {
- width: 100%;
-}
-
-@media (min-width: 576px) {
- .form-inline label {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- margin-bottom: 0;
- }
- .form-inline .form-group {
- display: -ms-flexbox;
- display: flex;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- -ms-flex-flow: row wrap;
- flex-flow: row wrap;
- -ms-flex-align: center;
- align-items: center;
- margin-bottom: 0;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .form-control-plaintext {
- display: inline-block;
- }
- .form-inline .input-group,
- .form-inline .custom-select {
- width: auto;
- }
- .form-inline .form-check {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- width: auto;
- padding-left: 0;
- }
- .form-inline .form-check-input {
- position: relative;
- margin-top: 0;
- margin-right: 0.25rem;
- margin-left: 0;
- }
- .form-inline .custom-control {
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- }
- .form-inline .custom-control-label {
- margin-bottom: 0;
- }
-}
-
-.btn {
- display: inline-block;
- font-weight: 400;
- text-align: center;
- white-space: nowrap;
- vertical-align: middle;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- border: 1px solid transparent;
- padding: 0.375rem 0.75rem;
- font-size: 1rem;
- line-height: 1.5;
- border-radius: 0.25rem;
- transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .btn {
- transition: none;
- }
-}
-
-.btn:hover, .btn:focus {
- text-decoration: none;
-}
-
-.btn:focus, .btn.focus {
- outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.btn.disabled, .btn:disabled {
- opacity: 0.65;
-}
-
-.btn:not(:disabled):not(.disabled) {
- cursor: pointer;
-}
-
-.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {
- background-image: none;
-}
-
-a.btn.disabled,
-fieldset:disabled a.btn {
- pointer-events: none;
-}
-
-.btn-primary {
- color: #fff;
- background-color: #007bff;
- border-color: #007bff;
-}
-
-.btn-primary:hover {
- color: #fff;
- background-color: #0069d9;
- border-color: #0062cc;
-}
-
-.btn-primary:focus, .btn-primary.focus {
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
-}
-
-.btn-primary.disabled, .btn-primary:disabled {
- color: #fff;
- background-color: #007bff;
- border-color: #007bff;
-}
-
-.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
-.show > .btn-primary.dropdown-toggle {
- color: #fff;
- background-color: #0062cc;
- border-color: #005cbf;
-}
-
-.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
-.show > .btn-primary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
-}
-
-.btn-secondary {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
-}
-
-.btn-secondary:hover {
- color: #fff;
- background-color: #5a6268;
- border-color: #545b62;
-}
-
-.btn-secondary:focus, .btn-secondary.focus {
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
-}
-
-.btn-secondary.disabled, .btn-secondary:disabled {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
-}
-
-.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,
-.show > .btn-secondary.dropdown-toggle {
- color: #fff;
- background-color: #545b62;
- border-color: #4e555b;
-}
-
-.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
-.show > .btn-secondary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
-}
-
-.btn-success {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745;
-}
-
-.btn-success:hover {
- color: #fff;
- background-color: #218838;
- border-color: #1e7e34;
-}
-
-.btn-success:focus, .btn-success.focus {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
-}
-
-.btn-success.disabled, .btn-success:disabled {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745;
-}
-
-.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
-.show > .btn-success.dropdown-toggle {
- color: #fff;
- background-color: #1e7e34;
- border-color: #1c7430;
-}
-
-.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
-.show > .btn-success.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
-}
-
-.btn-info {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8;
-}
-
-.btn-info:hover {
- color: #fff;
- background-color: #138496;
- border-color: #117a8b;
-}
-
-.btn-info:focus, .btn-info.focus {
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
-}
-
-.btn-info.disabled, .btn-info:disabled {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8;
-}
-
-.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
-.show > .btn-info.dropdown-toggle {
- color: #fff;
- background-color: #117a8b;
- border-color: #10707f;
-}
-
-.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
-.show > .btn-info.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
-}
-
-.btn-warning {
- color: #212529;
- background-color: #ffc107;
- border-color: #ffc107;
-}
-
-.btn-warning:hover {
- color: #212529;
- background-color: #e0a800;
- border-color: #d39e00;
-}
-
-.btn-warning:focus, .btn-warning.focus {
- box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
-}
-
-.btn-warning.disabled, .btn-warning:disabled {
- color: #212529;
- background-color: #ffc107;
- border-color: #ffc107;
-}
-
-.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
-.show > .btn-warning.dropdown-toggle {
- color: #212529;
- background-color: #d39e00;
- border-color: #c69500;
-}
-
-.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
-.show > .btn-warning.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
-}
-
-.btn-danger {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
-}
-
-.btn-danger:hover {
- color: #fff;
- background-color: #c82333;
- border-color: #bd2130;
-}
-
-.btn-danger:focus, .btn-danger.focus {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
-}
-
-.btn-danger.disabled, .btn-danger:disabled {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
-}
-
-.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
-.show > .btn-danger.dropdown-toggle {
- color: #fff;
- background-color: #bd2130;
- border-color: #b21f2d;
-}
-
-.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
-.show > .btn-danger.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
-}
-
-.btn-light {
- color: #212529;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
-}
-
-.btn-light:hover {
- color: #212529;
- background-color: #e2e6ea;
- border-color: #dae0e5;
-}
-
-.btn-light:focus, .btn-light.focus {
- box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
-}
-
-.btn-light.disabled, .btn-light:disabled {
- color: #212529;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
-}
-
-.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,
-.show > .btn-light.dropdown-toggle {
- color: #212529;
- background-color: #dae0e5;
- border-color: #d3d9df;
-}
-
-.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
-.show > .btn-light.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
-}
-
-.btn-dark {
- color: #fff;
- background-color: #343a40;
- border-color: #343a40;
-}
-
-.btn-dark:hover {
- color: #fff;
- background-color: #23272b;
- border-color: #1d2124;
-}
-
-.btn-dark:focus, .btn-dark.focus {
- box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
-}
-
-.btn-dark.disabled, .btn-dark:disabled {
- color: #fff;
- background-color: #343a40;
- border-color: #343a40;
-}
-
-.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,
-.show > .btn-dark.dropdown-toggle {
- color: #fff;
- background-color: #1d2124;
- border-color: #171a1d;
-}
-
-.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
-.show > .btn-dark.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
-}
-
-.btn-outline-primary {
- color: #007bff;
- background-color: transparent;
- background-image: none;
- border-color: #007bff;
-}
-
-.btn-outline-primary:hover {
- color: #fff;
- background-color: #007bff;
- border-color: #007bff;
-}
-
-.btn-outline-primary:focus, .btn-outline-primary.focus {
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
-}
-
-.btn-outline-primary.disabled, .btn-outline-primary:disabled {
- color: #007bff;
- background-color: transparent;
-}
-
-.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
-.show > .btn-outline-primary.dropdown-toggle {
- color: #fff;
- background-color: #007bff;
- border-color: #007bff;
-}
-
-.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-primary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
-}
-
-.btn-outline-secondary {
- color: #6c757d;
- background-color: transparent;
- background-image: none;
- border-color: #6c757d;
-}
-
-.btn-outline-secondary:hover {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
-}
-
-.btn-outline-secondary:focus, .btn-outline-secondary.focus {
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
-}
-
-.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
- color: #6c757d;
- background-color: transparent;
-}
-
-.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,
-.show > .btn-outline-secondary.dropdown-toggle {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
-}
-
-.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-secondary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
-}
-
-.btn-outline-success {
- color: #28a745;
- background-color: transparent;
- background-image: none;
- border-color: #28a745;
-}
-
-.btn-outline-success:hover {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745;
-}
-
-.btn-outline-success:focus, .btn-outline-success.focus {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
-}
-
-.btn-outline-success.disabled, .btn-outline-success:disabled {
- color: #28a745;
- background-color: transparent;
-}
-
-.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
-.show > .btn-outline-success.dropdown-toggle {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745;
-}
-
-.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-success.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
-}
-
-.btn-outline-info {
- color: #17a2b8;
- background-color: transparent;
- background-image: none;
- border-color: #17a2b8;
-}
-
-.btn-outline-info:hover {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8;
-}
-
-.btn-outline-info:focus, .btn-outline-info.focus {
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
-}
-
-.btn-outline-info.disabled, .btn-outline-info:disabled {
- color: #17a2b8;
- background-color: transparent;
-}
-
-.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
-.show > .btn-outline-info.dropdown-toggle {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8;
-}
-
-.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-info.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
-}
-
-.btn-outline-warning {
- color: #ffc107;
- background-color: transparent;
- background-image: none;
- border-color: #ffc107;
-}
-
-.btn-outline-warning:hover {
- color: #212529;
- background-color: #ffc107;
- border-color: #ffc107;
-}
-
-.btn-outline-warning:focus, .btn-outline-warning.focus {
- box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
-}
-
-.btn-outline-warning.disabled, .btn-outline-warning:disabled {
- color: #ffc107;
- background-color: transparent;
-}
-
-.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
-.show > .btn-outline-warning.dropdown-toggle {
- color: #212529;
- background-color: #ffc107;
- border-color: #ffc107;
-}
-
-.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-warning.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
-}
-
-.btn-outline-danger {
- color: #dc3545;
- background-color: transparent;
- background-image: none;
- border-color: #dc3545;
-}
-
-.btn-outline-danger:hover {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
-}
-
-.btn-outline-danger:focus, .btn-outline-danger.focus {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
-}
-
-.btn-outline-danger.disabled, .btn-outline-danger:disabled {
- color: #dc3545;
- background-color: transparent;
-}
-
-.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
-.show > .btn-outline-danger.dropdown-toggle {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
-}
-
-.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-danger.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
-}
-
-.btn-outline-light {
- color: #f8f9fa;
- background-color: transparent;
- background-image: none;
- border-color: #f8f9fa;
-}
-
-.btn-outline-light:hover {
- color: #212529;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
-}
-
-.btn-outline-light:focus, .btn-outline-light.focus {
- box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
-}
-
-.btn-outline-light.disabled, .btn-outline-light:disabled {
- color: #f8f9fa;
- background-color: transparent;
-}
-
-.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,
-.show > .btn-outline-light.dropdown-toggle {
- color: #212529;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
-}
-
-.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-light.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
-}
-
-.btn-outline-dark {
- color: #343a40;
- background-color: transparent;
- background-image: none;
- border-color: #343a40;
-}
-
-.btn-outline-dark:hover {
- color: #fff;
- background-color: #343a40;
- border-color: #343a40;
-}
-
-.btn-outline-dark:focus, .btn-outline-dark.focus {
- box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
-}
-
-.btn-outline-dark.disabled, .btn-outline-dark:disabled {
- color: #343a40;
- background-color: transparent;
-}
-
-.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,
-.show > .btn-outline-dark.dropdown-toggle {
- color: #fff;
- background-color: #343a40;
- border-color: #343a40;
-}
-
-.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
-.show > .btn-outline-dark.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
-}
-
-.btn-link {
- font-weight: 400;
- color: #007bff;
- background-color: transparent;
-}
-
-.btn-link:hover {
- color: #0056b3;
- text-decoration: underline;
- background-color: transparent;
- border-color: transparent;
-}
-
-.btn-link:focus, .btn-link.focus {
- text-decoration: underline;
- border-color: transparent;
- box-shadow: none;
-}
-
-.btn-link:disabled, .btn-link.disabled {
- color: #6c757d;
- pointer-events: none;
-}
-
-.btn-lg, .btn-group-lg > .btn {
- padding: 0.5rem 1rem;
- font-size: 1.25rem;
- line-height: 1.5;
- border-radius: 0.3rem;
-}
-
-.btn-sm, .btn-group-sm > .btn {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5;
- border-radius: 0.2rem;
-}
-
-.btn-block {
- display: block;
- width: 100%;
-}
-
-.btn-block + .btn-block {
- margin-top: 0.5rem;
-}
-
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
- width: 100%;
-}
-
-.fade {
- transition: opacity 0.15s linear;
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .fade {
- transition: none;
- }
-}
-
-.fade:not(.show) {
- opacity: 0;
-}
-
-.collapse:not(.show) {
- display: none;
-}
-
-.collapsing {
- position: relative;
- height: 0;
- overflow: hidden;
- transition: height 0.35s ease;
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .collapsing {
- transition: none;
- }
-}
-
-.dropup,
-.dropright,
-.dropdown,
-.dropleft {
- position: relative;
-}
-
-.dropdown-toggle::after {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 0.255em;
- vertical-align: 0.255em;
- content: "";
- border-top: 0.3em solid;
- border-right: 0.3em solid transparent;
- border-bottom: 0;
- border-left: 0.3em solid transparent;
-}
-
-.dropdown-toggle:empty::after {
- margin-left: 0;
-}
-
-.dropdown-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 1000;
- display: none;
- float: left;
- min-width: 10rem;
- padding: 0.5rem 0;
- margin: 0.125rem 0 0;
- font-size: 1rem;
- color: #212529;
- text-align: left;
- list-style: none;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 0.25rem;
-}
-
-.dropdown-menu-right {
- right: 0;
- left: auto;
-}
-
-.dropup .dropdown-menu {
- top: auto;
- bottom: 100%;
- margin-top: 0;
- margin-bottom: 0.125rem;
-}
-
-.dropup .dropdown-toggle::after {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 0.255em;
- vertical-align: 0.255em;
- content: "";
- border-top: 0;
- border-right: 0.3em solid transparent;
- border-bottom: 0.3em solid;
- border-left: 0.3em solid transparent;
-}
-
-.dropup .dropdown-toggle:empty::after {
- margin-left: 0;
-}
-
-.dropright .dropdown-menu {
- top: 0;
- right: auto;
- left: 100%;
- margin-top: 0;
- margin-left: 0.125rem;
-}
-
-.dropright .dropdown-toggle::after {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 0.255em;
- vertical-align: 0.255em;
- content: "";
- border-top: 0.3em solid transparent;
- border-right: 0;
- border-bottom: 0.3em solid transparent;
- border-left: 0.3em solid;
-}
-
-.dropright .dropdown-toggle:empty::after {
- margin-left: 0;
-}
-
-.dropright .dropdown-toggle::after {
- vertical-align: 0;
-}
-
-.dropleft .dropdown-menu {
- top: 0;
- right: 100%;
- left: auto;
- margin-top: 0;
- margin-right: 0.125rem;
-}
-
-.dropleft .dropdown-toggle::after {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 0.255em;
- vertical-align: 0.255em;
- content: "";
-}
-
-.dropleft .dropdown-toggle::after {
- display: none;
-}
-
-.dropleft .dropdown-toggle::before {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 0.255em;
- vertical-align: 0.255em;
- content: "";
- border-top: 0.3em solid transparent;
- border-right: 0.3em solid;
- border-bottom: 0.3em solid transparent;
-}
-
-.dropleft .dropdown-toggle:empty::after {
- margin-left: 0;
-}
-
-.dropleft .dropdown-toggle::before {
- vertical-align: 0;
-}
-
-.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
- right: auto;
- bottom: auto;
-}
-
-.dropdown-divider {
- height: 0;
- margin: 0.5rem 0;
- overflow: hidden;
- border-top: 1px solid #e9ecef;
-}
-
-.dropdown-item {
- display: block;
- width: 100%;
- padding: 0.25rem 1.5rem;
- clear: both;
- font-weight: 400;
- color: #212529;
- text-align: inherit;
- white-space: nowrap;
- background-color: transparent;
- border: 0;
-}
-
-.dropdown-item:hover, .dropdown-item:focus {
- color: #16181b;
- text-decoration: none;
- background-color: #f8f9fa;
-}
-
-.dropdown-item.active, .dropdown-item:active {
- color: #fff;
- text-decoration: none;
- background-color: #007bff;
-}
-
-.dropdown-item.disabled, .dropdown-item:disabled {
- color: #6c757d;
- background-color: transparent;
-}
-
-.dropdown-menu.show {
- display: block;
-}
-
-.dropdown-header {
- display: block;
- padding: 0.5rem 1.5rem;
- margin-bottom: 0;
- font-size: 0.875rem;
- color: #6c757d;
- white-space: nowrap;
-}
-
-.dropdown-item-text {
- display: block;
- padding: 0.25rem 1.5rem;
- color: #212529;
-}
-
-.btn-group,
-.btn-group-vertical {
- position: relative;
- display: -ms-inline-flexbox;
- display: inline-flex;
- vertical-align: middle;
-}
-
-.btn-group > .btn,
-.btn-group-vertical > .btn {
- position: relative;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
-}
-
-.btn-group > .btn:hover,
-.btn-group-vertical > .btn:hover {
- z-index: 1;
-}
-
-.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
-.btn-group-vertical > .btn:focus,
-.btn-group-vertical > .btn:active,
-.btn-group-vertical > .btn.active {
- z-index: 1;
-}
-
-.btn-group .btn + .btn,
-.btn-group .btn + .btn-group,
-.btn-group .btn-group + .btn,
-.btn-group .btn-group + .btn-group,
-.btn-group-vertical .btn + .btn,
-.btn-group-vertical .btn + .btn-group,
-.btn-group-vertical .btn-group + .btn,
-.btn-group-vertical .btn-group + .btn-group {
- margin-left: -1px;
-}
-
-.btn-toolbar {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-pack: start;
- justify-content: flex-start;
-}
-
-.btn-toolbar .input-group {
- width: auto;
-}
-
-.btn-group > .btn:first-child {
- margin-left: 0;
-}
-
-.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
-.btn-group > .btn-group:not(:last-child) > .btn {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.btn-group > .btn:not(:first-child),
-.btn-group > .btn-group:not(:first-child) > .btn {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.dropdown-toggle-split {
- padding-right: 0.5625rem;
- padding-left: 0.5625rem;
-}
-
-.dropdown-toggle-split::after,
-.dropup .dropdown-toggle-split::after,
-.dropright .dropdown-toggle-split::after {
- margin-left: 0;
-}
-
-.dropleft .dropdown-toggle-split::before {
- margin-right: 0;
-}
-
-.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
- padding-right: 0.375rem;
- padding-left: 0.375rem;
-}
-
-.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
- padding-right: 0.75rem;
- padding-left: 0.75rem;
-}
-
-.btn-group-vertical {
- -ms-flex-direction: column;
- flex-direction: column;
- -ms-flex-align: start;
- align-items: flex-start;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.btn-group-vertical .btn,
-.btn-group-vertical .btn-group {
- width: 100%;
-}
-
-.btn-group-vertical > .btn + .btn,
-.btn-group-vertical > .btn + .btn-group,
-.btn-group-vertical > .btn-group + .btn,
-.btn-group-vertical > .btn-group + .btn-group {
- margin-top: -1px;
- margin-left: 0;
-}
-
-.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
-.btn-group-vertical > .btn-group:not(:last-child) > .btn {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.btn-group-vertical > .btn:not(:first-child),
-.btn-group-vertical > .btn-group:not(:first-child) > .btn {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-
-.btn-group-toggle > .btn,
-.btn-group-toggle > .btn-group > .btn {
- margin-bottom: 0;
-}
-
-.btn-group-toggle > .btn input[type="radio"],
-.btn-group-toggle > .btn input[type="checkbox"],
-.btn-group-toggle > .btn-group > .btn input[type="radio"],
-.btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
- position: absolute;
- clip: rect(0, 0, 0, 0);
- pointer-events: none;
-}
-
-.input-group {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-align: stretch;
- align-items: stretch;
- width: 100%;
-}
-
-.input-group > .form-control,
-.input-group > .custom-select,
-.input-group > .custom-file {
- position: relative;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- width: 1%;
- margin-bottom: 0;
-}
-
-.input-group > .form-control:focus,
-.input-group > .custom-select:focus,
-.input-group > .custom-file:focus {
- z-index: 3;
-}
-
-.input-group > .form-control + .form-control,
-.input-group > .form-control + .custom-select,
-.input-group > .form-control + .custom-file,
-.input-group > .custom-select + .form-control,
-.input-group > .custom-select + .custom-select,
-.input-group > .custom-select + .custom-file,
-.input-group > .custom-file + .form-control,
-.input-group > .custom-file + .custom-select,
-.input-group > .custom-file + .custom-file {
- margin-left: -1px;
-}
-
-.input-group > .form-control:not(:last-child),
-.input-group > .custom-select:not(:last-child) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.input-group > .form-control:not(:first-child),
-.input-group > .custom-select:not(:first-child) {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.input-group > .custom-file {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.input-group > .custom-file:not(:last-child) .custom-file-label,
-.input-group > .custom-file:not(:last-child) .custom-file-label::after {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.input-group > .custom-file:not(:first-child) .custom-file-label {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.input-group-prepend,
-.input-group-append {
- display: -ms-flexbox;
- display: flex;
-}
-
-.input-group-prepend .btn,
-.input-group-append .btn {
- position: relative;
- z-index: 2;
-}
-
-.input-group-prepend .btn + .btn,
-.input-group-prepend .btn + .input-group-text,
-.input-group-prepend .input-group-text + .input-group-text,
-.input-group-prepend .input-group-text + .btn,
-.input-group-append .btn + .btn,
-.input-group-append .btn + .input-group-text,
-.input-group-append .input-group-text + .input-group-text,
-.input-group-append .input-group-text + .btn {
- margin-left: -1px;
-}
-
-.input-group-prepend {
- margin-right: -1px;
-}
-
-.input-group-append {
- margin-left: -1px;
-}
-
-.input-group-text {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- padding: 0.375rem 0.75rem;
- margin-bottom: 0;
- font-size: 1rem;
- font-weight: 400;
- line-height: 1.5;
- color: #495057;
- text-align: center;
- white-space: nowrap;
- background-color: #e9ecef;
- border: 1px solid #ced4da;
- border-radius: 0.25rem;
-}
-
-.input-group-text input[type="radio"],
-.input-group-text input[type="checkbox"] {
- margin-top: 0;
-}
-
-.input-group > .input-group-prepend > .btn,
-.input-group > .input-group-prepend > .input-group-text,
-.input-group > .input-group-append:not(:last-child) > .btn,
-.input-group > .input-group-append:not(:last-child) > .input-group-text,
-.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.input-group > .input-group-append > .btn,
-.input-group > .input-group-append > .input-group-text,
-.input-group > .input-group-prepend:not(:first-child) > .btn,
-.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
-.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
-.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.custom-control {
- position: relative;
- display: block;
- min-height: 1.5rem;
- padding-left: 1.5rem;
-}
-
-.custom-control-inline {
- display: -ms-inline-flexbox;
- display: inline-flex;
- margin-right: 1rem;
-}
-
-.custom-control-input {
- position: absolute;
- z-index: -1;
- opacity: 0;
-}
-
-.custom-control-input:checked ~ .custom-control-label::before {
- color: #fff;
- background-color: #007bff;
-}
-
-.custom-control-input:focus ~ .custom-control-label::before {
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.custom-control-input:active ~ .custom-control-label::before {
- color: #fff;
- background-color: #b3d7ff;
-}
-
-.custom-control-input:disabled ~ .custom-control-label {
- color: #6c757d;
-}
-
-.custom-control-input:disabled ~ .custom-control-label::before {
- background-color: #e9ecef;
-}
-
-.custom-control-label {
- position: relative;
- margin-bottom: 0;
-}
-
-.custom-control-label::before {
- position: absolute;
- top: 0.25rem;
- left: -1.5rem;
- display: block;
- width: 1rem;
- height: 1rem;
- pointer-events: none;
- content: "";
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- background-color: #dee2e6;
-}
-
-.custom-control-label::after {
- position: absolute;
- top: 0.25rem;
- left: -1.5rem;
- display: block;
- width: 1rem;
- height: 1rem;
- content: "";
- background-repeat: no-repeat;
- background-position: center center;
- background-size: 50% 50%;
-}
-
-.custom-checkbox .custom-control-label::before {
- border-radius: 0.25rem;
-}
-
-.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
- background-color: #007bff;
-}
-
-.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
-}
-
-.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
- background-color: #007bff;
-}
-
-.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");
-}
-
-.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
- background-color: rgba(0, 123, 255, 0.5);
-}
-
-.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
- background-color: rgba(0, 123, 255, 0.5);
-}
-
-.custom-radio .custom-control-label::before {
- border-radius: 50%;
-}
-
-.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
- background-color: #007bff;
-}
-
-.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
-}
-
-.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
- background-color: rgba(0, 123, 255, 0.5);
-}
-
-.custom-select {
- display: inline-block;
- width: 100%;
- height: calc(2.25rem + 2px);
- padding: 0.375rem 1.75rem 0.375rem 0.75rem;
- line-height: 1.5;
- color: #495057;
- vertical-align: middle;
- background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
- background-size: 8px 10px;
- border: 1px solid #ced4da;
- border-radius: 0.25rem;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
-
-.custom-select:focus {
- border-color: #80bdff;
- outline: 0;
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);
-}
-
-.custom-select:focus::-ms-value {
- color: #495057;
- background-color: #fff;
-}
-
-.custom-select[multiple], .custom-select[size]:not([size="1"]) {
- height: auto;
- padding-right: 0.75rem;
- background-image: none;
-}
-
-.custom-select:disabled {
- color: #6c757d;
- background-color: #e9ecef;
-}
-
-.custom-select::-ms-expand {
- opacity: 0;
-}
-
-.custom-select-sm {
- height: calc(1.8125rem + 2px);
- padding-top: 0.375rem;
- padding-bottom: 0.375rem;
- font-size: 75%;
-}
-
-.custom-select-lg {
- height: calc(2.875rem + 2px);
- padding-top: 0.375rem;
- padding-bottom: 0.375rem;
- font-size: 125%;
-}
-
-.custom-file {
- position: relative;
- display: inline-block;
- width: 100%;
- height: calc(2.25rem + 2px);
- margin-bottom: 0;
-}
-
-.custom-file-input {
- position: relative;
- z-index: 2;
- width: 100%;
- height: calc(2.25rem + 2px);
- margin: 0;
- opacity: 0;
-}
-
-.custom-file-input:focus ~ .custom-file-label {
- border-color: #80bdff;
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.custom-file-input:focus ~ .custom-file-label::after {
- border-color: #80bdff;
-}
-
-.custom-file-input:lang(en) ~ .custom-file-label::after {
- content: "Browse";
-}
-
-.custom-file-label {
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- z-index: 1;
- height: calc(2.25rem + 2px);
- padding: 0.375rem 0.75rem;
- line-height: 1.5;
- color: #495057;
- background-color: #fff;
- border: 1px solid #ced4da;
- border-radius: 0.25rem;
-}
-
-.custom-file-label::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- z-index: 3;
- display: block;
- height: 2.25rem;
- padding: 0.375rem 0.75rem;
- line-height: 1.5;
- color: #495057;
- content: "Browse";
- background-color: #e9ecef;
- border-left: 1px solid #ced4da;
- border-radius: 0 0.25rem 0.25rem 0;
-}
-
-.custom-range {
- width: 100%;
- padding-left: 0;
- background-color: transparent;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
-
-.custom-range:focus {
- outline: none;
-}
-
-.custom-range::-moz-focus-outer {
- border: 0;
-}
-
-.custom-range::-webkit-slider-thumb {
- width: 1rem;
- height: 1rem;
- margin-top: -0.25rem;
- background-color: #007bff;
- border: 0;
- border-radius: 1rem;
- -webkit-appearance: none;
- appearance: none;
-}
-
-.custom-range::-webkit-slider-thumb:focus {
- outline: none;
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.custom-range::-webkit-slider-thumb:active {
- background-color: #b3d7ff;
-}
-
-.custom-range::-webkit-slider-runnable-track {
- width: 100%;
- height: 0.5rem;
- color: transparent;
- cursor: pointer;
- background-color: #dee2e6;
- border-color: transparent;
- border-radius: 1rem;
-}
-
-.custom-range::-moz-range-thumb {
- width: 1rem;
- height: 1rem;
- background-color: #007bff;
- border: 0;
- border-radius: 1rem;
- -moz-appearance: none;
- appearance: none;
-}
-
-.custom-range::-moz-range-thumb:focus {
- outline: none;
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.custom-range::-moz-range-thumb:active {
- background-color: #b3d7ff;
-}
-
-.custom-range::-moz-range-track {
- width: 100%;
- height: 0.5rem;
- color: transparent;
- cursor: pointer;
- background-color: #dee2e6;
- border-color: transparent;
- border-radius: 1rem;
-}
-
-.custom-range::-ms-thumb {
- width: 1rem;
- height: 1rem;
- background-color: #007bff;
- border: 0;
- border-radius: 1rem;
- appearance: none;
-}
-
-.custom-range::-ms-thumb:focus {
- outline: none;
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.custom-range::-ms-thumb:active {
- background-color: #b3d7ff;
-}
-
-.custom-range::-ms-track {
- width: 100%;
- height: 0.5rem;
- color: transparent;
- cursor: pointer;
- background-color: transparent;
- border-color: transparent;
- border-width: 0.5rem;
-}
-
-.custom-range::-ms-fill-lower {
- background-color: #dee2e6;
- border-radius: 1rem;
-}
-
-.custom-range::-ms-fill-upper {
- margin-right: 15px;
- background-color: #dee2e6;
- border-radius: 1rem;
-}
-
-.nav {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- padding-left: 0;
- margin-bottom: 0;
- list-style: none;
-}
-
-.nav-link {
- display: block;
- padding: 0.5rem 1rem;
-}
-
-.nav-link:hover, .nav-link:focus {
- text-decoration: none;
-}
-
-.nav-link.disabled {
- color: #6c757d;
-}
-
-.nav-tabs {
- border-bottom: 1px solid #dee2e6;
-}
-
-.nav-tabs .nav-item {
- margin-bottom: -1px;
-}
-
-.nav-tabs .nav-link {
- border: 1px solid transparent;
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem;
-}
-
-.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
- border-color: #e9ecef #e9ecef #dee2e6;
-}
-
-.nav-tabs .nav-link.disabled {
- color: #6c757d;
- background-color: transparent;
- border-color: transparent;
-}
-
-.nav-tabs .nav-link.active,
-.nav-tabs .nav-item.show .nav-link {
- color: #495057;
- background-color: #fff;
- border-color: #dee2e6 #dee2e6 #fff;
-}
-
-.nav-tabs .dropdown-menu {
- margin-top: -1px;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-
-.nav-pills .nav-link {
- border-radius: 0.25rem;
-}
-
-.nav-pills .nav-link.active,
-.nav-pills .show > .nav-link {
- color: #fff;
- background-color: #007bff;
-}
-
-.nav-fill .nav-item {
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- text-align: center;
-}
-
-.nav-justified .nav-item {
- -ms-flex-preferred-size: 0;
- flex-basis: 0;
- -ms-flex-positive: 1;
- flex-grow: 1;
- text-align: center;
-}
-
-.tab-content > .tab-pane {
- display: none;
-}
-
-.tab-content > .active {
- display: block;
-}
-
-.navbar {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: justify;
- justify-content: space-between;
- padding: 0.5rem 1rem;
-}
-
-.navbar > .container,
-.navbar > .container-fluid {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: justify;
- justify-content: space-between;
-}
-
-.navbar-brand {
- display: inline-block;
- padding-top: 0.3125rem;
- padding-bottom: 0.3125rem;
- margin-right: 1rem;
- font-size: 1.25rem;
- line-height: inherit;
- white-space: nowrap;
-}
-
-.navbar-brand:hover, .navbar-brand:focus {
- text-decoration: none;
-}
-
-.navbar-nav {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
- padding-left: 0;
- margin-bottom: 0;
- list-style: none;
-}
-
-.navbar-nav .nav-link {
- padding-right: 0;
- padding-left: 0;
-}
-
-.navbar-nav .dropdown-menu {
- position: static;
- float: none;
-}
-
-.navbar-text {
- display: inline-block;
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
-.navbar-collapse {
- -ms-flex-preferred-size: 100%;
- flex-basis: 100%;
- -ms-flex-positive: 1;
- flex-grow: 1;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.navbar-toggler {
- padding: 0.25rem 0.75rem;
- font-size: 1.25rem;
- line-height: 1;
- background-color: transparent;
- border: 1px solid transparent;
- border-radius: 0.25rem;
-}
-
-.navbar-toggler:hover, .navbar-toggler:focus {
- text-decoration: none;
-}
-
-.navbar-toggler:not(:disabled):not(.disabled) {
- cursor: pointer;
-}
-
-.navbar-toggler-icon {
- display: inline-block;
- width: 1.5em;
- height: 1.5em;
- vertical-align: middle;
- content: "";
- background: no-repeat center center;
- background-size: 100% 100%;
-}
-
-@media (max-width: 575.98px) {
- .navbar-expand-sm > .container,
- .navbar-expand-sm > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
-}
-
-@media (min-width: 576px) {
- .navbar-expand-sm {
- -ms-flex-flow: row nowrap;
- flex-flow: row nowrap;
- -ms-flex-pack: start;
- justify-content: flex-start;
- }
- .navbar-expand-sm .navbar-nav {
- -ms-flex-direction: row;
- flex-direction: row;
- }
- .navbar-expand-sm .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-sm .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-sm > .container,
- .navbar-expand-sm > .container-fluid {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- }
- .navbar-expand-sm .navbar-collapse {
- display: -ms-flexbox !important;
- display: flex !important;
- -ms-flex-preferred-size: auto;
- flex-basis: auto;
- }
- .navbar-expand-sm .navbar-toggler {
- display: none;
- }
-}
-
-@media (max-width: 767.98px) {
- .navbar-expand-md > .container,
- .navbar-expand-md > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
-}
-
-@media (min-width: 768px) {
- .navbar-expand-md {
- -ms-flex-flow: row nowrap;
- flex-flow: row nowrap;
- -ms-flex-pack: start;
- justify-content: flex-start;
- }
- .navbar-expand-md .navbar-nav {
- -ms-flex-direction: row;
- flex-direction: row;
- }
- .navbar-expand-md .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-md .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-md > .container,
- .navbar-expand-md > .container-fluid {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- }
- .navbar-expand-md .navbar-collapse {
- display: -ms-flexbox !important;
- display: flex !important;
- -ms-flex-preferred-size: auto;
- flex-basis: auto;
- }
- .navbar-expand-md .navbar-toggler {
- display: none;
- }
-}
-
-@media (max-width: 991.98px) {
- .navbar-expand-lg > .container,
- .navbar-expand-lg > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
-}
-
-@media (min-width: 992px) {
- .navbar-expand-lg {
- -ms-flex-flow: row nowrap;
- flex-flow: row nowrap;
- -ms-flex-pack: start;
- justify-content: flex-start;
- }
- .navbar-expand-lg .navbar-nav {
- -ms-flex-direction: row;
- flex-direction: row;
- }
- .navbar-expand-lg .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-lg .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-lg > .container,
- .navbar-expand-lg > .container-fluid {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- }
- .navbar-expand-lg .navbar-collapse {
- display: -ms-flexbox !important;
- display: flex !important;
- -ms-flex-preferred-size: auto;
- flex-basis: auto;
- }
- .navbar-expand-lg .navbar-toggler {
- display: none;
- }
-}
-
-@media (max-width: 1199.98px) {
- .navbar-expand-xl > .container,
- .navbar-expand-xl > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
-}
-
-@media (min-width: 1200px) {
- .navbar-expand-xl {
- -ms-flex-flow: row nowrap;
- flex-flow: row nowrap;
- -ms-flex-pack: start;
- justify-content: flex-start;
- }
- .navbar-expand-xl .navbar-nav {
- -ms-flex-direction: row;
- flex-direction: row;
- }
- .navbar-expand-xl .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-xl .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-xl > .container,
- .navbar-expand-xl > .container-fluid {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- }
- .navbar-expand-xl .navbar-collapse {
- display: -ms-flexbox !important;
- display: flex !important;
- -ms-flex-preferred-size: auto;
- flex-basis: auto;
- }
- .navbar-expand-xl .navbar-toggler {
- display: none;
- }
-}
-
-.navbar-expand {
- -ms-flex-flow: row nowrap;
- flex-flow: row nowrap;
- -ms-flex-pack: start;
- justify-content: flex-start;
-}
-
-.navbar-expand > .container,
-.navbar-expand > .container-fluid {
- padding-right: 0;
- padding-left: 0;
-}
-
-.navbar-expand .navbar-nav {
- -ms-flex-direction: row;
- flex-direction: row;
-}
-
-.navbar-expand .navbar-nav .dropdown-menu {
- position: absolute;
-}
-
-.navbar-expand .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
-}
-
-.navbar-expand > .container,
-.navbar-expand > .container-fluid {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
-}
-
-.navbar-expand .navbar-collapse {
- display: -ms-flexbox !important;
- display: flex !important;
- -ms-flex-preferred-size: auto;
- flex-basis: auto;
-}
-
-.navbar-expand .navbar-toggler {
- display: none;
-}
-
-.navbar-light .navbar-brand {
- color: rgba(0, 0, 0, 0.9);
-}
-
-.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
- color: rgba(0, 0, 0, 0.9);
-}
-
-.navbar-light .navbar-nav .nav-link {
- color: rgba(0, 0, 0, 0.5);
-}
-
-.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
- color: rgba(0, 0, 0, 0.7);
-}
-
-.navbar-light .navbar-nav .nav-link.disabled {
- color: rgba(0, 0, 0, 0.3);
-}
-
-.navbar-light .navbar-nav .show > .nav-link,
-.navbar-light .navbar-nav .active > .nav-link,
-.navbar-light .navbar-nav .nav-link.show,
-.navbar-light .navbar-nav .nav-link.active {
- color: rgba(0, 0, 0, 0.9);
-}
-
-.navbar-light .navbar-toggler {
- color: rgba(0, 0, 0, 0.5);
- border-color: rgba(0, 0, 0, 0.1);
-}
-
-.navbar-light .navbar-toggler-icon {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
-}
-
-.navbar-light .navbar-text {
- color: rgba(0, 0, 0, 0.5);
-}
-
-.navbar-light .navbar-text a {
- color: rgba(0, 0, 0, 0.9);
-}
-
-.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
- color: rgba(0, 0, 0, 0.9);
-}
-
-.navbar-dark .navbar-brand {
- color: #fff;
-}
-
-.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
- color: #fff;
-}
-
-.navbar-dark .navbar-nav .nav-link {
- color: rgba(255, 255, 255, 0.5);
-}
-
-.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
- color: rgba(255, 255, 255, 0.75);
-}
-
-.navbar-dark .navbar-nav .nav-link.disabled {
- color: rgba(255, 255, 255, 0.25);
-}
-
-.navbar-dark .navbar-nav .show > .nav-link,
-.navbar-dark .navbar-nav .active > .nav-link,
-.navbar-dark .navbar-nav .nav-link.show,
-.navbar-dark .navbar-nav .nav-link.active {
- color: #fff;
-}
-
-.navbar-dark .navbar-toggler {
- color: rgba(255, 255, 255, 0.5);
- border-color: rgba(255, 255, 255, 0.1);
-}
-
-.navbar-dark .navbar-toggler-icon {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
-}
-
-.navbar-dark .navbar-text {
- color: rgba(255, 255, 255, 0.5);
-}
-
-.navbar-dark .navbar-text a {
- color: #fff;
-}
-
-.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
- color: #fff;
-}
-
-.card {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
- min-width: 0;
- word-wrap: break-word;
- background-color: #fff;
- background-clip: border-box;
- border: 1px solid rgba(0, 0, 0, 0.125);
- border-radius: 0.25rem;
-}
-
-.card > hr {
- margin-right: 0;
- margin-left: 0;
-}
-
-.card > .list-group:first-child .list-group-item:first-child {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem;
-}
-
-.card > .list-group:last-child .list-group-item:last-child {
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem;
-}
-
-.card-body {
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- padding: 1.25rem;
-}
-
-.card-title {
- margin-bottom: 0.75rem;
-}
-
-.card-subtitle {
- margin-top: -0.375rem;
- margin-bottom: 0;
-}
-
-.card-text:last-child {
- margin-bottom: 0;
-}
-
-.card-link:hover {
- text-decoration: none;
-}
-
-.card-link + .card-link {
- margin-left: 1.25rem;
-}
-
-.card-header {
- padding: 0.75rem 1.25rem;
- margin-bottom: 0;
- background-color: rgba(0, 0, 0, 0.03);
- border-bottom: 1px solid rgba(0, 0, 0, 0.125);
-}
-
-.card-header:first-child {
- border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
-}
-
-.card-header + .list-group .list-group-item:first-child {
- border-top: 0;
-}
-
-.card-footer {
- padding: 0.75rem 1.25rem;
- background-color: rgba(0, 0, 0, 0.03);
- border-top: 1px solid rgba(0, 0, 0, 0.125);
-}
-
-.card-footer:last-child {
- border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
-}
-
-.card-header-tabs {
- margin-right: -0.625rem;
- margin-bottom: -0.75rem;
- margin-left: -0.625rem;
- border-bottom: 0;
-}
-
-.card-header-pills {
- margin-right: -0.625rem;
- margin-left: -0.625rem;
-}
-
-.card-img-overlay {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- padding: 1.25rem;
-}
-
-.card-img {
- width: 100%;
- border-radius: calc(0.25rem - 1px);
-}
-
-.card-img-top {
- width: 100%;
- border-top-left-radius: calc(0.25rem - 1px);
- border-top-right-radius: calc(0.25rem - 1px);
-}
-
-.card-img-bottom {
- width: 100%;
- border-bottom-right-radius: calc(0.25rem - 1px);
- border-bottom-left-radius: calc(0.25rem - 1px);
-}
-
-.card-deck {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.card-deck .card {
- margin-bottom: 15px;
-}
-
-@media (min-width: 576px) {
- .card-deck {
- -ms-flex-flow: row wrap;
- flex-flow: row wrap;
- margin-right: -15px;
- margin-left: -15px;
- }
- .card-deck .card {
- display: -ms-flexbox;
- display: flex;
- -ms-flex: 1 0 0%;
- flex: 1 0 0%;
- -ms-flex-direction: column;
- flex-direction: column;
- margin-right: 15px;
- margin-bottom: 0;
- margin-left: 15px;
- }
-}
-
-.card-group {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.card-group > .card {
- margin-bottom: 15px;
-}
-
-@media (min-width: 576px) {
- .card-group {
- -ms-flex-flow: row wrap;
- flex-flow: row wrap;
- }
- .card-group > .card {
- -ms-flex: 1 0 0%;
- flex: 1 0 0%;
- margin-bottom: 0;
- }
- .card-group > .card + .card {
- margin-left: 0;
- border-left: 0;
- }
- .card-group > .card:first-child {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- }
- .card-group > .card:first-child .card-img-top,
- .card-group > .card:first-child .card-header {
- border-top-right-radius: 0;
- }
- .card-group > .card:first-child .card-img-bottom,
- .card-group > .card:first-child .card-footer {
- border-bottom-right-radius: 0;
- }
- .card-group > .card:last-child {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
- }
- .card-group > .card:last-child .card-img-top,
- .card-group > .card:last-child .card-header {
- border-top-left-radius: 0;
- }
- .card-group > .card:last-child .card-img-bottom,
- .card-group > .card:last-child .card-footer {
- border-bottom-left-radius: 0;
- }
- .card-group > .card:only-child {
- border-radius: 0.25rem;
- }
- .card-group > .card:only-child .card-img-top,
- .card-group > .card:only-child .card-header {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem;
- }
- .card-group > .card:only-child .card-img-bottom,
- .card-group > .card:only-child .card-footer {
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem;
- }
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
- border-radius: 0;
- }
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
- border-radius: 0;
- }
-}
-
-.card-columns .card {
- margin-bottom: 0.75rem;
-}
-
-@media (min-width: 576px) {
- .card-columns {
- -webkit-column-count: 3;
- -moz-column-count: 3;
- column-count: 3;
- -webkit-column-gap: 1.25rem;
- -moz-column-gap: 1.25rem;
- column-gap: 1.25rem;
- orphans: 1;
- widows: 1;
- }
- .card-columns .card {
- display: inline-block;
- width: 100%;
- }
-}
-
-.accordion .card:not(:first-of-type):not(:last-of-type) {
- border-bottom: 0;
- border-radius: 0;
-}
-
-.accordion .card:not(:first-of-type) .card-header:first-child {
- border-radius: 0;
-}
-
-.accordion .card:first-of-type {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.accordion .card:last-of-type {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-
-.breadcrumb {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- padding: 0.75rem 1rem;
- margin-bottom: 1rem;
- list-style: none;
- background-color: #e9ecef;
- border-radius: 0.25rem;
-}
-
-.breadcrumb-item + .breadcrumb-item {
- padding-left: 0.5rem;
-}
-
-.breadcrumb-item + .breadcrumb-item::before {
- display: inline-block;
- padding-right: 0.5rem;
- color: #6c757d;
- content: "/";
-}
-
-.breadcrumb-item + .breadcrumb-item:hover::before {
- text-decoration: underline;
-}
-
-.breadcrumb-item + .breadcrumb-item:hover::before {
- text-decoration: none;
-}
-
-.breadcrumb-item.active {
- color: #6c757d;
-}
-
-.pagination {
- display: -ms-flexbox;
- display: flex;
- padding-left: 0;
- list-style: none;
- border-radius: 0.25rem;
-}
-
-.page-link {
- position: relative;
- display: block;
- padding: 0.5rem 0.75rem;
- margin-left: -1px;
- line-height: 1.25;
- color: #007bff;
- background-color: #fff;
- border: 1px solid #dee2e6;
-}
-
-.page-link:hover {
- z-index: 2;
- color: #0056b3;
- text-decoration: none;
- background-color: #e9ecef;
- border-color: #dee2e6;
-}
-
-.page-link:focus {
- z-index: 2;
- outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
-}
-
-.page-link:not(:disabled):not(.disabled) {
- cursor: pointer;
-}
-
-.page-item:first-child .page-link {
- margin-left: 0;
- border-top-left-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem;
-}
-
-.page-item:last-child .page-link {
- border-top-right-radius: 0.25rem;
- border-bottom-right-radius: 0.25rem;
-}
-
-.page-item.active .page-link {
- z-index: 1;
- color: #fff;
- background-color: #007bff;
- border-color: #007bff;
-}
-
-.page-item.disabled .page-link {
- color: #6c757d;
- pointer-events: none;
- cursor: auto;
- background-color: #fff;
- border-color: #dee2e6;
-}
-
-.pagination-lg .page-link {
- padding: 0.75rem 1.5rem;
- font-size: 1.25rem;
- line-height: 1.5;
-}
-
-.pagination-lg .page-item:first-child .page-link {
- border-top-left-radius: 0.3rem;
- border-bottom-left-radius: 0.3rem;
-}
-
-.pagination-lg .page-item:last-child .page-link {
- border-top-right-radius: 0.3rem;
- border-bottom-right-radius: 0.3rem;
-}
-
-.pagination-sm .page-link {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5;
-}
-
-.pagination-sm .page-item:first-child .page-link {
- border-top-left-radius: 0.2rem;
- border-bottom-left-radius: 0.2rem;
-}
-
-.pagination-sm .page-item:last-child .page-link {
- border-top-right-radius: 0.2rem;
- border-bottom-right-radius: 0.2rem;
-}
-
-.badge {
- display: inline-block;
- padding: 0.25em 0.4em;
- font-size: 75%;
- font-weight: 700;
- line-height: 1;
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- border-radius: 0.25rem;
-}
-
-.badge:empty {
- display: none;
-}
-
-.btn .badge {
- position: relative;
- top: -1px;
-}
-
-.badge-pill {
- padding-right: 0.6em;
- padding-left: 0.6em;
- border-radius: 10rem;
-}
-
-.badge-primary {
- color: #fff;
- background-color: #007bff;
-}
-
-.badge-primary[href]:hover, .badge-primary[href]:focus {
- color: #fff;
- text-decoration: none;
- background-color: #0062cc;
-}
-
-.badge-secondary {
- color: #fff;
- background-color: #6c757d;
-}
-
-.badge-secondary[href]:hover, .badge-secondary[href]:focus {
- color: #fff;
- text-decoration: none;
- background-color: #545b62;
-}
-
-.badge-success {
- color: #fff;
- background-color: #28a745;
-}
-
-.badge-success[href]:hover, .badge-success[href]:focus {
- color: #fff;
- text-decoration: none;
- background-color: #1e7e34;
-}
-
-.badge-info {
- color: #fff;
- background-color: #17a2b8;
-}
-
-.badge-info[href]:hover, .badge-info[href]:focus {
- color: #fff;
- text-decoration: none;
- background-color: #117a8b;
-}
-
-.badge-warning {
- color: #212529;
- background-color: #ffc107;
-}
-
-.badge-warning[href]:hover, .badge-warning[href]:focus {
- color: #212529;
- text-decoration: none;
- background-color: #d39e00;
-}
-
-.badge-danger {
- color: #fff;
- background-color: #dc3545;
-}
-
-.badge-danger[href]:hover, .badge-danger[href]:focus {
- color: #fff;
- text-decoration: none;
- background-color: #bd2130;
-}
-
-.badge-light {
- color: #212529;
- background-color: #f8f9fa;
-}
-
-.badge-light[href]:hover, .badge-light[href]:focus {
- color: #212529;
- text-decoration: none;
- background-color: #dae0e5;
-}
-
-.badge-dark {
- color: #fff;
- background-color: #343a40;
-}
-
-.badge-dark[href]:hover, .badge-dark[href]:focus {
- color: #fff;
- text-decoration: none;
- background-color: #1d2124;
-}
-
-.jumbotron {
- padding: 2rem 1rem;
- margin-bottom: 2rem;
- background-color: #e9ecef;
- border-radius: 0.3rem;
-}
-
-@media (min-width: 576px) {
- .jumbotron {
- padding: 4rem 2rem;
- }
-}
-
-.jumbotron-fluid {
- padding-right: 0;
- padding-left: 0;
- border-radius: 0;
-}
-
-.alert {
- position: relative;
- padding: 0.75rem 1.25rem;
- margin-bottom: 1rem;
- border: 1px solid transparent;
- border-radius: 0.25rem;
-}
-
-.alert-heading {
- color: inherit;
-}
-
-.alert-link {
- font-weight: 700;
-}
-
-.alert-dismissible {
- padding-right: 4rem;
-}
-
-.alert-dismissible .close {
- position: absolute;
- top: 0;
- right: 0;
- padding: 0.75rem 1.25rem;
- color: inherit;
-}
-
-.alert-primary {
- color: #004085;
- background-color: #cce5ff;
- border-color: #b8daff;
-}
-
-.alert-primary hr {
- border-top-color: #9fcdff;
-}
-
-.alert-primary .alert-link {
- color: #002752;
-}
-
-.alert-secondary {
- color: #383d41;
- background-color: #e2e3e5;
- border-color: #d6d8db;
-}
-
-.alert-secondary hr {
- border-top-color: #c8cbcf;
-}
-
-.alert-secondary .alert-link {
- color: #202326;
-}
-
-.alert-success {
- color: #155724;
- background-color: #d4edda;
- border-color: #c3e6cb;
-}
-
-.alert-success hr {
- border-top-color: #b1dfbb;
-}
-
-.alert-success .alert-link {
- color: #0b2e13;
-}
-
-.alert-info {
- color: #0c5460;
- background-color: #d1ecf1;
- border-color: #bee5eb;
-}
-
-.alert-info hr {
- border-top-color: #abdde5;
-}
-
-.alert-info .alert-link {
- color: #062c33;
-}
-
-.alert-warning {
- color: #856404;
- background-color: #fff3cd;
- border-color: #ffeeba;
-}
-
-.alert-warning hr {
- border-top-color: #ffe8a1;
-}
-
-.alert-warning .alert-link {
- color: #533f03;
-}
-
-.alert-danger {
- color: #721c24;
- background-color: #f8d7da;
- border-color: #f5c6cb;
-}
-
-.alert-danger hr {
- border-top-color: #f1b0b7;
-}
-
-.alert-danger .alert-link {
- color: #491217;
-}
-
-.alert-light {
- color: #818182;
- background-color: #fefefe;
- border-color: #fdfdfe;
-}
-
-.alert-light hr {
- border-top-color: #ececf6;
-}
-
-.alert-light .alert-link {
- color: #686868;
-}
-
-.alert-dark {
- color: #1b1e21;
- background-color: #d6d8d9;
- border-color: #c6c8ca;
-}
-
-.alert-dark hr {
- border-top-color: #b9bbbe;
-}
-
-.alert-dark .alert-link {
- color: #040505;
-}
-
-@-webkit-keyframes progress-bar-stripes {
- from {
- background-position: 1rem 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@keyframes progress-bar-stripes {
- from {
- background-position: 1rem 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-.progress {
- display: -ms-flexbox;
- display: flex;
- height: 1rem;
- overflow: hidden;
- font-size: 0.75rem;
- background-color: #e9ecef;
- border-radius: 0.25rem;
-}
-
-.progress-bar {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
- -ms-flex-pack: center;
- justify-content: center;
- color: #fff;
- text-align: center;
- white-space: nowrap;
- background-color: #007bff;
- transition: width 0.6s ease;
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .progress-bar {
- transition: none;
- }
-}
-
-.progress-bar-striped {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-size: 1rem 1rem;
-}
-
-.progress-bar-animated {
- -webkit-animation: progress-bar-stripes 1s linear infinite;
- animation: progress-bar-stripes 1s linear infinite;
-}
-
-.media {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: start;
- align-items: flex-start;
-}
-
-.media-body {
- -ms-flex: 1;
- flex: 1;
-}
-
-.list-group {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
- padding-left: 0;
- margin-bottom: 0;
-}
-
-.list-group-item-action {
- width: 100%;
- color: #495057;
- text-align: inherit;
-}
-
-.list-group-item-action:hover, .list-group-item-action:focus {
- color: #495057;
- text-decoration: none;
- background-color: #f8f9fa;
-}
-
-.list-group-item-action:active {
- color: #212529;
- background-color: #e9ecef;
-}
-
-.list-group-item {
- position: relative;
- display: block;
- padding: 0.75rem 1.25rem;
- margin-bottom: -1px;
- background-color: #fff;
- border: 1px solid rgba(0, 0, 0, 0.125);
-}
-
-.list-group-item:first-child {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem;
-}
-
-.list-group-item:last-child {
- margin-bottom: 0;
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem;
-}
-
-.list-group-item:hover, .list-group-item:focus {
- z-index: 1;
- text-decoration: none;
-}
-
-.list-group-item.disabled, .list-group-item:disabled {
- color: #6c757d;
- background-color: #fff;
-}
-
-.list-group-item.active {
- z-index: 2;
- color: #fff;
- background-color: #007bff;
- border-color: #007bff;
-}
-
-.list-group-flush .list-group-item {
- border-right: 0;
- border-left: 0;
- border-radius: 0;
-}
-
-.list-group-flush:first-child .list-group-item:first-child {
- border-top: 0;
-}
-
-.list-group-flush:last-child .list-group-item:last-child {
- border-bottom: 0;
-}
-
-.list-group-item-primary {
- color: #004085;
- background-color: #b8daff;
-}
-
-.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
- color: #004085;
- background-color: #9fcdff;
-}
-
-.list-group-item-primary.list-group-item-action.active {
- color: #fff;
- background-color: #004085;
- border-color: #004085;
-}
-
-.list-group-item-secondary {
- color: #383d41;
- background-color: #d6d8db;
-}
-
-.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
- color: #383d41;
- background-color: #c8cbcf;
-}
-
-.list-group-item-secondary.list-group-item-action.active {
- color: #fff;
- background-color: #383d41;
- border-color: #383d41;
-}
-
-.list-group-item-success {
- color: #155724;
- background-color: #c3e6cb;
-}
-
-.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
- color: #155724;
- background-color: #b1dfbb;
-}
-
-.list-group-item-success.list-group-item-action.active {
- color: #fff;
- background-color: #155724;
- border-color: #155724;
-}
-
-.list-group-item-info {
- color: #0c5460;
- background-color: #bee5eb;
-}
-
-.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
- color: #0c5460;
- background-color: #abdde5;
-}
-
-.list-group-item-info.list-group-item-action.active {
- color: #fff;
- background-color: #0c5460;
- border-color: #0c5460;
-}
-
-.list-group-item-warning {
- color: #856404;
- background-color: #ffeeba;
-}
-
-.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
- color: #856404;
- background-color: #ffe8a1;
-}
-
-.list-group-item-warning.list-group-item-action.active {
- color: #fff;
- background-color: #856404;
- border-color: #856404;
-}
-
-.list-group-item-danger {
- color: #721c24;
- background-color: #f5c6cb;
-}
-
-.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
- color: #721c24;
- background-color: #f1b0b7;
-}
-
-.list-group-item-danger.list-group-item-action.active {
- color: #fff;
- background-color: #721c24;
- border-color: #721c24;
-}
-
-.list-group-item-light {
- color: #818182;
- background-color: #fdfdfe;
-}
-
-.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
- color: #818182;
- background-color: #ececf6;
-}
-
-.list-group-item-light.list-group-item-action.active {
- color: #fff;
- background-color: #818182;
- border-color: #818182;
-}
-
-.list-group-item-dark {
- color: #1b1e21;
- background-color: #c6c8ca;
-}
-
-.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
- color: #1b1e21;
- background-color: #b9bbbe;
-}
-
-.list-group-item-dark.list-group-item-action.active {
- color: #fff;
- background-color: #1b1e21;
- border-color: #1b1e21;
-}
-
-.close {
- float: right;
- font-size: 1.5rem;
- font-weight: 700;
- line-height: 1;
- color: #000;
- text-shadow: 0 1px 0 #fff;
- opacity: .5;
-}
-
-.close:hover, .close:focus {
- color: #000;
- text-decoration: none;
- opacity: .75;
-}
-
-.close:not(:disabled):not(.disabled) {
- cursor: pointer;
-}
-
-button.close {
- padding: 0;
- background-color: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-
-.modal-open {
- overflow: hidden;
-}
-
-.modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1050;
- display: none;
- overflow: hidden;
- outline: 0;
-}
-
-.modal-open .modal {
- overflow-x: hidden;
- overflow-y: auto;
-}
-
-.modal-dialog {
- position: relative;
- width: auto;
- margin: 0.5rem;
- pointer-events: none;
-}
-
-.modal.fade .modal-dialog {
- transition: -webkit-transform 0.3s ease-out;
- transition: transform 0.3s ease-out;
- transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
- -webkit-transform: translate(0, -25%);
- transform: translate(0, -25%);
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .modal.fade .modal-dialog {
- transition: none;
- }
-}
-
-.modal.show .modal-dialog {
- -webkit-transform: translate(0, 0);
- transform: translate(0, 0);
-}
-
-.modal-dialog-centered {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- min-height: calc(100% - (0.5rem * 2));
-}
-
-.modal-content {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 100%;
- pointer-events: auto;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 0.3rem;
- outline: 0;
-}
-
-.modal-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1040;
- background-color: #000;
-}
-
-.modal-backdrop.fade {
- opacity: 0;
-}
-
-.modal-backdrop.show {
- opacity: 0.5;
-}
-
-.modal-header {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: start;
- align-items: flex-start;
- -ms-flex-pack: justify;
- justify-content: space-between;
- padding: 1rem;
- border-bottom: 1px solid #e9ecef;
- border-top-left-radius: 0.3rem;
- border-top-right-radius: 0.3rem;
-}
-
-.modal-header .close {
- padding: 1rem;
- margin: -1rem -1rem -1rem auto;
-}
-
-.modal-title {
- margin-bottom: 0;
- line-height: 1.5;
-}
-
-.modal-body {
- position: relative;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- padding: 1rem;
-}
-
-.modal-footer {
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: end;
- justify-content: flex-end;
- padding: 1rem;
- border-top: 1px solid #e9ecef;
-}
-
-.modal-footer > :not(:first-child) {
- margin-left: .25rem;
-}
-
-.modal-footer > :not(:last-child) {
- margin-right: .25rem;
-}
-
-.modal-scrollbar-measure {
- position: absolute;
- top: -9999px;
- width: 50px;
- height: 50px;
- overflow: scroll;
-}
-
-@media (min-width: 576px) {
- .modal-dialog {
- max-width: 500px;
- margin: 1.75rem auto;
- }
- .modal-dialog-centered {
- min-height: calc(100% - (1.75rem * 2));
- }
- .modal-sm {
- max-width: 300px;
- }
-}
-
-@media (min-width: 992px) {
- .modal-lg {
- max-width: 800px;
- }
-}
-
-.tooltip {
- position: absolute;
- z-index: 1070;
- display: block;
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
- font-style: normal;
- font-weight: 400;
- line-height: 1.5;
- text-align: left;
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- letter-spacing: normal;
- word-break: normal;
- word-spacing: normal;
- white-space: normal;
- line-break: auto;
- font-size: 0.875rem;
- word-wrap: break-word;
- opacity: 0;
-}
-
-.tooltip.show {
- opacity: 0.9;
-}
-
-.tooltip .arrow {
- position: absolute;
- display: block;
- width: 0.8rem;
- height: 0.4rem;
-}
-
-.tooltip .arrow::before {
- position: absolute;
- content: "";
- border-color: transparent;
- border-style: solid;
-}
-
-.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
- padding: 0.4rem 0;
-}
-
-.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
- bottom: 0;
-}
-
-.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
- top: 0;
- border-width: 0.4rem 0.4rem 0;
- border-top-color: #000;
-}
-
-.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
- padding: 0 0.4rem;
-}
-
-.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
- left: 0;
- width: 0.4rem;
- height: 0.8rem;
-}
-
-.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
- right: 0;
- border-width: 0.4rem 0.4rem 0.4rem 0;
- border-right-color: #000;
-}
-
-.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
- padding: 0.4rem 0;
-}
-
-.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
- top: 0;
-}
-
-.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
- bottom: 0;
- border-width: 0 0.4rem 0.4rem;
- border-bottom-color: #000;
-}
-
-.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
- padding: 0 0.4rem;
-}
-
-.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
- right: 0;
- width: 0.4rem;
- height: 0.8rem;
-}
-
-.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
- left: 0;
- border-width: 0.4rem 0 0.4rem 0.4rem;
- border-left-color: #000;
-}
-
-.tooltip-inner {
- max-width: 200px;
- padding: 0.25rem 0.5rem;
- color: #fff;
- text-align: center;
- background-color: #000;
- border-radius: 0.25rem;
-}
-
-.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 1060;
- display: block;
- max-width: 276px;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
- font-style: normal;
- font-weight: 400;
- line-height: 1.5;
- text-align: left;
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- letter-spacing: normal;
- word-break: normal;
- word-spacing: normal;
- white-space: normal;
- line-break: auto;
- font-size: 0.875rem;
- word-wrap: break-word;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 0.3rem;
-}
-
-.popover .arrow {
- position: absolute;
- display: block;
- width: 1rem;
- height: 0.5rem;
- margin: 0 0.3rem;
-}
-
-.popover .arrow::before, .popover .arrow::after {
- position: absolute;
- display: block;
- content: "";
- border-color: transparent;
- border-style: solid;
-}
-
-.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
- margin-bottom: 0.5rem;
-}
-
-.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
- bottom: calc((0.5rem + 1px) * -1);
-}
-
-.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
-.bs-popover-top .arrow::after,
-.bs-popover-auto[x-placement^="top"] .arrow::after {
- border-width: 0.5rem 0.5rem 0;
-}
-
-.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
- bottom: 0;
- border-top-color: rgba(0, 0, 0, 0.25);
-}
-
-
-.bs-popover-top .arrow::after,
-.bs-popover-auto[x-placement^="top"] .arrow::after {
- bottom: 1px;
- border-top-color: #fff;
-}
-
-.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
- margin-left: 0.5rem;
-}
-
-.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
- left: calc((0.5rem + 1px) * -1);
- width: 0.5rem;
- height: 1rem;
- margin: 0.3rem 0;
-}
-
-.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
-.bs-popover-right .arrow::after,
-.bs-popover-auto[x-placement^="right"] .arrow::after {
- border-width: 0.5rem 0.5rem 0.5rem 0;
-}
-
-.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
- left: 0;
- border-right-color: rgba(0, 0, 0, 0.25);
-}
-
-
-.bs-popover-right .arrow::after,
-.bs-popover-auto[x-placement^="right"] .arrow::after {
- left: 1px;
- border-right-color: #fff;
-}
-
-.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
- margin-top: 0.5rem;
-}
-
-.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
- top: calc((0.5rem + 1px) * -1);
-}
-
-.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
-.bs-popover-bottom .arrow::after,
-.bs-popover-auto[x-placement^="bottom"] .arrow::after {
- border-width: 0 0.5rem 0.5rem 0.5rem;
-}
-
-.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
- top: 0;
- border-bottom-color: rgba(0, 0, 0, 0.25);
-}
-
-
-.bs-popover-bottom .arrow::after,
-.bs-popover-auto[x-placement^="bottom"] .arrow::after {
- top: 1px;
- border-bottom-color: #fff;
-}
-
-.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
- position: absolute;
- top: 0;
- left: 50%;
- display: block;
- width: 1rem;
- margin-left: -0.5rem;
- content: "";
- border-bottom: 1px solid #f7f7f7;
-}
-
-.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
- margin-right: 0.5rem;
-}
-
-.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
- right: calc((0.5rem + 1px) * -1);
- width: 0.5rem;
- height: 1rem;
- margin: 0.3rem 0;
-}
-
-.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
-.bs-popover-left .arrow::after,
-.bs-popover-auto[x-placement^="left"] .arrow::after {
- border-width: 0.5rem 0 0.5rem 0.5rem;
-}
-
-.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
- right: 0;
- border-left-color: rgba(0, 0, 0, 0.25);
-}
-
-
-.bs-popover-left .arrow::after,
-.bs-popover-auto[x-placement^="left"] .arrow::after {
- right: 1px;
- border-left-color: #fff;
-}
-
-.popover-header {
- padding: 0.5rem 0.75rem;
- margin-bottom: 0;
- font-size: 1rem;
- color: inherit;
- background-color: #f7f7f7;
- border-bottom: 1px solid #ebebeb;
- border-top-left-radius: calc(0.3rem - 1px);
- border-top-right-radius: calc(0.3rem - 1px);
-}
-
-.popover-header:empty {
- display: none;
-}
-
-.popover-body {
- padding: 0.5rem 0.75rem;
- color: #212529;
-}
-
-.carousel {
- position: relative;
-}
-
-.carousel-inner {
- position: relative;
- width: 100%;
- overflow: hidden;
-}
-
-.carousel-item {
- position: relative;
- display: none;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
- transition: -webkit-transform 0.6s ease;
- transition: transform 0.6s ease;
- transition: transform 0.6s ease, -webkit-transform 0.6s ease;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-perspective: 1000px;
- perspective: 1000px;
-}
-
-@media screen and (prefers-reduced-motion: reduce) {
- .carousel-item {
- transition: none;
- }
-}
-
-.carousel-item.active,
-.carousel-item-next,
-.carousel-item-prev {
- display: block;
-}
-
-.carousel-item-next,
-.carousel-item-prev {
- position: absolute;
- top: 0;
-}
-
-.carousel-item-next.carousel-item-left,
-.carousel-item-prev.carousel-item-right {
- -webkit-transform: translateX(0);
- transform: translateX(0);
-}
-
-@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
- .carousel-item-next.carousel-item-left,
- .carousel-item-prev.carousel-item-right {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.carousel-item-next,
-.active.carousel-item-right {
- -webkit-transform: translateX(100%);
- transform: translateX(100%);
-}
-
-@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
- .carousel-item-next,
- .active.carousel-item-right {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- }
-}
-
-.carousel-item-prev,
-.active.carousel-item-left {
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
-}
-
-@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
- .carousel-item-prev,
- .active.carousel-item-left {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- }
-}
-
-.carousel-fade .carousel-item {
- opacity: 0;
- transition-duration: .6s;
- transition-property: opacity;
-}
-
-.carousel-fade .carousel-item.active,
-.carousel-fade .carousel-item-next.carousel-item-left,
-.carousel-fade .carousel-item-prev.carousel-item-right {
- opacity: 1;
-}
-
-.carousel-fade .active.carousel-item-left,
-.carousel-fade .active.carousel-item-right {
- opacity: 0;
-}
-
-.carousel-fade .carousel-item-next,
-.carousel-fade .carousel-item-prev,
-.carousel-fade .carousel-item.active,
-.carousel-fade .active.carousel-item-left,
-.carousel-fade .active.carousel-item-prev {
- -webkit-transform: translateX(0);
- transform: translateX(0);
-}
-
-@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
- .carousel-fade .carousel-item-next,
- .carousel-fade .carousel-item-prev,
- .carousel-fade .carousel-item.active,
- .carousel-fade .active.carousel-item-left,
- .carousel-fade .active.carousel-item-prev {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.carousel-control-prev,
-.carousel-control-next {
- position: absolute;
- top: 0;
- bottom: 0;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- width: 15%;
- color: #fff;
- text-align: center;
- opacity: 0.5;
-}
-
-.carousel-control-prev:hover, .carousel-control-prev:focus,
-.carousel-control-next:hover,
-.carousel-control-next:focus {
- color: #fff;
- text-decoration: none;
- outline: 0;
- opacity: .9;
-}
-
-.carousel-control-prev {
- left: 0;
-}
-
-.carousel-control-next {
- right: 0;
-}
-
-.carousel-control-prev-icon,
-.carousel-control-next-icon {
- display: inline-block;
- width: 20px;
- height: 20px;
- background: transparent no-repeat center center;
- background-size: 100% 100%;
-}
-
-.carousel-control-prev-icon {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
-}
-
-.carousel-control-next-icon {
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
-}
-
-.carousel-indicators {
- position: absolute;
- right: 0;
- bottom: 10px;
- left: 0;
- z-index: 15;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-pack: center;
- justify-content: center;
- padding-left: 0;
- margin-right: 15%;
- margin-left: 15%;
- list-style: none;
-}
-
-.carousel-indicators li {
- position: relative;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- width: 30px;
- height: 3px;
- margin-right: 3px;
- margin-left: 3px;
- text-indent: -999px;
- cursor: pointer;
- background-color: rgba(255, 255, 255, 0.5);
-}
-
-.carousel-indicators li::before {
- position: absolute;
- top: -10px;
- left: 0;
- display: inline-block;
- width: 100%;
- height: 10px;
- content: "";
-}
-
-.carousel-indicators li::after {
- position: absolute;
- bottom: -10px;
- left: 0;
- display: inline-block;
- width: 100%;
- height: 10px;
- content: "";
-}
-
-.carousel-indicators .active {
- background-color: #fff;
-}
-
-.carousel-caption {
- position: absolute;
- right: 15%;
- bottom: 20px;
- left: 15%;
- z-index: 10;
- padding-top: 20px;
- padding-bottom: 20px;
- color: #fff;
- text-align: center;
-}
-
-.align-baseline {
- vertical-align: baseline !important;
-}
-
-.align-top {
- vertical-align: top !important;
-}
-
-.align-middle {
- vertical-align: middle !important;
-}
-
-.align-bottom {
- vertical-align: bottom !important;
-}
-
-.align-text-bottom {
- vertical-align: text-bottom !important;
-}
-
-.align-text-top {
- vertical-align: text-top !important;
-}
-
-.bg-primary {
- background-color: #007bff !important;
-}
-
-a.bg-primary:hover, a.bg-primary:focus,
-button.bg-primary:hover,
-button.bg-primary:focus {
- background-color: #0062cc !important;
-}
-
-.bg-secondary {
- background-color: #6c757d !important;
-}
-
-a.bg-secondary:hover, a.bg-secondary:focus,
-button.bg-secondary:hover,
-button.bg-secondary:focus {
- background-color: #545b62 !important;
-}
-
-.bg-success {
- background-color: #28a745 !important;
-}
-
-a.bg-success:hover, a.bg-success:focus,
-button.bg-success:hover,
-button.bg-success:focus {
- background-color: #1e7e34 !important;
-}
-
-.bg-info {
- background-color: #17a2b8 !important;
-}
-
-a.bg-info:hover, a.bg-info:focus,
-button.bg-info:hover,
-button.bg-info:focus {
- background-color: #117a8b !important;
-}
-
-.bg-warning {
- background-color: #ffc107 !important;
-}
-
-a.bg-warning:hover, a.bg-warning:focus,
-button.bg-warning:hover,
-button.bg-warning:focus {
- background-color: #d39e00 !important;
-}
-
-.bg-danger {
- background-color: #dc3545 !important;
-}
-
-a.bg-danger:hover, a.bg-danger:focus,
-button.bg-danger:hover,
-button.bg-danger:focus {
- background-color: #bd2130 !important;
-}
-
-.bg-light {
- background-color: #f8f9fa !important;
-}
-
-a.bg-light:hover, a.bg-light:focus,
-button.bg-light:hover,
-button.bg-light:focus {
- background-color: #dae0e5 !important;
-}
-
-.bg-dark {
- background-color: #343a40 !important;
-}
-
-a.bg-dark:hover, a.bg-dark:focus,
-button.bg-dark:hover,
-button.bg-dark:focus {
- background-color: #1d2124 !important;
-}
-
-.bg-white {
- background-color: #fff !important;
-}
-
-.bg-transparent {
- background-color: transparent !important;
-}
-
-.border {
- border: 1px solid #dee2e6 !important;
-}
-
-.border-top {
- border-top: 1px solid #dee2e6 !important;
-}
-
-.border-right {
- border-right: 1px solid #dee2e6 !important;
-}
-
-.border-bottom {
- border-bottom: 1px solid #dee2e6 !important;
-}
-
-.border-left {
- border-left: 1px solid #dee2e6 !important;
-}
-
-.border-0 {
- border: 0 !important;
-}
-
-.border-top-0 {
- border-top: 0 !important;
-}
-
-.border-right-0 {
- border-right: 0 !important;
-}
-
-.border-bottom-0 {
- border-bottom: 0 !important;
-}
-
-.border-left-0 {
- border-left: 0 !important;
-}
-
-.border-primary {
- border-color: #007bff !important;
-}
-
-.border-secondary {
- border-color: #6c757d !important;
-}
-
-.border-success {
- border-color: #28a745 !important;
-}
-
-.border-info {
- border-color: #17a2b8 !important;
-}
-
-.border-warning {
- border-color: #ffc107 !important;
-}
-
-.border-danger {
- border-color: #dc3545 !important;
-}
-
-.border-light {
- border-color: #f8f9fa !important;
-}
-
-.border-dark {
- border-color: #343a40 !important;
-}
-
-.border-white {
- border-color: #fff !important;
-}
-
-.rounded {
- border-radius: 0.25rem !important;
-}
-
-.rounded-top {
- border-top-left-radius: 0.25rem !important;
- border-top-right-radius: 0.25rem !important;
-}
-
-.rounded-right {
- border-top-right-radius: 0.25rem !important;
- border-bottom-right-radius: 0.25rem !important;
-}
-
-.rounded-bottom {
- border-bottom-right-radius: 0.25rem !important;
- border-bottom-left-radius: 0.25rem !important;
-}
-
-.rounded-left {
- border-top-left-radius: 0.25rem !important;
- border-bottom-left-radius: 0.25rem !important;
-}
-
-.rounded-circle {
- border-radius: 50% !important;
-}
-
-.rounded-0 {
- border-radius: 0 !important;
-}
-
-.clearfix::after {
- display: block;
- clear: both;
- content: "";
-}
-
-.d-none {
- display: none !important;
-}
-
-.d-inline {
- display: inline !important;
-}
-
-.d-inline-block {
- display: inline-block !important;
-}
-
-.d-block {
- display: block !important;
-}
-
-.d-table {
- display: table !important;
-}
-
-.d-table-row {
- display: table-row !important;
-}
-
-.d-table-cell {
- display: table-cell !important;
-}
-
-.d-flex {
- display: -ms-flexbox !important;
- display: flex !important;
-}
-
-.d-inline-flex {
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
-}
-
-@media (min-width: 576px) {
- .d-sm-none {
- display: none !important;
- }
- .d-sm-inline {
- display: inline !important;
- }
- .d-sm-inline-block {
- display: inline-block !important;
- }
- .d-sm-block {
- display: block !important;
- }
- .d-sm-table {
- display: table !important;
- }
- .d-sm-table-row {
- display: table-row !important;
- }
- .d-sm-table-cell {
- display: table-cell !important;
- }
- .d-sm-flex {
- display: -ms-flexbox !important;
- display: flex !important;
- }
- .d-sm-inline-flex {
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
- }
-}
-
-@media (min-width: 768px) {
- .d-md-none {
- display: none !important;
- }
- .d-md-inline {
- display: inline !important;
- }
- .d-md-inline-block {
- display: inline-block !important;
- }
- .d-md-block {
- display: block !important;
- }
- .d-md-table {
- display: table !important;
- }
- .d-md-table-row {
- display: table-row !important;
- }
- .d-md-table-cell {
- display: table-cell !important;
- }
- .d-md-flex {
- display: -ms-flexbox !important;
- display: flex !important;
- }
- .d-md-inline-flex {
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
- }
-}
-
-@media (min-width: 992px) {
- .d-lg-none {
- display: none !important;
- }
- .d-lg-inline {
- display: inline !important;
- }
- .d-lg-inline-block {
- display: inline-block !important;
- }
- .d-lg-block {
- display: block !important;
- }
- .d-lg-table {
- display: table !important;
- }
- .d-lg-table-row {
- display: table-row !important;
- }
- .d-lg-table-cell {
- display: table-cell !important;
- }
- .d-lg-flex {
- display: -ms-flexbox !important;
- display: flex !important;
- }
- .d-lg-inline-flex {
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
- }
-}
-
-@media (min-width: 1200px) {
- .d-xl-none {
- display: none !important;
- }
- .d-xl-inline {
- display: inline !important;
- }
- .d-xl-inline-block {
- display: inline-block !important;
- }
- .d-xl-block {
- display: block !important;
- }
- .d-xl-table {
- display: table !important;
- }
- .d-xl-table-row {
- display: table-row !important;
- }
- .d-xl-table-cell {
- display: table-cell !important;
- }
- .d-xl-flex {
- display: -ms-flexbox !important;
- display: flex !important;
- }
- .d-xl-inline-flex {
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
- }
-}
-
-@media print {
- .d-print-none {
- display: none !important;
- }
- .d-print-inline {
- display: inline !important;
- }
- .d-print-inline-block {
- display: inline-block !important;
- }
- .d-print-block {
- display: block !important;
- }
- .d-print-table {
- display: table !important;
- }
- .d-print-table-row {
- display: table-row !important;
- }
- .d-print-table-cell {
- display: table-cell !important;
- }
- .d-print-flex {
- display: -ms-flexbox !important;
- display: flex !important;
- }
- .d-print-inline-flex {
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
- }
-}
-
-.embed-responsive {
- position: relative;
- display: block;
- width: 100%;
- padding: 0;
- overflow: hidden;
-}
-
-.embed-responsive::before {
- display: block;
- content: "";
-}
-
-.embed-responsive .embed-responsive-item,
-.embed-responsive iframe,
-.embed-responsive embed,
-.embed-responsive object,
-.embed-responsive video {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 0;
-}
-
-.embed-responsive-21by9::before {
- padding-top: 42.857143%;
-}
-
-.embed-responsive-16by9::before {
- padding-top: 56.25%;
-}
-
-.embed-responsive-4by3::before {
- padding-top: 75%;
-}
-
-.embed-responsive-1by1::before {
- padding-top: 100%;
-}
-
-.flex-row {
- -ms-flex-direction: row !important;
- flex-direction: row !important;
-}
-
-.flex-column {
- -ms-flex-direction: column !important;
- flex-direction: column !important;
-}
-
-.flex-row-reverse {
- -ms-flex-direction: row-reverse !important;
- flex-direction: row-reverse !important;
-}
-
-.flex-column-reverse {
- -ms-flex-direction: column-reverse !important;
- flex-direction: column-reverse !important;
-}
-
-.flex-wrap {
- -ms-flex-wrap: wrap !important;
- flex-wrap: wrap !important;
-}
-
-.flex-nowrap {
- -ms-flex-wrap: nowrap !important;
- flex-wrap: nowrap !important;
-}
-
-.flex-wrap-reverse {
- -ms-flex-wrap: wrap-reverse !important;
- flex-wrap: wrap-reverse !important;
-}
-
-.flex-fill {
- -ms-flex: 1 1 auto !important;
- flex: 1 1 auto !important;
-}
-
-.flex-grow-0 {
- -ms-flex-positive: 0 !important;
- flex-grow: 0 !important;
-}
-
-.flex-grow-1 {
- -ms-flex-positive: 1 !important;
- flex-grow: 1 !important;
-}
-
-.flex-shrink-0 {
- -ms-flex-negative: 0 !important;
- flex-shrink: 0 !important;
-}
-
-.flex-shrink-1 {
- -ms-flex-negative: 1 !important;
- flex-shrink: 1 !important;
-}
-
-.justify-content-start {
- -ms-flex-pack: start !important;
- justify-content: flex-start !important;
-}
-
-.justify-content-end {
- -ms-flex-pack: end !important;
- justify-content: flex-end !important;
-}
-
-.justify-content-center {
- -ms-flex-pack: center !important;
- justify-content: center !important;
-}
-
-.justify-content-between {
- -ms-flex-pack: justify !important;
- justify-content: space-between !important;
-}
-
-.justify-content-around {
- -ms-flex-pack: distribute !important;
- justify-content: space-around !important;
-}
-
-.align-items-start {
- -ms-flex-align: start !important;
- align-items: flex-start !important;
-}
-
-.align-items-end {
- -ms-flex-align: end !important;
- align-items: flex-end !important;
-}
-
-.align-items-center {
- -ms-flex-align: center !important;
- align-items: center !important;
-}
-
-.align-items-baseline {
- -ms-flex-align: baseline !important;
- align-items: baseline !important;
-}
-
-.align-items-stretch {
- -ms-flex-align: stretch !important;
- align-items: stretch !important;
-}
-
-.align-content-start {
- -ms-flex-line-pack: start !important;
- align-content: flex-start !important;
-}
-
-.align-content-end {
- -ms-flex-line-pack: end !important;
- align-content: flex-end !important;
-}
-
-.align-content-center {
- -ms-flex-line-pack: center !important;
- align-content: center !important;
-}
-
-.align-content-between {
- -ms-flex-line-pack: justify !important;
- align-content: space-between !important;
-}
-
-.align-content-around {
- -ms-flex-line-pack: distribute !important;
- align-content: space-around !important;
-}
-
-.align-content-stretch {
- -ms-flex-line-pack: stretch !important;
- align-content: stretch !important;
-}
-
-.align-self-auto {
- -ms-flex-item-align: auto !important;
- align-self: auto !important;
-}
-
-.align-self-start {
- -ms-flex-item-align: start !important;
- align-self: flex-start !important;
-}
-
-.align-self-end {
- -ms-flex-item-align: end !important;
- align-self: flex-end !important;
-}
-
-.align-self-center {
- -ms-flex-item-align: center !important;
- align-self: center !important;
-}
-
-.align-self-baseline {
- -ms-flex-item-align: baseline !important;
- align-self: baseline !important;
-}
-
-.align-self-stretch {
- -ms-flex-item-align: stretch !important;
- align-self: stretch !important;
-}
-
-@media (min-width: 576px) {
- .flex-sm-row {
- -ms-flex-direction: row !important;
- flex-direction: row !important;
- }
- .flex-sm-column {
- -ms-flex-direction: column !important;
- flex-direction: column !important;
- }
- .flex-sm-row-reverse {
- -ms-flex-direction: row-reverse !important;
- flex-direction: row-reverse !important;
- }
- .flex-sm-column-reverse {
- -ms-flex-direction: column-reverse !important;
- flex-direction: column-reverse !important;
- }
- .flex-sm-wrap {
- -ms-flex-wrap: wrap !important;
- flex-wrap: wrap !important;
- }
- .flex-sm-nowrap {
- -ms-flex-wrap: nowrap !important;
- flex-wrap: nowrap !important;
- }
- .flex-sm-wrap-reverse {
- -ms-flex-wrap: wrap-reverse !important;
- flex-wrap: wrap-reverse !important;
- }
- .flex-sm-fill {
- -ms-flex: 1 1 auto !important;
- flex: 1 1 auto !important;
- }
- .flex-sm-grow-0 {
- -ms-flex-positive: 0 !important;
- flex-grow: 0 !important;
- }
- .flex-sm-grow-1 {
- -ms-flex-positive: 1 !important;
- flex-grow: 1 !important;
- }
- .flex-sm-shrink-0 {
- -ms-flex-negative: 0 !important;
- flex-shrink: 0 !important;
- }
- .flex-sm-shrink-1 {
- -ms-flex-negative: 1 !important;
- flex-shrink: 1 !important;
- }
- .justify-content-sm-start {
- -ms-flex-pack: start !important;
- justify-content: flex-start !important;
- }
- .justify-content-sm-end {
- -ms-flex-pack: end !important;
- justify-content: flex-end !important;
- }
- .justify-content-sm-center {
- -ms-flex-pack: center !important;
- justify-content: center !important;
- }
- .justify-content-sm-between {
- -ms-flex-pack: justify !important;
- justify-content: space-between !important;
- }
- .justify-content-sm-around {
- -ms-flex-pack: distribute !important;
- justify-content: space-around !important;
- }
- .align-items-sm-start {
- -ms-flex-align: start !important;
- align-items: flex-start !important;
- }
- .align-items-sm-end {
- -ms-flex-align: end !important;
- align-items: flex-end !important;
- }
- .align-items-sm-center {
- -ms-flex-align: center !important;
- align-items: center !important;
- }
- .align-items-sm-baseline {
- -ms-flex-align: baseline !important;
- align-items: baseline !important;
- }
- .align-items-sm-stretch {
- -ms-flex-align: stretch !important;
- align-items: stretch !important;
- }
- .align-content-sm-start {
- -ms-flex-line-pack: start !important;
- align-content: flex-start !important;
- }
- .align-content-sm-end {
- -ms-flex-line-pack: end !important;
- align-content: flex-end !important;
- }
- .align-content-sm-center {
- -ms-flex-line-pack: center !important;
- align-content: center !important;
- }
- .align-content-sm-between {
- -ms-flex-line-pack: justify !important;
- align-content: space-between !important;
- }
- .align-content-sm-around {
- -ms-flex-line-pack: distribute !important;
- align-content: space-around !important;
- }
- .align-content-sm-stretch {
- -ms-flex-line-pack: stretch !important;
- align-content: stretch !important;
- }
- .align-self-sm-auto {
- -ms-flex-item-align: auto !important;
- align-self: auto !important;
- }
- .align-self-sm-start {
- -ms-flex-item-align: start !important;
- align-self: flex-start !important;
- }
- .align-self-sm-end {
- -ms-flex-item-align: end !important;
- align-self: flex-end !important;
- }
- .align-self-sm-center {
- -ms-flex-item-align: center !important;
- align-self: center !important;
- }
- .align-self-sm-baseline {
- -ms-flex-item-align: baseline !important;
- align-self: baseline !important;
- }
- .align-self-sm-stretch {
- -ms-flex-item-align: stretch !important;
- align-self: stretch !important;
- }
-}
-
-@media (min-width: 768px) {
- .flex-md-row {
- -ms-flex-direction: row !important;
- flex-direction: row !important;
- }
- .flex-md-column {
- -ms-flex-direction: column !important;
- flex-direction: column !important;
- }
- .flex-md-row-reverse {
- -ms-flex-direction: row-reverse !important;
- flex-direction: row-reverse !important;
- }
- .flex-md-column-reverse {
- -ms-flex-direction: column-reverse !important;
- flex-direction: column-reverse !important;
- }
- .flex-md-wrap {
- -ms-flex-wrap: wrap !important;
- flex-wrap: wrap !important;
- }
- .flex-md-nowrap {
- -ms-flex-wrap: nowrap !important;
- flex-wrap: nowrap !important;
- }
- .flex-md-wrap-reverse {
- -ms-flex-wrap: wrap-reverse !important;
- flex-wrap: wrap-reverse !important;
- }
- .flex-md-fill {
- -ms-flex: 1 1 auto !important;
- flex: 1 1 auto !important;
- }
- .flex-md-grow-0 {
- -ms-flex-positive: 0 !important;
- flex-grow: 0 !important;
- }
- .flex-md-grow-1 {
- -ms-flex-positive: 1 !important;
- flex-grow: 1 !important;
- }
- .flex-md-shrink-0 {
- -ms-flex-negative: 0 !important;
- flex-shrink: 0 !important;
- }
- .flex-md-shrink-1 {
- -ms-flex-negative: 1 !important;
- flex-shrink: 1 !important;
- }
- .justify-content-md-start {
- -ms-flex-pack: start !important;
- justify-content: flex-start !important;
- }
- .justify-content-md-end {
- -ms-flex-pack: end !important;
- justify-content: flex-end !important;
- }
- .justify-content-md-center {
- -ms-flex-pack: center !important;
- justify-content: center !important;
- }
- .justify-content-md-between {
- -ms-flex-pack: justify !important;
- justify-content: space-between !important;
- }
- .justify-content-md-around {
- -ms-flex-pack: distribute !important;
- justify-content: space-around !important;
- }
- .align-items-md-start {
- -ms-flex-align: start !important;
- align-items: flex-start !important;
- }
- .align-items-md-end {
- -ms-flex-align: end !important;
- align-items: flex-end !important;
- }
- .align-items-md-center {
- -ms-flex-align: center !important;
- align-items: center !important;
- }
- .align-items-md-baseline {
- -ms-flex-align: baseline !important;
- align-items: baseline !important;
- }
- .align-items-md-stretch {
- -ms-flex-align: stretch !important;
- align-items: stretch !important;
- }
- .align-content-md-start {
- -ms-flex-line-pack: start !important;
- align-content: flex-start !important;
- }
- .align-content-md-end {
- -ms-flex-line-pack: end !important;
- align-content: flex-end !important;
- }
- .align-content-md-center {
- -ms-flex-line-pack: center !important;
- align-content: center !important;
- }
- .align-content-md-between {
- -ms-flex-line-pack: justify !important;
- align-content: space-between !important;
- }
- .align-content-md-around {
- -ms-flex-line-pack: distribute !important;
- align-content: space-around !important;
- }
- .align-content-md-stretch {
- -ms-flex-line-pack: stretch !important;
- align-content: stretch !important;
- }
- .align-self-md-auto {
- -ms-flex-item-align: auto !important;
- align-self: auto !important;
- }
- .align-self-md-start {
- -ms-flex-item-align: start !important;
- align-self: flex-start !important;
- }
- .align-self-md-end {
- -ms-flex-item-align: end !important;
- align-self: flex-end !important;
- }
- .align-self-md-center {
- -ms-flex-item-align: center !important;
- align-self: center !important;
- }
- .align-self-md-baseline {
- -ms-flex-item-align: baseline !important;
- align-self: baseline !important;
- }
- .align-self-md-stretch {
- -ms-flex-item-align: stretch !important;
- align-self: stretch !important;
- }
-}
-
-@media (min-width: 992px) {
- .flex-lg-row {
- -ms-flex-direction: row !important;
- flex-direction: row !important;
- }
- .flex-lg-column {
- -ms-flex-direction: column !important;
- flex-direction: column !important;
- }
- .flex-lg-row-reverse {
- -ms-flex-direction: row-reverse !important;
- flex-direction: row-reverse !important;
- }
- .flex-lg-column-reverse {
- -ms-flex-direction: column-reverse !important;
- flex-direction: column-reverse !important;
- }
- .flex-lg-wrap {
- -ms-flex-wrap: wrap !important;
- flex-wrap: wrap !important;
- }
- .flex-lg-nowrap {
- -ms-flex-wrap: nowrap !important;
- flex-wrap: nowrap !important;
- }
- .flex-lg-wrap-reverse {
- -ms-flex-wrap: wrap-reverse !important;
- flex-wrap: wrap-reverse !important;
- }
- .flex-lg-fill {
- -ms-flex: 1 1 auto !important;
- flex: 1 1 auto !important;
- }
- .flex-lg-grow-0 {
- -ms-flex-positive: 0 !important;
- flex-grow: 0 !important;
- }
- .flex-lg-grow-1 {
- -ms-flex-positive: 1 !important;
- flex-grow: 1 !important;
- }
- .flex-lg-shrink-0 {
- -ms-flex-negative: 0 !important;
- flex-shrink: 0 !important;
- }
- .flex-lg-shrink-1 {
- -ms-flex-negative: 1 !important;
- flex-shrink: 1 !important;
- }
- .justify-content-lg-start {
- -ms-flex-pack: start !important;
- justify-content: flex-start !important;
- }
- .justify-content-lg-end {
- -ms-flex-pack: end !important;
- justify-content: flex-end !important;
- }
- .justify-content-lg-center {
- -ms-flex-pack: center !important;
- justify-content: center !important;
- }
- .justify-content-lg-between {
- -ms-flex-pack: justify !important;
- justify-content: space-between !important;
- }
- .justify-content-lg-around {
- -ms-flex-pack: distribute !important;
- justify-content: space-around !important;
- }
- .align-items-lg-start {
- -ms-flex-align: start !important;
- align-items: flex-start !important;
- }
- .align-items-lg-end {
- -ms-flex-align: end !important;
- align-items: flex-end !important;
- }
- .align-items-lg-center {
- -ms-flex-align: center !important;
- align-items: center !important;
- }
- .align-items-lg-baseline {
- -ms-flex-align: baseline !important;
- align-items: baseline !important;
- }
- .align-items-lg-stretch {
- -ms-flex-align: stretch !important;
- align-items: stretch !important;
- }
- .align-content-lg-start {
- -ms-flex-line-pack: start !important;
- align-content: flex-start !important;
- }
- .align-content-lg-end {
- -ms-flex-line-pack: end !important;
- align-content: flex-end !important;
- }
- .align-content-lg-center {
- -ms-flex-line-pack: center !important;
- align-content: center !important;
- }
- .align-content-lg-between {
- -ms-flex-line-pack: justify !important;
- align-content: space-between !important;
- }
- .align-content-lg-around {
- -ms-flex-line-pack: distribute !important;
- align-content: space-around !important;
- }
- .align-content-lg-stretch {
- -ms-flex-line-pack: stretch !important;
- align-content: stretch !important;
- }
- .align-self-lg-auto {
- -ms-flex-item-align: auto !important;
- align-self: auto !important;
- }
- .align-self-lg-start {
- -ms-flex-item-align: start !important;
- align-self: flex-start !important;
- }
- .align-self-lg-end {
- -ms-flex-item-align: end !important;
- align-self: flex-end !important;
- }
- .align-self-lg-center {
- -ms-flex-item-align: center !important;
- align-self: center !important;
- }
- .align-self-lg-baseline {
- -ms-flex-item-align: baseline !important;
- align-self: baseline !important;
- }
- .align-self-lg-stretch {
- -ms-flex-item-align: stretch !important;
- align-self: stretch !important;
- }
-}
-
-@media (min-width: 1200px) {
- .flex-xl-row {
- -ms-flex-direction: row !important;
- flex-direction: row !important;
- }
- .flex-xl-column {
- -ms-flex-direction: column !important;
- flex-direction: column !important;
- }
- .flex-xl-row-reverse {
- -ms-flex-direction: row-reverse !important;
- flex-direction: row-reverse !important;
- }
- .flex-xl-column-reverse {
- -ms-flex-direction: column-reverse !important;
- flex-direction: column-reverse !important;
- }
- .flex-xl-wrap {
- -ms-flex-wrap: wrap !important;
- flex-wrap: wrap !important;
- }
- .flex-xl-nowrap {
- -ms-flex-wrap: nowrap !important;
- flex-wrap: nowrap !important;
- }
- .flex-xl-wrap-reverse {
- -ms-flex-wrap: wrap-reverse !important;
- flex-wrap: wrap-reverse !important;
- }
- .flex-xl-fill {
- -ms-flex: 1 1 auto !important;
- flex: 1 1 auto !important;
- }
- .flex-xl-grow-0 {
- -ms-flex-positive: 0 !important;
- flex-grow: 0 !important;
- }
- .flex-xl-grow-1 {
- -ms-flex-positive: 1 !important;
- flex-grow: 1 !important;
- }
- .flex-xl-shrink-0 {
- -ms-flex-negative: 0 !important;
- flex-shrink: 0 !important;
- }
- .flex-xl-shrink-1 {
- -ms-flex-negative: 1 !important;
- flex-shrink: 1 !important;
- }
- .justify-content-xl-start {
- -ms-flex-pack: start !important;
- justify-content: flex-start !important;
- }
- .justify-content-xl-end {
- -ms-flex-pack: end !important;
- justify-content: flex-end !important;
- }
- .justify-content-xl-center {
- -ms-flex-pack: center !important;
- justify-content: center !important;
- }
- .justify-content-xl-between {
- -ms-flex-pack: justify !important;
- justify-content: space-between !important;
- }
- .justify-content-xl-around {
- -ms-flex-pack: distribute !important;
- justify-content: space-around !important;
- }
- .align-items-xl-start {
- -ms-flex-align: start !important;
- align-items: flex-start !important;
- }
- .align-items-xl-end {
- -ms-flex-align: end !important;
- align-items: flex-end !important;
- }
- .align-items-xl-center {
- -ms-flex-align: center !important;
- align-items: center !important;
- }
- .align-items-xl-baseline {
- -ms-flex-align: baseline !important;
- align-items: baseline !important;
- }
- .align-items-xl-stretch {
- -ms-flex-align: stretch !important;
- align-items: stretch !important;
- }
- .align-content-xl-start {
- -ms-flex-line-pack: start !important;
- align-content: flex-start !important;
- }
- .align-content-xl-end {
- -ms-flex-line-pack: end !important;
- align-content: flex-end !important;
- }
- .align-content-xl-center {
- -ms-flex-line-pack: center !important;
- align-content: center !important;
- }
- .align-content-xl-between {
- -ms-flex-line-pack: justify !important;
- align-content: space-between !important;
- }
- .align-content-xl-around {
- -ms-flex-line-pack: distribute !important;
- align-content: space-around !important;
- }
- .align-content-xl-stretch {
- -ms-flex-line-pack: stretch !important;
- align-content: stretch !important;
- }
- .align-self-xl-auto {
- -ms-flex-item-align: auto !important;
- align-self: auto !important;
- }
- .align-self-xl-start {
- -ms-flex-item-align: start !important;
- align-self: flex-start !important;
- }
- .align-self-xl-end {
- -ms-flex-item-align: end !important;
- align-self: flex-end !important;
- }
- .align-self-xl-center {
- -ms-flex-item-align: center !important;
- align-self: center !important;
- }
- .align-self-xl-baseline {
- -ms-flex-item-align: baseline !important;
- align-self: baseline !important;
- }
- .align-self-xl-stretch {
- -ms-flex-item-align: stretch !important;
- align-self: stretch !important;
- }
-}
-
-.float-left {
- float: left !important;
-}
-
-.float-right {
- float: right !important;
-}
-
-.float-none {
- float: none !important;
-}
-
-@media (min-width: 576px) {
- .float-sm-left {
- float: left !important;
- }
- .float-sm-right {
- float: right !important;
- }
- .float-sm-none {
- float: none !important;
- }
-}
-
-@media (min-width: 768px) {
- .float-md-left {
- float: left !important;
- }
- .float-md-right {
- float: right !important;
- }
- .float-md-none {
- float: none !important;
- }
-}
-
-@media (min-width: 992px) {
- .float-lg-left {
- float: left !important;
- }
- .float-lg-right {
- float: right !important;
- }
- .float-lg-none {
- float: none !important;
- }
-}
-
-@media (min-width: 1200px) {
- .float-xl-left {
- float: left !important;
- }
- .float-xl-right {
- float: right !important;
- }
- .float-xl-none {
- float: none !important;
- }
-}
-
-.position-static {
- position: static !important;
-}
-
-.position-relative {
- position: relative !important;
-}
-
-.position-absolute {
- position: absolute !important;
-}
-
-.position-fixed {
- position: fixed !important;
-}
-
-.position-sticky {
- position: -webkit-sticky !important;
- position: sticky !important;
-}
-
-.fixed-top {
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- z-index: 1030;
-}
-
-.fixed-bottom {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1030;
-}
-
-@supports ((position: -webkit-sticky) or (position: sticky)) {
- .sticky-top {
- position: -webkit-sticky;
- position: sticky;
- top: 0;
- z-index: 1020;
- }
-}
-
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border: 0;
-}
-
-.sr-only-focusable:active, .sr-only-focusable:focus {
- position: static;
- width: auto;
- height: auto;
- overflow: visible;
- clip: auto;
- white-space: normal;
-}
-
-.shadow-sm {
- box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
-}
-
-.shadow {
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
-}
-
-.shadow-lg {
- box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
-}
-
-.shadow-none {
- box-shadow: none !important;
-}
-
-.w-25 {
- width: 25% !important;
-}
-
-.w-50 {
- width: 50% !important;
-}
-
-.w-75 {
- width: 75% !important;
-}
-
-.w-100 {
- width: 100% !important;
-}
-
-.w-auto {
- width: auto !important;
-}
-
-.h-25 {
- height: 25% !important;
-}
-
-.h-50 {
- height: 50% !important;
-}
-
-.h-75 {
- height: 75% !important;
-}
-
-.h-100 {
- height: 100% !important;
-}
-
-.h-auto {
- height: auto !important;
-}
-
-.mw-100 {
- max-width: 100% !important;
-}
-
-.mh-100 {
- max-height: 100% !important;
-}
-
-.m-0 {
- margin: 0 !important;
-}
-
-.mt-0,
-.my-0 {
- margin-top: 0 !important;
-}
-
-.mr-0,
-.mx-0 {
- margin-right: 0 !important;
-}
-
-.mb-0,
-.my-0 {
- margin-bottom: 0 !important;
-}
-
-.ml-0,
-.mx-0 {
- margin-left: 0 !important;
-}
-
-.m-1 {
- margin: 0.25rem !important;
-}
-
-.mt-1,
-.my-1 {
- margin-top: 0.25rem !important;
-}
-
-.mr-1,
-.mx-1 {
- margin-right: 0.25rem !important;
-}
-
-.mb-1,
-.my-1 {
- margin-bottom: 0.25rem !important;
-}
-
-.ml-1,
-.mx-1 {
- margin-left: 0.25rem !important;
-}
-
-.m-2 {
- margin: 0.5rem !important;
-}
-
-.mt-2,
-.my-2 {
- margin-top: 0.5rem !important;
-}
-
-.mr-2,
-.mx-2 {
- margin-right: 0.5rem !important;
-}
-
-.mb-2,
-.my-2 {
- margin-bottom: 0.5rem !important;
-}
-
-.ml-2,
-.mx-2 {
- margin-left: 0.5rem !important;
-}
-
-.m-3 {
- margin: 1rem !important;
-}
-
-.mt-3,
-.my-3 {
- margin-top: 1rem !important;
-}
-
-.mr-3,
-.mx-3 {
- margin-right: 1rem !important;
-}
-
-.mb-3,
-.my-3 {
- margin-bottom: 1rem !important;
-}
-
-.ml-3,
-.mx-3 {
- margin-left: 1rem !important;
-}
-
-.m-4 {
- margin: 1.5rem !important;
-}
-
-.mt-4,
-.my-4 {
- margin-top: 1.5rem !important;
-}
-
-.mr-4,
-.mx-4 {
- margin-right: 1.5rem !important;
-}
-
-.mb-4,
-.my-4 {
- margin-bottom: 1.5rem !important;
-}
-
-.ml-4,
-.mx-4 {
- margin-left: 1.5rem !important;
-}
-
-.m-5 {
- margin: 3rem !important;
-}
-
-.mt-5,
-.my-5 {
- margin-top: 3rem !important;
-}
-
-.mr-5,
-.mx-5 {
- margin-right: 3rem !important;
-}
-
-.mb-5,
-.my-5 {
- margin-bottom: 3rem !important;
-}
-
-.ml-5,
-.mx-5 {
- margin-left: 3rem !important;
-}
-
-.p-0 {
- padding: 0 !important;
-}
-
-.pt-0,
-.py-0 {
- padding-top: 0 !important;
-}
-
-.pr-0,
-.px-0 {
- padding-right: 0 !important;
-}
-
-.pb-0,
-.py-0 {
- padding-bottom: 0 !important;
-}
-
-.pl-0,
-.px-0 {
- padding-left: 0 !important;
-}
-
-.p-1 {
- padding: 0.25rem !important;
-}
-
-.pt-1,
-.py-1 {
- padding-top: 0.25rem !important;
-}
-
-.pr-1,
-.px-1 {
- padding-right: 0.25rem !important;
-}
-
-.pb-1,
-.py-1 {
- padding-bottom: 0.25rem !important;
-}
-
-.pl-1,
-.px-1 {
- padding-left: 0.25rem !important;
-}
-
-.p-2 {
- padding: 0.5rem !important;
-}
-
-.pt-2,
-.py-2 {
- padding-top: 0.5rem !important;
-}
-
-.pr-2,
-.px-2 {
- padding-right: 0.5rem !important;
-}
-
-.pb-2,
-.py-2 {
- padding-bottom: 0.5rem !important;
-}
-
-.pl-2,
-.px-2 {
- padding-left: 0.5rem !important;
-}
-
-.p-3 {
- padding: 1rem !important;
-}
-
-.pt-3,
-.py-3 {
- padding-top: 1rem !important;
-}
-
-.pr-3,
-.px-3 {
- padding-right: 1rem !important;
-}
-
-.pb-3,
-.py-3 {
- padding-bottom: 1rem !important;
-}
-
-.pl-3,
-.px-3 {
- padding-left: 1rem !important;
-}
-
-.p-4 {
- padding: 1.5rem !important;
-}
-
-.pt-4,
-.py-4 {
- padding-top: 1.5rem !important;
-}
-
-.pr-4,
-.px-4 {
- padding-right: 1.5rem !important;
-}
-
-.pb-4,
-.py-4 {
- padding-bottom: 1.5rem !important;
-}
-
-.pl-4,
-.px-4 {
- padding-left: 1.5rem !important;
-}
-
-.p-5 {
- padding: 3rem !important;
-}
-
-.pt-5,
-.py-5 {
- padding-top: 3rem !important;
-}
-
-.pr-5,
-.px-5 {
- padding-right: 3rem !important;
-}
-
-.pb-5,
-.py-5 {
- padding-bottom: 3rem !important;
-}
-
-.pl-5,
-.px-5 {
- padding-left: 3rem !important;
-}
-
-.m-auto {
- margin: auto !important;
-}
-
-.mt-auto,
-.my-auto {
- margin-top: auto !important;
-}
-
-.mr-auto,
-.mx-auto {
- margin-right: auto !important;
-}
-
-.mb-auto,
-.my-auto {
- margin-bottom: auto !important;
-}
-
-.ml-auto,
-.mx-auto {
- margin-left: auto !important;
-}
-
-@media (min-width: 576px) {
- .m-sm-0 {
- margin: 0 !important;
- }
- .mt-sm-0,
- .my-sm-0 {
- margin-top: 0 !important;
- }
- .mr-sm-0,
- .mx-sm-0 {
- margin-right: 0 !important;
- }
- .mb-sm-0,
- .my-sm-0 {
- margin-bottom: 0 !important;
- }
- .ml-sm-0,
- .mx-sm-0 {
- margin-left: 0 !important;
- }
- .m-sm-1 {
- margin: 0.25rem !important;
- }
- .mt-sm-1,
- .my-sm-1 {
- margin-top: 0.25rem !important;
- }
- .mr-sm-1,
- .mx-sm-1 {
- margin-right: 0.25rem !important;
- }
- .mb-sm-1,
- .my-sm-1 {
- margin-bottom: 0.25rem !important;
- }
- .ml-sm-1,
- .mx-sm-1 {
- margin-left: 0.25rem !important;
- }
- .m-sm-2 {
- margin: 0.5rem !important;
- }
- .mt-sm-2,
- .my-sm-2 {
- margin-top: 0.5rem !important;
- }
- .mr-sm-2,
- .mx-sm-2 {
- margin-right: 0.5rem !important;
- }
- .mb-sm-2,
- .my-sm-2 {
- margin-bottom: 0.5rem !important;
- }
- .ml-sm-2,
- .mx-sm-2 {
- margin-left: 0.5rem !important;
- }
- .m-sm-3 {
- margin: 1rem !important;
- }
- .mt-sm-3,
- .my-sm-3 {
- margin-top: 1rem !important;
- }
- .mr-sm-3,
- .mx-sm-3 {
- margin-right: 1rem !important;
- }
- .mb-sm-3,
- .my-sm-3 {
- margin-bottom: 1rem !important;
- }
- .ml-sm-3,
- .mx-sm-3 {
- margin-left: 1rem !important;
- }
- .m-sm-4 {
- margin: 1.5rem !important;
- }
- .mt-sm-4,
- .my-sm-4 {
- margin-top: 1.5rem !important;
- }
- .mr-sm-4,
- .mx-sm-4 {
- margin-right: 1.5rem !important;
- }
- .mb-sm-4,
- .my-sm-4 {
- margin-bottom: 1.5rem !important;
- }
- .ml-sm-4,
- .mx-sm-4 {
- margin-left: 1.5rem !important;
- }
- .m-sm-5 {
- margin: 3rem !important;
- }
- .mt-sm-5,
- .my-sm-5 {
- margin-top: 3rem !important;
- }
- .mr-sm-5,
- .mx-sm-5 {
- margin-right: 3rem !important;
- }
- .mb-sm-5,
- .my-sm-5 {
- margin-bottom: 3rem !important;
- }
- .ml-sm-5,
- .mx-sm-5 {
- margin-left: 3rem !important;
- }
- .p-sm-0 {
- padding: 0 !important;
- }
- .pt-sm-0,
- .py-sm-0 {
- padding-top: 0 !important;
- }
- .pr-sm-0,
- .px-sm-0 {
- padding-right: 0 !important;
- }
- .pb-sm-0,
- .py-sm-0 {
- padding-bottom: 0 !important;
- }
- .pl-sm-0,
- .px-sm-0 {
- padding-left: 0 !important;
- }
- .p-sm-1 {
- padding: 0.25rem !important;
- }
- .pt-sm-1,
- .py-sm-1 {
- padding-top: 0.25rem !important;
- }
- .pr-sm-1,
- .px-sm-1 {
- padding-right: 0.25rem !important;
- }
- .pb-sm-1,
- .py-sm-1 {
- padding-bottom: 0.25rem !important;
- }
- .pl-sm-1,
- .px-sm-1 {
- padding-left: 0.25rem !important;
- }
- .p-sm-2 {
- padding: 0.5rem !important;
- }
- .pt-sm-2,
- .py-sm-2 {
- padding-top: 0.5rem !important;
- }
- .pr-sm-2,
- .px-sm-2 {
- padding-right: 0.5rem !important;
- }
- .pb-sm-2,
- .py-sm-2 {
- padding-bottom: 0.5rem !important;
- }
- .pl-sm-2,
- .px-sm-2 {
- padding-left: 0.5rem !important;
- }
- .p-sm-3 {
- padding: 1rem !important;
- }
- .pt-sm-3,
- .py-sm-3 {
- padding-top: 1rem !important;
- }
- .pr-sm-3,
- .px-sm-3 {
- padding-right: 1rem !important;
- }
- .pb-sm-3,
- .py-sm-3 {
- padding-bottom: 1rem !important;
- }
- .pl-sm-3,
- .px-sm-3 {
- padding-left: 1rem !important;
- }
- .p-sm-4 {
- padding: 1.5rem !important;
- }
- .pt-sm-4,
- .py-sm-4 {
- padding-top: 1.5rem !important;
- }
- .pr-sm-4,
- .px-sm-4 {
- padding-right: 1.5rem !important;
- }
- .pb-sm-4,
- .py-sm-4 {
- padding-bottom: 1.5rem !important;
- }
- .pl-sm-4,
- .px-sm-4 {
- padding-left: 1.5rem !important;
- }
- .p-sm-5 {
- padding: 3rem !important;
- }
- .pt-sm-5,
- .py-sm-5 {
- padding-top: 3rem !important;
- }
- .pr-sm-5,
- .px-sm-5 {
- padding-right: 3rem !important;
- }
- .pb-sm-5,
- .py-sm-5 {
- padding-bottom: 3rem !important;
- }
- .pl-sm-5,
- .px-sm-5 {
- padding-left: 3rem !important;
- }
- .m-sm-auto {
- margin: auto !important;
- }
- .mt-sm-auto,
- .my-sm-auto {
- margin-top: auto !important;
- }
- .mr-sm-auto,
- .mx-sm-auto {
- margin-right: auto !important;
- }
- .mb-sm-auto,
- .my-sm-auto {
- margin-bottom: auto !important;
- }
- .ml-sm-auto,
- .mx-sm-auto {
- margin-left: auto !important;
- }
-}
-
-@media (min-width: 768px) {
- .m-md-0 {
- margin: 0 !important;
- }
- .mt-md-0,
- .my-md-0 {
- margin-top: 0 !important;
- }
- .mr-md-0,
- .mx-md-0 {
- margin-right: 0 !important;
- }
- .mb-md-0,
- .my-md-0 {
- margin-bottom: 0 !important;
- }
- .ml-md-0,
- .mx-md-0 {
- margin-left: 0 !important;
- }
- .m-md-1 {
- margin: 0.25rem !important;
- }
- .mt-md-1,
- .my-md-1 {
- margin-top: 0.25rem !important;
- }
- .mr-md-1,
- .mx-md-1 {
- margin-right: 0.25rem !important;
- }
- .mb-md-1,
- .my-md-1 {
- margin-bottom: 0.25rem !important;
- }
- .ml-md-1,
- .mx-md-1 {
- margin-left: 0.25rem !important;
- }
- .m-md-2 {
- margin: 0.5rem !important;
- }
- .mt-md-2,
- .my-md-2 {
- margin-top: 0.5rem !important;
- }
- .mr-md-2,
- .mx-md-2 {
- margin-right: 0.5rem !important;
- }
- .mb-md-2,
- .my-md-2 {
- margin-bottom: 0.5rem !important;
- }
- .ml-md-2,
- .mx-md-2 {
- margin-left: 0.5rem !important;
- }
- .m-md-3 {
- margin: 1rem !important;
- }
- .mt-md-3,
- .my-md-3 {
- margin-top: 1rem !important;
- }
- .mr-md-3,
- .mx-md-3 {
- margin-right: 1rem !important;
- }
- .mb-md-3,
- .my-md-3 {
- margin-bottom: 1rem !important;
- }
- .ml-md-3,
- .mx-md-3 {
- margin-left: 1rem !important;
- }
- .m-md-4 {
- margin: 1.5rem !important;
- }
- .mt-md-4,
- .my-md-4 {
- margin-top: 1.5rem !important;
- }
- .mr-md-4,
- .mx-md-4 {
- margin-right: 1.5rem !important;
- }
- .mb-md-4,
- .my-md-4 {
- margin-bottom: 1.5rem !important;
- }
- .ml-md-4,
- .mx-md-4 {
- margin-left: 1.5rem !important;
- }
- .m-md-5 {
- margin: 3rem !important;
- }
- .mt-md-5,
- .my-md-5 {
- margin-top: 3rem !important;
- }
- .mr-md-5,
- .mx-md-5 {
- margin-right: 3rem !important;
- }
- .mb-md-5,
- .my-md-5 {
- margin-bottom: 3rem !important;
- }
- .ml-md-5,
- .mx-md-5 {
- margin-left: 3rem !important;
- }
- .p-md-0 {
- padding: 0 !important;
- }
- .pt-md-0,
- .py-md-0 {
- padding-top: 0 !important;
- }
- .pr-md-0,
- .px-md-0 {
- padding-right: 0 !important;
- }
- .pb-md-0,
- .py-md-0 {
- padding-bottom: 0 !important;
- }
- .pl-md-0,
- .px-md-0 {
- padding-left: 0 !important;
- }
- .p-md-1 {
- padding: 0.25rem !important;
- }
- .pt-md-1,
- .py-md-1 {
- padding-top: 0.25rem !important;
- }
- .pr-md-1,
- .px-md-1 {
- padding-right: 0.25rem !important;
- }
- .pb-md-1,
- .py-md-1 {
- padding-bottom: 0.25rem !important;
- }
- .pl-md-1,
- .px-md-1 {
- padding-left: 0.25rem !important;
- }
- .p-md-2 {
- padding: 0.5rem !important;
- }
- .pt-md-2,
- .py-md-2 {
- padding-top: 0.5rem !important;
- }
- .pr-md-2,
- .px-md-2 {
- padding-right: 0.5rem !important;
- }
- .pb-md-2,
- .py-md-2 {
- padding-bottom: 0.5rem !important;
- }
- .pl-md-2,
- .px-md-2 {
- padding-left: 0.5rem !important;
- }
- .p-md-3 {
- padding: 1rem !important;
- }
- .pt-md-3,
- .py-md-3 {
- padding-top: 1rem !important;
- }
- .pr-md-3,
- .px-md-3 {
- padding-right: 1rem !important;
- }
- .pb-md-3,
- .py-md-3 {
- padding-bottom: 1rem !important;
- }
- .pl-md-3,
- .px-md-3 {
- padding-left: 1rem !important;
- }
- .p-md-4 {
- padding: 1.5rem !important;
- }
- .pt-md-4,
- .py-md-4 {
- padding-top: 1.5rem !important;
- }
- .pr-md-4,
- .px-md-4 {
- padding-right: 1.5rem !important;
- }
- .pb-md-4,
- .py-md-4 {
- padding-bottom: 1.5rem !important;
- }
- .pl-md-4,
- .px-md-4 {
- padding-left: 1.5rem !important;
- }
- .p-md-5 {
- padding: 3rem !important;
- }
- .pt-md-5,
- .py-md-5 {
- padding-top: 3rem !important;
- }
- .pr-md-5,
- .px-md-5 {
- padding-right: 3rem !important;
- }
- .pb-md-5,
- .py-md-5 {
- padding-bottom: 3rem !important;
- }
- .pl-md-5,
- .px-md-5 {
- padding-left: 3rem !important;
- }
- .m-md-auto {
- margin: auto !important;
- }
- .mt-md-auto,
- .my-md-auto {
- margin-top: auto !important;
- }
- .mr-md-auto,
- .mx-md-auto {
- margin-right: auto !important;
- }
- .mb-md-auto,
- .my-md-auto {
- margin-bottom: auto !important;
- }
- .ml-md-auto,
- .mx-md-auto {
- margin-left: auto !important;
- }
-}
-
-@media (min-width: 992px) {
- .m-lg-0 {
- margin: 0 !important;
- }
- .mt-lg-0,
- .my-lg-0 {
- margin-top: 0 !important;
- }
- .mr-lg-0,
- .mx-lg-0 {
- margin-right: 0 !important;
- }
- .mb-lg-0,
- .my-lg-0 {
- margin-bottom: 0 !important;
- }
- .ml-lg-0,
- .mx-lg-0 {
- margin-left: 0 !important;
- }
- .m-lg-1 {
- margin: 0.25rem !important;
- }
- .mt-lg-1,
- .my-lg-1 {
- margin-top: 0.25rem !important;
- }
- .mr-lg-1,
- .mx-lg-1 {
- margin-right: 0.25rem !important;
- }
- .mb-lg-1,
- .my-lg-1 {
- margin-bottom: 0.25rem !important;
- }
- .ml-lg-1,
- .mx-lg-1 {
- margin-left: 0.25rem !important;
- }
- .m-lg-2 {
- margin: 0.5rem !important;
- }
- .mt-lg-2,
- .my-lg-2 {
- margin-top: 0.5rem !important;
- }
- .mr-lg-2,
- .mx-lg-2 {
- margin-right: 0.5rem !important;
- }
- .mb-lg-2,
- .my-lg-2 {
- margin-bottom: 0.5rem !important;
- }
- .ml-lg-2,
- .mx-lg-2 {
- margin-left: 0.5rem !important;
- }
- .m-lg-3 {
- margin: 1rem !important;
- }
- .mt-lg-3,
- .my-lg-3 {
- margin-top: 1rem !important;
- }
- .mr-lg-3,
- .mx-lg-3 {
- margin-right: 1rem !important;
- }
- .mb-lg-3,
- .my-lg-3 {
- margin-bottom: 1rem !important;
- }
- .ml-lg-3,
- .mx-lg-3 {
- margin-left: 1rem !important;
- }
- .m-lg-4 {
- margin: 1.5rem !important;
- }
- .mt-lg-4,
- .my-lg-4 {
- margin-top: 1.5rem !important;
- }
- .mr-lg-4,
- .mx-lg-4 {
- margin-right: 1.5rem !important;
- }
- .mb-lg-4,
- .my-lg-4 {
- margin-bottom: 1.5rem !important;
- }
- .ml-lg-4,
- .mx-lg-4 {
- margin-left: 1.5rem !important;
- }
- .m-lg-5 {
- margin: 3rem !important;
- }
- .mt-lg-5,
- .my-lg-5 {
- margin-top: 3rem !important;
- }
- .mr-lg-5,
- .mx-lg-5 {
- margin-right: 3rem !important;
- }
- .mb-lg-5,
- .my-lg-5 {
- margin-bottom: 3rem !important;
- }
- .ml-lg-5,
- .mx-lg-5 {
- margin-left: 3rem !important;
- }
- .p-lg-0 {
- padding: 0 !important;
- }
- .pt-lg-0,
- .py-lg-0 {
- padding-top: 0 !important;
- }
- .pr-lg-0,
- .px-lg-0 {
- padding-right: 0 !important;
- }
- .pb-lg-0,
- .py-lg-0 {
- padding-bottom: 0 !important;
- }
- .pl-lg-0,
- .px-lg-0 {
- padding-left: 0 !important;
- }
- .p-lg-1 {
- padding: 0.25rem !important;
- }
- .pt-lg-1,
- .py-lg-1 {
- padding-top: 0.25rem !important;
- }
- .pr-lg-1,
- .px-lg-1 {
- padding-right: 0.25rem !important;
- }
- .pb-lg-1,
- .py-lg-1 {
- padding-bottom: 0.25rem !important;
- }
- .pl-lg-1,
- .px-lg-1 {
- padding-left: 0.25rem !important;
- }
- .p-lg-2 {
- padding: 0.5rem !important;
- }
- .pt-lg-2,
- .py-lg-2 {
- padding-top: 0.5rem !important;
- }
- .pr-lg-2,
- .px-lg-2 {
- padding-right: 0.5rem !important;
- }
- .pb-lg-2,
- .py-lg-2 {
- padding-bottom: 0.5rem !important;
- }
- .pl-lg-2,
- .px-lg-2 {
- padding-left: 0.5rem !important;
- }
- .p-lg-3 {
- padding: 1rem !important;
- }
- .pt-lg-3,
- .py-lg-3 {
- padding-top: 1rem !important;
- }
- .pr-lg-3,
- .px-lg-3 {
- padding-right: 1rem !important;
- }
- .pb-lg-3,
- .py-lg-3 {
- padding-bottom: 1rem !important;
- }
- .pl-lg-3,
- .px-lg-3 {
- padding-left: 1rem !important;
- }
- .p-lg-4 {
- padding: 1.5rem !important;
- }
- .pt-lg-4,
- .py-lg-4 {
- padding-top: 1.5rem !important;
- }
- .pr-lg-4,
- .px-lg-4 {
- padding-right: 1.5rem !important;
- }
- .pb-lg-4,
- .py-lg-4 {
- padding-bottom: 1.5rem !important;
- }
- .pl-lg-4,
- .px-lg-4 {
- padding-left: 1.5rem !important;
- }
- .p-lg-5 {
- padding: 3rem !important;
- }
- .pt-lg-5,
- .py-lg-5 {
- padding-top: 3rem !important;
- }
- .pr-lg-5,
- .px-lg-5 {
- padding-right: 3rem !important;
- }
- .pb-lg-5,
- .py-lg-5 {
- padding-bottom: 3rem !important;
- }
- .pl-lg-5,
- .px-lg-5 {
- padding-left: 3rem !important;
- }
- .m-lg-auto {
- margin: auto !important;
- }
- .mt-lg-auto,
- .my-lg-auto {
- margin-top: auto !important;
- }
- .mr-lg-auto,
- .mx-lg-auto {
- margin-right: auto !important;
- }
- .mb-lg-auto,
- .my-lg-auto {
- margin-bottom: auto !important;
- }
- .ml-lg-auto,
- .mx-lg-auto {
- margin-left: auto !important;
- }
-}
-
-@media (min-width: 1200px) {
- .m-xl-0 {
- margin: 0 !important;
- }
- .mt-xl-0,
- .my-xl-0 {
- margin-top: 0 !important;
- }
- .mr-xl-0,
- .mx-xl-0 {
- margin-right: 0 !important;
- }
- .mb-xl-0,
- .my-xl-0 {
- margin-bottom: 0 !important;
- }
- .ml-xl-0,
- .mx-xl-0 {
- margin-left: 0 !important;
- }
- .m-xl-1 {
- margin: 0.25rem !important;
- }
- .mt-xl-1,
- .my-xl-1 {
- margin-top: 0.25rem !important;
- }
- .mr-xl-1,
- .mx-xl-1 {
- margin-right: 0.25rem !important;
- }
- .mb-xl-1,
- .my-xl-1 {
- margin-bottom: 0.25rem !important;
- }
- .ml-xl-1,
- .mx-xl-1 {
- margin-left: 0.25rem !important;
- }
- .m-xl-2 {
- margin: 0.5rem !important;
- }
- .mt-xl-2,
- .my-xl-2 {
- margin-top: 0.5rem !important;
- }
- .mr-xl-2,
- .mx-xl-2 {
- margin-right: 0.5rem !important;
- }
- .mb-xl-2,
- .my-xl-2 {
- margin-bottom: 0.5rem !important;
- }
- .ml-xl-2,
- .mx-xl-2 {
- margin-left: 0.5rem !important;
- }
- .m-xl-3 {
- margin: 1rem !important;
- }
- .mt-xl-3,
- .my-xl-3 {
- margin-top: 1rem !important;
- }
- .mr-xl-3,
- .mx-xl-3 {
- margin-right: 1rem !important;
- }
- .mb-xl-3,
- .my-xl-3 {
- margin-bottom: 1rem !important;
- }
- .ml-xl-3,
- .mx-xl-3 {
- margin-left: 1rem !important;
- }
- .m-xl-4 {
- margin: 1.5rem !important;
- }
- .mt-xl-4,
- .my-xl-4 {
- margin-top: 1.5rem !important;
- }
- .mr-xl-4,
- .mx-xl-4 {
- margin-right: 1.5rem !important;
- }
- .mb-xl-4,
- .my-xl-4 {
- margin-bottom: 1.5rem !important;
- }
- .ml-xl-4,
- .mx-xl-4 {
- margin-left: 1.5rem !important;
- }
- .m-xl-5 {
- margin: 3rem !important;
- }
- .mt-xl-5,
- .my-xl-5 {
- margin-top: 3rem !important;
- }
- .mr-xl-5,
- .mx-xl-5 {
- margin-right: 3rem !important;
- }
- .mb-xl-5,
- .my-xl-5 {
- margin-bottom: 3rem !important;
- }
- .ml-xl-5,
- .mx-xl-5 {
- margin-left: 3rem !important;
- }
- .p-xl-0 {
- padding: 0 !important;
- }
- .pt-xl-0,
- .py-xl-0 {
- padding-top: 0 !important;
- }
- .pr-xl-0,
- .px-xl-0 {
- padding-right: 0 !important;
- }
- .pb-xl-0,
- .py-xl-0 {
- padding-bottom: 0 !important;
- }
- .pl-xl-0,
- .px-xl-0 {
- padding-left: 0 !important;
- }
- .p-xl-1 {
- padding: 0.25rem !important;
- }
- .pt-xl-1,
- .py-xl-1 {
- padding-top: 0.25rem !important;
- }
- .pr-xl-1,
- .px-xl-1 {
- padding-right: 0.25rem !important;
- }
- .pb-xl-1,
- .py-xl-1 {
- padding-bottom: 0.25rem !important;
- }
- .pl-xl-1,
- .px-xl-1 {
- padding-left: 0.25rem !important;
- }
- .p-xl-2 {
- padding: 0.5rem !important;
- }
- .pt-xl-2,
- .py-xl-2 {
- padding-top: 0.5rem !important;
- }
- .pr-xl-2,
- .px-xl-2 {
- padding-right: 0.5rem !important;
- }
- .pb-xl-2,
- .py-xl-2 {
- padding-bottom: 0.5rem !important;
- }
- .pl-xl-2,
- .px-xl-2 {
- padding-left: 0.5rem !important;
- }
- .p-xl-3 {
- padding: 1rem !important;
- }
- .pt-xl-3,
- .py-xl-3 {
- padding-top: 1rem !important;
- }
- .pr-xl-3,
- .px-xl-3 {
- padding-right: 1rem !important;
- }
- .pb-xl-3,
- .py-xl-3 {
- padding-bottom: 1rem !important;
- }
- .pl-xl-3,
- .px-xl-3 {
- padding-left: 1rem !important;
- }
- .p-xl-4 {
- padding: 1.5rem !important;
- }
- .pt-xl-4,
- .py-xl-4 {
- padding-top: 1.5rem !important;
- }
- .pr-xl-4,
- .px-xl-4 {
- padding-right: 1.5rem !important;
- }
- .pb-xl-4,
- .py-xl-4 {
- padding-bottom: 1.5rem !important;
- }
- .pl-xl-4,
- .px-xl-4 {
- padding-left: 1.5rem !important;
- }
- .p-xl-5 {
- padding: 3rem !important;
- }
- .pt-xl-5,
- .py-xl-5 {
- padding-top: 3rem !important;
- }
- .pr-xl-5,
- .px-xl-5 {
- padding-right: 3rem !important;
- }
- .pb-xl-5,
- .py-xl-5 {
- padding-bottom: 3rem !important;
- }
- .pl-xl-5,
- .px-xl-5 {
- padding-left: 3rem !important;
- }
- .m-xl-auto {
- margin: auto !important;
- }
- .mt-xl-auto,
- .my-xl-auto {
- margin-top: auto !important;
- }
- .mr-xl-auto,
- .mx-xl-auto {
- margin-right: auto !important;
- }
- .mb-xl-auto,
- .my-xl-auto {
- margin-bottom: auto !important;
- }
- .ml-xl-auto,
- .mx-xl-auto {
- margin-left: auto !important;
- }
-}
-
-.text-monospace {
- font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
-}
-
-.text-justify {
- text-align: justify !important;
-}
-
-.text-nowrap {
- white-space: nowrap !important;
-}
-
-.text-truncate {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.text-left {
- text-align: left !important;
-}
-
-.text-right {
- text-align: right !important;
-}
-
-.text-center {
- text-align: center !important;
-}
-
-@media (min-width: 576px) {
- .text-sm-left {
- text-align: left !important;
- }
- .text-sm-right {
- text-align: right !important;
- }
- .text-sm-center {
- text-align: center !important;
- }
-}
-
-@media (min-width: 768px) {
- .text-md-left {
- text-align: left !important;
- }
- .text-md-right {
- text-align: right !important;
- }
- .text-md-center {
- text-align: center !important;
- }
-}
-
-@media (min-width: 992px) {
- .text-lg-left {
- text-align: left !important;
- }
- .text-lg-right {
- text-align: right !important;
- }
- .text-lg-center {
- text-align: center !important;
- }
-}
-
-@media (min-width: 1200px) {
- .text-xl-left {
- text-align: left !important;
- }
- .text-xl-right {
- text-align: right !important;
- }
- .text-xl-center {
- text-align: center !important;
- }
-}
-
-.text-lowercase {
- text-transform: lowercase !important;
-}
-
-.text-uppercase {
- text-transform: uppercase !important;
-}
-
-.text-capitalize {
- text-transform: capitalize !important;
-}
-
-.font-weight-light {
- font-weight: 300 !important;
-}
-
-.font-weight-normal {
- font-weight: 400 !important;
-}
-
-.font-weight-bold {
- font-weight: 700 !important;
-}
-
-.font-italic {
- font-style: italic !important;
-}
-
-.text-white {
- color: #fff !important;
-}
-
-.text-primary {
- color: #007bff !important;
-}
-
-a.text-primary:hover, a.text-primary:focus {
- color: #0062cc !important;
-}
-
-.text-secondary {
- color: #6c757d !important;
-}
-
-a.text-secondary:hover, a.text-secondary:focus {
- color: #545b62 !important;
-}
-
-.text-success {
- color: #28a745 !important;
-}
-
-a.text-success:hover, a.text-success:focus {
- color: #1e7e34 !important;
-}
-
-.text-info {
- color: #17a2b8 !important;
-}
-
-a.text-info:hover, a.text-info:focus {
- color: #117a8b !important;
-}
-
-.text-warning {
- color: #ffc107 !important;
-}
-
-a.text-warning:hover, a.text-warning:focus {
- color: #d39e00 !important;
-}
-
-.text-danger {
- color: #dc3545 !important;
-}
-
-a.text-danger:hover, a.text-danger:focus {
- color: #bd2130 !important;
-}
-
-.text-light {
- color: #f8f9fa !important;
-}
-
-a.text-light:hover, a.text-light:focus {
- color: #dae0e5 !important;
-}
-
-.text-dark {
- color: #343a40 !important;
-}
-
-a.text-dark:hover, a.text-dark:focus {
- color: #1d2124 !important;
-}
-
-.text-body {
- color: #212529 !important;
-}
-
-.text-muted {
- color: #6c757d !important;
-}
-
-.text-black-50 {
- color: rgba(0, 0, 0, 0.5) !important;
-}
-
-.text-white-50 {
- color: rgba(255, 255, 255, 0.5) !important;
-}
-
-.text-hide {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-
-.visible {
- visibility: visible !important;
-}
-
-.invisible {
- visibility: hidden !important;
-}
-
-@media print {
- *,
- *::before,
- *::after {
- text-shadow: none !important;
- box-shadow: none !important;
- }
- a:not(.btn) {
- text-decoration: underline;
- }
- abbr[title]::after {
- content: " (" attr(title) ")";
- }
- pre {
- white-space: pre-wrap !important;
- }
- pre,
- blockquote {
- border: 1px solid #adb5bd;
- page-break-inside: avoid;
- }
- thead {
- display: table-header-group;
- }
- tr,
- img {
- page-break-inside: avoid;
- }
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
- h2,
- h3 {
- page-break-after: avoid;
- }
- @page {
- size: a3;
- }
- body {
- min-width: 992px !important;
- }
- .container {
- min-width: 992px !important;
- }
- .navbar {
- display: none;
- }
- .badge {
- border: 1px solid #000;
- }
- .table {
- border-collapse: collapse !important;
- }
- .table td,
- .table th {
- background-color: #fff !important;
- }
- .table-bordered th,
- .table-bordered td {
- border: 1px solid #dee2e6 !important;
- }
- .table-dark {
- color: inherit;
- }
- .table-dark th,
- .table-dark td,
- .table-dark thead th,
- .table-dark tbody + tbody {
- border-color: #dee2e6;
- }
- .table .thead-dark th {
- color: inherit;
- border-color: #dee2e6;
- }
-}
-/*# sourceMappingURL=bootstrap.css.map */
\ No newline at end of file
diff --git a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.js b/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.js
deleted file mode 100644
index adb3400738..0000000000
--- a/templates/service/app/MyCompanyName.MyProjectName.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.js
+++ /dev/null
@@ -1,6444 +0,0 @@
-/*!
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
- typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
- (factory((global.bootstrap = {}),global.jQuery));
-}(this, (function (exports,$) { 'use strict';
-
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
-
- function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- return Constructor;
- }
-
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- }
-
- function _objectSpread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {};
- var ownKeys = Object.keys(source);
-
- if (typeof Object.getOwnPropertySymbols === 'function') {
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
- }));
- }
-
- ownKeys.forEach(function (key) {
- _defineProperty(target, key, source[key]);
- });
- }
-
- return target;
- }
-
- function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- subClass.__proto__ = superClass;
- }
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Util = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Private TransitionEnd Helpers
- * ------------------------------------------------------------------------
- */
- var TRANSITION_END = 'transitionend';
- var MAX_UID = 1000000;
- var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
-
- function toType(obj) {
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
- }
-
- function getSpecialTransitionEndEvent() {
- return {
- bindType: TRANSITION_END,
- delegateType: TRANSITION_END,
- handle: function handle(event) {
- if ($$$1(event.target).is(this)) {
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
- }
-
- return undefined; // eslint-disable-line no-undefined
- }
- };
- }
-
- function transitionEndEmulator(duration) {
- var _this = this;
-
- var called = false;
- $$$1(this).one(Util.TRANSITION_END, function () {
- called = true;
- });
- setTimeout(function () {
- if (!called) {
- Util.triggerTransitionEnd(_this);
- }
- }, duration);
- return this;
- }
-
- function setTransitionEndSupport() {
- $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
- $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
- }
- /**
- * --------------------------------------------------------------------------
- * Public Util Api
- * --------------------------------------------------------------------------
- */
-
-
- var Util = {
- TRANSITION_END: 'bsTransitionEnd',
- getUID: function getUID(prefix) {
- do {
- // eslint-disable-next-line no-bitwise
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
- } while (document.getElementById(prefix));
-
- return prefix;
- },
- getSelectorFromElement: function getSelectorFromElement(element) {
- var selector = element.getAttribute('data-target');
-
- if (!selector || selector === '#') {
- selector = element.getAttribute('href') || '';
- }
-
- try {
- var $selector = $$$1(document).find(selector);
- return $selector.length > 0 ? selector : null;
- } catch (err) {
- return null;
- }
- },
- getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
- if (!element) {
- return 0;
- } // Get transition-duration of the element
-
-
- var transitionDuration = $$$1(element).css('transition-duration');
- var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
-
- if (!floatTransitionDuration) {
- return 0;
- } // If multiple durations are defined, take the first
-
-
- transitionDuration = transitionDuration.split(',')[0];
- return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
- },
- reflow: function reflow(element) {
- return element.offsetHeight;
- },
- triggerTransitionEnd: function triggerTransitionEnd(element) {
- $$$1(element).trigger(TRANSITION_END);
- },
- // TODO: Remove in v5
- supportsTransitionEnd: function supportsTransitionEnd() {
- return Boolean(TRANSITION_END);
- },
- isElement: function isElement(obj) {
- return (obj[0] || obj).nodeType;
- },
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
- for (var property in configTypes) {
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
- var expectedTypes = configTypes[property];
- var value = config[property];
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
- if (!new RegExp(expectedTypes).test(valueType)) {
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
- }
- }
- }
- }
- };
- setTransitionEndSupport();
- return Util;
- }($);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Alert = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'alert';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.alert';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var Selector = {
- DISMISS: '[data-dismiss="alert"]'
- };
- var Event = {
- CLOSE: "close" + EVENT_KEY,
- CLOSED: "closed" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- ALERT: 'alert',
- FADE: 'fade',
- SHOW: 'show'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Alert =
- /*#__PURE__*/
- function () {
- function Alert(element) {
- this._element = element;
- } // Getters
-
-
- var _proto = Alert.prototype;
-
- // Public
- _proto.close = function close(element) {
- var rootElement = this._element;
-
- if (element) {
- rootElement = this._getRootElement(element);
- }
-
- var customEvent = this._triggerCloseEvent(rootElement);
-
- if (customEvent.isDefaultPrevented()) {
- return;
- }
-
- this._removeElement(rootElement);
- };
-
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Private
-
-
- _proto._getRootElement = function _getRootElement(element) {
- var selector = Util.getSelectorFromElement(element);
- var parent = false;
-
- if (selector) {
- parent = $$$1(selector)[0];
- }
-
- if (!parent) {
- parent = $$$1(element).closest("." + ClassName.ALERT)[0];
- }
-
- return parent;
- };
-
- _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
- var closeEvent = $$$1.Event(Event.CLOSE);
- $$$1(element).trigger(closeEvent);
- return closeEvent;
- };
-
- _proto._removeElement = function _removeElement(element) {
- var _this = this;
-
- $$$1(element).removeClass(ClassName.SHOW);
-
- if (!$$$1(element).hasClass(ClassName.FADE)) {
- this._destroyElement(element);
-
- return;
- }
-
- var transitionDuration = Util.getTransitionDurationFromElement(element);
- $$$1(element).one(Util.TRANSITION_END, function (event) {
- return _this._destroyElement(element, event);
- }).emulateTransitionEnd(transitionDuration);
- };
-
- _proto._destroyElement = function _destroyElement(element) {
- $$$1(element).detach().trigger(Event.CLOSED).remove();
- }; // Static
-
-
- Alert._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $$$1(this);
- var data = $element.data(DATA_KEY);
-
- if (!data) {
- data = new Alert(this);
- $element.data(DATA_KEY, data);
- }
-
- if (config === 'close') {
- data[config](this);
- }
- });
- };
-
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
- return function (event) {
- if (event) {
- event.preventDefault();
- }
-
- alertInstance.close(this);
- };
- };
-
- _createClass(Alert, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
-
- return Alert;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
-
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Alert._jQueryInterface;
- $$$1.fn[NAME].Constructor = Alert;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Alert._jQueryInterface;
- };
-
- return Alert;
- }($);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Button = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'button';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.button';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ClassName = {
- ACTIVE: 'active',
- BUTTON: 'btn',
- FOCUS: 'focus'
- };
- var Selector = {
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
- DATA_TOGGLE: '[data-toggle="buttons"]',
- INPUT: 'input',
- ACTIVE: '.active',
- BUTTON: '.btn'
- };
- var Event = {
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Button =
- /*#__PURE__*/
- function () {
- function Button(element) {
- this._element = element;
- } // Getters
-
-
- var _proto = Button.prototype;
-
- // Public
- _proto.toggle = function toggle() {
- var triggerChangeEvent = true;
- var addAriaPressed = true;
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
-
- if (rootElement) {
- var input = $$$1(this._element).find(Selector.INPUT)[0];
-
- if (input) {
- if (input.type === 'radio') {
- if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
- triggerChangeEvent = false;
- } else {
- var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
-
- if (activeElement) {
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
- }
- }
- }
-
- if (triggerChangeEvent) {
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
- return;
- }
-
- input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
- $$$1(input).trigger('change');
- }
-
- input.focus();
- addAriaPressed = false;
- }
- }
-
- if (addAriaPressed) {
- this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
- }
-
- if (triggerChangeEvent) {
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
- }
- };
-
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Static
-
-
- Button._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- if (!data) {
- data = new Button(this);
- $$$1(this).data(DATA_KEY, data);
- }
-
- if (config === 'toggle') {
- data[config]();
- }
- });
- };
-
- _createClass(Button, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
-
- return Button;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
-
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- event.preventDefault();
- var button = event.target;
-
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
- button = $$$1(button).closest(Selector.BUTTON);
- }
-
- Button._jQueryInterface.call($$$1(button), 'toggle');
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- var button = $$$1(event.target).closest(Selector.BUTTON)[0];
- $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Button._jQueryInterface;
- $$$1.fn[NAME].Constructor = Button;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Button._jQueryInterface;
- };
-
- return Button;
- }($);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Carousel = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'carousel';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.carousel';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
- var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
- var Default = {
- interval: 5000,
- keyboard: true,
- slide: false,
- pause: 'hover',
- wrap: true
- };
- var DefaultType = {
- interval: '(number|boolean)',
- keyboard: 'boolean',
- slide: '(boolean|string)',
- pause: '(string|boolean)',
- wrap: 'boolean'
- };
- var Direction = {
- NEXT: 'next',
- PREV: 'prev',
- LEFT: 'left',
- RIGHT: 'right'
- };
- var Event = {
- SLIDE: "slide" + EVENT_KEY,
- SLID: "slid" + EVENT_KEY,
- KEYDOWN: "keydown" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
- TOUCHEND: "touchend" + EVENT_KEY,
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- CAROUSEL: 'carousel',
- ACTIVE: 'active',
- SLIDE: 'slide',
- RIGHT: 'carousel-item-right',
- LEFT: 'carousel-item-left',
- NEXT: 'carousel-item-next',
- PREV: 'carousel-item-prev',
- ITEM: 'carousel-item'
- };
- var Selector = {
- ACTIVE: '.active',
- ACTIVE_ITEM: '.active.carousel-item',
- ITEM: '.carousel-item',
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
- INDICATORS: '.carousel-indicators',
- DATA_SLIDE: '[data-slide], [data-slide-to]',
- DATA_RIDE: '[data-ride="carousel"]'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Carousel =
- /*#__PURE__*/
- function () {
- function Carousel(element, config) {
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this.touchTimeout = null;
- this._config = this._getConfig(config);
- this._element = $$$1(element)[0];
- this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
-
- this._addEventListeners();
- } // Getters
-
-
- var _proto = Carousel.prototype;
-
- // Public
- _proto.next = function next() {
- if (!this._isSliding) {
- this._slide(Direction.NEXT);
- }
- };
-
- _proto.nextWhenVisible = function nextWhenVisible() {
- // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
- if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
- this.next();
- }
- };
-
- _proto.prev = function prev() {
- if (!this._isSliding) {
- this._slide(Direction.PREV);
- }
- };
-
- _proto.pause = function pause(event) {
- if (!event) {
- this._isPaused = true;
- }
-
- if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) {
- Util.triggerTransitionEnd(this._element);
- this.cycle(true);
- }
-
- clearInterval(this._interval);
- this._interval = null;
- };
-
- _proto.cycle = function cycle(event) {
- if (!event) {
- this._isPaused = false;
- }
-
- if (this._interval) {
- clearInterval(this._interval);
- this._interval = null;
- }
-
- if (this._config.interval && !this._isPaused) {
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
- }
- };
-
- _proto.to = function to(index) {
- var _this = this;
-
- this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
-
- var activeIndex = this._getItemIndex(this._activeElement);
-
- if (index > this._items.length - 1 || index < 0) {
- return;
- }
-
- if (this._isSliding) {
- $$$1(this._element).one(Event.SLID, function () {
- return _this.to(index);
- });
- return;
- }
-
- if (activeIndex === index) {
- this.pause();
- this.cycle();
- return;
- }
-
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
-
- this._slide(direction, this._items[index]);
- };
-
- _proto.dispose = function dispose() {
- $$$1(this._element).off(EVENT_KEY);
- $$$1.removeData(this._element, DATA_KEY);
- this._items = null;
- this._config = null;
- this._element = null;
- this._interval = null;
- this._isPaused = null;
- this._isSliding = null;
- this._activeElement = null;
- this._indicatorsElement = null;
- }; // Private
-
-
- _proto._getConfig = function _getConfig(config) {
- config = _objectSpread({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
-
- _proto._addEventListeners = function _addEventListeners() {
- var _this2 = this;
-
- if (this._config.keyboard) {
- $$$1(this._element).on(Event.KEYDOWN, function (event) {
- return _this2._keydown(event);
- });
- }
-
- if (this._config.pause === 'hover') {
- $$$1(this._element).on(Event.MOUSEENTER, function (event) {
- return _this2.pause(event);
- }).on(Event.MOUSELEAVE, function (event) {
- return _this2.cycle(event);
- });
-
- if ('ontouchstart' in document.documentElement) {
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
- $$$1(this._element).on(Event.TOUCHEND, function () {
- _this2.pause();
-
- if (_this2.touchTimeout) {
- clearTimeout(_this2.touchTimeout);
- }
-
- _this2.touchTimeout = setTimeout(function (event) {
- return _this2.cycle(event);
- }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
- });
- }
- }
- };
-
- _proto._keydown = function _keydown(event) {
- if (/input|textarea/i.test(event.target.tagName)) {
- return;
- }
-
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
- event.preventDefault();
- this.prev();
- break;
-
- case ARROW_RIGHT_KEYCODE:
- event.preventDefault();
- this.next();
- break;
-
- default:
- }
- };
-
- _proto._getItemIndex = function _getItemIndex(element) {
- this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
- return this._items.indexOf(element);
- };
-
- _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
- var isNextDirection = direction === Direction.NEXT;
- var isPrevDirection = direction === Direction.PREV;
-
- var activeIndex = this._getItemIndex(activeElement);
-
- var lastItemIndex = this._items.length - 1;
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
-
- if (isGoingToWrap && !this._config.wrap) {
- return activeElement;
- }
-
- var delta = direction === Direction.PREV ? -1 : 1;
- var itemIndex = (activeIndex + delta) % this._items.length;
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
- };
-
- _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
- var targetIndex = this._getItemIndex(relatedTarget);
-
- var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
-
- var slideEvent = $$$1.Event(Event.SLIDE, {
- relatedTarget: relatedTarget,
- direction: eventDirectionName,
- from: fromIndex,
- to: targetIndex
- });
- $$$1(this._element).trigger(slideEvent);
- return slideEvent;
- };
-
- _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
- if (this._indicatorsElement) {
- $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
-
- if (nextIndicator) {
- $$$1(nextIndicator).addClass(ClassName.ACTIVE);
- }
- }
- };
-
- _proto._slide = function _slide(direction, element) {
- var _this3 = this;
-
- var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
-
- var activeElementIndex = this._getItemIndex(activeElement);
-
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
-
- var nextElementIndex = this._getItemIndex(nextElement);
-
- var isCycling = Boolean(this._interval);
- var directionalClassName;
- var orderClassName;
- var eventDirectionName;
-
- if (direction === Direction.NEXT) {
- directionalClassName = ClassName.LEFT;
- orderClassName = ClassName.NEXT;
- eventDirectionName = Direction.LEFT;
- } else {
- directionalClassName = ClassName.RIGHT;
- orderClassName = ClassName.PREV;
- eventDirectionName = Direction.RIGHT;
- }
-
- if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
- this._isSliding = false;
- return;
- }
-
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
-
- if (slideEvent.isDefaultPrevented()) {
- return;
- }
-
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
- return;
- }
-
- this._isSliding = true;
-
- if (isCycling) {
- this.pause();
- }
-
- this._setActiveIndicatorElement(nextElement);
-
- var slidEvent = $$$1.Event(Event.SLID, {
- relatedTarget: nextElement,
- direction: eventDirectionName,
- from: activeElementIndex,
- to: nextElementIndex
- });
-
- if ($$$1(this._element).hasClass(ClassName.SLIDE)) {
- $$$1(nextElement).addClass(orderClassName);
- Util.reflow(nextElement);
- $$$1(activeElement).addClass(directionalClassName);
- $$$1(nextElement).addClass(directionalClassName);
- var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
- $$$1(activeElement).one(Util.TRANSITION_END, function () {
- $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
- $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
- _this3._isSliding = false;
- setTimeout(function () {
- return $$$1(_this3._element).trigger(slidEvent);
- }, 0);
- }).emulateTransitionEnd(transitionDuration);
- } else {
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
- $$$1(nextElement).addClass(ClassName.ACTIVE);
- this._isSliding = false;
- $$$1(this._element).trigger(slidEvent);
- }
-
- if (isCycling) {
- this.cycle();
- }
- }; // Static
-
-
- Carousel._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- var _config = _objectSpread({}, Default, $$$1(this).data());
-
- if (typeof config === 'object') {
- _config = _objectSpread({}, _config, config);
- }
-
- var action = typeof config === 'string' ? config : _config.slide;
-
- if (!data) {
- data = new Carousel(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
-
- if (typeof config === 'number') {
- data.to(config);
- } else if (typeof action === 'string') {
- if (typeof data[action] === 'undefined') {
- throw new TypeError("No method named \"" + action + "\"");
- }
-
- data[action]();
- } else if (_config.interval) {
- data.pause();
- data.cycle();
- }
- });
- };
-
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
- var selector = Util.getSelectorFromElement(this);
-
- if (!selector) {
- return;
- }
-
- var target = $$$1(selector)[0];
-
- if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
- return;
- }
-
- var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());
-
- var slideIndex = this.getAttribute('data-slide-to');
-
- if (slideIndex) {
- config.interval = false;
- }
-
- Carousel._jQueryInterface.call($$$1(target), config);
-
- if (slideIndex) {
- $$$1(target).data(DATA_KEY).to(slideIndex);
- }
-
- event.preventDefault();
- };
-
- _createClass(Carousel, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
-
- return Carousel;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
-
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
- $$$1(window).on(Event.LOAD_DATA_API, function () {
- $$$1(Selector.DATA_RIDE).each(function () {
- var $carousel = $$$1(this);
-
- Carousel._jQueryInterface.call($carousel, $carousel.data());
- });
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Carousel._jQueryInterface;
- $$$1.fn[NAME].Constructor = Carousel;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Carousel._jQueryInterface;
- };
-
- return Carousel;
- }($);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Collapse = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'collapse';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.collapse';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var Default = {
- toggle: true,
- parent: ''
- };
- var DefaultType = {
- toggle: 'boolean',
- parent: '(string|element)'
- };
- var Event = {
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SHOW: 'show',
- COLLAPSE: 'collapse',
- COLLAPSING: 'collapsing',
- COLLAPSED: 'collapsed'
- };
- var Dimension = {
- WIDTH: 'width',
- HEIGHT: 'height'
- };
- var Selector = {
- ACTIVES: '.show, .collapsing',
- DATA_TOGGLE: '[data-toggle="collapse"]'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Collapse =
- /*#__PURE__*/
- function () {
- function Collapse(element, config) {
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
- var tabToggles = $$$1(Selector.DATA_TOGGLE);
-
- for (var i = 0; i < tabToggles.length; i++) {
- var elem = tabToggles[i];
- var selector = Util.getSelectorFromElement(elem);
-
- if (selector !== null && $$$1(selector).filter(element).length > 0) {
- this._selector = selector;
-
- this._triggerArray.push(elem);
- }
- }
-
- this._parent = this._config.parent ? this._getParent() : null;
-
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
- }
-
- if (this._config.toggle) {
- this.toggle();
- }
- } // Getters
-
-
- var _proto = Collapse.prototype;
-
- // Public
- _proto.toggle = function toggle() {
- if ($$$1(this._element).hasClass(ClassName.SHOW)) {
- this.hide();
- } else {
- this.show();
- }
- };
-
- _proto.show = function show() {
- var _this = this;
-
- if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
-
- var actives;
- var activesData;
-
- if (this._parent) {
- actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
-
- if (actives.length === 0) {
- actives = null;
- }
- }
-
- if (actives) {
- activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
-
- if (activesData && activesData._isTransitioning) {
- return;
- }
- }
-
- var startEvent = $$$1.Event(Event.SHOW);
- $$$1(this._element).trigger(startEvent);
-
- if (startEvent.isDefaultPrevented()) {
- return;
- }
-
- if (actives) {
- Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
-
- if (!activesData) {
- $$$1(actives).data(DATA_KEY, null);
- }
- }
-
- var dimension = this._getDimension();
-
- $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
- this._element.style[dimension] = 0;
-
- if (this._triggerArray.length > 0) {
- $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
- }
-
- this.setTransitioning(true);
-
- var complete = function complete() {
- $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
- _this._element.style[dimension] = '';
-
- _this.setTransitioning(false);
-
- $$$1(_this._element).trigger(Event.SHOWN);
- };
-
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
- var scrollSize = "scroll" + capitalizedDimension;
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- this._element.style[dimension] = this._element[scrollSize] + "px";
- };
-
- _proto.hide = function hide() {
- var _this2 = this;
-
- if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
-
- var startEvent = $$$1.Event(Event.HIDE);
- $$$1(this._element).trigger(startEvent);
-
- if (startEvent.isDefaultPrevented()) {
- return;
- }
-
- var dimension = this._getDimension();
-
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
- Util.reflow(this._element);
- $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
-
- if (this._triggerArray.length > 0) {
- for (var i = 0; i < this._triggerArray.length; i++) {
- var trigger = this._triggerArray[i];
- var selector = Util.getSelectorFromElement(trigger);
-
- if (selector !== null) {
- var $elem = $$$1(selector);
-
- if (!$elem.hasClass(ClassName.SHOW)) {
- $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
- }
- }
- }
- }
-
- this.setTransitioning(true);
-
- var complete = function complete() {
- _this2.setTransitioning(false);
-
- $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
- };
-
- this._element.style[dimension] = '';
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- };
-
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
- this._isTransitioning = isTransitioning;
- };
-
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._config = null;
- this._parent = null;
- this._element = null;
- this._triggerArray = null;
- this._isTransitioning = null;
- }; // Private
-
-
- _proto._getConfig = function _getConfig(config) {
- config = _objectSpread({}, Default, config);
- config.toggle = Boolean(config.toggle); // Coerce string values
-
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
-
- _proto._getDimension = function _getDimension() {
- var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
- };
-
- _proto._getParent = function _getParent() {
- var _this3 = this;
-
- var parent = null;
-
- if (Util.isElement(this._config.parent)) {
- parent = this._config.parent; // It's a jQuery object
-
- if (typeof this._config.parent.jquery !== 'undefined') {
- parent = this._config.parent[0];
- }
- } else {
- parent = $$$1(this._config.parent)[0];
- }
-
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
- $$$1(parent).find(selector).each(function (i, element) {
- _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
- });
- return parent;
- };
-
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
- if (element) {
- var isOpen = $$$1(element).hasClass(ClassName.SHOW);
-
- if (triggerArray.length > 0) {
- $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
- }
- }
- }; // Static
-
-
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
- var selector = Util.getSelectorFromElement(element);
- return selector ? $$$1(selector)[0] : null;
- };
-
- Collapse._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $$$1(this);
- var data = $this.data(DATA_KEY);
-
- var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
-
- if (!data && _config.toggle && /show|hide/.test(config)) {
- _config.toggle = false;
- }
-
- if (!data) {
- data = new Collapse(this, _config);
- $this.data(DATA_KEY, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- _createClass(Collapse, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
-
- return Collapse;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
-
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- // preventDefault only for elements (which change the URL) not inside the collapsible element
- if (event.currentTarget.tagName === 'A') {
- event.preventDefault();
- }
-
- var $trigger = $$$1(this);
- var selector = Util.getSelectorFromElement(this);
- $$$1(selector).each(function () {
- var $target = $$$1(this);
- var data = $target.data(DATA_KEY);
- var config = data ? 'toggle' : $trigger.data();
-
- Collapse._jQueryInterface.call($target, config);
- });
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Collapse._jQueryInterface;
- $$$1.fn[NAME].Constructor = Collapse;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Collapse._jQueryInterface;
- };
-
- return Collapse;
- }($);
-
- /**!
- * @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.14.3
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
- var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
-
- var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
- var timeoutDuration = 0;
- for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
- if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
- timeoutDuration = 1;
- break;
- }
- }
-
- function microtaskDebounce(fn) {
- var called = false;
- return function () {
- if (called) {
- return;
- }
- called = true;
- window.Promise.resolve().then(function () {
- called = false;
- fn();
- });
- };
- }
-
- function taskDebounce(fn) {
- var scheduled = false;
- return function () {
- if (!scheduled) {
- scheduled = true;
- setTimeout(function () {
- scheduled = false;
- fn();
- }, timeoutDuration);
- }
- };
- }
-
- var supportsMicroTasks = isBrowser && window.Promise;
-
- /**
- * Create a debounced version of a method, that's asynchronously deferred
- * but called in the minimum time possible.
- *
- * @method
- * @memberof Popper.Utils
- * @argument {Function} fn
- * @returns {Function}
- */
- var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
-
- /**
- * Check if the given variable is a function
- * @method
- * @memberof Popper.Utils
- * @argument {Any} functionToCheck - variable to check
- * @returns {Boolean} answer to: is a function?
- */
- function isFunction(functionToCheck) {
- var getType = {};
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
- }
-
- /**
- * Get CSS computed property of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Eement} element
- * @argument {String} property
- */
- function getStyleComputedProperty(element, property) {
- if (element.nodeType !== 1) {
- return [];
- }
- // NOTE: 1 DOM access here
- var css = getComputedStyle(element, null);
- return property ? css[property] : css;
- }
-
- /**
- * Returns the parentNode or the host of the element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} parent
- */
- function getParentNode(element) {
- if (element.nodeName === 'HTML') {
- return element;
- }
- return element.parentNode || element.host;
- }
-
- /**
- * Returns the scrolling parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} scroll parent
- */
- function getScrollParent(element) {
- // Return body, `getScroll` will take care to get the correct `scrollTop` from it
- if (!element) {
- return document.body;
- }
-
- switch (element.nodeName) {
- case 'HTML':
- case 'BODY':
- return element.ownerDocument.body;
- case '#document':
- return element.body;
- }
-
- // Firefox want us to check `-x` and `-y` variations as well
-
- var _getStyleComputedProp = getStyleComputedProperty(element),
- overflow = _getStyleComputedProp.overflow,
- overflowX = _getStyleComputedProp.overflowX,
- overflowY = _getStyleComputedProp.overflowY;
-
- if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
- return element;
- }
-
- return getScrollParent(getParentNode(element));
- }
-
- var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
- var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
-
- /**
- * Determines if the browser is Internet Explorer
- * @method
- * @memberof Popper.Utils
- * @param {Number} version to check
- * @returns {Boolean} isIE
- */
- function isIE(version) {
- if (version === 11) {
- return isIE11;
- }
- if (version === 10) {
- return isIE10;
- }
- return isIE11 || isIE10;
- }
-
- /**
- * Returns the offset parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} offset parent
- */
- function getOffsetParent(element) {
- if (!element) {
- return document.documentElement;
- }
-
- var noOffsetParent = isIE(10) ? document.body : null;
-
- // NOTE: 1 DOM access here
- var offsetParent = element.offsetParent;
- // Skip hidden elements which don't have an offsetParent
- while (offsetParent === noOffsetParent && element.nextElementSibling) {
- offsetParent = (element = element.nextElementSibling).offsetParent;
- }
-
- var nodeName = offsetParent && offsetParent.nodeName;
-
- if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
- return element ? element.ownerDocument.documentElement : document.documentElement;
- }
-
- // .offsetParent will return the closest TD or TABLE in case
- // no offsetParent is present, I hate this job...
- if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
- return getOffsetParent(offsetParent);
- }
-
- return offsetParent;
- }
-
- function isOffsetContainer(element) {
- var nodeName = element.nodeName;
-
- if (nodeName === 'BODY') {
- return false;
- }
- return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
- }
-
- /**
- * Finds the root node (document, shadowDOM root) of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} node
- * @returns {Element} root node
- */
- function getRoot(node) {
- if (node.parentNode !== null) {
- return getRoot(node.parentNode);
- }
-
- return node;
- }
-
- /**
- * Finds the offset parent common to the two provided nodes
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element1
- * @argument {Element} element2
- * @returns {Element} common offset parent
- */
- function findCommonOffsetParent(element1, element2) {
- // This check is needed to avoid errors in case one of the elements isn't defined for any reason
- if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
- return document.documentElement;
- }
-
- // Here we make sure to give as "start" the element that comes first in the DOM
- var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
- var start = order ? element1 : element2;
- var end = order ? element2 : element1;
-
- // Get common ancestor container
- var range = document.createRange();
- range.setStart(start, 0);
- range.setEnd(end, 0);
- var commonAncestorContainer = range.commonAncestorContainer;
-
- // Both nodes are inside #document
-
- if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
- if (isOffsetContainer(commonAncestorContainer)) {
- return commonAncestorContainer;
- }
-
- return getOffsetParent(commonAncestorContainer);
- }
-
- // one of the nodes is inside shadowDOM, find which one
- var element1root = getRoot(element1);
- if (element1root.host) {
- return findCommonOffsetParent(element1root.host, element2);
- } else {
- return findCommonOffsetParent(element1, getRoot(element2).host);
- }
- }
-
- /**
- * Gets the scroll value of the given element in the given side (top and left)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {String} side `top` or `left`
- * @returns {number} amount of scrolled pixels
- */
- function getScroll(element) {
- var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
-
- var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
- var nodeName = element.nodeName;
-
- if (nodeName === 'BODY' || nodeName === 'HTML') {
- var html = element.ownerDocument.documentElement;
- var scrollingElement = element.ownerDocument.scrollingElement || html;
- return scrollingElement[upperSide];
- }
-
- return element[upperSide];
- }
-
- /*
- * Sum or subtract the element scroll values (left and top) from a given rect object
- * @method
- * @memberof Popper.Utils
- * @param {Object} rect - Rect object you want to change
- * @param {HTMLElement} element - The element from the function reads the scroll values
- * @param {Boolean} subtract - set to true if you want to subtract the scroll values
- * @return {Object} rect - The modifier rect object
- */
- function includeScroll(rect, element) {
- var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-
- var scrollTop = getScroll(element, 'top');
- var scrollLeft = getScroll(element, 'left');
- var modifier = subtract ? -1 : 1;
- rect.top += scrollTop * modifier;
- rect.bottom += scrollTop * modifier;
- rect.left += scrollLeft * modifier;
- rect.right += scrollLeft * modifier;
- return rect;
- }
-
- /*
- * Helper to detect borders of a given element
- * @method
- * @memberof Popper.Utils
- * @param {CSSStyleDeclaration} styles
- * Result of `getStyleComputedProperty` on the given element
- * @param {String} axis - `x` or `y`
- * @return {number} borders - The borders size of the given axis
- */
-
- function getBordersSize(styles, axis) {
- var sideA = axis === 'x' ? 'Left' : 'Top';
- var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
-
- return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
- }
-
- function getSize(axis, body, html, computedStyle) {
- return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
- }
-
- function getWindowSizes() {
- var body = document.body;
- var html = document.documentElement;
- var computedStyle = isIE(10) && getComputedStyle(html);
-
- return {
- height: getSize('Height', body, html, computedStyle),
- width: getSize('Width', body, html, computedStyle)
- };
- }
-
- var classCallCheck = function (instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- };
-
- var createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
-
-
-
-
- var defineProperty = function (obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- };
-
- var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
- };
-
- /**
- * Given element offsets, generate an output similar to getBoundingClientRect
- * @method
- * @memberof Popper.Utils
- * @argument {Object} offsets
- * @returns {Object} ClientRect like output
- */
- function getClientRect(offsets) {
- return _extends({}, offsets, {
- right: offsets.left + offsets.width,
- bottom: offsets.top + offsets.height
- });
- }
-
- /**
- * Get bounding client rect of given element
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} element
- * @return {Object} client rect
- */
- function getBoundingClientRect(element) {
- var rect = {};
-
- // IE10 10 FIX: Please, don't ask, the element isn't
- // considered in DOM in some circumstances...
- // This isn't reproducible in IE10 compatibility mode of IE11
- try {
- if (isIE(10)) {
- rect = element.getBoundingClientRect();
- var scrollTop = getScroll(element, 'top');
- var scrollLeft = getScroll(element, 'left');
- rect.top += scrollTop;
- rect.left += scrollLeft;
- rect.bottom += scrollTop;
- rect.right += scrollLeft;
- } else {
- rect = element.getBoundingClientRect();
- }
- } catch (e) {}
-
- var result = {
- left: rect.left,
- top: rect.top,
- width: rect.right - rect.left,
- height: rect.bottom - rect.top
- };
-
- // subtract scrollbar size from sizes
- var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
- var width = sizes.width || element.clientWidth || result.right - result.left;
- var height = sizes.height || element.clientHeight || result.bottom - result.top;
-
- var horizScrollbar = element.offsetWidth - width;
- var vertScrollbar = element.offsetHeight - height;
-
- // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
- // we make this check conditional for performance reasons
- if (horizScrollbar || vertScrollbar) {
- var styles = getStyleComputedProperty(element);
- horizScrollbar -= getBordersSize(styles, 'x');
- vertScrollbar -= getBordersSize(styles, 'y');
-
- result.width -= horizScrollbar;
- result.height -= vertScrollbar;
- }
-
- return getClientRect(result);
- }
-
- function getOffsetRectRelativeToArbitraryNode(children, parent) {
- var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-
- var isIE10 = isIE(10);
- var isHTML = parent.nodeName === 'HTML';
- var childrenRect = getBoundingClientRect(children);
- var parentRect = getBoundingClientRect(parent);
- var scrollParent = getScrollParent(children);
-
- var styles = getStyleComputedProperty(parent);
- var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
- var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
-
- // In cases where the parent is fixed, we must ignore negative scroll in offset calc
- if (fixedPosition && parent.nodeName === 'HTML') {
- parentRect.top = Math.max(parentRect.top, 0);
- parentRect.left = Math.max(parentRect.left, 0);
- }
- var offsets = getClientRect({
- top: childrenRect.top - parentRect.top - borderTopWidth,
- left: childrenRect.left - parentRect.left - borderLeftWidth,
- width: childrenRect.width,
- height: childrenRect.height
- });
- offsets.marginTop = 0;
- offsets.marginLeft = 0;
-
- // Subtract margins of documentElement in case it's being used as parent
- // we do this only on HTML because it's the only element that behaves
- // differently when margins are applied to it. The margins are included in
- // the box of the documentElement, in the other cases not.
- if (!isIE10 && isHTML) {
- var marginTop = parseFloat(styles.marginTop, 10);
- var marginLeft = parseFloat(styles.marginLeft, 10);
-
- offsets.top -= borderTopWidth - marginTop;
- offsets.bottom -= borderTopWidth - marginTop;
- offsets.left -= borderLeftWidth - marginLeft;
- offsets.right -= borderLeftWidth - marginLeft;
-
- // Attach marginTop and marginLeft because in some circumstances we may need them
- offsets.marginTop = marginTop;
- offsets.marginLeft = marginLeft;
- }
-
- if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
- offsets = includeScroll(offsets, parent);
- }
-
- return offsets;
- }
-
- function getViewportOffsetRectRelativeToArtbitraryNode(element) {
- var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
-
- var html = element.ownerDocument.documentElement;
- var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
- var width = Math.max(html.clientWidth, window.innerWidth || 0);
- var height = Math.max(html.clientHeight, window.innerHeight || 0);
-
- var scrollTop = !excludeScroll ? getScroll(html) : 0;
- var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
-
- var offset = {
- top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
- left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
- width: width,
- height: height
- };
-
- return getClientRect(offset);
- }
-
- /**
- * Check if the given element is fixed or is inside a fixed parent
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {Element} customContainer
- * @returns {Boolean} answer to "isFixed?"
- */
- function isFixed(element) {
- var nodeName = element.nodeName;
- if (nodeName === 'BODY' || nodeName === 'HTML') {
- return false;
- }
- if (getStyleComputedProperty(element, 'position') === 'fixed') {
- return true;
- }
- return isFixed(getParentNode(element));
- }
-
- /**
- * Finds the first parent of an element that has a transformed property defined
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} first transformed parent or documentElement
- */
-
- function getFixedPositionOffsetParent(element) {
- // This check is needed to avoid errors in case one of the elements isn't defined for any reason
- if (!element || !element.parentElement || isIE()) {
- return document.documentElement;
- }
- var el = element.parentElement;
- while (el && getStyleComputedProperty(el, 'transform') === 'none') {
- el = el.parentElement;
- }
- return el || document.documentElement;
- }
-
- /**
- * Computed the boundaries limits and return them
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} popper
- * @param {HTMLElement} reference
- * @param {number} padding
- * @param {HTMLElement} boundariesElement - Element used to define the boundaries
- * @param {Boolean} fixedPosition - Is in fixed position mode
- * @returns {Object} Coordinates of the boundaries
- */
- function getBoundaries(popper, reference, padding, boundariesElement) {
- var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
-
- // NOTE: 1 DOM access here
-
- var boundaries = { top: 0, left: 0 };
- var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
-
- // Handle viewport case
- if (boundariesElement === 'viewport') {
- boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
- } else {
- // Handle other cases based on DOM element used as boundaries
- var boundariesNode = void 0;
- if (boundariesElement === 'scrollParent') {
- boundariesNode = getScrollParent(getParentNode(reference));
- if (boundariesNode.nodeName === 'BODY') {
- boundariesNode = popper.ownerDocument.documentElement;
- }
- } else if (boundariesElement === 'window') {
- boundariesNode = popper.ownerDocument.documentElement;
- } else {
- boundariesNode = boundariesElement;
- }
-
- var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
-
- // In case of HTML, we need a different computation
- if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
- var _getWindowSizes = getWindowSizes(),
- height = _getWindowSizes.height,
- width = _getWindowSizes.width;
-
- boundaries.top += offsets.top - offsets.marginTop;
- boundaries.bottom = height + offsets.top;
- boundaries.left += offsets.left - offsets.marginLeft;
- boundaries.right = width + offsets.left;
- } else {
- // for all the other DOM elements, this one is good
- boundaries = offsets;
- }
- }
-
- // Add paddings
- boundaries.left += padding;
- boundaries.top += padding;
- boundaries.right -= padding;
- boundaries.bottom -= padding;
-
- return boundaries;
- }
-
- function getArea(_ref) {
- var width = _ref.width,
- height = _ref.height;
-
- return width * height;
- }
-
- /**
- * Utility used to transform the `auto` placement to the placement with more
- * available space.
- * @method
- * @memberof Popper.Utils
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
- var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
-
- if (placement.indexOf('auto') === -1) {
- return placement;
- }
-
- var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
-
- var rects = {
- top: {
- width: boundaries.width,
- height: refRect.top - boundaries.top
- },
- right: {
- width: boundaries.right - refRect.right,
- height: boundaries.height
- },
- bottom: {
- width: boundaries.width,
- height: boundaries.bottom - refRect.bottom
- },
- left: {
- width: refRect.left - boundaries.left,
- height: boundaries.height
- }
- };
-
- var sortedAreas = Object.keys(rects).map(function (key) {
- return _extends({
- key: key
- }, rects[key], {
- area: getArea(rects[key])
- });
- }).sort(function (a, b) {
- return b.area - a.area;
- });
-
- var filteredAreas = sortedAreas.filter(function (_ref2) {
- var width = _ref2.width,
- height = _ref2.height;
- return width >= popper.clientWidth && height >= popper.clientHeight;
- });
-
- var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
-
- var variation = placement.split('-')[1];
-
- return computedPlacement + (variation ? '-' + variation : '');
- }
-
- /**
- * Get offsets to the reference element
- * @method
- * @memberof Popper.Utils
- * @param {Object} state
- * @param {Element} popper - the popper element
- * @param {Element} reference - the reference element (the popper will be relative to this)
- * @param {Element} fixedPosition - is in fixed position mode
- * @returns {Object} An object containing the offsets which will be applied to the popper
- */
- function getReferenceOffsets(state, popper, reference) {
- var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-
- var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
- return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
- }
-
- /**
- * Get the outer sizes of the given element (offset size + margins)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Object} object containing width and height properties
- */
- function getOuterSizes(element) {
- var styles = getComputedStyle(element);
- var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
- var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
- var result = {
- width: element.offsetWidth + y,
- height: element.offsetHeight + x
- };
- return result;
- }
-
- /**
- * Get the opposite placement of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement
- * @returns {String} flipped placement
- */
- function getOppositePlacement(placement) {
- var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
- return placement.replace(/left|right|bottom|top/g, function (matched) {
- return hash[matched];
- });
- }
-
- /**
- * Get offsets to the popper
- * @method
- * @memberof Popper.Utils
- * @param {Object} position - CSS position the Popper will get applied
- * @param {HTMLElement} popper - the popper element
- * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
- * @param {String} placement - one of the valid placement options
- * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
- */
- function getPopperOffsets(popper, referenceOffsets, placement) {
- placement = placement.split('-')[0];
-
- // Get popper node sizes
- var popperRect = getOuterSizes(popper);
-
- // Add position, width and height to our offsets object
- var popperOffsets = {
- width: popperRect.width,
- height: popperRect.height
- };
-
- // depending by the popper placement we have to compute its offsets slightly differently
- var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
- var mainSide = isHoriz ? 'top' : 'left';
- var secondarySide = isHoriz ? 'left' : 'top';
- var measurement = isHoriz ? 'height' : 'width';
- var secondaryMeasurement = !isHoriz ? 'height' : 'width';
-
- popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
- if (placement === secondarySide) {
- popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
- } else {
- popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
- }
-
- return popperOffsets;
- }
-
- /**
- * Mimics the `find` method of Array
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
- function find(arr, check) {
- // use native find if supported
- if (Array.prototype.find) {
- return arr.find(check);
- }
-
- // use `filter` to obtain the same behavior of `find`
- return arr.filter(check)[0];
- }
-
- /**
- * Return the index of the matching object
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
- function findIndex(arr, prop, value) {
- // use native findIndex if supported
- if (Array.prototype.findIndex) {
- return arr.findIndex(function (cur) {
- return cur[prop] === value;
- });
- }
-
- // use `find` + `indexOf` if `findIndex` isn't supported
- var match = find(arr, function (obj) {
- return obj[prop] === value;
- });
- return arr.indexOf(match);
- }
-
- /**
- * Loop trough the list of modifiers and run them in order,
- * each of them will then edit the data object.
- * @method
- * @memberof Popper.Utils
- * @param {dataObject} data
- * @param {Array} modifiers
- * @param {String} ends - Optional modifier name used as stopper
- * @returns {dataObject}
- */
- function runModifiers(modifiers, data, ends) {
- var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
-
- modifiersToRun.forEach(function (modifier) {
- if (modifier['function']) {
- // eslint-disable-line dot-notation
- console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
- }
- var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
- if (modifier.enabled && isFunction(fn)) {
- // Add properties to offsets to make them a complete clientRect object
- // we do this before each modifier to make sure the previous one doesn't
- // mess with these values
- data.offsets.popper = getClientRect(data.offsets.popper);
- data.offsets.reference = getClientRect(data.offsets.reference);
-
- data = fn(data, modifier);
- }
- });
-
- return data;
- }
-
- /**
- * Updates the position of the popper, computing the new offsets and applying
- * the new style.
- * Prefer `scheduleUpdate` over `update` because of performance reasons.
- * @method
- * @memberof Popper
- */
- function update() {
- // if popper is destroyed, don't perform any further update
- if (this.state.isDestroyed) {
- return;
- }
-
- var data = {
- instance: this,
- styles: {},
- arrowStyles: {},
- attributes: {},
- flipped: false,
- offsets: {}
- };
-
- // compute reference element offsets
- data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
-
- // compute auto placement, store placement inside the data object,
- // modifiers will be able to edit `placement` if needed
- // and refer to originalPlacement to know the original value
- data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
-
- // store the computed placement inside `originalPlacement`
- data.originalPlacement = data.placement;
-
- data.positionFixed = this.options.positionFixed;
-
- // compute the popper offsets
- data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
-
- data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
-
- // run the modifiers
- data = runModifiers(this.modifiers, data);
-
- // the first `update` will call `onCreate` callback
- // the other ones will call `onUpdate` callback
- if (!this.state.isCreated) {
- this.state.isCreated = true;
- this.options.onCreate(data);
- } else {
- this.options.onUpdate(data);
- }
- }
-
- /**
- * Helper used to know if the given modifier is enabled.
- * @method
- * @memberof Popper.Utils
- * @returns {Boolean}
- */
- function isModifierEnabled(modifiers, modifierName) {
- return modifiers.some(function (_ref) {
- var name = _ref.name,
- enabled = _ref.enabled;
- return enabled && name === modifierName;
- });
- }
-
- /**
- * Get the prefixed supported property name
- * @method
- * @memberof Popper.Utils
- * @argument {String} property (camelCase)
- * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
- */
- function getSupportedPropertyName(property) {
- var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
- var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
-
- for (var i = 0; i < prefixes.length; i++) {
- var prefix = prefixes[i];
- var toCheck = prefix ? '' + prefix + upperProp : property;
- if (typeof document.body.style[toCheck] !== 'undefined') {
- return toCheck;
- }
- }
- return null;
- }
-
- /**
- * Destroy the popper
- * @method
- * @memberof Popper
- */
- function destroy() {
- this.state.isDestroyed = true;
-
- // touch DOM only if `applyStyle` modifier is enabled
- if (isModifierEnabled(this.modifiers, 'applyStyle')) {
- this.popper.removeAttribute('x-placement');
- this.popper.style.position = '';
- this.popper.style.top = '';
- this.popper.style.left = '';
- this.popper.style.right = '';
- this.popper.style.bottom = '';
- this.popper.style.willChange = '';
- this.popper.style[getSupportedPropertyName('transform')] = '';
- }
-
- this.disableEventListeners();
-
- // remove the popper if user explicity asked for the deletion on destroy
- // do not use `remove` because IE11 doesn't support it
- if (this.options.removeOnDestroy) {
- this.popper.parentNode.removeChild(this.popper);
- }
- return this;
- }
-
- /**
- * Get the window associated with the element
- * @argument {Element} element
- * @returns {Window}
- */
- function getWindow(element) {
- var ownerDocument = element.ownerDocument;
- return ownerDocument ? ownerDocument.defaultView : window;
- }
-
- function attachToScrollParents(scrollParent, event, callback, scrollParents) {
- var isBody = scrollParent.nodeName === 'BODY';
- var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
- target.addEventListener(event, callback, { passive: true });
-
- if (!isBody) {
- attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
- }
- scrollParents.push(target);
- }
-
- /**
- * Setup needed event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
- function setupEventListeners(reference, options, state, updateBound) {
- // Resize event listener on window
- state.updateBound = updateBound;
- getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
-
- // Scroll event listener on scroll parents
- var scrollElement = getScrollParent(reference);
- attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
- state.scrollElement = scrollElement;
- state.eventsEnabled = true;
-
- return state;
- }
-
- /**
- * It will add resize/scroll events and start recalculating
- * position of the popper element when they are triggered.
- * @method
- * @memberof Popper
- */
- function enableEventListeners() {
- if (!this.state.eventsEnabled) {
- this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
- }
- }
-
- /**
- * Remove event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
- function removeEventListeners(reference, state) {
- // Remove resize event listener on window
- getWindow(reference).removeEventListener('resize', state.updateBound);
-
- // Remove scroll event listener on scroll parents
- state.scrollParents.forEach(function (target) {
- target.removeEventListener('scroll', state.updateBound);
- });
-
- // Reset state
- state.updateBound = null;
- state.scrollParents = [];
- state.scrollElement = null;
- state.eventsEnabled = false;
- return state;
- }
-
- /**
- * It will remove resize/scroll events and won't recalculate popper position
- * when they are triggered. It also won't trigger onUpdate callback anymore,
- * unless you call `update` method manually.
- * @method
- * @memberof Popper
- */
- function disableEventListeners() {
- if (this.state.eventsEnabled) {
- cancelAnimationFrame(this.scheduleUpdate);
- this.state = removeEventListeners(this.reference, this.state);
- }
- }
-
- /**
- * Tells if a given input is a number
- * @method
- * @memberof Popper.Utils
- * @param {*} input to check
- * @return {Boolean}
- */
- function isNumeric(n) {
- return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
- }
-
- /**
- * Set the style to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the style to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
- function setStyles(element, styles) {
- Object.keys(styles).forEach(function (prop) {
- var unit = '';
- // add unit if the value is numeric and is one of the following
- if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
- unit = 'px';
- }
- element.style[prop] = styles[prop] + unit;
- });
- }
-
- /**
- * Set the attributes to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the attributes to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
- function setAttributes(element, attributes) {
- Object.keys(attributes).forEach(function (prop) {
- var value = attributes[prop];
- if (value !== false) {
- element.setAttribute(prop, attributes[prop]);
- } else {
- element.removeAttribute(prop);
- }
- });
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} data.styles - List of style properties - values to apply to popper element
- * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The same data object
- */
- function applyStyle(data) {
- // any property present in `data.styles` will be applied to the popper,
- // in this way we can make the 3rd party modifiers add custom styles to it
- // Be aware, modifiers could override the properties defined in the previous
- // lines of this modifier!
- setStyles(data.instance.popper, data.styles);
-
- // any property present in `data.attributes` will be applied to the popper,
- // they will be set as HTML attributes of the element
- setAttributes(data.instance.popper, data.attributes);
-
- // if arrowElement is defined and arrowStyles has some properties
- if (data.arrowElement && Object.keys(data.arrowStyles).length) {
- setStyles(data.arrowElement, data.arrowStyles);
- }
-
- return data;
- }
-
- /**
- * Set the x-placement attribute before everything else because it could be used
- * to add margins to the popper margins needs to be calculated to get the
- * correct popper offsets.
- * @method
- * @memberof Popper.modifiers
- * @param {HTMLElement} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as popper
- * @param {Object} options - Popper.js options
- */
- function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
- // compute reference element offsets
- var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
-
- // compute auto placement, store placement inside the data object,
- // modifiers will be able to edit `placement` if needed
- // and refer to originalPlacement to know the original value
- var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
-
- popper.setAttribute('x-placement', placement);
-
- // Apply `position` to popper before anything else because
- // without the position applied we can't guarantee correct computations
- setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
-
- return options;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function computeStyle(data, options) {
- var x = options.x,
- y = options.y;
- var popper = data.offsets.popper;
-
- // Remove this legacy support in Popper.js v2
-
- var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
- return modifier.name === 'applyStyle';
- }).gpuAcceleration;
- if (legacyGpuAccelerationOption !== undefined) {
- console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
- }
- var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
-
- var offsetParent = getOffsetParent(data.instance.popper);
- var offsetParentRect = getBoundingClientRect(offsetParent);
-
- // Styles
- var styles = {
- position: popper.position
- };
-
- // Avoid blurry text by using full pixel integers.
- // For pixel-perfect positioning, top/bottom prefers rounded
- // values, while left/right prefers floored values.
- var offsets = {
- left: Math.floor(popper.left),
- top: Math.round(popper.top),
- bottom: Math.round(popper.bottom),
- right: Math.floor(popper.right)
- };
-
- var sideA = x === 'bottom' ? 'top' : 'bottom';
- var sideB = y === 'right' ? 'left' : 'right';
-
- // if gpuAcceleration is set to `true` and transform is supported,
- // we use `translate3d` to apply the position to the popper we
- // automatically use the supported prefixed version if needed
- var prefixedProperty = getSupportedPropertyName('transform');
-
- // now, let's make a step back and look at this code closely (wtf?)
- // If the content of the popper grows once it's been positioned, it
- // may happen that the popper gets misplaced because of the new content
- // overflowing its reference element
- // To avoid this problem, we provide two options (x and y), which allow
- // the consumer to define the offset origin.
- // If we position a popper on top of a reference element, we can set
- // `x` to `top` to make the popper grow towards its top instead of
- // its bottom.
- var left = void 0,
- top = void 0;
- if (sideA === 'bottom') {
- top = -offsetParentRect.height + offsets.bottom;
- } else {
- top = offsets.top;
- }
- if (sideB === 'right') {
- left = -offsetParentRect.width + offsets.right;
- } else {
- left = offsets.left;
- }
- if (gpuAcceleration && prefixedProperty) {
- styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
- styles[sideA] = 0;
- styles[sideB] = 0;
- styles.willChange = 'transform';
- } else {
- // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
- var invertTop = sideA === 'bottom' ? -1 : 1;
- var invertLeft = sideB === 'right' ? -1 : 1;
- styles[sideA] = top * invertTop;
- styles[sideB] = left * invertLeft;
- styles.willChange = sideA + ', ' + sideB;
- }
-
- // Attributes
- var attributes = {
- 'x-placement': data.placement
- };
-
- // Update `data` attributes, styles and arrowStyles
- data.attributes = _extends({}, attributes, data.attributes);
- data.styles = _extends({}, styles, data.styles);
- data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
-
- return data;
- }
-
- /**
- * Helper used to know if the given modifier depends from another one.
- * It checks if the needed modifier is listed and enabled.
- * @method
- * @memberof Popper.Utils
- * @param {Array} modifiers - list of modifiers
- * @param {String} requestingName - name of requesting modifier
- * @param {String} requestedName - name of requested modifier
- * @returns {Boolean}
- */
- function isModifierRequired(modifiers, requestingName, requestedName) {
- var requesting = find(modifiers, function (_ref) {
- var name = _ref.name;
- return name === requestingName;
- });
-
- var isRequired = !!requesting && modifiers.some(function (modifier) {
- return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
- });
-
- if (!isRequired) {
- var _requesting = '`' + requestingName + '`';
- var requested = '`' + requestedName + '`';
- console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
- }
- return isRequired;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function arrow(data, options) {
- var _data$offsets$arrow;
-
- // arrow depends on keepTogether in order to work
- if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
- return data;
- }
-
- var arrowElement = options.element;
-
- // if arrowElement is a string, suppose it's a CSS selector
- if (typeof arrowElement === 'string') {
- arrowElement = data.instance.popper.querySelector(arrowElement);
-
- // if arrowElement is not found, don't run the modifier
- if (!arrowElement) {
- return data;
- }
- } else {
- // if the arrowElement isn't a query selector we must check that the
- // provided DOM node is child of its popper node
- if (!data.instance.popper.contains(arrowElement)) {
- console.warn('WARNING: `arrow.element` must be child of its popper element!');
- return data;
- }
- }
-
- var placement = data.placement.split('-')[0];
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var isVertical = ['left', 'right'].indexOf(placement) !== -1;
-
- var len = isVertical ? 'height' : 'width';
- var sideCapitalized = isVertical ? 'Top' : 'Left';
- var side = sideCapitalized.toLowerCase();
- var altSide = isVertical ? 'left' : 'top';
- var opSide = isVertical ? 'bottom' : 'right';
- var arrowElementSize = getOuterSizes(arrowElement)[len];
-
- //
- // extends keepTogether behavior making sure the popper and its
- // reference have enough pixels in conjuction
- //
-
- // top/left side
- if (reference[opSide] - arrowElementSize < popper[side]) {
- data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
- }
- // bottom/right side
- if (reference[side] + arrowElementSize > popper[opSide]) {
- data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
- }
- data.offsets.popper = getClientRect(data.offsets.popper);
-
- // compute center of the popper
- var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
-
- // Compute the sideValue using the updated popper offsets
- // take popper margin in account because we don't have this info available
- var css = getStyleComputedProperty(data.instance.popper);
- var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
- var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
- var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
-
- // prevent arrowElement from being placed not contiguously to its popper
- sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
-
- data.arrowElement = arrowElement;
- data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
-
- return data;
- }
-
- /**
- * Get the opposite placement variation of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement variation
- * @returns {String} flipped placement variation
- */
- function getOppositeVariation(variation) {
- if (variation === 'end') {
- return 'start';
- } else if (variation === 'start') {
- return 'end';
- }
- return variation;
- }
-
- /**
- * List of accepted placements to use as values of the `placement` option.
- * Valid placements are:
- * - `auto`
- * - `top`
- * - `right`
- * - `bottom`
- * - `left`
- *
- * Each placement can have a variation from this list:
- * - `-start`
- * - `-end`
- *
- * Variations are interpreted easily if you think of them as the left to right
- * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
- * is right.
- * Vertically (`left` and `right`), `start` is top and `end` is bottom.
- *
- * Some valid examples are:
- * - `top-end` (on top of reference, right aligned)
- * - `right-start` (on right of reference, top aligned)
- * - `bottom` (on bottom, centered)
- * - `auto-right` (on the side with more space available, alignment depends by placement)
- *
- * @static
- * @type {Array}
- * @enum {String}
- * @readonly
- * @method placements
- * @memberof Popper
- */
- var placements = ['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'];
-
- // Get rid of `auto` `auto-start` and `auto-end`
- var validPlacements = placements.slice(3);
-
- /**
- * Given an initial placement, returns all the subsequent placements
- * clockwise (or counter-clockwise).
- *
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement - A valid placement (it accepts variations)
- * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
- * @returns {Array} placements including their variations
- */
- function clockwise(placement) {
- var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
-
- var index = validPlacements.indexOf(placement);
- var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
- return counter ? arr.reverse() : arr;
- }
-
- var BEHAVIORS = {
- FLIP: 'flip',
- CLOCKWISE: 'clockwise',
- COUNTERCLOCKWISE: 'counterclockwise'
- };
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function flip(data, options) {
- // if `inner` modifier is enabled, we can't use the `flip` modifier
- if (isModifierEnabled(data.instance.modifiers, 'inner')) {
- return data;
- }
-
- if (data.flipped && data.placement === data.originalPlacement) {
- // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
- return data;
- }
-
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
-
- var placement = data.placement.split('-')[0];
- var placementOpposite = getOppositePlacement(placement);
- var variation = data.placement.split('-')[1] || '';
-
- var flipOrder = [];
-
- switch (options.behavior) {
- case BEHAVIORS.FLIP:
- flipOrder = [placement, placementOpposite];
- break;
- case BEHAVIORS.CLOCKWISE:
- flipOrder = clockwise(placement);
- break;
- case BEHAVIORS.COUNTERCLOCKWISE:
- flipOrder = clockwise(placement, true);
- break;
- default:
- flipOrder = options.behavior;
- }
-
- flipOrder.forEach(function (step, index) {
- if (placement !== step || flipOrder.length === index + 1) {
- return data;
- }
-
- placement = data.placement.split('-')[0];
- placementOpposite = getOppositePlacement(placement);
-
- var popperOffsets = data.offsets.popper;
- var refOffsets = data.offsets.reference;
-
- // using floor because the reference offsets may contain decimals we are not going to consider here
- var floor = Math.floor;
- var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
-
- var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
- var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
- var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
- var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
-
- var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
-
- // flip the variation if required
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
- var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
-
- if (overlapsRef || overflowsBoundaries || flippedVariation) {
- // this boolean to detect any flip loop
- data.flipped = true;
-
- if (overlapsRef || overflowsBoundaries) {
- placement = flipOrder[index + 1];
- }
-
- if (flippedVariation) {
- variation = getOppositeVariation(variation);
- }
-
- data.placement = placement + (variation ? '-' + variation : '');
-
- // this object contains `position`, we want to preserve it along with
- // any additional property we may add in the future
- data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
-
- data = runModifiers(data.instance.modifiers, data, 'flip');
- }
- });
- return data;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function keepTogether(data) {
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var placement = data.placement.split('-')[0];
- var floor = Math.floor;
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
- var side = isVertical ? 'right' : 'bottom';
- var opSide = isVertical ? 'left' : 'top';
- var measurement = isVertical ? 'width' : 'height';
-
- if (popper[side] < floor(reference[opSide])) {
- data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
- }
- if (popper[opSide] > floor(reference[side])) {
- data.offsets.popper[opSide] = floor(reference[side]);
- }
-
- return data;
- }
-
- /**
- * Converts a string containing value + unit into a px value number
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} str - Value + unit string
- * @argument {String} measurement - `height` or `width`
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @returns {Number|String}
- * Value in pixels, or original string if no values were extracted
- */
- function toValue(str, measurement, popperOffsets, referenceOffsets) {
- // separate value from unit
- var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
- var value = +split[1];
- var unit = split[2];
-
- // If it's not a number it's an operator, I guess
- if (!value) {
- return str;
- }
-
- if (unit.indexOf('%') === 0) {
- var element = void 0;
- switch (unit) {
- case '%p':
- element = popperOffsets;
- break;
- case '%':
- case '%r':
- default:
- element = referenceOffsets;
- }
-
- var rect = getClientRect(element);
- return rect[measurement] / 100 * value;
- } else if (unit === 'vh' || unit === 'vw') {
- // if is a vh or vw, we calculate the size based on the viewport
- var size = void 0;
- if (unit === 'vh') {
- size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
- } else {
- size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
- }
- return size / 100 * value;
- } else {
- // if is an explicit pixel unit, we get rid of the unit and keep the value
- // if is an implicit unit, it's px, and we return just the value
- return value;
- }
- }
-
- /**
- * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} offset
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @argument {String} basePlacement
- * @returns {Array} a two cells array with x and y offsets in numbers
- */
- function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
- var offsets = [0, 0];
-
- // Use height if placement is left or right and index is 0 otherwise use width
- // in this way the first offset will use an axis and the second one
- // will use the other one
- var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
-
- // Split the offset string to obtain a list of values and operands
- // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
- var fragments = offset.split(/(\+|\-)/).map(function (frag) {
- return frag.trim();
- });
-
- // Detect if the offset string contains a pair of values or a single one
- // they could be separated by comma or space
- var divider = fragments.indexOf(find(fragments, function (frag) {
- return frag.search(/,|\s/) !== -1;
- }));
-
- if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
- console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
- }
-
- // If divider is found, we divide the list of values and operands to divide
- // them by ofset X and Y.
- var splitRegex = /\s*,\s*|\s+/;
- var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
-
- // Convert the values with units to absolute pixels to allow our computations
- ops = ops.map(function (op, index) {
- // Most of the units rely on the orientation of the popper
- var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
- var mergeWithPrevious = false;
- return op
- // This aggregates any `+` or `-` sign that aren't considered operators
- // e.g.: 10 + +5 => [10, +, +5]
- .reduce(function (a, b) {
- if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
- a[a.length - 1] = b;
- mergeWithPrevious = true;
- return a;
- } else if (mergeWithPrevious) {
- a[a.length - 1] += b;
- mergeWithPrevious = false;
- return a;
- } else {
- return a.concat(b);
- }
- }, [])
- // Here we convert the string values into number values (in px)
- .map(function (str) {
- return toValue(str, measurement, popperOffsets, referenceOffsets);
- });
- });
-
- // Loop trough the offsets arrays and execute the operations
- ops.forEach(function (op, index) {
- op.forEach(function (frag, index2) {
- if (isNumeric(frag)) {
- offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
- }
- });
- });
- return offsets;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @argument {Number|String} options.offset=0
- * The offset value as described in the modifier description
- * @returns {Object} The data object, properly modified
- */
- function offset(data, _ref) {
- var offset = _ref.offset;
- var placement = data.placement,
- _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var basePlacement = placement.split('-')[0];
-
- var offsets = void 0;
- if (isNumeric(+offset)) {
- offsets = [+offset, 0];
- } else {
- offsets = parseOffset(offset, popper, reference, basePlacement);
- }
-
- if (basePlacement === 'left') {
- popper.top += offsets[0];
- popper.left -= offsets[1];
- } else if (basePlacement === 'right') {
- popper.top += offsets[0];
- popper.left += offsets[1];
- } else if (basePlacement === 'top') {
- popper.left += offsets[0];
- popper.top -= offsets[1];
- } else if (basePlacement === 'bottom') {
- popper.left += offsets[0];
- popper.top += offsets[1];
- }
-
- data.popper = popper;
- return data;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function preventOverflow(data, options) {
- var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
-
- // If offsetParent is the reference element, we really want to
- // go one step up and use the next offsetParent as reference to
- // avoid to make this modifier completely useless and look like broken
- if (data.instance.reference === boundariesElement) {
- boundariesElement = getOffsetParent(boundariesElement);
- }
-
- // NOTE: DOM access here
- // resets the popper's position so that the document size can be calculated excluding
- // the size of the popper element itself
- var transformProp = getSupportedPropertyName('transform');
- var popperStyles = data.instance.popper.style; // assignment to help minification
- var top = popperStyles.top,
- left = popperStyles.left,
- transform = popperStyles[transformProp];
-
- popperStyles.top = '';
- popperStyles.left = '';
- popperStyles[transformProp] = '';
-
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
-
- // NOTE: DOM access here
- // restores the original style properties after the offsets have been computed
- popperStyles.top = top;
- popperStyles.left = left;
- popperStyles[transformProp] = transform;
-
- options.boundaries = boundaries;
-
- var order = options.priority;
- var popper = data.offsets.popper;
-
- var check = {
- primary: function primary(placement) {
- var value = popper[placement];
- if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
- value = Math.max(popper[placement], boundaries[placement]);
- }
- return defineProperty({}, placement, value);
- },
- secondary: function secondary(placement) {
- var mainSide = placement === 'right' ? 'left' : 'top';
- var value = popper[mainSide];
- if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
- value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
- }
- return defineProperty({}, mainSide, value);
- }
- };
-
- order.forEach(function (placement) {
- var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
- popper = _extends({}, popper, check[side](placement));
- });
-
- data.offsets.popper = popper;
-
- return data;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function shift(data) {
- var placement = data.placement;
- var basePlacement = placement.split('-')[0];
- var shiftvariation = placement.split('-')[1];
-
- // if shift shiftvariation is specified, run the modifier
- if (shiftvariation) {
- var _data$offsets = data.offsets,
- reference = _data$offsets.reference,
- popper = _data$offsets.popper;
-
- var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
- var side = isVertical ? 'left' : 'top';
- var measurement = isVertical ? 'width' : 'height';
-
- var shiftOffsets = {
- start: defineProperty({}, side, reference[side]),
- end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
- };
-
- data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
- }
-
- return data;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function hide(data) {
- if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
- return data;
- }
-
- var refRect = data.offsets.reference;
- var bound = find(data.instance.modifiers, function (modifier) {
- return modifier.name === 'preventOverflow';
- }).boundaries;
-
- if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
- // Avoid unnecessary DOM access if visibility hasn't changed
- if (data.hide === true) {
- return data;
- }
-
- data.hide = true;
- data.attributes['x-out-of-boundaries'] = '';
- } else {
- // Avoid unnecessary DOM access if visibility hasn't changed
- if (data.hide === false) {
- return data;
- }
-
- data.hide = false;
- data.attributes['x-out-of-boundaries'] = false;
- }
-
- return data;
- }
-
- /**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
- function inner(data) {
- var placement = data.placement;
- var basePlacement = placement.split('-')[0];
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
-
- var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
-
- popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
-
- data.placement = getOppositePlacement(placement);
- data.offsets.popper = getClientRect(popper);
-
- return data;
- }
-
- /**
- * Modifier function, each modifier can have a function of this type assigned
- * to its `fn` property.
- * These functions will be called on each update, this means that you must
- * make sure they are performant enough to avoid performance bottlenecks.
- *
- * @function ModifierFn
- * @argument {dataObject} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {dataObject} The data object, properly modified
- */
-
- /**
- * Modifiers are plugins used to alter the behavior of your poppers.
- * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
- * needed by the library.
- *
- * Usually you don't want to override the `order`, `fn` and `onLoad` props.
- * All the other properties are configurations that could be tweaked.
- * @namespace modifiers
- */
- var modifiers = {
- /**
- * Modifier used to shift the popper on the start or end of its reference
- * element.
- * It will read the variation of the `placement` property.
- * It can be one either `-end` or `-start`.
- * @memberof modifiers
- * @inner
- */
- shift: {
- /** @prop {number} order=100 - Index used to define the order of execution */
- order: 100,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: shift
- },
-
- /**
- * The `offset` modifier can shift your popper on both its axis.
- *
- * It accepts the following units:
- * - `px` or unitless, interpreted as pixels
- * - `%` or `%r`, percentage relative to the length of the reference element
- * - `%p`, percentage relative to the length of the popper element
- * - `vw`, CSS viewport width unit
- * - `vh`, CSS viewport height unit
- *
- * For length is intended the main axis relative to the placement of the popper.
- * This means that if the placement is `top` or `bottom`, the length will be the
- * `width`. In case of `left` or `right`, it will be the height.
- *
- * You can provide a single value (as `Number` or `String`), or a pair of values
- * as `String` divided by a comma or one (or more) white spaces.
- * The latter is a deprecated method because it leads to confusion and will be
- * removed in v2.
- * Additionally, it accepts additions and subtractions between different units.
- * Note that multiplications and divisions aren't supported.
- *
- * Valid examples are:
- * ```
- * 10
- * '10%'
- * '10, 10'
- * '10%, 10'
- * '10 + 10%'
- * '10 - 5vh + 3%'
- * '-10px + 5vh, 5px - 6%'
- * ```
- * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
- * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
- * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
- *
- * @memberof modifiers
- * @inner
- */
- offset: {
- /** @prop {number} order=200 - Index used to define the order of execution */
- order: 200,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: offset,
- /** @prop {Number|String} offset=0
- * The offset value as described in the modifier description
- */
- offset: 0
- },
-
- /**
- * Modifier used to prevent the popper from being positioned outside the boundary.
- *
- * An scenario exists where the reference itself is not within the boundaries.
- * We can say it has "escaped the boundaries" — or just "escaped".
- * In this case we need to decide whether the popper should either:
- *
- * - detach from the reference and remain "trapped" in the boundaries, or
- * - if it should ignore the boundary and "escape with its reference"
- *
- * When `escapeWithReference` is set to`true` and reference is completely
- * outside its boundaries, the popper will overflow (or completely leave)
- * the boundaries in order to remain attached to the edge of the reference.
- *
- * @memberof modifiers
- * @inner
- */
- preventOverflow: {
- /** @prop {number} order=300 - Index used to define the order of execution */
- order: 300,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: preventOverflow,
- /**
- * @prop {Array} [priority=['left','right','top','bottom']]
- * Popper will try to prevent overflow following these priorities by default,
- * then, it could overflow on the left and on top of the `boundariesElement`
- */
- priority: ['left', 'right', 'top', 'bottom'],
- /**
- * @prop {number} padding=5
- * Amount of pixel used to define a minimum distance between the boundaries
- * and the popper this makes sure the popper has always a little padding
- * between the edges of its container
- */
- padding: 5,
- /**
- * @prop {String|HTMLElement} boundariesElement='scrollParent'
- * Boundaries used by the modifier, can be `scrollParent`, `window`,
- * `viewport` or any DOM element.
- */
- boundariesElement: 'scrollParent'
- },
-
- /**
- * Modifier used to make sure the reference and its popper stay near eachothers
- * without leaving any gap between the two. Expecially useful when the arrow is
- * enabled and you want to assure it to point to its reference element.
- * It cares only about the first axis, you can still have poppers with margin
- * between the popper and its reference element.
- * @memberof modifiers
- * @inner
- */
- keepTogether: {
- /** @prop {number} order=400 - Index used to define the order of execution */
- order: 400,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: keepTogether
- },
-
- /**
- * This modifier is used to move the `arrowElement` of the popper to make
- * sure it is positioned between the reference element and its popper element.
- * It will read the outer size of the `arrowElement` node to detect how many
- * pixels of conjuction are needed.
- *
- * It has no effect if no `arrowElement` is provided.
- * @memberof modifiers
- * @inner
- */
- arrow: {
- /** @prop {number} order=500 - Index used to define the order of execution */
- order: 500,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: arrow,
- /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
- element: '[x-arrow]'
- },
-
- /**
- * Modifier used to flip the popper's placement when it starts to overlap its
- * reference element.
- *
- * Requires the `preventOverflow` modifier before it in order to work.
- *
- * **NOTE:** this modifier will interrupt the current update cycle and will
- * restart it if it detects the need to flip the placement.
- * @memberof modifiers
- * @inner
- */
- flip: {
- /** @prop {number} order=600 - Index used to define the order of execution */
- order: 600,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: flip,
- /**
- * @prop {String|Array} behavior='flip'
- * The behavior used to change the popper's placement. It can be one of
- * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
- * placements (with optional variations).
- */
- behavior: 'flip',
- /**
- * @prop {number} padding=5
- * The popper will flip if it hits the edges of the `boundariesElement`
- */
- padding: 5,
- /**
- * @prop {String|HTMLElement} boundariesElement='viewport'
- * The element which will define the boundaries of the popper position,
- * the popper will never be placed outside of the defined boundaries
- * (except if keepTogether is enabled)
- */
- boundariesElement: 'viewport'
- },
-
- /**
- * Modifier used to make the popper flow toward the inner of the reference element.
- * By default, when this modifier is disabled, the popper will be placed outside
- * the reference element.
- * @memberof modifiers
- * @inner
- */
- inner: {
- /** @prop {number} order=700 - Index used to define the order of execution */
- order: 700,
- /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
- enabled: false,
- /** @prop {ModifierFn} */
- fn: inner
- },
-
- /**
- * Modifier used to hide the popper when its reference element is outside of the
- * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
- * be used to hide with a CSS selector the popper when its reference is
- * out of boundaries.
- *
- * Requires the `preventOverflow` modifier before it in order to work.
- * @memberof modifiers
- * @inner
- */
- hide: {
- /** @prop {number} order=800 - Index used to define the order of execution */
- order: 800,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: hide
- },
-
- /**
- * Computes the style that will be applied to the popper element to gets
- * properly positioned.
- *
- * Note that this modifier will not touch the DOM, it just prepares the styles
- * so that `applyStyle` modifier can apply it. This separation is useful
- * in case you need to replace `applyStyle` with a custom implementation.
- *
- * This modifier has `850` as `order` value to maintain backward compatibility
- * with previous versions of Popper.js. Expect the modifiers ordering method
- * to change in future major versions of the library.
- *
- * @memberof modifiers
- * @inner
- */
- computeStyle: {
- /** @prop {number} order=850 - Index used to define the order of execution */
- order: 850,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: computeStyle,
- /**
- * @prop {Boolean} gpuAcceleration=true
- * If true, it uses the CSS 3d transformation to position the popper.
- * Otherwise, it will use the `top` and `left` properties.
- */
- gpuAcceleration: true,
- /**
- * @prop {string} [x='bottom']
- * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
- * Change this if your popper should grow in a direction different from `bottom`
- */
- x: 'bottom',
- /**
- * @prop {string} [x='left']
- * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
- * Change this if your popper should grow in a direction different from `right`
- */
- y: 'right'
- },
-
- /**
- * Applies the computed styles to the popper element.
- *
- * All the DOM manipulations are limited to this modifier. This is useful in case
- * you want to integrate Popper.js inside a framework or view library and you
- * want to delegate all the DOM manipulations to it.
- *
- * Note that if you disable this modifier, you must make sure the popper element
- * has its position set to `absolute` before Popper.js can do its work!
- *
- * Just disable this modifier and define you own to achieve the desired effect.
- *
- * @memberof modifiers
- * @inner
- */
- applyStyle: {
- /** @prop {number} order=900 - Index used to define the order of execution */
- order: 900,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: applyStyle,
- /** @prop {Function} */
- onLoad: applyStyleOnLoad,
- /**
- * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
- * @prop {Boolean} gpuAcceleration=true
- * If true, it uses the CSS 3d transformation to position the popper.
- * Otherwise, it will use the `top` and `left` properties.
- */
- gpuAcceleration: undefined
- }
- };
-
- /**
- * The `dataObject` is an object containing all the informations used by Popper.js
- * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
- * @name dataObject
- * @property {Object} data.instance The Popper.js instance
- * @property {String} data.placement Placement applied to popper
- * @property {String} data.originalPlacement Placement originally defined on init
- * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
- * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
- * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
- * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.boundaries Offsets of the popper boundaries
- * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
- * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
- */
-
- /**
- * Default options provided to Popper.js constructor.
- * These can be overriden using the `options` argument of Popper.js.
- * To override an option, simply pass as 3rd argument an object with the same
- * structure of this object, example:
- * ```
- * new Popper(ref, pop, {
- * modifiers: {
- * preventOverflow: { enabled: false }
- * }
- * })
- * ```
- * @type {Object}
- * @static
- * @memberof Popper
- */
- var Defaults = {
- /**
- * Popper's placement
- * @prop {Popper.placements} placement='bottom'
- */
- placement: 'bottom',
-
- /**
- * Set this to true if you want popper to position it self in 'fixed' mode
- * @prop {Boolean} positionFixed=false
- */
- positionFixed: false,
-
- /**
- * Whether events (resize, scroll) are initially enabled
- * @prop {Boolean} eventsEnabled=true
- */
- eventsEnabled: true,
-
- /**
- * Set to true if you want to automatically remove the popper when
- * you call the `destroy` method.
- * @prop {Boolean} removeOnDestroy=false
- */
- removeOnDestroy: false,
-
- /**
- * Callback called when the popper is created.
- * By default, is set to no-op.
- * Access Popper.js instance with `data.instance`.
- * @prop {onCreate}
- */
- onCreate: function onCreate() {},
-
- /**
- * Callback called when the popper is updated, this callback is not called
- * on the initialization/creation of the popper, but only on subsequent
- * updates.
- * By default, is set to no-op.
- * Access Popper.js instance with `data.instance`.
- * @prop {onUpdate}
- */
- onUpdate: function onUpdate() {},
-
- /**
- * List of modifiers used to modify the offsets before they are applied to the popper.
- * They provide most of the functionalities of Popper.js
- * @prop {modifiers}
- */
- modifiers: modifiers
- };
-
- /**
- * @callback onCreate
- * @param {dataObject} data
- */
-
- /**
- * @callback onUpdate
- * @param {dataObject} data
- */
-
- // Utils
- // Methods
- var Popper = function () {
- /**
- * Create a new Popper.js instance
- * @class Popper
- * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as popper.
- * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
- * @return {Object} instance - The generated Popper.js instance
- */
- function Popper(reference, popper) {
- var _this = this;
-
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- classCallCheck(this, Popper);
-
- this.scheduleUpdate = function () {
- return requestAnimationFrame(_this.update);
- };
-
- // make update() debounced, so that it only runs at most once-per-tick
- this.update = debounce(this.update.bind(this));
-
- // with {} we create a new object with the options inside it
- this.options = _extends({}, Popper.Defaults, options);
-
- // init state
- this.state = {
- isDestroyed: false,
- isCreated: false,
- scrollParents: []
- };
-
- // get reference and popper elements (allow jQuery wrappers)
- this.reference = reference && reference.jquery ? reference[0] : reference;
- this.popper = popper && popper.jquery ? popper[0] : popper;
-
- // Deep merge modifiers options
- this.options.modifiers = {};
- Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
- _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
- });
-
- // Refactoring modifiers' list (Object => Array)
- this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
- return _extends({
- name: name
- }, _this.options.modifiers[name]);
- })
- // sort the modifiers by order
- .sort(function (a, b) {
- return a.order - b.order;
- });
-
- // modifiers have the ability to execute arbitrary code when Popper.js get inited
- // such code is executed in the same order of its modifier
- // they could add new properties to their options configuration
- // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
- this.modifiers.forEach(function (modifierOptions) {
- if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
- modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
- }
- });
-
- // fire the first update to position the popper in the right place
- this.update();
-
- var eventsEnabled = this.options.eventsEnabled;
- if (eventsEnabled) {
- // setup event listeners, they will take care of update the position in specific situations
- this.enableEventListeners();
- }
-
- this.state.eventsEnabled = eventsEnabled;
- }
-
- // We can't use class properties because they don't get listed in the
- // class prototype and break stuff like Sinon stubs
-
-
- createClass(Popper, [{
- key: 'update',
- value: function update$$1() {
- return update.call(this);
- }
- }, {
- key: 'destroy',
- value: function destroy$$1() {
- return destroy.call(this);
- }
- }, {
- key: 'enableEventListeners',
- value: function enableEventListeners$$1() {
- return enableEventListeners.call(this);
- }
- }, {
- key: 'disableEventListeners',
- value: function disableEventListeners$$1() {
- return disableEventListeners.call(this);
- }
-
- /**
- * Schedule an update, it will run on the next UI update available
- * @method scheduleUpdate
- * @memberof Popper
- */
-
-
- /**
- * Collection of utilities useful when writing custom modifiers.
- * Starting from version 1.7, this method is available only if you
- * include `popper-utils.js` before `popper.js`.
- *
- * **DEPRECATION**: This way to access PopperUtils is deprecated
- * and will be removed in v2! Use the PopperUtils module directly instead.
- * Due to the high instability of the methods contained in Utils, we can't
- * guarantee them to follow semver. Use them at your own risk!
- * @static
- * @private
- * @type {Object}
- * @deprecated since version 1.8
- * @member Utils
- * @memberof Popper
- */
-
- }]);
- return Popper;
- }();
-
- /**
- * The `referenceObject` is an object that provides an interface compatible with Popper.js
- * and lets you use it as replacement of a real DOM node.
- * You can use this method to position a popper relatively to a set of coordinates
- * in case you don't have a DOM node to use as reference.
- *
- * ```
- * new Popper(referenceObject, popperNode);
- * ```
- *
- * NB: This feature isn't supported in Internet Explorer 10
- * @name referenceObject
- * @property {Function} data.getBoundingClientRect
- * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
- * @property {number} data.clientWidth
- * An ES6 getter that will return the width of the virtual reference element.
- * @property {number} data.clientHeight
- * An ES6 getter that will return the height of the virtual reference element.
- */
-
-
- Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
- Popper.placements = placements;
- Popper.Defaults = Defaults;
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Dropdown = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'dropdown';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.dropdown';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DISABLED: 'disabled',
- SHOW: 'show',
- DROPUP: 'dropup',
- DROPRIGHT: 'dropright',
- DROPLEFT: 'dropleft',
- MENURIGHT: 'dropdown-menu-right',
- MENULEFT: 'dropdown-menu-left',
- POSITION_STATIC: 'position-static'
- };
- var Selector = {
- DATA_TOGGLE: '[data-toggle="dropdown"]',
- FORM_CHILD: '.dropdown form',
- MENU: '.dropdown-menu',
- NAVBAR_NAV: '.navbar-nav',
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
- };
- var AttachmentMap = {
- TOP: 'top-start',
- TOPEND: 'top-end',
- BOTTOM: 'bottom-start',
- BOTTOMEND: 'bottom-end',
- RIGHT: 'right-start',
- RIGHTEND: 'right-end',
- LEFT: 'left-start',
- LEFTEND: 'left-end'
- };
- var Default = {
- offset: 0,
- flip: true,
- boundary: 'scrollParent',
- reference: 'toggle',
- display: 'dynamic'
- };
- var DefaultType = {
- offset: '(number|string|function)',
- flip: 'boolean',
- boundary: '(string|element)',
- reference: '(string|element)',
- display: 'string'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Dropdown =
- /*#__PURE__*/
- function () {
- function Dropdown(element, config) {
- this._element = element;
- this._popper = null;
- this._config = this._getConfig(config);
- this._menu = this._getMenuElement();
- this._inNavbar = this._detectNavbar();
-
- this._addEventListeners();
- } // Getters
-
-
- var _proto = Dropdown.prototype;
-
- // Public
- _proto.toggle = function toggle() {
- if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
- return;
- }
-
- var parent = Dropdown._getParentFromElement(this._element);
-
- var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
-
- Dropdown._clearMenus();
-
- if (isActive) {
- return;
- }
-
- var relatedTarget = {
- relatedTarget: this._element
- };
- var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
- $$$1(parent).trigger(showEvent);
-
- if (showEvent.isDefaultPrevented()) {
- return;
- } // Disable totally Popper.js for Dropdown in Navbar
-
-
- if (!this._inNavbar) {
- /**
- * Check for Popper dependency
- * Popper - https://popper.js.org
- */
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
- }
-
- var referenceElement = this._element;
-
- if (this._config.reference === 'parent') {
- referenceElement = parent;
- } else if (Util.isElement(this._config.reference)) {
- referenceElement = this._config.reference; // Check if it's jQuery element
-
- if (typeof this._config.reference.jquery !== 'undefined') {
- referenceElement = this._config.reference[0];
- }
- } // If boundary is not `scrollParent`, then set position to `static`
- // to allow the menu to "escape" the scroll parent's boundaries
- // https://github.com/twbs/bootstrap/issues/24251
-
-
- if (this._config.boundary !== 'scrollParent') {
- $$$1(parent).addClass(ClassName.POSITION_STATIC);
- }
-
- this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
- } // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-
- if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
- $$$1(document.body).children().on('mouseover', null, $$$1.noop);
- }
-
- this._element.focus();
-
- this._element.setAttribute('aria-expanded', true);
-
- $$$1(this._menu).toggleClass(ClassName.SHOW);
- $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
- };
-
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(this._element).off(EVENT_KEY);
- this._element = null;
- this._menu = null;
-
- if (this._popper !== null) {
- this._popper.destroy();
-
- this._popper = null;
- }
- };
-
- _proto.update = function update() {
- this._inNavbar = this._detectNavbar();
-
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- }; // Private
-
-
- _proto._addEventListeners = function _addEventListeners() {
- var _this = this;
-
- $$$1(this._element).on(Event.CLICK, function (event) {
- event.preventDefault();
- event.stopPropagation();
-
- _this.toggle();
- });
- };
-
- _proto._getConfig = function _getConfig(config) {
- config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
-
- _proto._getMenuElement = function _getMenuElement() {
- if (!this._menu) {
- var parent = Dropdown._getParentFromElement(this._element);
-
- this._menu = $$$1(parent).find(Selector.MENU)[0];
- }
-
- return this._menu;
- };
-
- _proto._getPlacement = function _getPlacement() {
- var $parentDropdown = $$$1(this._element).parent();
- var placement = AttachmentMap.BOTTOM; // Handle dropup
-
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
- placement = AttachmentMap.TOP;
-
- if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- placement = AttachmentMap.TOPEND;
- }
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
- placement = AttachmentMap.RIGHT;
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
- placement = AttachmentMap.LEFT;
- } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- placement = AttachmentMap.BOTTOMEND;
- }
-
- return placement;
- };
-
- _proto._detectNavbar = function _detectNavbar() {
- return $$$1(this._element).closest('.navbar').length > 0;
- };
-
- _proto._getPopperConfig = function _getPopperConfig() {
- var _this2 = this;
-
- var offsetConf = {};
-
- if (typeof this._config.offset === 'function') {
- offsetConf.fn = function (data) {
- data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
- return data;
- };
- } else {
- offsetConf.offset = this._config.offset;
- }
-
- var popperConfig = {
- placement: this._getPlacement(),
- modifiers: {
- offset: offsetConf,
- flip: {
- enabled: this._config.flip
- },
- preventOverflow: {
- boundariesElement: this._config.boundary
- }
- } // Disable Popper.js if we have a static display
-
- };
-
- if (this._config.display === 'static') {
- popperConfig.modifiers.applyStyle = {
- enabled: false
- };
- }
-
- return popperConfig;
- }; // Static
-
-
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- var _config = typeof config === 'object' ? config : null;
-
- if (!data) {
- data = new Dropdown(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- Dropdown._clearMenus = function _clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
- return;
- }
-
- var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
-
- for (var i = 0; i < toggles.length; i++) {
- var parent = Dropdown._getParentFromElement(toggles[i]);
-
- var context = $$$1(toggles[i]).data(DATA_KEY);
- var relatedTarget = {
- relatedTarget: toggles[i]
- };
-
- if (!context) {
- continue;
- }
-
- var dropdownMenu = context._menu;
-
- if (!$$$1(parent).hasClass(ClassName.SHOW)) {
- continue;
- }
-
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
- continue;
- }
-
- var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
- $$$1(parent).trigger(hideEvent);
-
- if (hideEvent.isDefaultPrevented()) {
- continue;
- } // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
-
-
- if ('ontouchstart' in document.documentElement) {
- $$$1(document.body).children().off('mouseover', null, $$$1.noop);
- }
-
- toggles[i].setAttribute('aria-expanded', 'false');
- $$$1(dropdownMenu).removeClass(ClassName.SHOW);
- $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
- }
- };
-
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
- var parent;
- var selector = Util.getSelectorFromElement(element);
-
- if (selector) {
- parent = $$$1(selector)[0];
- }
-
- return parent || element.parentNode;
- }; // eslint-disable-next-line complexity
-
-
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
- // If not input/textarea:
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
- // If input/textarea:
- // - If space key => not a dropdown command
- // - If key is other than escape
- // - If key is not up or down => not a dropdown command
- // - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
- return;
- }
-
- event.preventDefault();
- event.stopPropagation();
-
- if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
- return;
- }
-
- var parent = Dropdown._getParentFromElement(this);
-
- var isActive = $$$1(parent).hasClass(ClassName.SHOW);
-
- if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
- if (event.which === ESCAPE_KEYCODE) {
- var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
- $$$1(toggle).trigger('focus');
- }
-
- $$$1(this).trigger('click');
- return;
- }
-
- var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
-
- if (items.length === 0) {
- return;
- }
-
- var index = items.indexOf(event.target);
-
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
- // Up
- index--;
- }
-
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
- // Down
- index++;
- }
-
- if (index < 0) {
- index = 0;
- }
-
- items[index].focus();
- };
-
- _createClass(Dropdown, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
-
- return Dropdown;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
-
- $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
- event.stopPropagation();
-
- Dropdown._jQueryInterface.call($$$1(this), 'toggle');
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
- e.stopPropagation();
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Dropdown._jQueryInterface;
- $$$1.fn[NAME].Constructor = Dropdown;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Dropdown._jQueryInterface;
- };
-
- return Dropdown;
- }($, Popper);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Modal = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'modal';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.modal';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var Default = {
- backdrop: true,
- keyboard: true,
- focus: true,
- show: true
- };
- var DefaultType = {
- backdrop: '(boolean|string)',
- keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- RESIZE: "resize" + EVENT_KEY,
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
- BACKDROP: 'modal-backdrop',
- OPEN: 'modal-open',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- DIALOG: '.modal-dialog',
- DATA_TOGGLE: '[data-toggle="modal"]',
- DATA_DISMISS: '[data-dismiss="modal"]',
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
- STICKY_CONTENT: '.sticky-top',
- NAVBAR_TOGGLER: '.navbar-toggler'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Modal =
- /*#__PURE__*/
- function () {
- function Modal(element, config) {
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = $$$1(element).find(Selector.DIALOG)[0];
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._scrollbarWidth = 0;
- } // Getters
-
-
- var _proto = Modal.prototype;
-
- // Public
- _proto.toggle = function toggle(relatedTarget) {
- return this._isShown ? this.hide() : this.show(relatedTarget);
- };
-
- _proto.show = function show(relatedTarget) {
- var _this = this;
-
- if (this._isTransitioning || this._isShown) {
- return;
- }
-
- if ($$$1(this._element).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
- }
-
- var showEvent = $$$1.Event(Event.SHOW, {
- relatedTarget: relatedTarget
- });
- $$$1(this._element).trigger(showEvent);
-
- if (this._isShown || showEvent.isDefaultPrevented()) {
- return;
- }
-
- this._isShown = true;
-
- this._checkScrollbar();
-
- this._setScrollbar();
-
- this._adjustDialog();
-
- $$$1(document.body).addClass(ClassName.OPEN);
-
- this._setEscapeEvent();
-
- this._setResizeEvent();
-
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
- return _this.hide(event);
- });
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
- if ($$$1(event.target).is(_this._element)) {
- _this._ignoreBackdropClick = true;
- }
- });
- });
-
- this._showBackdrop(function () {
- return _this._showElement(relatedTarget);
- });
- };
-
- _proto.hide = function hide(event) {
- var _this2 = this;
-
- if (event) {
- event.preventDefault();
- }
-
- if (this._isTransitioning || !this._isShown) {
- return;
- }
-
- var hideEvent = $$$1.Event(Event.HIDE);
- $$$1(this._element).trigger(hideEvent);
-
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
- return;
- }
-
- this._isShown = false;
- var transition = $$$1(this._element).hasClass(ClassName.FADE);
-
- if (transition) {
- this._isTransitioning = true;
- }
-
- this._setEscapeEvent();
-
- this._setResizeEvent();
-
- $$$1(document).off(Event.FOCUSIN);
- $$$1(this._element).removeClass(ClassName.SHOW);
- $$$1(this._element).off(Event.CLICK_DISMISS);
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
-
- if (transition) {
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
- return _this2._hideModal(event);
- }).emulateTransitionEnd(transitionDuration);
- } else {
- this._hideModal();
- }
- };
-
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
- this._config = null;
- this._element = null;
- this._dialog = null;
- this._backdrop = null;
- this._isShown = null;
- this._isBodyOverflowing = null;
- this._ignoreBackdropClick = null;
- this._scrollbarWidth = null;
- };
-
- _proto.handleUpdate = function handleUpdate() {
- this._adjustDialog();
- }; // Private
-
-
- _proto._getConfig = function _getConfig(config) {
- config = _objectSpread({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
-
- _proto._showElement = function _showElement(relatedTarget) {
- var _this3 = this;
-
- var transition = $$$1(this._element).hasClass(ClassName.FADE);
-
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
- // Don't move modal's DOM position
- document.body.appendChild(this._element);
- }
-
- this._element.style.display = 'block';
-
- this._element.removeAttribute('aria-hidden');
-
- this._element.scrollTop = 0;
-
- if (transition) {
- Util.reflow(this._element);
- }
-
- $$$1(this._element).addClass(ClassName.SHOW);
-
- if (this._config.focus) {
- this._enforceFocus();
- }
-
- var shownEvent = $$$1.Event(Event.SHOWN, {
- relatedTarget: relatedTarget
- });
-
- var transitionComplete = function transitionComplete() {
- if (_this3._config.focus) {
- _this3._element.focus();
- }
-
- _this3._isTransitioning = false;
- $$$1(_this3._element).trigger(shownEvent);
- };
-
- if (transition) {
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
- } else {
- transitionComplete();
- }
- };
-
- _proto._enforceFocus = function _enforceFocus() {
- var _this4 = this;
-
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
- .on(Event.FOCUSIN, function (event) {
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
- _this4._element.focus();
- }
- });
- };
-
- _proto._setEscapeEvent = function _setEscapeEvent() {
- var _this5 = this;
-
- if (this._isShown && this._config.keyboard) {
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
- if (event.which === ESCAPE_KEYCODE) {
- event.preventDefault();
-
- _this5.hide();
- }
- });
- } else if (!this._isShown) {
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
- }
- };
-
- _proto._setResizeEvent = function _setResizeEvent() {
- var _this6 = this;
-
- if (this._isShown) {
- $$$1(window).on(Event.RESIZE, function (event) {
- return _this6.handleUpdate(event);
- });
- } else {
- $$$1(window).off(Event.RESIZE);
- }
- };
-
- _proto._hideModal = function _hideModal() {
- var _this7 = this;
-
- this._element.style.display = 'none';
-
- this._element.setAttribute('aria-hidden', true);
-
- this._isTransitioning = false;
-
- this._showBackdrop(function () {
- $$$1(document.body).removeClass(ClassName.OPEN);
-
- _this7._resetAdjustments();
-
- _this7._resetScrollbar();
-
- $$$1(_this7._element).trigger(Event.HIDDEN);
- });
- };
-
- _proto._removeBackdrop = function _removeBackdrop() {
- if (this._backdrop) {
- $$$1(this._backdrop).remove();
- this._backdrop = null;
- }
- };
-
- _proto._showBackdrop = function _showBackdrop(callback) {
- var _this8 = this;
-
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
-
- if (this._isShown && this._config.backdrop) {
- this._backdrop = document.createElement('div');
- this._backdrop.className = ClassName.BACKDROP;
-
- if (animate) {
- $$$1(this._backdrop).addClass(animate);
- }
-
- $$$1(this._backdrop).appendTo(document.body);
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
- if (_this8._ignoreBackdropClick) {
- _this8._ignoreBackdropClick = false;
- return;
- }
-
- if (event.target !== event.currentTarget) {
- return;
- }
-
- if (_this8._config.backdrop === 'static') {
- _this8._element.focus();
- } else {
- _this8.hide();
- }
- });
-
- if (animate) {
- Util.reflow(this._backdrop);
- }
-
- $$$1(this._backdrop).addClass(ClassName.SHOW);
-
- if (!callback) {
- return;
- }
-
- if (!animate) {
- callback();
- return;
- }
-
- var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
- } else if (!this._isShown && this._backdrop) {
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
-
- var callbackRemove = function callbackRemove() {
- _this8._removeBackdrop();
-
- if (callback) {
- callback();
- }
- };
-
- if ($$$1(this._element).hasClass(ClassName.FADE)) {
- var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
-
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
- } else {
- callbackRemove();
- }
- } else if (callback) {
- callback();
- }
- }; // ----------------------------------------------------------------------
- // the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
- // ----------------------------------------------------------------------
-
-
- _proto._adjustDialog = function _adjustDialog() {
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
- if (!this._isBodyOverflowing && isModalOverflowing) {
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
- }
-
- if (this._isBodyOverflowing && !isModalOverflowing) {
- this._element.style.paddingRight = this._scrollbarWidth + "px";
- }
- };
-
- _proto._resetAdjustments = function _resetAdjustments() {
- this._element.style.paddingLeft = '';
- this._element.style.paddingRight = '';
- };
-
- _proto._checkScrollbar = function _checkScrollbar() {
- var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
- this._scrollbarWidth = this._getScrollbarWidth();
- };
-
- _proto._setScrollbar = function _setScrollbar() {
- var _this9 = this;
-
- if (this._isBodyOverflowing) {
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
- // Adjust fixed content padding
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
- var actualPadding = $$$1(element)[0].style.paddingRight;
- var calculatedPadding = $$$1(element).css('padding-right');
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
- }); // Adjust sticky content margin
-
- $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
- var actualMargin = $$$1(element)[0].style.marginRight;
- var calculatedMargin = $$$1(element).css('margin-right');
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
- }); // Adjust navbar-toggler margin
-
- $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
- var actualMargin = $$$1(element)[0].style.marginRight;
- var calculatedMargin = $$$1(element).css('margin-right');
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
- }); // Adjust body padding
-
- var actualPadding = document.body.style.paddingRight;
- var calculatedPadding = $$$1(document.body).css('padding-right');
- $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
- }
- };
-
- _proto._resetScrollbar = function _resetScrollbar() {
- // Restore fixed content padding
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
- var padding = $$$1(element).data('padding-right');
-
- if (typeof padding !== 'undefined') {
- $$$1(element).css('padding-right', padding).removeData('padding-right');
- }
- }); // Restore sticky content and navbar-toggler margin
-
- $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
- var margin = $$$1(element).data('margin-right');
-
- if (typeof margin !== 'undefined') {
- $$$1(element).css('margin-right', margin).removeData('margin-right');
- }
- }); // Restore body padding
-
- var padding = $$$1(document.body).data('padding-right');
-
- if (typeof padding !== 'undefined') {
- $$$1(document.body).css('padding-right', padding).removeData('padding-right');
- }
- };
-
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
- // thx d.walsh
- var scrollDiv = document.createElement('div');
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
- }; // Static
-
-
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- var _config = _objectSpread({}, Default, $$$1(this).data(), typeof config === 'object' && config ? config : {});
-
- if (!data) {
- data = new Modal(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
- }
- });
- };
-
- _createClass(Modal, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
-
- return Modal;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
-
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- var _this10 = this;
-
- var target;
- var selector = Util.getSelectorFromElement(this);
-
- if (selector) {
- target = $$$1(selector)[0];
- }
-
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
-
- if (this.tagName === 'A' || this.tagName === 'AREA') {
- event.preventDefault();
- }
-
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
- if (showEvent.isDefaultPrevented()) {
- // Only register focus restorer if modal will actually get shown
- return;
- }
-
- $target.one(Event.HIDDEN, function () {
- if ($$$1(_this10).is(':visible')) {
- _this10.focus();
- }
- });
- });
-
- Modal._jQueryInterface.call($$$1(target), config, this);
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Modal._jQueryInterface;
- $$$1.fn[NAME].Constructor = Modal;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Modal._jQueryInterface;
- };
-
- return Modal;
- }($);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Tooltip = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'tooltip';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.tooltip';
- var EVENT_KEY = "." + DATA_KEY;
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var CLASS_PREFIX = 'bs-tooltip';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var DefaultType = {
- animation: 'boolean',
- template: 'string',
- title: '(string|element|function)',
- trigger: 'string',
- delay: '(number|object)',
- html: 'boolean',
- selector: '(string|boolean)',
- placement: '(string|function)',
- offset: '(number|string)',
- container: '(string|element|boolean)',
- fallbackPlacement: '(string|array)',
- boundary: '(string|element)'
- };
- var AttachmentMap = {
- AUTO: 'auto',
- TOP: 'top',
- RIGHT: 'right',
- BOTTOM: 'bottom',
- LEFT: 'left'
- };
- var Default = {
- animation: true,
- template: '',
- trigger: 'hover focus',
- title: '',
- delay: 0,
- html: false,
- selector: false,
- placement: 'top',
- offset: 0,
- container: false,
- fallbackPlacement: 'flip',
- boundary: 'scrollParent'
- };
- var HoverState = {
- SHOW: 'show',
- OUT: 'out'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- INSERTED: "inserted" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- FOCUSOUT: "focusout" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY
- };
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TOOLTIP: '.tooltip',
- TOOLTIP_INNER: '.tooltip-inner',
- ARROW: '.arrow'
- };
- var Trigger = {
- HOVER: 'hover',
- FOCUS: 'focus',
- CLICK: 'click',
- MANUAL: 'manual'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Tooltip =
- /*#__PURE__*/
- function () {
- function Tooltip(element, config) {
- /**
- * Check for Popper dependency
- * Popper - https://popper.js.org
- */
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
- } // private
-
-
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._popper = null; // Protected
-
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
-
- this._setListeners();
- } // Getters
-
-
- var _proto = Tooltip.prototype;
-
- // Public
- _proto.enable = function enable() {
- this._isEnabled = true;
- };
-
- _proto.disable = function disable() {
- this._isEnabled = false;
- };
-
- _proto.toggleEnabled = function toggleEnabled() {
- this._isEnabled = !this._isEnabled;
- };
-
- _proto.toggle = function toggle(event) {
- if (!this._isEnabled) {
- return;
- }
-
- if (event) {
- var dataKey = this.constructor.DATA_KEY;
- var context = $$$1(event.currentTarget).data(dataKey);
-
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
-
- context._activeTrigger.click = !context._activeTrigger.click;
-
- if (context._isWithActiveTrigger()) {
- context._enter(null, context);
- } else {
- context._leave(null, context);
- }
- } else {
- if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
- this._leave(null, this);
-
- return;
- }
-
- this._enter(null, this);
- }
- };
-
- _proto.dispose = function dispose() {
- clearTimeout(this._timeout);
- $$$1.removeData(this.element, this.constructor.DATA_KEY);
- $$$1(this.element).off(this.constructor.EVENT_KEY);
- $$$1(this.element).closest('.modal').off('hide.bs.modal');
-
- if (this.tip) {
- $$$1(this.tip).remove();
- }
-
- this._isEnabled = null;
- this._timeout = null;
- this._hoverState = null;
- this._activeTrigger = null;
-
- if (this._popper !== null) {
- this._popper.destroy();
- }
-
- this._popper = null;
- this.element = null;
- this.config = null;
- this.tip = null;
- };
-
- _proto.show = function show() {
- var _this = this;
-
- if ($$$1(this.element).css('display') === 'none') {
- throw new Error('Please use show on visible elements');
- }
-
- var showEvent = $$$1.Event(this.constructor.Event.SHOW);
-
- if (this.isWithContent() && this._isEnabled) {
- $$$1(this.element).trigger(showEvent);
- var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
-
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
- return;
- }
-
- var tip = this.getTipElement();
- var tipId = Util.getUID(this.constructor.NAME);
- tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
- this.setContent();
-
- if (this.config.animation) {
- $$$1(tip).addClass(ClassName.FADE);
- }
-
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
-
- var attachment = this._getAttachment(placement);
-
- this.addAttachmentClass(attachment);
- var container = this.config.container === false ? document.body : $$$1(this.config.container);
- $$$1(tip).data(this.constructor.DATA_KEY, this);
-
- if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
- $$$1(tip).appendTo(container);
- }
-
- $$$1(this.element).trigger(this.constructor.Event.INSERTED);
- this._popper = new Popper(this.element, tip, {
- placement: attachment,
- modifiers: {
- offset: {
- offset: this.config.offset
- },
- flip: {
- behavior: this.config.fallbackPlacement
- },
- arrow: {
- element: Selector.ARROW
- },
- preventOverflow: {
- boundariesElement: this.config.boundary
- }
- },
- onCreate: function onCreate(data) {
- if (data.originalPlacement !== data.placement) {
- _this._handlePopperPlacementChange(data);
- }
- },
- onUpdate: function onUpdate(data) {
- _this._handlePopperPlacementChange(data);
- }
- });
- $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
- if ('ontouchstart' in document.documentElement) {
- $$$1(document.body).children().on('mouseover', null, $$$1.noop);
- }
-
- var complete = function complete() {
- if (_this.config.animation) {
- _this._fixTransition();
- }
-
- var prevHoverState = _this._hoverState;
- _this._hoverState = null;
- $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
-
- if (prevHoverState === HoverState.OUT) {
- _this._leave(null, _this);
- }
- };
-
- if ($$$1(this.tip).hasClass(ClassName.FADE)) {
- var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
- $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- } else {
- complete();
- }
- }
- };
-
- _proto.hide = function hide(callback) {
- var _this2 = this;
-
- var tip = this.getTipElement();
- var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
-
- var complete = function complete() {
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
- tip.parentNode.removeChild(tip);
- }
-
- _this2._cleanTipClass();
-
- _this2.element.removeAttribute('aria-describedby');
-
- $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
-
- if (_this2._popper !== null) {
- _this2._popper.destroy();
- }
-
- if (callback) {
- callback();
- }
- };
-
- $$$1(this.element).trigger(hideEvent);
-
- if (hideEvent.isDefaultPrevented()) {
- return;
- }
-
- $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
-
- if ('ontouchstart' in document.documentElement) {
- $$$1(document.body).children().off('mouseover', null, $$$1.noop);
- }
-
- this._activeTrigger[Trigger.CLICK] = false;
- this._activeTrigger[Trigger.FOCUS] = false;
- this._activeTrigger[Trigger.HOVER] = false;
-
- if ($$$1(this.tip).hasClass(ClassName.FADE)) {
- var transitionDuration = Util.getTransitionDurationFromElement(tip);
- $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- } else {
- complete();
- }
-
- this._hoverState = '';
- };
-
- _proto.update = function update() {
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- }; // Protected
-
-
- _proto.isWithContent = function isWithContent() {
- return Boolean(this.getTitle());
- };
-
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
- };
-
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $$$1(this.config.template)[0];
- return this.tip;
- };
-
- _proto.setContent = function setContent() {
- var $tip = $$$1(this.getTipElement());
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
- };
-
- _proto.setElementContent = function setElementContent($element, content) {
- var html = this.config.html;
-
- if (typeof content === 'object' && (content.nodeType || content.jquery)) {
- // Content is a DOM node or a jQuery
- if (html) {
- if (!$$$1(content).parent().is($element)) {
- $element.empty().append(content);
- }
- } else {
- $element.text($$$1(content).text());
- }
- } else {
- $element[html ? 'html' : 'text'](content);
- }
- };
-
- _proto.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
-
- if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
- }
-
- return title;
- }; // Private
-
-
- _proto._getAttachment = function _getAttachment(placement) {
- return AttachmentMap[placement.toUpperCase()];
- };
-
- _proto._setListeners = function _setListeners() {
- var _this3 = this;
-
- var triggers = this.config.trigger.split(' ');
- triggers.forEach(function (trigger) {
- if (trigger === 'click') {
- $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
- return _this3.toggle(event);
- });
- } else if (trigger !== Trigger.MANUAL) {
- var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
- var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
- $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
- return _this3._enter(event);
- }).on(eventOut, _this3.config.selector, function (event) {
- return _this3._leave(event);
- });
- }
-
- $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
- return _this3.hide();
- });
- });
-
- if (this.config.selector) {
- this.config = _objectSpread({}, this.config, {
- trigger: 'manual',
- selector: ''
- });
- } else {
- this._fixTitle();
- }
- };
-
- _proto._fixTitle = function _fixTitle() {
- var titleType = typeof this.element.getAttribute('data-original-title');
-
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
- }
- };
-
- _proto._enter = function _enter(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $$$1(event.currentTarget).data(dataKey);
-
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
-
- if (event) {
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
- }
-
- if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
- context._hoverState = HoverState.SHOW;
- return;
- }
-
- clearTimeout(context._timeout);
- context._hoverState = HoverState.SHOW;
-
- if (!context.config.delay || !context.config.delay.show) {
- context.show();
- return;
- }
-
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.SHOW) {
- context.show();
- }
- }, context.config.delay.show);
- };
-
- _proto._leave = function _leave(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $$$1(event.currentTarget).data(dataKey);
-
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
-
- if (event) {
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
- }
-
- if (context._isWithActiveTrigger()) {
- return;
- }
-
- clearTimeout(context._timeout);
- context._hoverState = HoverState.OUT;
-
- if (!context.config.delay || !context.config.delay.hide) {
- context.hide();
- return;
- }
-
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.OUT) {
- context.hide();
- }
- }, context.config.delay.hide);
- };
-
- _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
- for (var trigger in this._activeTrigger) {
- if (this._activeTrigger[trigger]) {
- return true;
- }
- }
-
- return false;
- };
-
- _proto._getConfig = function _getConfig(config) {
- config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), typeof config === 'object' && config ? config : {});
-
- if (typeof config.delay === 'number') {
- config.delay = {
- show: config.delay,
- hide: config.delay
- };
- }
-
- if (typeof config.title === 'number') {
- config.title = config.title.toString();
- }
-
- if (typeof config.content === 'number') {
- config.content = config.content.toString();
- }
-
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
-
- _proto._getDelegateConfig = function _getDelegateConfig() {
- var config = {};
-
- if (this.config) {
- for (var key in this.config) {
- if (this.constructor.Default[key] !== this.config[key]) {
- config[key] = this.config[key];
- }
- }
- }
-
- return config;
- };
-
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $$$1(this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- };
-
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
- this._cleanTipClass();
-
- this.addAttachmentClass(this._getAttachment(data.placement));
- };
-
- _proto._fixTransition = function _fixTransition() {
- var tip = this.getTipElement();
- var initConfigAnimation = this.config.animation;
-
- if (tip.getAttribute('x-placement') !== null) {
- return;
- }
-
- $$$1(tip).removeClass(ClassName.FADE);
- this.config.animation = false;
- this.hide();
- this.show();
- this.config.animation = initConfigAnimation;
- }; // Static
-
-
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- var _config = typeof config === 'object' && config;
-
- if (!data && /dispose|hide/.test(config)) {
- return;
- }
-
- if (!data) {
- data = new Tooltip(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- _createClass(Tooltip, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
-
- return Tooltip;
- }();
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
-
- $$$1.fn[NAME] = Tooltip._jQueryInterface;
- $$$1.fn[NAME].Constructor = Tooltip;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tooltip._jQueryInterface;
- };
-
- return Tooltip;
- }($, Popper);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var Popover = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'popover';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.popover';
- var EVENT_KEY = "." + DATA_KEY;
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var CLASS_PREFIX = 'bs-popover';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-
- var Default = _objectSpread({}, Tooltip.Default, {
- placement: 'right',
- trigger: 'click',
- content: '',
- template: ''
- });
-
- var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
- content: '(string|element|function)'
- });
-
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TITLE: '.popover-header',
- CONTENT: '.popover-body'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- INSERTED: "inserted" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- FOCUSOUT: "focusout" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var Popover =
- /*#__PURE__*/
- function (_Tooltip) {
- _inheritsLoose(Popover, _Tooltip);
-
- function Popover() {
- return _Tooltip.apply(this, arguments) || this;
- }
-
- var _proto = Popover.prototype;
-
- // Overrides
- _proto.isWithContent = function isWithContent() {
- return this.getTitle() || this._getContent();
- };
-
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
- };
-
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $$$1(this.config.template)[0];
- return this.tip;
- };
-
- _proto.setContent = function setContent() {
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
-
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
-
- var content = this._getContent();
-
- if (typeof content === 'function') {
- content = content.call(this.element);
- }
-
- this.setElementContent($tip.find(Selector.CONTENT), content);
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
- }; // Private
-
-
- _proto._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || this.config.content;
- };
-
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $$$1(this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- }; // Static
-
-
- Popover._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- var _config = typeof config === 'object' ? config : null;
-
- if (!data && /destroy|hide/.test(config)) {
- return;
- }
-
- if (!data) {
- data = new Popover(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- _createClass(Popover, null, [{
- key: "VERSION",
- // Getters
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
-
- return Popover;
- }(Tooltip);
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
-
- $$$1.fn[NAME] = Popover._jQueryInterface;
- $$$1.fn[NAME].Constructor = Popover;
-
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Popover._jQueryInterface;
- };
-
- return Popover;
- }($);
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.1.1): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
- var ScrollSpy = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'scrollspy';
- var VERSION = '4.1.1';
- var DATA_KEY = 'bs.scrollspy';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var Default = {
- offset: 10,
- method: 'auto',
- target: ''
- };
- var DefaultType = {
- offset: 'number',
- method: 'string',
- target: '(string|element)'
- };
- var Event = {
- ACTIVATE: "activate" + EVENT_KEY,
- SCROLL: "scroll" + EVENT_KEY,
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_ITEM: 'dropdown-item',
- DROPDOWN_MENU: 'dropdown-menu',
- ACTIVE: 'active'
- };
- var Selector = {
- DATA_SPY: '[data-spy="scroll"]',
- ACTIVE: '.active',
- NAV_LIST_GROUP: '.nav, .list-group',
- NAV_LINKS: '.nav-link',
- NAV_ITEMS: '.nav-item',
- LIST_ITEMS: '.list-group-item',
- DROPDOWN: '.dropdown',
- DROPDOWN_ITEMS: '.dropdown-item',
- DROPDOWN_TOGGLE: '.dropdown-toggle'
- };
- var OffsetMethod = {
- OFFSET: 'offset',
- POSITION: 'position'
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
-
- };
-
- var ScrollSpy =
- /*#__PURE__*/
- function () {
- function ScrollSpy(element, config) {
- var _this = this;
-
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
- return _this._process(event);
- });
- this.refresh();
-
- this._process();
- } // Getters
-
-
- var _proto = ScrollSpy.prototype;
-
- // Public
- _proto.refresh = function refresh() {
- var _this2 = this;
-
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
- this._offsets = [];
- this._targets = [];
- this._scrollHeight = this._getScrollHeight();
- var targets = $$$1.makeArray($$$1(this._selector));
- targets.map(function (element) {
- var target;
- var targetSelector = Util.getSelectorFromElement(element);
-
- if (targetSelector) {
- target = $$$1(targetSelector)[0];
- }
-
- if (target) {
- var targetBCR = target.getBoundingClientRect();
-
- if (targetBCR.width || targetBCR.height) {
- // TODO (fat): remove sketch reliance on jQuery position/offset
- return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
- }
- }
-
- return null;
- }).filter(function (item) {
- return item;
- }).sort(function (a, b) {
- return a[0] - b[0];
- }).forEach(function (item) {
- _this2._offsets.push(item[0]);
-
- _this2._targets.push(item[1]);
- });
- };
-
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(this._scrollElement).off(EVENT_KEY);
- this._element = null;
- this._scrollElement = null;
- this._config = null;
- this._selector = null;
- this._offsets = null;
- this._targets = null;
- this._activeTarget = null;
- this._scrollHeight = null;
- }; // Private
-
-
- _proto._getConfig = function _getConfig(config) {
- config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});
-
- if (typeof config.target !== 'string') {
- var id = $$$1(config.target).attr('id');
-
- if (!id) {
- id = Util.getUID(NAME);
- $$$1(config.target).attr('id', id);
- }
-
- config.target = "#" + id;
- }
-
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
-
- _proto._getScrollTop = function _getScrollTop() {
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
- };
-
- _proto._getScrollHeight = function _getScrollHeight() {
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- };
-
- _proto._getOffsetHeight = function _getOffsetHeight() {
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
- };
-
- _proto._process = function _process() {
- var scrollTop = this._getScrollTop() + this._config.offset;
-
- var scrollHeight = this._getScrollHeight();
-
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
-
- if (this._scrollHeight !== scrollHeight) {
- this.refresh();
- }
-
- if (scrollTop >= maxScroll) {
- var target = this._targets[this._targets.length - 1];
-
- if (this._activeTarget !== target) {
- this._activate(target);
- }
-
- return;
- }
-
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
- this._activeTarget = null;
-
- this._clear();
-
- return;
- }
-
- for (var i = this._offsets.length; i--;) {
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
-
- if (isActiveTarget) {
- this._activate(this._targets[i]);
- }
- }
- };
-
- _proto._activate = function _activate(target) {
- this._activeTarget = target;
-
- this._clear();
-
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
-
-
- queries = queries.map(function (selector) {
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
- });
- var $link = $$$1(queries.join(','));
-
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
- $link.addClass(ClassName.ACTIVE);
- } else {
- // Set triggered link as active
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
- // With both and