diff --git a/Directory.Build.props b/Directory.Build.props index 0f414148b..9b34bce6c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -16,6 +16,6 @@ - + \ No newline at end of file diff --git a/MiniProfiler.sln b/MiniProfiler.sln index 9aadf3037..892155b03 100644 --- a/MiniProfiler.sln +++ b/MiniProfiler.sln @@ -29,12 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Mvc5", "src\Mi EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Shared", "src\MiniProfiler.Shared\MiniProfiler.Shared.csproj", "{BA40A569-BEE2-4E39-80A7-763BC15A9077}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Providers.RavenDB", "src\MiniProfiler.Providers.RavenDB\MiniProfiler.Providers.RavenDB.csproj", "{5176CF64-E00D-423F-9341-A8999A774B24}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Providers.SqlServer", "src\MiniProfiler.Providers.SqlServer\MiniProfiler.Providers.SqlServer.csproj", "{D240FC79-651F-4107-95EC-30702AE610DB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Providers.SqlServerCe", "src\MiniProfiler.Providers.SqlServerCe\MiniProfiler.Providers.SqlServerCe.csproj", "{0C9A1AA9-F25F-41DF-AF57-7B7B3EBF13DA}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Mvc5", "samples\Samples.Mvc5\Samples.Mvc5.csproj", "{C179CF56-7AC2-4340-8D43-2A3DCDB2E448}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.AspNetCore", "src\MiniProfiler.AspNetCore\MiniProfiler.AspNetCore.csproj", "{6A2B5B70-1C32-482F-B5C6-0597E2D4E376}" @@ -75,16 +71,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Tests.AspNet", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Tests.AspNetCore", "tests\MiniProfiler.Tests.AspNetCore\MiniProfiler.Tests.AspNetCore.csproj", "{CC4AD661-0F2D-4E27-934D-F321B2214E4B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Mvc5.EFCore", "samples\Samples.Mvc5.EFCore\Samples.Mvc5.EFCore.csproj", "{44F5C82B-412E-485D-B349-BA9A008BD5AC}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Providers.MongoDB", "src\MiniProfiler.Providers.MongoDB\MiniProfiler.Providers.MongoDB.csproj", "{001EFFB2-E56C-4A63-9954-79D7AEB052DB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Misc", "samples\Misc\Misc.csproj", "{44075C61-13E9-4C78-B340-6045EA115433}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.Providers.PostgreSql", "src\MiniProfiler.Providers.PostgreSql\MiniProfiler.Providers.PostgreSql.csproj", "{61E02A52-EB05-4B48-9AAE-BC7C1741E557}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniProfiler.EFC7", "src\MiniProfiler.EFC7\MiniProfiler.EFC7.csproj", "{BD7A4E74-ECFE-4BBE-86D9-D6DC2BED86DB}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{5C8ED0C0-7DBB-4660-836E-A760E25160A0}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{A14EA029-60E2-485A-B757-3626511CF2C4}" @@ -126,18 +118,10 @@ Global {BA40A569-BEE2-4E39-80A7-763BC15A9077}.Debug|Any CPU.Build.0 = Debug|Any CPU {BA40A569-BEE2-4E39-80A7-763BC15A9077}.Release|Any CPU.ActiveCfg = Release|Any CPU {BA40A569-BEE2-4E39-80A7-763BC15A9077}.Release|Any CPU.Build.0 = Release|Any CPU - {5176CF64-E00D-423F-9341-A8999A774B24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5176CF64-E00D-423F-9341-A8999A774B24}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5176CF64-E00D-423F-9341-A8999A774B24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5176CF64-E00D-423F-9341-A8999A774B24}.Release|Any CPU.Build.0 = Release|Any CPU {D240FC79-651F-4107-95EC-30702AE610DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D240FC79-651F-4107-95EC-30702AE610DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D240FC79-651F-4107-95EC-30702AE610DB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D240FC79-651F-4107-95EC-30702AE610DB}.Release|Any CPU.Build.0 = Release|Any CPU - {0C9A1AA9-F25F-41DF-AF57-7B7B3EBF13DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C9A1AA9-F25F-41DF-AF57-7B7B3EBF13DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C9A1AA9-F25F-41DF-AF57-7B7B3EBF13DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C9A1AA9-F25F-41DF-AF57-7B7B3EBF13DA}.Release|Any CPU.Build.0 = Release|Any CPU {C179CF56-7AC2-4340-8D43-2A3DCDB2E448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C179CF56-7AC2-4340-8D43-2A3DCDB2E448}.Debug|Any CPU.Build.0 = Debug|Any CPU {C179CF56-7AC2-4340-8D43-2A3DCDB2E448}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -182,10 +166,6 @@ Global {CC4AD661-0F2D-4E27-934D-F321B2214E4B}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC4AD661-0F2D-4E27-934D-F321B2214E4B}.Release|Any CPU.ActiveCfg = Release|Any CPU {CC4AD661-0F2D-4E27-934D-F321B2214E4B}.Release|Any CPU.Build.0 = Release|Any CPU - {44F5C82B-412E-485D-B349-BA9A008BD5AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {44F5C82B-412E-485D-B349-BA9A008BD5AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44F5C82B-412E-485D-B349-BA9A008BD5AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {44F5C82B-412E-485D-B349-BA9A008BD5AC}.Release|Any CPU.Build.0 = Release|Any CPU {001EFFB2-E56C-4A63-9954-79D7AEB052DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {001EFFB2-E56C-4A63-9954-79D7AEB052DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {001EFFB2-E56C-4A63-9954-79D7AEB052DB}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -198,10 +178,6 @@ Global {61E02A52-EB05-4B48-9AAE-BC7C1741E557}.Debug|Any CPU.Build.0 = Debug|Any CPU {61E02A52-EB05-4B48-9AAE-BC7C1741E557}.Release|Any CPU.ActiveCfg = Release|Any CPU {61E02A52-EB05-4B48-9AAE-BC7C1741E557}.Release|Any CPU.Build.0 = Release|Any CPU - {BD7A4E74-ECFE-4BBE-86D9-D6DC2BED86DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD7A4E74-ECFE-4BBE-86D9-D6DC2BED86DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BD7A4E74-ECFE-4BBE-86D9-D6DC2BED86DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BD7A4E74-ECFE-4BBE-86D9-D6DC2BED86DB}.Release|Any CPU.Build.0 = Release|Any CPU {9C7822CD-BE8E-424F-A0C6-86CC986ABB42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9C7822CD-BE8E-424F-A0C6-86CC986ABB42}.Debug|Any CPU.Build.0 = Debug|Any CPU {9C7822CD-BE8E-424F-A0C6-86CC986ABB42}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -221,9 +197,7 @@ Global {58DA79DE-F30B-4068-BEE9-013C9360CD74} = {E0DA4035-4D64-4BB8-8EA1-42197DE62519} {074BCD84-3E44-4140-9918-C09FCBEEC09F} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {BA40A569-BEE2-4E39-80A7-763BC15A9077} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} - {5176CF64-E00D-423F-9341-A8999A774B24} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {D240FC79-651F-4107-95EC-30702AE610DB} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} - {0C9A1AA9-F25F-41DF-AF57-7B7B3EBF13DA} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {C179CF56-7AC2-4340-8D43-2A3DCDB2E448} = {E0DA4035-4D64-4BB8-8EA1-42197DE62519} {6A2B5B70-1C32-482F-B5C6-0597E2D4E376} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {C7E9334A-6BFA-43A7-8FE4-393AC17DD7C1} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} @@ -235,11 +209,9 @@ Global {513C06B7-32FD-4833-8B04-A1A3C375634D} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {26C69CC7-765A-4378-BC16-65378B4E5033} = {33644D67-D9BB-4989-9B7A-98D51967059B} {CC4AD661-0F2D-4E27-934D-F321B2214E4B} = {33644D67-D9BB-4989-9B7A-98D51967059B} - {44F5C82B-412E-485D-B349-BA9A008BD5AC} = {E0DA4035-4D64-4BB8-8EA1-42197DE62519} {001EFFB2-E56C-4A63-9954-79D7AEB052DB} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {44075C61-13E9-4C78-B340-6045EA115433} = {E0DA4035-4D64-4BB8-8EA1-42197DE62519} {61E02A52-EB05-4B48-9AAE-BC7C1741E557} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} - {BD7A4E74-ECFE-4BBE-86D9-D6DC2BED86DB} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} {A14EA029-60E2-485A-B757-3626511CF2C4} = {5C8ED0C0-7DBB-4660-836E-A760E25160A0} {9C7822CD-BE8E-424F-A0C6-86CC986ABB42} = {E0DA4035-4D64-4BB8-8EA1-42197DE62519} {A1DCACC2-0D9A-401E-B6A4-856E5DD00541} = {6A510DBF-E85F-4D2C-B8F7-006DA31B3418} diff --git a/Readme.md b/Readme.md index 25b22eaf3..f76c72071 100644 --- a/Readme.md +++ b/Readme.md @@ -47,7 +47,6 @@ MyGet Pre-release feed: https://www.myget.org/gallery/miniprofiler | [MiniProfiler.Providers.MongoDB](https://www.nuget.org/packages/MiniProfiler.Providers.MongoDB/) | [![MiniProfiler.Providers.MongoDB](https://img.shields.io/nuget/v/MiniProfiler.Providers.MongoDB.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.MongoDB/) | [![MiniProfiler.Providers.MongoDB](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.MongoDB.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.MongoDB/) | [![MiniProfiler.Providers.MongoDB](https://img.shields.io/nuget/dt/MiniProfiler.Providers.MongoDB.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.MongoDB/) | [![MiniProfiler.Providers.MongoDB MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.MongoDB.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.MongoDB) | | [MiniProfiler.Providers.MySql](https://www.nuget.org/packages/MiniProfiler.Providers.MySql/) | [![MiniProfiler.Providers.MySql](https://img.shields.io/nuget/v/MiniProfiler.Providers.MySql.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.MySql/) | [![MiniProfiler.Providers.MySql](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.MySql.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.MySql/) | [![MiniProfiler.Providers.MySql](https://img.shields.io/nuget/dt/MiniProfiler.Providers.MySql.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.MySql/) | [![MiniProfiler.Providers.MySql MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.MySql.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.MySql) | | [MiniProfiler.Providers.PostgreSql](https://www.nuget.org/packages/MiniProfiler.Providers.PostgreSql/) | [![MiniProfiler.Providers.PostgreSql](https://img.shields.io/nuget/v/MiniProfiler.Providers.PostgreSql.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.PostgreSql/) | [![MiniProfiler.Providers.PostgreSql](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.PostgreSql.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.PostgreSql/) | [![MiniProfiler.Providers.PostgreSql](https://img.shields.io/nuget/dt/MiniProfiler.Providers.PostgreSql.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.PostgreSql/) | [![MiniProfiler.Providers.PostgreSql MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.PostgreSql.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.PostgreSql) | -| [MiniProfiler.Providers.RavenDB](https://www.nuget.org/packages/MiniProfiler.Providers.RavenDB/) | [![MiniProfiler.Providers.RavenDB](https://img.shields.io/nuget/v/MiniProfiler.Providers.RavenDB.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.RavenDB/) | [![MiniProfiler.Providers.RavenDB](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.RavenDB.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.RavenDB/) | [![MiniProfiler.Providers.RavenDB](https://img.shields.io/nuget/dt/MiniProfiler.Providers.RavenDB.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.RavenDB/) | [![MiniProfiler.Providers.RavenDB MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.RavenDB.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.RavenDB) | | [MiniProfiler.Providers.Redis](https://www.nuget.org/packages/MiniProfiler.Providers.Redis/) | [![MiniProfiler.Providers.Redis](https://img.shields.io/nuget/v/MiniProfiler.Providers.Redis.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.Redis/) | [![MiniProfiler.Providers.Redis](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.Redis.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.Redis/) | [![MiniProfiler.Providers.Redis](https://img.shields.io/nuget/dt/MiniProfiler.Providers.Redis.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.Redis/) | [![MiniProfiler.Providers.Redis MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.Redis.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.Redis) | | [MiniProfiler.Providers.Sqlite](https://www.nuget.org/packages/MiniProfiler.Providers.Sqlite/) | [![MiniProfiler.Providers.Sqlite](https://img.shields.io/nuget/v/MiniProfiler.Providers.Sqlite.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.Sqlite/) | [![MiniProfiler.Providers.Sqlite](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.Sqlite.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.Sqlite/) | [![MiniProfiler.Providers.Sqlite](https://img.shields.io/nuget/dt/MiniProfiler.Providers.Sqlite.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.Sqlite/) | [![MiniProfiler.Providers.Sqlite MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.Sqlite.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.Sqlite) | | [MiniProfiler.Providers.SqlServer](https://www.nuget.org/packages/MiniProfiler.Providers.SqlServer/) | [![MiniProfiler.Providers.SqlServer](https://img.shields.io/nuget/v/MiniProfiler.Providers.SqlServer.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.SqlServer/) | [![MiniProfiler.Providers.SqlServer](https://img.shields.io/nuget/vpre/MiniProfiler.Providers.SqlServer.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.SqlServer/) | [![MiniProfiler.Providers.SqlServer](https://img.shields.io/nuget/dt/MiniProfiler.Providers.SqlServer.svg)](https://www.nuget.org/packages/MiniProfiler.Providers.SqlServer/) | [![MiniProfiler.Providers.SqlServer MyGet](https://img.shields.io/myget/miniprofiler/vpre/MiniProfiler.Providers.SqlServer.svg)](https://www.myget.org/feed/miniprofiler/package/nuget/MiniProfiler.Providers.SqlServer) | diff --git a/benchmarks/MiniProfiler.Benchmarks/MiniProfiler.Benchmarks.csproj b/benchmarks/MiniProfiler.Benchmarks/MiniProfiler.Benchmarks.csproj index e0d88fbcd..c8df5d043 100644 --- a/benchmarks/MiniProfiler.Benchmarks/MiniProfiler.Benchmarks.csproj +++ b/benchmarks/MiniProfiler.Benchmarks/MiniProfiler.Benchmarks.csproj @@ -5,18 +5,19 @@ Exe Benchmarks Release - net472;net6.0 + net472;net8.0 AnyCPU false - - - - - - + + + + + + + diff --git a/docs/Releases.md b/docs/Releases.md index b210af3c5..6bd0c2bc6 100644 --- a/docs/Releases.md +++ b/docs/Releases.md @@ -8,10 +8,12 @@ This page tracks major changes included in any update starting with version 4.0. #### Unreleased - **New**: - Support for strict CSP (dynamic inline styles removed) ([#634](https://github.com/MiniProfiler/dotnet/pull/634) - thanks [rwasef1830](https://github.com/rwasef1830)) - - Adds `net6.0` build with no `Newtonsoft.Json` dependency ([#641](https://github.com/MiniProfiler/dotnet/pull/641)) + - Adds `net8.0` build with no `Newtonsoft.Json` dependency ([#641](https://github.com/MiniProfiler/dotnet/pull/641)) - **Fixes/Changes**: - Upgraded MongoDB driver, allowing automatic index creation and profiler expiration ([#613](https://github.com/MiniProfiler/dotnet/pull/613) - thanks [IanKemp](https://github.com/IanKemp)) - Fixed [#652](https://github.com/MiniProfiler/dotnet/issues/652): Respect `PopupDecimalPlaces` in all cases ([#655](https://github.com/MiniProfiler/dotnet/pull/655)) +- **Removed**: + - Support for rarely used `MiniProfiler.EFC7`, `MiniProfiler.Providers.RavenDB`, and `MiniProfiler.Providers.SqlServerCe` providers #### Version 4.3.8 - **New**: diff --git a/samples/Samples.AspNet/Samples.AspNet.csproj b/samples/Samples.AspNet/Samples.AspNet.csproj index f4419a22f..d26896993 100644 --- a/samples/Samples.AspNet/Samples.AspNet.csproj +++ b/samples/Samples.AspNet/Samples.AspNet.csproj @@ -1,13 +1,13 @@  Exe - net6.0 + net8.0 true - - + + diff --git a/samples/Samples.AspNet/Startup.cs b/samples/Samples.AspNet/Startup.cs index 6546d0860..f55fa4bfd 100644 --- a/samples/Samples.AspNet/Startup.cs +++ b/samples/Samples.AspNet/Startup.cs @@ -137,7 +137,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) .Use(async (context, next) => { var nonce = context.RequestServices.GetService()?.RequestNonce; - context.Response.Headers.Add("Content-Security-Policy", $"script-src 'self' 'nonce-{nonce}'"); + context.Response.Headers.Append("Content-Security-Policy", $"script-src 'self' 'nonce-{nonce}'"); await next(); }) .UseEndpoints(endpoints => diff --git a/samples/Samples.Console/Samples.Console.csproj b/samples/Samples.Console/Samples.Console.csproj index 11dc9a55f..4a2319345 100644 --- a/samples/Samples.Console/Samples.Console.csproj +++ b/samples/Samples.Console/Samples.Console.csproj @@ -1,10 +1,10 @@  - net461 + net472 Samples.Console Exe bin\$(Configuration)\ - win7-x64 + win-x64 @@ -14,8 +14,8 @@ - - + + diff --git a/samples/Samples.ConsoleCore/Samples.ConsoleCore.csproj b/samples/Samples.ConsoleCore/Samples.ConsoleCore.csproj index 9c86a1227..69882b6fc 100644 --- a/samples/Samples.ConsoleCore/Samples.ConsoleCore.csproj +++ b/samples/Samples.ConsoleCore/Samples.ConsoleCore.csproj @@ -1,13 +1,13 @@  - net6.0 + net8.0 Samples.Console Exe - - + + diff --git a/samples/Samples.Mvc5.EFCore/Content/Site.css b/samples/Samples.Mvc5.EFCore/Content/Site.css deleted file mode 100644 index cd0faeed6..000000000 --- a/samples/Samples.Mvc5.EFCore/Content/Site.css +++ /dev/null @@ -1,13 +0,0 @@ -.navbar { - margin-bottom: 0; -} - -.glyphicon.spinning { - margin-left: 5px; - font-size: 0.6em; - animation: spin 0.6s infinite linear; -} -@keyframes spin { - from { transform: scale(1) rotate(0deg); } - to { transform: scale(1) rotate(360deg); } -} \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Content/bootstrap.css b/samples/Samples.Mvc5.EFCore/Content/bootstrap.css deleted file mode 100644 index 0d7ca4ff2..000000000 --- a/samples/Samples.Mvc5.EFCore/Content/bootstrap.css +++ /dev/null @@ -1,8589 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700"); -/*! - * bootswatch v3.3.7 - * Homepage: http://bootswatch.com - * Copyright 2012-2016 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*/ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} - - audio:not([controls]) { - display: none; - height: 0; - } - -[hidden], -template { - display: none; -} - -a { - background-color: transparent; -} - - a:active, - a:hover { - outline: 0; - } - -abbr[title] { - border-bottom: 1px dotted; -} - -b, -strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -mark { - background: #ff0; - color: #000; -} - -small { - font-size: 80%; -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 1em 40px; -} - -hr { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -pre { - overflow: auto; -} - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} - -button { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} - - button[disabled], - html input[disabled] { - cursor: default; - } - - button::-moz-focus-inner, - input::-moz-focus-inner { - border: 0; - padding: 0; - } - -input { - line-height: normal; -} - - input[type="checkbox"], - input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - } - - input[type="number"]::-webkit-inner-spin-button, - input[type="number"]::-webkit-outer-spin-button { - height: auto; - } - - input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - } - - input[type="search"]::-webkit-search-cancel-button, - input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - } - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -legend { - border: 0; - padding: 0; -} - -textarea { - overflow: auto; -} - -optgroup { - font-weight: bold; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - text-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - thead { - display: table-header-group; - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } - - .navbar { - display: none; - } - - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - - .label { - 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 #ddd !important; - } -} - -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('fonts/glyphicons-halflings-regular.eot'); - src: url('fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('fonts/glyphicons-halflings-regular.woff') format('woff'), url('fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} - -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.glyphicon-asterisk:before { - content: "\002a"; -} - -.glyphicon-plus:before { - content: "\002b"; -} - -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} - -.glyphicon-minus:before { - content: "\2212"; -} - -.glyphicon-cloud:before { - content: "\2601"; -} - -.glyphicon-envelope:before { - content: "\2709"; -} - -.glyphicon-pencil:before { - content: "\270f"; -} - -.glyphicon-glass:before { - content: "\e001"; -} - -.glyphicon-music:before { - content: "\e002"; -} - -.glyphicon-search:before { - content: "\e003"; -} - -.glyphicon-heart:before { - content: "\e005"; -} - -.glyphicon-star:before { - content: "\e006"; -} - -.glyphicon-star-empty:before { - content: "\e007"; -} - -.glyphicon-user:before { - content: "\e008"; -} - -.glyphicon-film:before { - content: "\e009"; -} - -.glyphicon-th-large:before { - content: "\e010"; -} - -.glyphicon-th:before { - content: "\e011"; -} - -.glyphicon-th-list:before { - content: "\e012"; -} - -.glyphicon-ok:before { - content: "\e013"; -} - -.glyphicon-remove:before { - content: "\e014"; -} - -.glyphicon-zoom-in:before { - content: "\e015"; -} - -.glyphicon-zoom-out:before { - content: "\e016"; -} - -.glyphicon-off:before { - content: "\e017"; -} - -.glyphicon-signal:before { - content: "\e018"; -} - -.glyphicon-cog:before { - content: "\e019"; -} - -.glyphicon-trash:before { - content: "\e020"; -} - -.glyphicon-home:before { - content: "\e021"; -} - -.glyphicon-file:before { - content: "\e022"; -} - -.glyphicon-time:before { - content: "\e023"; -} - -.glyphicon-road:before { - content: "\e024"; -} - -.glyphicon-download-alt:before { - content: "\e025"; -} - -.glyphicon-download:before { - content: "\e026"; -} - -.glyphicon-upload:before { - content: "\e027"; -} - -.glyphicon-inbox:before { - content: "\e028"; -} - -.glyphicon-play-circle:before { - content: "\e029"; -} - -.glyphicon-repeat:before { - content: "\e030"; -} - -.glyphicon-refresh:before { - content: "\e031"; -} - -.glyphicon-list-alt:before { - content: "\e032"; -} - -.glyphicon-lock:before { - content: "\e033"; -} - -.glyphicon-flag:before { - content: "\e034"; -} - -.glyphicon-headphones:before { - content: "\e035"; -} - -.glyphicon-volume-off:before { - content: "\e036"; -} - -.glyphicon-volume-down:before { - content: "\e037"; -} - -.glyphicon-volume-up:before { - content: "\e038"; -} - -.glyphicon-qrcode:before { - content: "\e039"; -} - -.glyphicon-barcode:before { - content: "\e040"; -} - -.glyphicon-tag:before { - content: "\e041"; -} - -.glyphicon-tags:before { - content: "\e042"; -} - -.glyphicon-book:before { - content: "\e043"; -} - -.glyphicon-bookmark:before { - content: "\e044"; -} - -.glyphicon-print:before { - content: "\e045"; -} - -.glyphicon-camera:before { - content: "\e046"; -} - -.glyphicon-font:before { - content: "\e047"; -} - -.glyphicon-bold:before { - content: "\e048"; -} - -.glyphicon-italic:before { - content: "\e049"; -} - -.glyphicon-text-height:before { - content: "\e050"; -} - -.glyphicon-text-width:before { - content: "\e051"; -} - -.glyphicon-align-left:before { - content: "\e052"; -} - -.glyphicon-align-center:before { - content: "\e053"; -} - -.glyphicon-align-right:before { - content: "\e054"; -} - -.glyphicon-align-justify:before { - content: "\e055"; -} - -.glyphicon-list:before { - content: "\e056"; -} - -.glyphicon-indent-left:before { - content: "\e057"; -} - -.glyphicon-indent-right:before { - content: "\e058"; -} - -.glyphicon-facetime-video:before { - content: "\e059"; -} - -.glyphicon-picture:before { - content: "\e060"; -} - -.glyphicon-map-marker:before { - content: "\e062"; -} - -.glyphicon-adjust:before { - content: "\e063"; -} - -.glyphicon-tint:before { - content: "\e064"; -} - -.glyphicon-edit:before { - content: "\e065"; -} - -.glyphicon-share:before { - content: "\e066"; -} - -.glyphicon-check:before { - content: "\e067"; -} - -.glyphicon-move:before { - content: "\e068"; -} - -.glyphicon-step-backward:before { - content: "\e069"; -} - -.glyphicon-fast-backward:before { - content: "\e070"; -} - -.glyphicon-backward:before { - content: "\e071"; -} - -.glyphicon-play:before { - content: "\e072"; -} - -.glyphicon-pause:before { - content: "\e073"; -} - -.glyphicon-stop:before { - content: "\e074"; -} - -.glyphicon-forward:before { - content: "\e075"; -} - -.glyphicon-fast-forward:before { - content: "\e076"; -} - -.glyphicon-step-forward:before { - content: "\e077"; -} - -.glyphicon-eject:before { - content: "\e078"; -} - -.glyphicon-chevron-left:before { - content: "\e079"; -} - -.glyphicon-chevron-right:before { - content: "\e080"; -} - -.glyphicon-plus-sign:before { - content: "\e081"; -} - -.glyphicon-minus-sign:before { - content: "\e082"; -} - -.glyphicon-remove-sign:before { - content: "\e083"; -} - -.glyphicon-ok-sign:before { - content: "\e084"; -} - -.glyphicon-question-sign:before { - content: "\e085"; -} - -.glyphicon-info-sign:before { - content: "\e086"; -} - -.glyphicon-screenshot:before { - content: "\e087"; -} - -.glyphicon-remove-circle:before { - content: "\e088"; -} - -.glyphicon-ok-circle:before { - content: "\e089"; -} - -.glyphicon-ban-circle:before { - content: "\e090"; -} - -.glyphicon-arrow-left:before { - content: "\e091"; -} - -.glyphicon-arrow-right:before { - content: "\e092"; -} - -.glyphicon-arrow-up:before { - content: "\e093"; -} - -.glyphicon-arrow-down:before { - content: "\e094"; -} - -.glyphicon-share-alt:before { - content: "\e095"; -} - -.glyphicon-resize-full:before { - content: "\e096"; -} - -.glyphicon-resize-small:before { - content: "\e097"; -} - -.glyphicon-exclamation-sign:before { - content: "\e101"; -} - -.glyphicon-gift:before { - content: "\e102"; -} - -.glyphicon-leaf:before { - content: "\e103"; -} - -.glyphicon-fire:before { - content: "\e104"; -} - -.glyphicon-eye-open:before { - content: "\e105"; -} - -.glyphicon-eye-close:before { - content: "\e106"; -} - -.glyphicon-warning-sign:before { - content: "\e107"; -} - -.glyphicon-plane:before { - content: "\e108"; -} - -.glyphicon-calendar:before { - content: "\e109"; -} - -.glyphicon-random:before { - content: "\e110"; -} - -.glyphicon-comment:before { - content: "\e111"; -} - -.glyphicon-magnet:before { - content: "\e112"; -} - -.glyphicon-chevron-up:before { - content: "\e113"; -} - -.glyphicon-chevron-down:before { - content: "\e114"; -} - -.glyphicon-retweet:before { - content: "\e115"; -} - -.glyphicon-shopping-cart:before { - content: "\e116"; -} - -.glyphicon-folder-close:before { - content: "\e117"; -} - -.glyphicon-folder-open:before { - content: "\e118"; -} - -.glyphicon-resize-vertical:before { - content: "\e119"; -} - -.glyphicon-resize-horizontal:before { - content: "\e120"; -} - -.glyphicon-hdd:before { - content: "\e121"; -} - -.glyphicon-bullhorn:before { - content: "\e122"; -} - -.glyphicon-bell:before { - content: "\e123"; -} - -.glyphicon-certificate:before { - content: "\e124"; -} - -.glyphicon-thumbs-up:before { - content: "\e125"; -} - -.glyphicon-thumbs-down:before { - content: "\e126"; -} - -.glyphicon-hand-right:before { - content: "\e127"; -} - -.glyphicon-hand-left:before { - content: "\e128"; -} - -.glyphicon-hand-up:before { - content: "\e129"; -} - -.glyphicon-hand-down:before { - content: "\e130"; -} - -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} - -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} - -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} - -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} - -.glyphicon-globe:before { - content: "\e135"; -} - -.glyphicon-wrench:before { - content: "\e136"; -} - -.glyphicon-tasks:before { - content: "\e137"; -} - -.glyphicon-filter:before { - content: "\e138"; -} - -.glyphicon-briefcase:before { - content: "\e139"; -} - -.glyphicon-fullscreen:before { - content: "\e140"; -} - -.glyphicon-dashboard:before { - content: "\e141"; -} - -.glyphicon-paperclip:before { - content: "\e142"; -} - -.glyphicon-heart-empty:before { - content: "\e143"; -} - -.glyphicon-link:before { - content: "\e144"; -} - -.glyphicon-phone:before { - content: "\e145"; -} - -.glyphicon-pushpin:before { - content: "\e146"; -} - -.glyphicon-usd:before { - content: "\e148"; -} - -.glyphicon-gbp:before { - content: "\e149"; -} - -.glyphicon-sort:before { - content: "\e150"; -} - -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} - -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} - -.glyphicon-sort-by-order:before { - content: "\e153"; -} - -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} - -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} - -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} - -.glyphicon-unchecked:before { - content: "\e157"; -} - -.glyphicon-expand:before { - content: "\e158"; -} - -.glyphicon-collapse-down:before { - content: "\e159"; -} - -.glyphicon-collapse-up:before { - content: "\e160"; -} - -.glyphicon-log-in:before { - content: "\e161"; -} - -.glyphicon-flash:before { - content: "\e162"; -} - -.glyphicon-log-out:before { - content: "\e163"; -} - -.glyphicon-new-window:before { - content: "\e164"; -} - -.glyphicon-record:before { - content: "\e165"; -} - -.glyphicon-save:before { - content: "\e166"; -} - -.glyphicon-open:before { - content: "\e167"; -} - -.glyphicon-saved:before { - content: "\e168"; -} - -.glyphicon-import:before { - content: "\e169"; -} - -.glyphicon-export:before { - content: "\e170"; -} - -.glyphicon-send:before { - content: "\e171"; -} - -.glyphicon-floppy-disk:before { - content: "\e172"; -} - -.glyphicon-floppy-saved:before { - content: "\e173"; -} - -.glyphicon-floppy-remove:before { - content: "\e174"; -} - -.glyphicon-floppy-save:before { - content: "\e175"; -} - -.glyphicon-floppy-open:before { - content: "\e176"; -} - -.glyphicon-credit-card:before { - content: "\e177"; -} - -.glyphicon-transfer:before { - content: "\e178"; -} - -.glyphicon-cutlery:before { - content: "\e179"; -} - -.glyphicon-header:before { - content: "\e180"; -} - -.glyphicon-compressed:before { - content: "\e181"; -} - -.glyphicon-earphone:before { - content: "\e182"; -} - -.glyphicon-phone-alt:before { - content: "\e183"; -} - -.glyphicon-tower:before { - content: "\e184"; -} - -.glyphicon-stats:before { - content: "\e185"; -} - -.glyphicon-sd-video:before { - content: "\e186"; -} - -.glyphicon-hd-video:before { - content: "\e187"; -} - -.glyphicon-subtitles:before { - content: "\e188"; -} - -.glyphicon-sound-stereo:before { - content: "\e189"; -} - -.glyphicon-sound-dolby:before { - content: "\e190"; -} - -.glyphicon-sound-5-1:before { - content: "\e191"; -} - -.glyphicon-sound-6-1:before { - content: "\e192"; -} - -.glyphicon-sound-7-1:before { - content: "\e193"; -} - -.glyphicon-copyright-mark:before { - content: "\e194"; -} - -.glyphicon-registration-mark:before { - content: "\e195"; -} - -.glyphicon-cloud-download:before { - content: "\e197"; -} - -.glyphicon-cloud-upload:before { - content: "\e198"; -} - -.glyphicon-tree-conifer:before { - content: "\e199"; -} - -.glyphicon-tree-deciduous:before { - content: "\e200"; -} - -.glyphicon-cd:before { - content: "\e201"; -} - -.glyphicon-save-file:before { - content: "\e202"; -} - -.glyphicon-open-file:before { - content: "\e203"; -} - -.glyphicon-level-up:before { - content: "\e204"; -} - -.glyphicon-copy:before { - content: "\e205"; -} - -.glyphicon-paste:before { - content: "\e206"; -} - -.glyphicon-alert:before { - content: "\e209"; -} - -.glyphicon-equalizer:before { - content: "\e210"; -} - -.glyphicon-king:before { - content: "\e211"; -} - -.glyphicon-queen:before { - content: "\e212"; -} - -.glyphicon-pawn:before { - content: "\e213"; -} - -.glyphicon-bishop:before { - content: "\e214"; -} - -.glyphicon-knight:before { - content: "\e215"; -} - -.glyphicon-baby-formula:before { - content: "\e216"; -} - -.glyphicon-tent:before { - content: "\26fa"; -} - -.glyphicon-blackboard:before { - content: "\e218"; -} - -.glyphicon-bed:before { - content: "\e219"; -} - -.glyphicon-apple:before { - content: "\f8ff"; -} - -.glyphicon-erase:before { - content: "\e221"; -} - -.glyphicon-hourglass:before { - content: "\231b"; -} - -.glyphicon-lamp:before { - content: "\e223"; -} - -.glyphicon-duplicate:before { - content: "\e224"; -} - -.glyphicon-piggy-bank:before { - content: "\e225"; -} - -.glyphicon-scissors:before { - content: "\e226"; -} - -.glyphicon-bitcoin:before { - content: "\e227"; -} - -.glyphicon-btc:before { - content: "\e227"; -} - -.glyphicon-xbt:before { - content: "\e227"; -} - -.glyphicon-yen:before { - content: "\00a5"; -} - -.glyphicon-jpy:before { - content: "\00a5"; -} - -.glyphicon-ruble:before { - content: "\20bd"; -} - -.glyphicon-rub:before { - content: "\20bd"; -} - -.glyphicon-scale:before { - content: "\e230"; -} - -.glyphicon-ice-lolly:before { - content: "\e231"; -} - -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} - -.glyphicon-education:before { - content: "\e233"; -} - -.glyphicon-option-horizontal:before { - content: "\e234"; -} - -.glyphicon-option-vertical:before { - content: "\e235"; -} - -.glyphicon-menu-hamburger:before { - content: "\e236"; -} - -.glyphicon-modal-window:before { - content: "\e237"; -} - -.glyphicon-oil:before { - content: "\e238"; -} - -.glyphicon-grain:before { - content: "\e239"; -} - -.glyphicon-sunglasses:before { - content: "\e240"; -} - -.glyphicon-text-size:before { - content: "\e241"; -} - -.glyphicon-text-color:before { - content: "\e242"; -} - -.glyphicon-text-background:before { - content: "\e243"; -} - -.glyphicon-object-align-top:before { - content: "\e244"; -} - -.glyphicon-object-align-bottom:before { - content: "\e245"; -} - -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} - -.glyphicon-object-align-left:before { - content: "\e247"; -} - -.glyphicon-object-align-vertical:before { - content: "\e248"; -} - -.glyphicon-object-align-right:before { - content: "\e249"; -} - -.glyphicon-triangle-right:before { - content: "\e250"; -} - -.glyphicon-triangle-left:before { - content: "\e251"; -} - -.glyphicon-triangle-bottom:before { - content: "\e252"; -} - -.glyphicon-triangle-top:before { - content: "\e253"; -} - -.glyphicon-console:before { - content: "\e254"; -} - -.glyphicon-superscript:before { - content: "\e255"; -} - -.glyphicon-subscript:before { - content: "\e256"; -} - -.glyphicon-menu-left:before { - content: "\e257"; -} - -.glyphicon-menu-right:before { - content: "\e258"; -} - -.glyphicon-menu-down:before { - content: "\e259"; -} - -.glyphicon-menu-up:before { - content: "\e260"; -} - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - - *:before, - *:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -body { - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 15px; - line-height: 1.4; - color: #222222; - background-color: #ffffff; -} - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -a { - color: #008cba; - text-decoration: none; -} - - a:hover, - a:focus { - color: #008cba; - text-decoration: underline; - } - - a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - -figure { - margin: 0; -} - -img { - vertical-align: middle; -} - -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} - -.img-rounded { - border-radius: 0; -} - -.img-thumbnail { - padding: 4px; - line-height: 1.4; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 0; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} - -.img-circle { - border-radius: 50%; -} - -hr { - margin-top: 21px; - margin-bottom: 21px; - border: 0; - border-top: 1px solid #dddddd; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} - -[role="button"] { - cursor: pointer; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: 300; - line-height: 1.1; - color: inherit; -} - - h1 small, - h2 small, - h3 small, - h4 small, - h5 small, - h6 small, - .h1 small, - .h2 small, - .h3 small, - .h4 small, - .h5 small, - .h6 small, - h1 .small, - h2 .small, - h3 .small, - h4 .small, - h5 .small, - h6 .small, - .h1 .small, - .h2 .small, - .h3 .small, - .h4 .small, - .h5 .small, - .h6 .small { - font-weight: normal; - line-height: 1; - color: #999999; - } - -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 21px; - margin-bottom: 10.5px; -} - - h1 small, - .h1 small, - h2 small, - .h2 small, - h3 small, - .h3 small, - h1 .small, - .h1 .small, - h2 .small, - .h2 .small, - h3 .small, - .h3 .small { - font-size: 65%; - } - -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10.5px; - margin-bottom: 10.5px; -} - - h4 small, - .h4 small, - h5 small, - .h5 small, - h6 small, - .h6 small, - h4 .small, - .h4 .small, - h5 .small, - .h5 .small, - h6 .small, - .h6 .small { - font-size: 75%; - } - -h1, -.h1 { - font-size: 39px; -} - -h2, -.h2 { - font-size: 32px; -} - -h3, -.h3 { - font-size: 26px; -} - -h4, -.h4 { - font-size: 19px; -} - -h5, -.h5 { - font-size: 15px; -} - -h6, -.h6 { - font-size: 13px; -} - -p { - margin: 0 0 10.5px; -} - -.lead { - margin-bottom: 21px; - font-size: 17px; - font-weight: 300; - line-height: 1.4; -} - -@media (min-width: 768px) { - .lead { - font-size: 22.5px; - } -} - -small, -.small { - font-size: 80%; -} - -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -.text-justify { - text-align: justify; -} - -.text-nowrap { - white-space: nowrap; -} - -.text-lowercase { - text-transform: lowercase; -} - -.text-uppercase { - text-transform: uppercase; -} - -.text-capitalize { - text-transform: capitalize; -} - -.text-muted { - color: #999999; -} - -.text-primary { - color: #008cba; -} - -a.text-primary:hover, -a.text-primary:focus { - color: #006687; -} - -.text-success { - color: #43ac6a; -} - -a.text-success:hover, -a.text-success:focus { - color: #358753; -} - -.text-info { - color: #5bc0de; -} - -a.text-info:hover, -a.text-info:focus { - color: #31b0d5; -} - -.text-warning { - color: #e99002; -} - -a.text-warning:hover, -a.text-warning:focus { - color: #b67102; -} - -.text-danger { - color: #f04124; -} - -a.text-danger:hover, -a.text-danger:focus { - color: #d32a0e; -} - -.bg-primary { - color: #fff; - background-color: #008cba; -} - -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #006687; -} - -.bg-success { - background-color: #dff0d8; -} - -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; -} - -.bg-info { - background-color: #d9edf7; -} - -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; -} - -.bg-warning { - background-color: #fcf8e3; -} - -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; -} - -.bg-danger { - background-color: #f2dede; -} - -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; -} - -.page-header { - padding-bottom: 9.5px; - margin: 42px 0 21px; - border-bottom: 1px solid #dddddd; -} - -ul, -ol { - margin-top: 0; - margin-bottom: 10.5px; -} - - ul ul, - ol ul, - ul ol, - ol ol { - margin-bottom: 0; - } - -.list-unstyled { - padding-left: 0; - list-style: none; -} - -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} - - .list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; - } - -dl { - margin-top: 0; - margin-bottom: 21px; -} - -dt, -dd { - line-height: 1.4; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 0; -} - -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .dl-horizontal dd { - margin-left: 180px; - } -} - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 10.5px 21px; - margin: 0 0 21px; - font-size: 18.75px; - border-left: 5px solid #dddddd; -} - - blockquote p:last-child, - blockquote ul:last-child, - blockquote ol:last-child { - margin-bottom: 0; - } - - blockquote footer, - blockquote small, - blockquote .small { - display: block; - font-size: 80%; - line-height: 1.4; - color: #6f6f6f; - } - - blockquote footer:before, - blockquote small:before, - blockquote .small:before { - content: '\2014 \00A0'; - } - - .blockquote-reverse, - blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #dddddd; - border-left: 0; - text-align: right; - } - - .blockquote-reverse footer:before, - blockquote.pull-right footer:before, - .blockquote-reverse small:before, - blockquote.pull-right small:before, - .blockquote-reverse .small:before, - blockquote.pull-right .small:before { - content: ''; - } - - .blockquote-reverse footer:after, - blockquote.pull-right footer:after, - .blockquote-reverse small:after, - blockquote.pull-right small:after, - .blockquote-reverse .small:after, - blockquote.pull-right .small:after { - content: '\00A0 \2014'; - } - -address { - margin-bottom: 21px; - font-style: normal; - line-height: 1.4; -} - -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 0; -} - -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 0; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} - - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; - } - -pre { - display: block; - padding: 10px; - margin: 0 0 10.5px; - font-size: 14px; - line-height: 1.4; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 0; -} - - pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -@media (min-width: 768px) { - .container { - width: 750px; - } -} - -@media (min-width: 992px) { - .container { - width: 970px; - } -} - -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} - -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -.row { - margin-left: -15px; - margin-right: -15px; -} - -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} - -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} - -.col-xs-12 { - width: 100%; -} - -.col-xs-11 { - width: 91.66666667%; -} - -.col-xs-10 { - width: 83.33333333%; -} - -.col-xs-9 { - width: 75%; -} - -.col-xs-8 { - width: 66.66666667%; -} - -.col-xs-7 { - width: 58.33333333%; -} - -.col-xs-6 { - width: 50%; -} - -.col-xs-5 { - width: 41.66666667%; -} - -.col-xs-4 { - width: 33.33333333%; -} - -.col-xs-3 { - width: 25%; -} - -.col-xs-2 { - width: 16.66666667%; -} - -.col-xs-1 { - width: 8.33333333%; -} - -.col-xs-pull-12 { - right: 100%; -} - -.col-xs-pull-11 { - right: 91.66666667%; -} - -.col-xs-pull-10 { - right: 83.33333333%; -} - -.col-xs-pull-9 { - right: 75%; -} - -.col-xs-pull-8 { - right: 66.66666667%; -} - -.col-xs-pull-7 { - right: 58.33333333%; -} - -.col-xs-pull-6 { - right: 50%; -} - -.col-xs-pull-5 { - right: 41.66666667%; -} - -.col-xs-pull-4 { - right: 33.33333333%; -} - -.col-xs-pull-3 { - right: 25%; -} - -.col-xs-pull-2 { - right: 16.66666667%; -} - -.col-xs-pull-1 { - right: 8.33333333%; -} - -.col-xs-pull-0 { - right: auto; -} - -.col-xs-push-12 { - left: 100%; -} - -.col-xs-push-11 { - left: 91.66666667%; -} - -.col-xs-push-10 { - left: 83.33333333%; -} - -.col-xs-push-9 { - left: 75%; -} - -.col-xs-push-8 { - left: 66.66666667%; -} - -.col-xs-push-7 { - left: 58.33333333%; -} - -.col-xs-push-6 { - left: 50%; -} - -.col-xs-push-5 { - left: 41.66666667%; -} - -.col-xs-push-4 { - left: 33.33333333%; -} - -.col-xs-push-3 { - left: 25%; -} - -.col-xs-push-2 { - left: 16.66666667%; -} - -.col-xs-push-1 { - left: 8.33333333%; -} - -.col-xs-push-0 { - left: auto; -} - -.col-xs-offset-12 { - margin-left: 100%; -} - -.col-xs-offset-11 { - margin-left: 91.66666667%; -} - -.col-xs-offset-10 { - margin-left: 83.33333333%; -} - -.col-xs-offset-9 { - margin-left: 75%; -} - -.col-xs-offset-8 { - margin-left: 66.66666667%; -} - -.col-xs-offset-7 { - margin-left: 58.33333333%; -} - -.col-xs-offset-6 { - margin-left: 50%; -} - -.col-xs-offset-5 { - margin-left: 41.66666667%; -} - -.col-xs-offset-4 { - margin-left: 33.33333333%; -} - -.col-xs-offset-3 { - margin-left: 25%; -} - -.col-xs-offset-2 { - margin-left: 16.66666667%; -} - -.col-xs-offset-1 { - margin-left: 8.33333333%; -} - -.col-xs-offset-0 { - margin-left: 0%; -} - -@media (min-width: 768px) { - .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 { - float: left; - } - - .col-sm-12 { - width: 100%; - } - - .col-sm-11 { - width: 91.66666667%; - } - - .col-sm-10 { - width: 83.33333333%; - } - - .col-sm-9 { - width: 75%; - } - - .col-sm-8 { - width: 66.66666667%; - } - - .col-sm-7 { - width: 58.33333333%; - } - - .col-sm-6 { - width: 50%; - } - - .col-sm-5 { - width: 41.66666667%; - } - - .col-sm-4 { - width: 33.33333333%; - } - - .col-sm-3 { - width: 25%; - } - - .col-sm-2 { - width: 16.66666667%; - } - - .col-sm-1 { - width: 8.33333333%; - } - - .col-sm-pull-12 { - right: 100%; - } - - .col-sm-pull-11 { - right: 91.66666667%; - } - - .col-sm-pull-10 { - right: 83.33333333%; - } - - .col-sm-pull-9 { - right: 75%; - } - - .col-sm-pull-8 { - right: 66.66666667%; - } - - .col-sm-pull-7 { - right: 58.33333333%; - } - - .col-sm-pull-6 { - right: 50%; - } - - .col-sm-pull-5 { - right: 41.66666667%; - } - - .col-sm-pull-4 { - right: 33.33333333%; - } - - .col-sm-pull-3 { - right: 25%; - } - - .col-sm-pull-2 { - right: 16.66666667%; - } - - .col-sm-pull-1 { - right: 8.33333333%; - } - - .col-sm-pull-0 { - right: auto; - } - - .col-sm-push-12 { - left: 100%; - } - - .col-sm-push-11 { - left: 91.66666667%; - } - - .col-sm-push-10 { - left: 83.33333333%; - } - - .col-sm-push-9 { - left: 75%; - } - - .col-sm-push-8 { - left: 66.66666667%; - } - - .col-sm-push-7 { - left: 58.33333333%; - } - - .col-sm-push-6 { - left: 50%; - } - - .col-sm-push-5 { - left: 41.66666667%; - } - - .col-sm-push-4 { - left: 33.33333333%; - } - - .col-sm-push-3 { - left: 25%; - } - - .col-sm-push-2 { - left: 16.66666667%; - } - - .col-sm-push-1 { - left: 8.33333333%; - } - - .col-sm-push-0 { - left: auto; - } - - .col-sm-offset-12 { - margin-left: 100%; - } - - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - - .col-sm-offset-9 { - margin-left: 75%; - } - - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - - .col-sm-offset-6 { - margin-left: 50%; - } - - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - - .col-sm-offset-3 { - margin-left: 25%; - } - - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - - .col-sm-offset-0 { - margin-left: 0%; - } -} - -@media (min-width: 992px) { - .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 { - float: left; - } - - .col-md-12 { - width: 100%; - } - - .col-md-11 { - width: 91.66666667%; - } - - .col-md-10 { - width: 83.33333333%; - } - - .col-md-9 { - width: 75%; - } - - .col-md-8 { - width: 66.66666667%; - } - - .col-md-7 { - width: 58.33333333%; - } - - .col-md-6 { - width: 50%; - } - - .col-md-5 { - width: 41.66666667%; - } - - .col-md-4 { - width: 33.33333333%; - } - - .col-md-3 { - width: 25%; - } - - .col-md-2 { - width: 16.66666667%; - } - - .col-md-1 { - width: 8.33333333%; - } - - .col-md-pull-12 { - right: 100%; - } - - .col-md-pull-11 { - right: 91.66666667%; - } - - .col-md-pull-10 { - right: 83.33333333%; - } - - .col-md-pull-9 { - right: 75%; - } - - .col-md-pull-8 { - right: 66.66666667%; - } - - .col-md-pull-7 { - right: 58.33333333%; - } - - .col-md-pull-6 { - right: 50%; - } - - .col-md-pull-5 { - right: 41.66666667%; - } - - .col-md-pull-4 { - right: 33.33333333%; - } - - .col-md-pull-3 { - right: 25%; - } - - .col-md-pull-2 { - right: 16.66666667%; - } - - .col-md-pull-1 { - right: 8.33333333%; - } - - .col-md-pull-0 { - right: auto; - } - - .col-md-push-12 { - left: 100%; - } - - .col-md-push-11 { - left: 91.66666667%; - } - - .col-md-push-10 { - left: 83.33333333%; - } - - .col-md-push-9 { - left: 75%; - } - - .col-md-push-8 { - left: 66.66666667%; - } - - .col-md-push-7 { - left: 58.33333333%; - } - - .col-md-push-6 { - left: 50%; - } - - .col-md-push-5 { - left: 41.66666667%; - } - - .col-md-push-4 { - left: 33.33333333%; - } - - .col-md-push-3 { - left: 25%; - } - - .col-md-push-2 { - left: 16.66666667%; - } - - .col-md-push-1 { - left: 8.33333333%; - } - - .col-md-push-0 { - left: auto; - } - - .col-md-offset-12 { - margin-left: 100%; - } - - .col-md-offset-11 { - margin-left: 91.66666667%; - } - - .col-md-offset-10 { - margin-left: 83.33333333%; - } - - .col-md-offset-9 { - margin-left: 75%; - } - - .col-md-offset-8 { - margin-left: 66.66666667%; - } - - .col-md-offset-7 { - margin-left: 58.33333333%; - } - - .col-md-offset-6 { - margin-left: 50%; - } - - .col-md-offset-5 { - margin-left: 41.66666667%; - } - - .col-md-offset-4 { - margin-left: 33.33333333%; - } - - .col-md-offset-3 { - margin-left: 25%; - } - - .col-md-offset-2 { - margin-left: 16.66666667%; - } - - .col-md-offset-1 { - margin-left: 8.33333333%; - } - - .col-md-offset-0 { - margin-left: 0%; - } -} - -@media (min-width: 1200px) { - .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 { - float: left; - } - - .col-lg-12 { - width: 100%; - } - - .col-lg-11 { - width: 91.66666667%; - } - - .col-lg-10 { - width: 83.33333333%; - } - - .col-lg-9 { - width: 75%; - } - - .col-lg-8 { - width: 66.66666667%; - } - - .col-lg-7 { - width: 58.33333333%; - } - - .col-lg-6 { - width: 50%; - } - - .col-lg-5 { - width: 41.66666667%; - } - - .col-lg-4 { - width: 33.33333333%; - } - - .col-lg-3 { - width: 25%; - } - - .col-lg-2 { - width: 16.66666667%; - } - - .col-lg-1 { - width: 8.33333333%; - } - - .col-lg-pull-12 { - right: 100%; - } - - .col-lg-pull-11 { - right: 91.66666667%; - } - - .col-lg-pull-10 { - right: 83.33333333%; - } - - .col-lg-pull-9 { - right: 75%; - } - - .col-lg-pull-8 { - right: 66.66666667%; - } - - .col-lg-pull-7 { - right: 58.33333333%; - } - - .col-lg-pull-6 { - right: 50%; - } - - .col-lg-pull-5 { - right: 41.66666667%; - } - - .col-lg-pull-4 { - right: 33.33333333%; - } - - .col-lg-pull-3 { - right: 25%; - } - - .col-lg-pull-2 { - right: 16.66666667%; - } - - .col-lg-pull-1 { - right: 8.33333333%; - } - - .col-lg-pull-0 { - right: auto; - } - - .col-lg-push-12 { - left: 100%; - } - - .col-lg-push-11 { - left: 91.66666667%; - } - - .col-lg-push-10 { - left: 83.33333333%; - } - - .col-lg-push-9 { - left: 75%; - } - - .col-lg-push-8 { - left: 66.66666667%; - } - - .col-lg-push-7 { - left: 58.33333333%; - } - - .col-lg-push-6 { - left: 50%; - } - - .col-lg-push-5 { - left: 41.66666667%; - } - - .col-lg-push-4 { - left: 33.33333333%; - } - - .col-lg-push-3 { - left: 25%; - } - - .col-lg-push-2 { - left: 16.66666667%; - } - - .col-lg-push-1 { - left: 8.33333333%; - } - - .col-lg-push-0 { - left: auto; - } - - .col-lg-offset-12 { - margin-left: 100%; - } - - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - - .col-lg-offset-9 { - margin-left: 75%; - } - - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - - .col-lg-offset-6 { - margin-left: 50%; - } - - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - - .col-lg-offset-3 { - margin-left: 25%; - } - - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - - .col-lg-offset-0 { - margin-left: 0%; - } -} - -table { - background-color: transparent; -} - -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #999999; - text-align: left; -} - -th { - text-align: left; -} - -.table { - width: 100%; - max-width: 100%; - margin-bottom: 21px; -} - - .table > thead > tr > th, - .table > tbody > tr > th, - .table > tfoot > tr > th, - .table > thead > tr > td, - .table > tbody > tr > td, - .table > tfoot > tr > td { - padding: 8px; - line-height: 1.4; - vertical-align: top; - border-top: 1px solid #dddddd; - } - - .table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; - } - - .table > caption + thead > tr:first-child > th, - .table > colgroup + thead > tr:first-child > th, - .table > thead:first-child > tr:first-child > th, - .table > caption + thead > tr:first-child > td, - .table > colgroup + thead > tr:first-child > td, - .table > thead:first-child > tr:first-child > td { - border-top: 0; - } - - .table > tbody + tbody { - border-top: 2px solid #dddddd; - } - - .table .table { - background-color: #ffffff; - } - -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} - -.table-bordered { - border: 1px solid #dddddd; -} - - .table-bordered > thead > tr > th, - .table-bordered > tbody > tr > th, - .table-bordered > tfoot > tr > th, - .table-bordered > thead > tr > td, - .table-bordered > tbody > tr > td, - .table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; - } - - .table-bordered > thead > tr > th, - .table-bordered > thead > tr > td { - border-bottom-width: 2px; - } - -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} - -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} - -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} - -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} - -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} - -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} - -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} - -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} - -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} - -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} - -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} - -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} - -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} - -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} - -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} - -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15.75px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #dddddd; - } - - .table-responsive > .table { - margin-bottom: 0; - } - - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - - .table-responsive > .table-bordered { - border: 0; - } - - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} - -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 21px; - font-size: 22.5px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} - -input[type="file"] { - display: block; -} - -input[type="range"] { - display: block; - width: 100%; -} - -select[multiple], -select[size] { - height: auto; -} - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -output { - display: block; - padding-top: 9px; - font-size: 15px; - line-height: 1.4; - color: #6f6f6f; -} - -.form-control { - display: block; - width: 100%; - height: 39px; - padding: 8px 12px; - font-size: 15px; - line-height: 1.4; - color: #6f6f6f; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} - - .form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - } - - .form-control::-moz-placeholder { - color: #999999; - opacity: 1; - } - - .form-control:-ms-input-placeholder { - color: #999999; - } - - .form-control::-webkit-input-placeholder { - color: #999999; - } - - .form-control::-ms-expand { - border: 0; - background-color: transparent; - } - - .form-control[disabled], - .form-control[readonly], - fieldset[disabled] .form-control { - background-color: #eeeeee; - opacity: 1; - } - - .form-control[disabled], - fieldset[disabled] .form-control { - cursor: not-allowed; - } - -textarea.form-control { - height: auto; -} - -input[type="search"] { - -webkit-appearance: none; -} - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 39px; - } - - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 36px; - } - - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 60px; - } -} - -.form-group { - margin-bottom: 15px; -} - -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} - - .radio label, - .checkbox label { - min-height: 21px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; - } - - .radio input[type="radio"], - .radio-inline input[type="radio"], - .checkbox input[type="checkbox"], - .checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; - } - - .radio + .radio, - .checkbox + .checkbox { - margin-top: -5px; - } - -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} - - .radio-inline + .radio-inline, - .checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; - } - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} - -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} - -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} - -.form-control-static { - padding-top: 9px; - padding-bottom: 9px; - margin-bottom: 0; - min-height: 36px; -} - - .form-control-static.input-lg, - .form-control-static.input-sm { - padding-left: 0; - padding-right: 0; - } - -.input-sm { - height: 36px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -select.input-sm { - height: 36px; - line-height: 36px; -} - -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} - -.form-group-sm .form-control { - height: 36px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -.form-group-sm select.form-control { - height: 36px; - line-height: 36px; -} - -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; -} - -.form-group-sm .form-control-static { - height: 36px; - min-height: 33px; - padding: 9px 12px; - font-size: 12px; - line-height: 1.5; -} - -.input-lg { - height: 60px; - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -select.input-lg { - height: 60px; - line-height: 60px; -} - -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} - -.form-group-lg .form-control { - height: 60px; - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -.form-group-lg select.form-control { - height: 60px; - line-height: 60px; -} - -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; -} - -.form-group-lg .form-control-static { - height: 60px; - min-height: 40px; - padding: 17px 20px; - font-size: 19px; - line-height: 1.3333333; -} - -.has-feedback { - position: relative; -} - - .has-feedback .form-control { - padding-right: 48.75px; - } - -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 39px; - height: 39px; - line-height: 39px; - text-align: center; - pointer-events: none; -} - -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 60px; - height: 60px; - line-height: 60px; -} - -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 36px; - height: 36px; - line-height: 36px; -} - -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #43ac6a; -} - -.has-success .form-control { - border-color: #43ac6a; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - - .has-success .form-control:focus { - border-color: #358753; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #85d0a1; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #85d0a1; - } - -.has-success .input-group-addon { - color: #43ac6a; - border-color: #43ac6a; - background-color: #dff0d8; -} - -.has-success .form-control-feedback { - color: #43ac6a; -} - -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #e99002; -} - -.has-warning .form-control { - border-color: #e99002; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - - .has-warning .form-control:focus { - border-color: #b67102; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #febc53; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #febc53; - } - -.has-warning .input-group-addon { - color: #e99002; - border-color: #e99002; - background-color: #fcf8e3; -} - -.has-warning .form-control-feedback { - color: #e99002; -} - -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #f04124; -} - -.has-error .form-control { - border-color: #f04124; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - - .has-error .form-control:focus { - border-color: #d32a0e; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f79483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f79483; - } - -.has-error .input-group-addon { - color: #f04124; - border-color: #f04124; - background-color: #f2dede; -} - -.has-error .form-control-feedback { - color: #f04124; -} - -.has-feedback label ~ .form-control-feedback { - top: 26px; -} - -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #626262; -} - -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - - .form-inline .form-control-static { - display: inline-block; - } - - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - - .form-inline .input-group > .form-control { - width: 100%; - } - - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} - -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 9px; -} - -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 30px; -} - -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} - -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 9px; - } -} - -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} - -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 17px; - font-size: 19px; - } -} - -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 9px; - font-size: 12px; - } -} - -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 8px 12px; - font-size: 15px; - line-height: 1.4; - border-radius: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - - .btn:focus, - .btn:active:focus, - .btn.active:focus, - .btn.focus, - .btn:active.focus, - .btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - .btn:hover, - .btn:focus, - .btn.focus { - color: #333333; - text-decoration: none; - } - - .btn:active, - .btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - } - - .btn.disabled, - .btn[disabled], - fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - } - -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} - -.btn-default { - color: #333333; - background-color: #e7e7e7; - border-color: #cccccc; -} - - .btn-default:focus, - .btn-default.focus { - color: #333333; - background-color: #cecece; - border-color: #8c8c8c; - } - - .btn-default:hover { - color: #333333; - background-color: #cecece; - border-color: #adadad; - } - - .btn-default:active, - .btn-default.active, - .open > .dropdown-toggle.btn-default { - color: #333333; - background-color: #cecece; - border-color: #adadad; - } - - .btn-default:active:hover, - .btn-default.active:hover, - .open > .dropdown-toggle.btn-default:hover, - .btn-default:active:focus, - .btn-default.active:focus, - .open > .dropdown-toggle.btn-default:focus, - .btn-default:active.focus, - .btn-default.active.focus, - .open > .dropdown-toggle.btn-default.focus { - color: #333333; - background-color: #bcbcbc; - border-color: #8c8c8c; - } - - .btn-default:active, - .btn-default.active, - .open > .dropdown-toggle.btn-default { - background-image: none; - } - - .btn-default.disabled:hover, - .btn-default[disabled]:hover, - fieldset[disabled] .btn-default:hover, - .btn-default.disabled:focus, - .btn-default[disabled]:focus, - fieldset[disabled] .btn-default:focus, - .btn-default.disabled.focus, - .btn-default[disabled].focus, - fieldset[disabled] .btn-default.focus { - background-color: #e7e7e7; - border-color: #cccccc; - } - - .btn-default .badge { - color: #e7e7e7; - background-color: #333333; - } - -.btn-primary { - color: #ffffff; - background-color: #008cba; - border-color: #0079a1; -} - - .btn-primary:focus, - .btn-primary.focus { - color: #ffffff; - background-color: #006687; - border-color: #001921; - } - - .btn-primary:hover { - color: #ffffff; - background-color: #006687; - border-color: #004b63; - } - - .btn-primary:active, - .btn-primary.active, - .open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #006687; - border-color: #004b63; - } - - .btn-primary:active:hover, - .btn-primary.active:hover, - .open > .dropdown-toggle.btn-primary:hover, - .btn-primary:active:focus, - .btn-primary.active:focus, - .open > .dropdown-toggle.btn-primary:focus, - .btn-primary:active.focus, - .btn-primary.active.focus, - .open > .dropdown-toggle.btn-primary.focus { - color: #ffffff; - background-color: #004b63; - border-color: #001921; - } - - .btn-primary:active, - .btn-primary.active, - .open > .dropdown-toggle.btn-primary { - background-image: none; - } - - .btn-primary.disabled:hover, - .btn-primary[disabled]:hover, - fieldset[disabled] .btn-primary:hover, - .btn-primary.disabled:focus, - .btn-primary[disabled]:focus, - fieldset[disabled] .btn-primary:focus, - .btn-primary.disabled.focus, - .btn-primary[disabled].focus, - fieldset[disabled] .btn-primary.focus { - background-color: #008cba; - border-color: #0079a1; - } - - .btn-primary .badge { - color: #008cba; - background-color: #ffffff; - } - -.btn-success { - color: #ffffff; - background-color: #43ac6a; - border-color: #3c9a5f; -} - - .btn-success:focus, - .btn-success.focus { - color: #ffffff; - background-color: #358753; - border-color: #183e26; - } - - .btn-success:hover { - color: #ffffff; - background-color: #358753; - border-color: #2b6e44; - } - - .btn-success:active, - .btn-success.active, - .open > .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #358753; - border-color: #2b6e44; - } - - .btn-success:active:hover, - .btn-success.active:hover, - .open > .dropdown-toggle.btn-success:hover, - .btn-success:active:focus, - .btn-success.active:focus, - .open > .dropdown-toggle.btn-success:focus, - .btn-success:active.focus, - .btn-success.active.focus, - .open > .dropdown-toggle.btn-success.focus { - color: #ffffff; - background-color: #2b6e44; - border-color: #183e26; - } - - .btn-success:active, - .btn-success.active, - .open > .dropdown-toggle.btn-success { - background-image: none; - } - - .btn-success.disabled:hover, - .btn-success[disabled]:hover, - fieldset[disabled] .btn-success:hover, - .btn-success.disabled:focus, - .btn-success[disabled]:focus, - fieldset[disabled] .btn-success:focus, - .btn-success.disabled.focus, - .btn-success[disabled].focus, - fieldset[disabled] .btn-success.focus { - background-color: #43ac6a; - border-color: #3c9a5f; - } - - .btn-success .badge { - color: #43ac6a; - background-color: #ffffff; - } - -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: #46b8da; -} - - .btn-info:focus, - .btn-info.focus { - color: #ffffff; - background-color: #31b0d5; - border-color: #1b6d85; - } - - .btn-info:hover { - color: #ffffff; - background-color: #31b0d5; - border-color: #269abc; - } - - .btn-info:active, - .btn-info.active, - .open > .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #31b0d5; - border-color: #269abc; - } - - .btn-info:active:hover, - .btn-info.active:hover, - .open > .dropdown-toggle.btn-info:hover, - .btn-info:active:focus, - .btn-info.active:focus, - .open > .dropdown-toggle.btn-info:focus, - .btn-info:active.focus, - .btn-info.active.focus, - .open > .dropdown-toggle.btn-info.focus { - color: #ffffff; - background-color: #269abc; - border-color: #1b6d85; - } - - .btn-info:active, - .btn-info.active, - .open > .dropdown-toggle.btn-info { - background-image: none; - } - - .btn-info.disabled:hover, - .btn-info[disabled]:hover, - fieldset[disabled] .btn-info:hover, - .btn-info.disabled:focus, - .btn-info[disabled]:focus, - fieldset[disabled] .btn-info:focus, - .btn-info.disabled.focus, - .btn-info[disabled].focus, - fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; - } - - .btn-info .badge { - color: #5bc0de; - background-color: #ffffff; - } - -.btn-warning { - color: #ffffff; - background-color: #e99002; - border-color: #d08002; -} - - .btn-warning:focus, - .btn-warning.focus { - color: #ffffff; - background-color: #b67102; - border-color: #513201; - } - - .btn-warning:hover { - color: #ffffff; - background-color: #b67102; - border-color: #935b01; - } - - .btn-warning:active, - .btn-warning.active, - .open > .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #b67102; - border-color: #935b01; - } - - .btn-warning:active:hover, - .btn-warning.active:hover, - .open > .dropdown-toggle.btn-warning:hover, - .btn-warning:active:focus, - .btn-warning.active:focus, - .open > .dropdown-toggle.btn-warning:focus, - .btn-warning:active.focus, - .btn-warning.active.focus, - .open > .dropdown-toggle.btn-warning.focus { - color: #ffffff; - background-color: #935b01; - border-color: #513201; - } - - .btn-warning:active, - .btn-warning.active, - .open > .dropdown-toggle.btn-warning { - background-image: none; - } - - .btn-warning.disabled:hover, - .btn-warning[disabled]:hover, - fieldset[disabled] .btn-warning:hover, - .btn-warning.disabled:focus, - .btn-warning[disabled]:focus, - fieldset[disabled] .btn-warning:focus, - .btn-warning.disabled.focus, - .btn-warning[disabled].focus, - fieldset[disabled] .btn-warning.focus { - background-color: #e99002; - border-color: #d08002; - } - - .btn-warning .badge { - color: #e99002; - background-color: #ffffff; - } - -.btn-danger { - color: #ffffff; - background-color: #f04124; - border-color: #ea2f10; -} - - .btn-danger:focus, - .btn-danger.focus { - color: #ffffff; - background-color: #d32a0e; - border-color: #731708; - } - - .btn-danger:hover { - color: #ffffff; - background-color: #d32a0e; - border-color: #b1240c; - } - - .btn-danger:active, - .btn-danger.active, - .open > .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #d32a0e; - border-color: #b1240c; - } - - .btn-danger:active:hover, - .btn-danger.active:hover, - .open > .dropdown-toggle.btn-danger:hover, - .btn-danger:active:focus, - .btn-danger.active:focus, - .open > .dropdown-toggle.btn-danger:focus, - .btn-danger:active.focus, - .btn-danger.active.focus, - .open > .dropdown-toggle.btn-danger.focus { - color: #ffffff; - background-color: #b1240c; - border-color: #731708; - } - - .btn-danger:active, - .btn-danger.active, - .open > .dropdown-toggle.btn-danger { - background-image: none; - } - - .btn-danger.disabled:hover, - .btn-danger[disabled]:hover, - fieldset[disabled] .btn-danger:hover, - .btn-danger.disabled:focus, - .btn-danger[disabled]:focus, - fieldset[disabled] .btn-danger:focus, - .btn-danger.disabled.focus, - .btn-danger[disabled].focus, - fieldset[disabled] .btn-danger.focus { - background-color: #f04124; - border-color: #ea2f10; - } - - .btn-danger .badge { - color: #f04124; - background-color: #ffffff; - } - -.btn-link { - color: #008cba; - font-weight: normal; - border-radius: 0; -} - - .btn-link, - .btn-link:active, - .btn-link.active, - .btn-link[disabled], - fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .btn-link, - .btn-link:hover, - .btn-link:focus, - .btn-link:active { - border-color: transparent; - } - - .btn-link:hover, - .btn-link:focus { - color: #008cba; - text-decoration: underline; - background-color: transparent; - } - - .btn-link[disabled]:hover, - fieldset[disabled] .btn-link:hover, - .btn-link[disabled]:focus, - fieldset[disabled] .btn-link:focus { - color: #999999; - text-decoration: none; - } - -.btn-lg, -.btn-group-lg > .btn { - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -.btn-sm, -.btn-group-sm > .btn { - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -.btn-xs, -.btn-group-xs > .btn { - padding: 4px 6px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -.btn-block { - display: block; - width: 100%; -} - - .btn-block + .btn-block { - margin-top: 5px; - } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - - .fade.in { - opacity: 1; - } - -.collapse { - display: none; -} - - .collapse.in { - display: block; - } - -tr.collapse.in { - display: table-row; -} - -tbody.collapse.in { - display: table-row-group; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - -o-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.dropup, -.dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 15px; - text-align: left; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - -webkit-background-clip: padding-box; - background-clip: padding-box; -} - - .dropdown-menu.pull-right { - right: 0; - left: auto; - } - - .dropdown-menu .divider { - height: 1px; - margin: 9.5px 0; - overflow: hidden; - background-color: rgba(0, 0, 0, 0.2); - } - - .dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.4; - color: #555555; - white-space: nowrap; - } - - .dropdown-menu > li > a:hover, - .dropdown-menu > li > a:focus { - text-decoration: none; - color: #262626; - background-color: #eeeeee; - } - - .dropdown-menu > .active > a, - .dropdown-menu > .active > a:hover, - .dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #008cba; - } - - .dropdown-menu > .disabled > a, - .dropdown-menu > .disabled > a:hover, - .dropdown-menu > .disabled > a:focus { - color: #999999; - } - - .dropdown-menu > .disabled > a:hover, - .dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; - } - -.open > .dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-menu-right { - left: auto; - right: 0; -} - -.dropdown-menu-left { - left: 0; - right: auto; -} - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.4; - color: #999999; - white-space: nowrap; -} - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} - -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} - - .btn-group > .btn, - .btn-group-vertical > .btn { - position: relative; - float: left; - } - - .btn-group > .btn:hover, - .btn-group-vertical > .btn:hover, - .btn-group > .btn:focus, - .btn-group-vertical > .btn:focus, - .btn-group > .btn:active, - .btn-group-vertical > .btn:active, - .btn-group > .btn.active, - .btn-group-vertical > .btn.active { - z-index: 2; - } - - .btn-group .btn + .btn, - .btn-group .btn + .btn-group, - .btn-group .btn-group + .btn, - .btn-group .btn-group + .btn-group { - margin-left: -1px; - } - -.btn-toolbar { - margin-left: -5px; -} - - .btn-toolbar .btn, - .btn-toolbar .btn-group, - .btn-toolbar .input-group { - float: left; - } - - .btn-toolbar > .btn, - .btn-toolbar > .btn-group, - .btn-toolbar > .input-group { - margin-left: 5px; - } - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -.btn-group > .btn:first-child { - margin-left: 0; -} - - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.btn-group > .btn-group { - float: left; -} - - .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; - } - - .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, - .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} - -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - - .btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; - } - -.btn .caret { - margin-left: 0; -} - -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} - -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} - -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} - - .btn-group-vertical > .btn-group > .btn { - float: none; - } - - .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(:first-child):not(:last-child) { - border-radius: 0; - } - - .btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; - } - - .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, - .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; - } - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} - - .btn-group-justified > .btn, - .btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - - .btn-group-justified > .btn-group .btn { - width: 100%; - } - - .btn-group-justified > .btn-group .dropdown-menu { - left: auto; - } - -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} - -.input-group { - position: relative; - display: table; - border-collapse: separate; -} - - .input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; - } - - .input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; - } - - .input-group .form-control:focus { - z-index: 3; - } - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 60px; - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 60px; - line-height: 60px; -} - -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} - -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 36px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 36px; - line-height: 36px; -} - -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} - -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} - - .input-group-addon:not(:first-child):not(:last-child), - .input-group-btn:not(:first-child):not(:last-child), - .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; - } - -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} - -.input-group-addon { - padding: 8px 12px; - font-size: 15px; - font-weight: normal; - line-height: 1; - color: #6f6f6f; - text-align: center; - background-color: #eeeeee; - border: 1px solid #cccccc; - border-radius: 0; -} - - .input-group-addon.input-sm { - padding: 8px 12px; - font-size: 12px; - border-radius: 0; - } - - .input-group-addon.input-lg { - padding: 16px 20px; - font-size: 19px; - border-radius: 0; - } - - .input-group-addon input[type="radio"], - .input-group-addon input[type="checkbox"] { - margin-top: 0; - } - - .input-group .form-control:first-child, - .input-group-addon:first-child, - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group > .btn, - .input-group-btn:first-child > .dropdown-toggle, - .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), - .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .input-group-addon:first-child { - border-right: 0; - } - - .input-group .form-control:last-child, - .input-group-addon:last-child, - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group > .btn, - .input-group-btn:last-child > .dropdown-toggle, - .input-group-btn:first-child > .btn:not(:first-child), - .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .input-group-addon:last-child { - border-left: 0; - } - -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} - - .input-group-btn > .btn { - position: relative; - } - - .input-group-btn > .btn + .btn { - margin-left: -1px; - } - - .input-group-btn > .btn:hover, - .input-group-btn > .btn:focus, - .input-group-btn > .btn:active { - z-index: 2; - } - - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group { - margin-right: -1px; - } - - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; - } - -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} - - .nav > li { - position: relative; - display: block; - } - - .nav > li > a { - position: relative; - display: block; - padding: 10px 15px; - } - - .nav > li > a:hover, - .nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; - } - - .nav > li.disabled > a { - color: #999999; - } - - .nav > li.disabled > a:hover, - .nav > li.disabled > a:focus { - color: #999999; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; - } - - .nav .open > a, - .nav .open > a:hover, - .nav .open > a:focus { - background-color: #eeeeee; - border-color: #008cba; - } - - .nav .nav-divider { - height: 1px; - margin: 9.5px 0; - overflow: hidden; - background-color: #e5e5e5; - } - - .nav > li > a > img { - max-width: none; - } - -.nav-tabs { - border-bottom: 1px solid #dddddd; -} - - .nav-tabs > li { - float: left; - margin-bottom: -1px; - } - - .nav-tabs > li > a { - margin-right: 2px; - line-height: 1.4; - border: 1px solid transparent; - border-radius: 0 0 0 0; - } - - .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; - } - - .nav-tabs > li.active > a, - .nav-tabs > li.active > a:hover, - .nav-tabs > li.active > a:focus { - color: #6f6f6f; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; - } - - .nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; - } - - .nav-tabs.nav-justified > li { - float: none; - } - - .nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; - } - - .nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} - -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 0; -} - -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} - -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 0 0 0 0; - } - - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} - -.nav-pills > li { - float: left; -} - - .nav-pills > li > a { - border-radius: 0; - } - - .nav-pills > li + li { - margin-left: 2px; - } - - .nav-pills > li.active > a, - .nav-pills > li.active > a:hover, - .nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #008cba; - } - -.nav-stacked > li { - float: none; -} - - .nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; - } - -.nav-justified { - width: 100%; -} - - .nav-justified > li { - float: none; - } - - .nav-justified > li > a { - text-align: center; - margin-bottom: 5px; - } - - .nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - - .nav-justified > li > a { - margin-bottom: 0; - } -} - -.nav-tabs-justified { - border-bottom: 0; -} - - .nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 0; - } - - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; - } - -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 0 0 0 0; - } - - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} - -.tab-content > .tab-pane { - display: none; -} - -.tab-content > .active { - display: block; -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar { - position: relative; - min-height: 45px; - margin-bottom: 21px; - border: 1px solid transparent; -} - -@media (min-width: 768px) { - .navbar { - border-radius: 0; - } -} - -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} - -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} - - .navbar-collapse.in { - overflow-y: auto; - } - -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - - .navbar-collapse.in { - overflow-y: visible; - } - - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} - -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} - -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} - -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} - -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} - -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} - -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} - -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} - -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} - -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} - -.navbar-brand { - float: left; - padding: 12px 15px; - font-size: 19px; - line-height: 21px; - height: 45px; -} - - .navbar-brand:hover, - .navbar-brand:focus { - text-decoration: none; - } - - .navbar-brand > img { - display: block; - } - -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} - -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 5.5px; - margin-bottom: 5.5px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 0; -} - - .navbar-toggle:focus { - outline: 0; - } - - .navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; - } - - .navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; - } - -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} - -.navbar-nav { - margin: 6px -15px; -} - - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 21px; - } - -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - - .navbar-nav .open .dropdown-menu > li > a { - line-height: 21px; - } - - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} - -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - - .navbar-nav > li { - float: left; - } - - .navbar-nav > li > a { - padding-top: 12px; - padding-bottom: 12px; - } -} - -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 3px; - margin-bottom: 3px; -} - -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - - .navbar-form .form-control-static { - display: inline-block; - } - - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - - .navbar-form .input-group > .form-control { - width: 100%; - } - - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} - -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} - -@media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} - -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.navbar-btn { - margin-top: 3px; - margin-bottom: 3px; -} - - .navbar-btn.btn-sm { - margin-top: 4.5px; - margin-bottom: 4.5px; - } - - .navbar-btn.btn-xs { - margin-top: 11.5px; - margin-bottom: 11.5px; - } - -.navbar-text { - margin-top: 12px; - margin-bottom: 12px; -} - -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } -} - -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - - .navbar-right { - float: right !important; - margin-right: -15px; - } - - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} - -.navbar-default { - background-color: #333333; - border-color: #222222; -} - - .navbar-default .navbar-brand { - color: #ffffff; - } - - .navbar-default .navbar-brand:hover, - .navbar-default .navbar-brand:focus { - color: #ffffff; - background-color: transparent; - } - - .navbar-default .navbar-text { - color: #ffffff; - } - - .navbar-default .navbar-nav > li > a { - color: #ffffff; - } - - .navbar-default .navbar-nav > li > a:hover, - .navbar-default .navbar-nav > li > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav > .active > a, - .navbar-default .navbar-nav > .active > a:hover, - .navbar-default .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav > .disabled > a, - .navbar-default .navbar-nav > .disabled > a:hover, - .navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } - - .navbar-default .navbar-toggle { - border-color: transparent; - } - - .navbar-default .navbar-toggle:hover, - .navbar-default .navbar-toggle:focus { - background-color: transparent; - } - - .navbar-default .navbar-toggle .icon-bar { - background-color: #ffffff; - } - - .navbar-default .navbar-collapse, - .navbar-default .navbar-form { - border-color: #222222; - } - - .navbar-default .navbar-nav > .open > a, - .navbar-default .navbar-nav > .open > a:hover, - .navbar-default .navbar-nav > .open > a:focus { - background-color: #272727; - color: #ffffff; - } - -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} - -.navbar-default .navbar-link { - color: #ffffff; -} - - .navbar-default .navbar-link:hover { - color: #ffffff; - } - -.navbar-default .btn-link { - color: #ffffff; -} - - .navbar-default .btn-link:hover, - .navbar-default .btn-link:focus { - color: #ffffff; - } - - .navbar-default .btn-link[disabled]:hover, - fieldset[disabled] .navbar-default .btn-link:hover, - .navbar-default .btn-link[disabled]:focus, - fieldset[disabled] .navbar-default .btn-link:focus { - color: #cccccc; - } - -.navbar-inverse { - background-color: #008cba; - border-color: #006687; -} - - .navbar-inverse .navbar-brand { - color: #ffffff; - } - - .navbar-inverse .navbar-brand:hover, - .navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; - } - - .navbar-inverse .navbar-text { - color: #ffffff; - } - - .navbar-inverse .navbar-nav > li > a { - color: #ffffff; - } - - .navbar-inverse .navbar-nav > li > a:hover, - .navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav > .active > a, - .navbar-inverse .navbar-nav > .active > a:hover, - .navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav > .disabled > a, - .navbar-inverse .navbar-nav > .disabled > a:hover, - .navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; - } - - .navbar-inverse .navbar-toggle { - border-color: transparent; - } - - .navbar-inverse .navbar-toggle:hover, - .navbar-inverse .navbar-toggle:focus { - background-color: transparent; - } - - .navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; - } - - .navbar-inverse .navbar-collapse, - .navbar-inverse .navbar-form { - border-color: #007196; - } - - .navbar-inverse .navbar-nav > .open > a, - .navbar-inverse .navbar-nav > .open > a:hover, - .navbar-inverse .navbar-nav > .open > a:focus { - background-color: #006687; - color: #ffffff; - } - -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} - -.navbar-inverse .navbar-link { - color: #ffffff; -} - - .navbar-inverse .navbar-link:hover { - color: #ffffff; - } - -.navbar-inverse .btn-link { - color: #ffffff; -} - - .navbar-inverse .btn-link:hover, - .navbar-inverse .btn-link:focus { - color: #ffffff; - } - - .navbar-inverse .btn-link[disabled]:hover, - fieldset[disabled] .navbar-inverse .btn-link:hover, - .navbar-inverse .btn-link[disabled]:focus, - fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444444; - } - -.breadcrumb { - padding: 8px 15px; - margin-bottom: 21px; - list-style: none; - background-color: #f5f5f5; - border-radius: 0; -} - - .breadcrumb > li { - display: inline-block; - } - - .breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #999999; - } - - .breadcrumb > .active { - color: #333333; - } - -.pagination { - display: inline-block; - padding-left: 0; - margin: 21px 0; - border-radius: 0; -} - - .pagination > li { - display: inline; - } - - .pagination > li > a, - .pagination > li > span { - position: relative; - float: left; - padding: 8px 12px; - line-height: 1.4; - text-decoration: none; - color: #008cba; - background-color: transparent; - border: 1px solid transparent; - margin-left: -1px; - } - - .pagination > li:first-child > a, - .pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .pagination > li:last-child > a, - .pagination > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .pagination > li > a:hover, - .pagination > li > span:hover, - .pagination > li > a:focus, - .pagination > li > span:focus { - z-index: 2; - color: #008cba; - background-color: #eeeeee; - border-color: transparent; - } - - .pagination > .active > a, - .pagination > .active > span, - .pagination > .active > a:hover, - .pagination > .active > span:hover, - .pagination > .active > a:focus, - .pagination > .active > span:focus { - z-index: 3; - color: #ffffff; - background-color: #008cba; - border-color: transparent; - cursor: default; - } - - .pagination > .disabled > span, - .pagination > .disabled > span:hover, - .pagination > .disabled > span:focus, - .pagination > .disabled > a, - .pagination > .disabled > a:hover, - .pagination > .disabled > a:focus { - color: #999999; - background-color: #ffffff; - border-color: transparent; - cursor: not-allowed; - } - -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; -} - -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; -} - -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.pager { - padding-left: 0; - margin: 21px 0; - list-style: none; - text-align: center; -} - - .pager li { - display: inline; - } - - .pager li > a, - .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: transparent; - border: 1px solid transparent; - border-radius: 3px; - } - - .pager li > a:hover, - .pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; - } - - .pager .next > a, - .pager .next > span { - float: right; - } - - .pager .previous > a, - .pager .previous > span { - float: left; - } - - .pager .disabled > a, - .pager .disabled > a:hover, - .pager .disabled > a:focus, - .pager .disabled > span { - color: #999999; - background-color: transparent; - cursor: not-allowed; - } - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} - -a.label:hover, -a.label:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label:empty { - display: none; -} - -.btn .label { - position: relative; - top: -1px; -} - -.label-default { - background-color: #999999; -} - - .label-default[href]:hover, - .label-default[href]:focus { - background-color: #808080; - } - -.label-primary { - background-color: #008cba; -} - - .label-primary[href]:hover, - .label-primary[href]:focus { - background-color: #006687; - } - -.label-success { - background-color: #43ac6a; -} - - .label-success[href]:hover, - .label-success[href]:focus { - background-color: #358753; - } - -.label-info { - background-color: #5bc0de; -} - - .label-info[href]:hover, - .label-info[href]:focus { - background-color: #31b0d5; - } - -.label-warning { - background-color: #e99002; -} - - .label-warning[href]:hover, - .label-warning[href]:focus { - background-color: #b67102; - } - -.label-danger { - background-color: #f04124; -} - - .label-danger[href]:hover, - .label-danger[href]:focus { - background-color: #d32a0e; - } - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: #ffffff; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #008cba; - border-radius: 10px; -} - - .badge:empty { - display: none; - } - -.btn .badge { - position: relative; - top: -1px; -} - -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} - -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #008cba; - background-color: #ffffff; -} - -.list-group-item > .badge { - float: right; -} - - .list-group-item > .badge + .badge { - margin-right: 5px; - } - -.nav-pills > li > a > .badge { - margin-left: 3px; -} - -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #fafafa; -} - - .jumbotron h1, - .jumbotron .h1 { - color: inherit; - } - - .jumbotron p { - margin-bottom: 15px; - font-size: 23px; - font-weight: 200; - } - - .jumbotron > hr { - border-top-color: #e1e1e1; - } - -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 0; - padding-left: 15px; - padding-right: 15px; -} - -.jumbotron .container { - max-width: 100%; -} - -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - - .jumbotron h1, - .jumbotron .h1 { - font-size: 68px; - } -} - -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 21px; - line-height: 1.4; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 0; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} - - .thumbnail > img, - .thumbnail a > img { - margin-left: auto; - margin-right: auto; - } - -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #008cba; -} - -.thumbnail .caption { - padding: 9px; - color: #222222; -} - -.alert { - padding: 15px; - margin-bottom: 21px; - border: 1px solid transparent; - border-radius: 0; -} - - .alert h4 { - margin-top: 0; - color: inherit; - } - - .alert .alert-link { - font-weight: bold; - } - - .alert > p, - .alert > ul { - margin-bottom: 0; - } - - .alert > p + p { - margin-top: 5px; - } - -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} - - .alert-dismissable .close, - .alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } - -.alert-success { - background-color: #43ac6a; - border-color: #3c9a5f; - color: #ffffff; -} - - .alert-success hr { - border-top-color: #358753; - } - - .alert-success .alert-link { - color: #e6e6e6; - } - -.alert-info { - background-color: #5bc0de; - border-color: #3db5d8; - color: #ffffff; -} - - .alert-info hr { - border-top-color: #2aabd2; - } - - .alert-info .alert-link { - color: #e6e6e6; - } - -.alert-warning { - background-color: #e99002; - border-color: #d08002; - color: #ffffff; -} - - .alert-warning hr { - border-top-color: #b67102; - } - - .alert-warning .alert-link { - color: #e6e6e6; - } - -.alert-danger { - background-color: #f04124; - border-color: #ea2f10; - color: #ffffff; -} - - .alert-danger hr { - border-top-color: #d32a0e; - } - - .alert-danger .alert-link { - color: #e6e6e6; - } - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -.progress { - overflow: hidden; - height: 21px; - margin-bottom: 21px; - background-color: #f5f5f5; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 21px; - color: #ffffff; - text-align: center; - background-color: #008cba; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-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-image: -o-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-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); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} - -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-bar-success { - background-color: #43ac6a; -} - -.progress-striped .progress-bar-success { - background-image: -webkit-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-image: -o-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-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); -} - -.progress-bar-info { - background-color: #5bc0de; -} - -.progress-striped .progress-bar-info { - background-image: -webkit-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-image: -o-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-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); -} - -.progress-bar-warning { - background-color: #e99002; -} - -.progress-striped .progress-bar-warning { - background-image: -webkit-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-image: -o-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-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); -} - -.progress-bar-danger { - background-color: #f04124; -} - -.progress-striped .progress-bar-danger { - background-image: -webkit-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-image: -o-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-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); -} - -.media { - margin-top: 15px; -} - - .media:first-child { - margin-top: 0; - } - -.media, -.media-body { - zoom: 1; - overflow: hidden; -} - -.media-body { - width: 10000px; -} - -.media-object { - display: block; -} - - .media-object.img-thumbnail { - max-width: none; - } - -.media-right, -.media > .pull-right { - padding-left: 10px; -} - -.media-left, -.media > .pull-left { - padding-right: 10px; -} - -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} - -.media-middle { - vertical-align: middle; -} - -.media-bottom { - vertical-align: bottom; -} - -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.media-list { - padding-left: 0; - list-style: none; -} - -.list-group { - margin-bottom: 20px; - padding-left: 0; -} - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} - - .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; - } - - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - -a.list-group-item, -button.list-group-item { - color: #555555; -} - - a.list-group-item .list-group-item-heading, - button.list-group-item .list-group-item-heading { - color: #333333; - } - - a.list-group-item:hover, - button.list-group-item:hover, - a.list-group-item:focus, - button.list-group-item:focus { - text-decoration: none; - color: #555555; - background-color: #f5f5f5; - } - -button.list-group-item { - width: 100%; - text-align: left; -} - -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - background-color: #eeeeee; - color: #999999; - cursor: not-allowed; -} - - .list-group-item.disabled .list-group-item-heading, - .list-group-item.disabled:hover .list-group-item-heading, - .list-group-item.disabled:focus .list-group-item-heading { - color: inherit; - } - - .list-group-item.disabled .list-group-item-text, - .list-group-item.disabled:hover .list-group-item-text, - .list-group-item.disabled:focus .list-group-item-text { - color: #999999; - } - -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #008cba; - border-color: #008cba; -} - - .list-group-item.active .list-group-item-heading, - .list-group-item.active:hover .list-group-item-heading, - .list-group-item.active:focus .list-group-item-heading, - .list-group-item.active .list-group-item-heading > small, - .list-group-item.active:hover .list-group-item-heading > small, - .list-group-item.active:focus .list-group-item-heading > small, - .list-group-item.active .list-group-item-heading > .small, - .list-group-item.active:hover .list-group-item-heading > .small, - .list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; - } - - .list-group-item.active .list-group-item-text, - .list-group-item.active:hover .list-group-item-text, - .list-group-item.active:focus .list-group-item-text { - color: #87e1ff; - } - -.list-group-item-success { - color: #43ac6a; - background-color: #dff0d8; -} - -a.list-group-item-success, -button.list-group-item-success { - color: #43ac6a; -} - - a.list-group-item-success .list-group-item-heading, - button.list-group-item-success .list-group-item-heading { - color: inherit; - } - - a.list-group-item-success:hover, - button.list-group-item-success:hover, - a.list-group-item-success:focus, - button.list-group-item-success:focus { - color: #43ac6a; - background-color: #d0e9c6; - } - - a.list-group-item-success.active, - button.list-group-item-success.active, - a.list-group-item-success.active:hover, - button.list-group-item-success.active:hover, - a.list-group-item-success.active:focus, - button.list-group-item-success.active:focus { - color: #fff; - background-color: #43ac6a; - border-color: #43ac6a; - } - -.list-group-item-info { - color: #5bc0de; - background-color: #d9edf7; -} - -a.list-group-item-info, -button.list-group-item-info { - color: #5bc0de; -} - - a.list-group-item-info .list-group-item-heading, - button.list-group-item-info .list-group-item-heading { - color: inherit; - } - - a.list-group-item-info:hover, - button.list-group-item-info:hover, - a.list-group-item-info:focus, - button.list-group-item-info:focus { - color: #5bc0de; - background-color: #c4e3f3; - } - - a.list-group-item-info.active, - button.list-group-item-info.active, - a.list-group-item-info.active:hover, - button.list-group-item-info.active:hover, - a.list-group-item-info.active:focus, - button.list-group-item-info.active:focus { - color: #fff; - background-color: #5bc0de; - border-color: #5bc0de; - } - -.list-group-item-warning { - color: #e99002; - background-color: #fcf8e3; -} - -a.list-group-item-warning, -button.list-group-item-warning { - color: #e99002; -} - - a.list-group-item-warning .list-group-item-heading, - button.list-group-item-warning .list-group-item-heading { - color: inherit; - } - - a.list-group-item-warning:hover, - button.list-group-item-warning:hover, - a.list-group-item-warning:focus, - button.list-group-item-warning:focus { - color: #e99002; - background-color: #faf2cc; - } - - a.list-group-item-warning.active, - button.list-group-item-warning.active, - a.list-group-item-warning.active:hover, - button.list-group-item-warning.active:hover, - a.list-group-item-warning.active:focus, - button.list-group-item-warning.active:focus { - color: #fff; - background-color: #e99002; - border-color: #e99002; - } - -.list-group-item-danger { - color: #f04124; - background-color: #f2dede; -} - -a.list-group-item-danger, -button.list-group-item-danger { - color: #f04124; -} - - a.list-group-item-danger .list-group-item-heading, - button.list-group-item-danger .list-group-item-heading { - color: inherit; - } - - a.list-group-item-danger:hover, - button.list-group-item-danger:hover, - a.list-group-item-danger:focus, - button.list-group-item-danger:focus { - color: #f04124; - background-color: #ebcccc; - } - - a.list-group-item-danger.active, - button.list-group-item-danger.active, - a.list-group-item-danger.active:hover, - button.list-group-item-danger.active:hover, - a.list-group-item-danger.active:focus, - button.list-group-item-danger.active:focus { - color: #fff; - background-color: #f04124; - border-color: #f04124; - } - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} - -.panel { - margin-bottom: 21px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.panel-body { - padding: 15px; -} - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: -1; - border-top-left-radius: -1; -} - - .panel-heading > .dropdown .dropdown-toggle { - color: inherit; - } - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 17px; - color: inherit; -} - - .panel-title > a, - .panel-title > small, - .panel-title > .small, - .panel-title > small > a, - .panel-title > .small > a { - color: inherit; - } - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} - -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} - - .panel > .list-group .list-group-item, - .panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; - } - - .panel > .list-group:first-child .list-group-item:first-child, - .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: -1; - border-top-left-radius: -1; - } - - .panel > .list-group:last-child .list-group-item:last-child, - .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; - } - -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} - -.list-group + .panel-footer { - border-top-width: 0; -} - -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} - - .panel > .table caption, - .panel > .table-responsive > .table caption, - .panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; - } - - .panel > .table:first-child, - .panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: -1; - border-top-left-radius: -1; - } - - .panel > .table:first-child > thead:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: -1; - border-top-right-radius: -1; - } - - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: -1; - } - - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: -1; - } - - .panel > .table:last-child, - .panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: -1; - border-bottom-right-radius: -1; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: -1; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: -1; - } - - .panel > .panel-body + .table, - .panel > .panel-body + .table-responsive, - .panel > .table + .panel-body, - .panel > .table-responsive + .panel-body { - border-top: 1px solid #dddddd; - } - - .panel > .table > tbody:first-child > tr:first-child th, - .panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; - } - -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} - - .panel > .table-bordered > thead > tr > th:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, - .panel > .table-bordered > tbody > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, - .panel > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-bordered > thead > tr > td:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, - .panel > .table-bordered > tbody > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, - .panel > .table-bordered > tfoot > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - - .panel > .table-bordered > thead > tr > th:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, - .panel > .table-bordered > tbody > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, - .panel > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-bordered > thead > tr > td:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, - .panel > .table-bordered > tbody > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, - .panel > .table-bordered > tfoot > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - - .panel > .table-bordered > thead > tr:first-child > td, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, - .panel > .table-bordered > tbody > tr:first-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, - .panel > .table-bordered > thead > tr:first-child > th, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, - .panel > .table-bordered > tbody > tr:first-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; - } - - .panel > .table-bordered > tbody > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, - .panel > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-bordered > tbody > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, - .panel > .table-bordered > tfoot > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; - } - -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} - -.panel-group { - margin-bottom: 21px; -} - - .panel-group .panel { - margin-bottom: 0; - border-radius: 0; - } - - .panel-group .panel + .panel { - margin-top: 5px; - } - - .panel-group .panel-heading { - border-bottom: 0; - } - - .panel-group .panel-heading + .panel-collapse > .panel-body, - .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #dddddd; - } - - .panel-group .panel-footer { - border-top: 0; - } - - .panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; - } - -.panel-default { - border-color: #dddddd; -} - - .panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #dddddd; - } - - .panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #dddddd; - } - - .panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333333; - } - - .panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #dddddd; - } - -.panel-primary { - border-color: #008cba; -} - - .panel-primary > .panel-heading { - color: #ffffff; - background-color: #008cba; - border-color: #008cba; - } - - .panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #008cba; - } - - .panel-primary > .panel-heading .badge { - color: #008cba; - background-color: #ffffff; - } - - .panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #008cba; - } - -.panel-success { - border-color: #3c9a5f; -} - - .panel-success > .panel-heading { - color: #ffffff; - background-color: #43ac6a; - border-color: #3c9a5f; - } - - .panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #3c9a5f; - } - - .panel-success > .panel-heading .badge { - color: #43ac6a; - background-color: #ffffff; - } - - .panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #3c9a5f; - } - -.panel-info { - border-color: #3db5d8; -} - - .panel-info > .panel-heading { - color: #ffffff; - background-color: #5bc0de; - border-color: #3db5d8; - } - - .panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #3db5d8; - } - - .panel-info > .panel-heading .badge { - color: #5bc0de; - background-color: #ffffff; - } - - .panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #3db5d8; - } - -.panel-warning { - border-color: #d08002; -} - - .panel-warning > .panel-heading { - color: #ffffff; - background-color: #e99002; - border-color: #d08002; - } - - .panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d08002; - } - - .panel-warning > .panel-heading .badge { - color: #e99002; - background-color: #ffffff; - } - - .panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d08002; - } - -.panel-danger { - border-color: #ea2f10; -} - - .panel-danger > .panel-heading { - color: #ffffff; - background-color: #f04124; - border-color: #ea2f10; - } - - .panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ea2f10; - } - - .panel-danger > .panel-heading .badge { - color: #f04124; - background-color: #ffffff; - } - - .panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ea2f10; - } - -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} - - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object, - .embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; - } - -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} - -.embed-responsive-4by3 { - padding-bottom: 75%; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #fafafa; - border: 1px solid #e8e8e8; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); - } - -.well-lg { - padding: 24px; - border-radius: 0; -} - -.well-sm { - padding: 9px; - border-radius: 0; -} - -.close { - float: right; - font-size: 22.5px; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - - .close:hover, - .close:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); - } - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.modal-open { - overflow: hidden; -} - -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} - - .modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; - } - - .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - } - -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} - -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - -webkit-background-clip: padding-box; - background-clip: padding-box; - outline: 0; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - - .modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); - } - - .modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); - } - -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} - - .modal-header .close { - margin-top: -2px; - } - -.modal-title { - margin: 0; - line-height: 1.4; -} - -.modal-body { - position: relative; - padding: 20px; -} - -.modal-footer { - padding: 20px; - text-align: right; - border-top: 1px solid #e5e5e5; -} - - .modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; - } - - .modal-footer .btn-group .btn + .btn { - margin-left: -1px; - } - - .modal-footer .btn-block + .btn-block { - margin-left: 0; - } - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - - .modal-sm { - width: 300px; - } -} - -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.4; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 12px; - opacity: 0; - filter: alpha(opacity=0); -} - - .tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); - } - - .tooltip.top { - margin-top: -3px; - padding: 5px 0; - } - - .tooltip.right { - margin-left: 3px; - padding: 0 5px; - } - - .tooltip.bottom { - margin-top: 3px; - padding: 5px 0; - } - - .tooltip.left { - margin-left: -3px; - padding: 0 5px; - } - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - background-color: #333333; - border-radius: 0; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #333333; -} - -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #333333; -} - -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #333333; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #333333; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #333333; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #333333; -} - -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #333333; -} - -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #333333; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.4; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 15px; - background-color: #333333; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #333333; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -} - - .popover.top { - margin-top: -10px; - } - - .popover.right { - margin-left: 10px; - } - - .popover.bottom { - margin-top: 10px; - } - - .popover.left { - margin-left: -10px; - } - -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 15px; - background-color: #333333; - border-bottom: 1px solid #262626; - border-radius: -1 -1 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover > .arrow { - border-width: 11px; -} - - .popover > .arrow:after { - border-width: 10px; - content: ""; - } - -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #000000; - border-top-color: rgba(0, 0, 0, 0.05); - bottom: -11px; -} - - .popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #333333; - } - -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #000000; - border-right-color: rgba(0, 0, 0, 0.05); -} - - .popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #333333; - } - -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #000000; - border-bottom-color: rgba(0, 0, 0, 0.05); - top: -11px; -} - - .popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #333333; - } - -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #000000; - border-left-color: rgba(0, 0, 0, 0.05); -} - - .popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #333333; - bottom: -10px; - } - -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} - - .carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; - } - - .carousel-inner > .item > img, - .carousel-inner > .item > a > img { - line-height: 1; - } - -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; - } - - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} - -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} - -.carousel-inner > .active { - left: 0; -} - -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel-inner > .next { - left: 100%; -} - -.carousel-inner > .prev { - left: -100%; -} - - .carousel-inner > .next.left, - .carousel-inner > .prev.right { - left: 0; - } - -.carousel-inner > .active.left { - left: -100%; -} - -.carousel-inner > .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); -} - - .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - } - - .carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - } - - .carousel-control:hover, - .carousel-control:focus { - outline: 0; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); - } - - .carousel-control .icon-prev, - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; - } - - .carousel-control .icon-prev, - .carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; - } - - .carousel-control .icon-prev:before { - content: '\2039'; - } - - .carousel-control .icon-next:before { - content: '\203a'; - } - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} - - .carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - } - - .carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; - } - -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} - - .carousel-caption .btn { - text-shadow: none; - } - -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; - } - - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; - } - - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - .carousel-indicators { - bottom: 20px; - } -} - -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-header:before, -.modal-header:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} - -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-header:after, -.modal-footer:after { - clear: both; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.pull-right { - float: right !important; -} - -.pull-left { - float: left !important; -} - -.hide { - display: none !important; -} - -.show { - display: block !important; -} - -.invisible { - visibility: hidden; -} - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.hidden { - display: none !important; -} - -.affix { - position: fixed; -} - -@-ms-viewport { - width: device-width; -} - -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} - -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} - -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - - table.visible-xs { - display: table !important; - } - - tr.visible-xs { - display: table-row !important; - } - - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} - -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} - -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} - -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - - table.visible-sm { - display: table !important; - } - - tr.visible-sm { - display: table-row !important; - } - - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - - table.visible-md { - display: table !important; - } - - tr.visible-md { - display: table-row !important; - } - - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} - -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - - table.visible-lg { - display: table !important; - } - - tr.visible-lg { - display: table-row !important; - } - - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} - -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} - -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} - -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} - -.visible-print { - display: none !important; -} - -@media print { - .visible-print { - display: block !important; - } - - table.visible-print { - display: table !important; - } - - tr.visible-print { - display: table-row !important; - } - - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} - -.visible-print-block { - display: none !important; -} - -@media print { - .visible-print-block { - display: block !important; - } -} - -.visible-print-inline { - display: none !important; -} - -@media print { - .visible-print-inline { - display: inline !important; - } -} - -.visible-print-inline-block { - display: none !important; -} - -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} - -@media print { - .hidden-print { - display: none !important; - } -} - -.navbar { - border: none; - font-size: 13px; - font-weight: 300; -} - - .navbar .navbar-toggle:hover .icon-bar { - background-color: #b3b3b3; - } - -.navbar-collapse { - border-top-color: rgba(0, 0, 0, 0.2); - -webkit-box-shadow: none; - box-shadow: none; -} - -.navbar .btn { - padding-top: 6px; - padding-bottom: 6px; -} - -.navbar-form { - margin-top: 7px; - margin-bottom: 5px; -} - - .navbar-form .form-control { - height: auto; - padding: 4px 6px; - } - -.navbar-text { - margin: 12px 15px; - line-height: 21px; -} - -.navbar .dropdown-menu { - border: none; -} - - .navbar .dropdown-menu > li > a, - .navbar .dropdown-menu > li > a:focus { - background-color: transparent; - font-size: 13px; - font-weight: 300; - } - -.navbar .dropdown-header { - color: rgba(255, 255, 255, 0.5); -} - -.navbar-default .dropdown-menu { - background-color: #333333; -} - - .navbar-default .dropdown-menu > li > a, - .navbar-default .dropdown-menu > li > a:focus { - color: #ffffff; - } - - .navbar-default .dropdown-menu > li > a:hover, - .navbar-default .dropdown-menu > .active > a, - .navbar-default .dropdown-menu > .active > a:hover { - background-color: #272727; - } - -.navbar-inverse .dropdown-menu { - background-color: #008cba; -} - - .navbar-inverse .dropdown-menu > li > a, - .navbar-inverse .dropdown-menu > li > a:focus { - color: #ffffff; - } - - .navbar-inverse .dropdown-menu > li > a:hover, - .navbar-inverse .dropdown-menu > .active > a, - .navbar-inverse .dropdown-menu > .active > a:hover { - background-color: #006687; - } - -.btn { - padding: 8px 12px; -} - -.btn-lg { - padding: 16px 20px; -} - -.btn-sm { - padding: 8px 12px; -} - -.btn-xs { - padding: 4px 6px; -} - -.btn-group .btn ~ .dropdown-toggle { - padding-left: 16px; - padding-right: 16px; -} - -.btn-group .dropdown-menu { - border-top-width: 0; -} - -.btn-group.dropup .dropdown-menu { - border-top-width: 1px; - border-bottom-width: 0; - margin-bottom: 0; -} - -.btn-group .dropdown-toggle.btn-default ~ .dropdown-menu { - background-color: #e7e7e7; - border-color: #cccccc; -} - - .btn-group .dropdown-toggle.btn-default ~ .dropdown-menu > li > a { - color: #333333; - } - - .btn-group .dropdown-toggle.btn-default ~ .dropdown-menu > li > a:hover { - background-color: #d3d3d3; - } - -.btn-group .dropdown-toggle.btn-primary ~ .dropdown-menu { - background-color: #008cba; - border-color: #0079a1; -} - - .btn-group .dropdown-toggle.btn-primary ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-primary ~ .dropdown-menu > li > a:hover { - background-color: #006d91; - } - -.btn-group .dropdown-toggle.btn-success ~ .dropdown-menu { - background-color: #43ac6a; - border-color: #3c9a5f; -} - - .btn-group .dropdown-toggle.btn-success ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-success ~ .dropdown-menu > li > a:hover { - background-color: #388f58; - } - -.btn-group .dropdown-toggle.btn-info ~ .dropdown-menu { - background-color: #5bc0de; - border-color: #46b8da; -} - - .btn-group .dropdown-toggle.btn-info ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-info ~ .dropdown-menu > li > a:hover { - background-color: #39b3d7; - } - -.btn-group .dropdown-toggle.btn-warning ~ .dropdown-menu { - background-color: #e99002; - border-color: #d08002; -} - - .btn-group .dropdown-toggle.btn-warning ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-warning ~ .dropdown-menu > li > a:hover { - background-color: #c17702; - } - -.btn-group .dropdown-toggle.btn-danger ~ .dropdown-menu { - background-color: #f04124; - border-color: #ea2f10; -} - - .btn-group .dropdown-toggle.btn-danger ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-danger ~ .dropdown-menu > li > a:hover { - background-color: #dc2c0f; - } - -.lead { - color: #6f6f6f; -} - -cite { - font-style: italic; -} - -blockquote { - border-left-width: 1px; - color: #6f6f6f; -} - - blockquote.pull-right { - border-right-width: 1px; - } - - blockquote small { - font-size: 12px; - font-weight: 300; - } - -table { - font-size: 12px; -} - -label, -.control-label, -.help-block, -.checkbox, -.radio { - font-size: 12px; - font-weight: normal; -} - -input[type="radio"], -input[type="checkbox"] { - margin-top: 1px; -} - -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - border-color: transparent; -} - -.nav-tabs > li > a { - background-color: #e7e7e7; - color: #222222; -} - -.nav-tabs .caret { - border-top-color: #222222; - border-bottom-color: #222222; -} - -.nav-pills { - font-weight: 300; -} - -.breadcrumb { - border: 1px solid #dddddd; - border-radius: 3px; - font-size: 10px; - font-weight: 300; - text-transform: uppercase; -} - -.pagination { - font-size: 12px; - font-weight: 300; - color: #999999; -} - - .pagination > li > a, - .pagination > li > span { - margin-left: 4px; - color: #999999; - } - - .pagination > .active > a, - .pagination > .active > span { - color: #fff; - } - - .pagination > li > a, - .pagination > li:first-child > a, - .pagination > li:last-child > a, - .pagination > li > span, - .pagination > li:first-child > span, - .pagination > li:last-child > span { - border-radius: 3px; - } - -.pagination-lg > li > a, -.pagination-lg > li > span { - padding-left: 22px; - padding-right: 22px; -} - -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 0 5px; -} - -.pager { - font-size: 12px; - font-weight: 300; - color: #999999; -} - -.list-group { - font-size: 12px; - font-weight: 300; -} - -.close { - opacity: 0.4; - text-decoration: none; - text-shadow: none; -} - - .close:hover, - .close:focus { - opacity: 1; - } - -.alert { - font-size: 12px; - font-weight: 300; -} - - .alert .alert-link { - font-weight: normal; - color: #fff; - text-decoration: underline; - } - -.label { - padding-left: 1em; - padding-right: 1em; - border-radius: 0; - font-weight: 300; -} - -.label-default { - background-color: #e7e7e7; - color: #333333; -} - -.badge { - font-weight: 300; -} - -.progress { - height: 22px; - padding: 2px; - background-color: #f6f6f6; - border: 1px solid #ccc; - -webkit-box-shadow: none; - box-shadow: none; -} - -.dropdown-menu { - padding: 0; - margin-top: 0; - font-size: 12px; -} - - .dropdown-menu > li > a { - padding: 12px 15px; - } - -.dropdown-header { - padding-left: 15px; - padding-right: 15px; - font-size: 9px; - text-transform: uppercase; -} - -.popover { - color: #fff; - font-size: 12px; - font-weight: 300; -} - -.panel-heading, -.panel-footer { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.panel-default .close { - color: #222222; -} - -.modal .close { - color: #222222; -} diff --git a/samples/Samples.Mvc5.EFCore/Content/bootstrap.min.css b/samples/Samples.Mvc5.EFCore/Content/bootstrap.min.css deleted file mode 100644 index 2cc43b996..000000000 --- a/samples/Samples.Mvc5.EFCore/Content/bootstrap.min.css +++ /dev/null @@ -1,7584 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700"); /*! - * bootswatch v3.3.7 - * Homepage: http://bootswatch.com - * Copyright 2012-2016 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*/ /*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { - display: block; -} - -audio, canvas, progress, video { - display: inline-block; - vertical-align: baseline; -} - - audio:not([controls]) { - display: none; - height: 0; - } - -[hidden], template { - display: none; -} - -a { - background-color: transparent; -} - - a:active, a:hover { - outline: 0; - } - -abbr[title] { - border-bottom: 1px dotted; -} - -b, strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -mark { - background: #ff0; - color: #000; -} - -small { - font-size: 80%; -} - -sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 1em 40px; -} - -hr { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -pre { - overflow: auto; -} - -code, kbd, pre, samp { - font-family: monospace, monospace; - font-size: 1em; -} - -button, input, optgroup, select, textarea { - color: inherit; - font: inherit; - margin: 0; -} - -button { - overflow: visible; -} - -button, select { - text-transform: none; -} - -button, html input[type="button"], input[type="reset"], input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} - - button[disabled], html input[disabled] { - cursor: default; - } - - button::-moz-focus-inner, input::-moz-focus-inner { - border: 0; - padding: 0; - } - -input { - line-height: normal; -} - - input[type="checkbox"], input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - } - - input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { - height: auto; - } - - input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - } - - input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - } - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -legend { - border: 0; - padding: 0; -} - -textarea { - overflow: auto; -} - -optgroup { - font-weight: bold; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ - -@media print { - *, *:before, *:after { - background: transparent !important; - color: #000 !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - text-shadow: none !important; - } - - a, a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - a[href^="#"]:after, a[href^="javascript:"]:after { - content: ""; - } - - pre, blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - thead { - display: table-header-group; - } - - tr, img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, h2, h3 { - orphans: 3; - widows: 3; - } - - h2, h3 { - page-break-after: avoid; - } - - .navbar { - display: none; - } - - .btn > .caret, .dropup > .btn > .caret { - border-top-color: #000 !important; - } - - .label { - 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 #ddd !important; - } -} - -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('fonts/glyphicons-halflings-regular.eot'); - src: url('fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('fonts/glyphicons-halflings-regular.woff') format('woff'),url('fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} - -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.glyphicon-asterisk:before { - content: "\002a"; -} - -.glyphicon-plus:before { - content: "\002b"; -} - -.glyphicon-euro:before, .glyphicon-eur:before { - content: "\20ac"; -} - -.glyphicon-minus:before { - content: "\2212"; -} - -.glyphicon-cloud:before { - content: "\2601"; -} - -.glyphicon-envelope:before { - content: "\2709"; -} - -.glyphicon-pencil:before { - content: "\270f"; -} - -.glyphicon-glass:before { - content: "\e001"; -} - -.glyphicon-music:before { - content: "\e002"; -} - -.glyphicon-search:before { - content: "\e003"; -} - -.glyphicon-heart:before { - content: "\e005"; -} - -.glyphicon-star:before { - content: "\e006"; -} - -.glyphicon-star-empty:before { - content: "\e007"; -} - -.glyphicon-user:before { - content: "\e008"; -} - -.glyphicon-film:before { - content: "\e009"; -} - -.glyphicon-th-large:before { - content: "\e010"; -} - -.glyphicon-th:before { - content: "\e011"; -} - -.glyphicon-th-list:before { - content: "\e012"; -} - -.glyphicon-ok:before { - content: "\e013"; -} - -.glyphicon-remove:before { - content: "\e014"; -} - -.glyphicon-zoom-in:before { - content: "\e015"; -} - -.glyphicon-zoom-out:before { - content: "\e016"; -} - -.glyphicon-off:before { - content: "\e017"; -} - -.glyphicon-signal:before { - content: "\e018"; -} - -.glyphicon-cog:before { - content: "\e019"; -} - -.glyphicon-trash:before { - content: "\e020"; -} - -.glyphicon-home:before { - content: "\e021"; -} - -.glyphicon-file:before { - content: "\e022"; -} - -.glyphicon-time:before { - content: "\e023"; -} - -.glyphicon-road:before { - content: "\e024"; -} - -.glyphicon-download-alt:before { - content: "\e025"; -} - -.glyphicon-download:before { - content: "\e026"; -} - -.glyphicon-upload:before { - content: "\e027"; -} - -.glyphicon-inbox:before { - content: "\e028"; -} - -.glyphicon-play-circle:before { - content: "\e029"; -} - -.glyphicon-repeat:before { - content: "\e030"; -} - -.glyphicon-refresh:before { - content: "\e031"; -} - -.glyphicon-list-alt:before { - content: "\e032"; -} - -.glyphicon-lock:before { - content: "\e033"; -} - -.glyphicon-flag:before { - content: "\e034"; -} - -.glyphicon-headphones:before { - content: "\e035"; -} - -.glyphicon-volume-off:before { - content: "\e036"; -} - -.glyphicon-volume-down:before { - content: "\e037"; -} - -.glyphicon-volume-up:before { - content: "\e038"; -} - -.glyphicon-qrcode:before { - content: "\e039"; -} - -.glyphicon-barcode:before { - content: "\e040"; -} - -.glyphicon-tag:before { - content: "\e041"; -} - -.glyphicon-tags:before { - content: "\e042"; -} - -.glyphicon-book:before { - content: "\e043"; -} - -.glyphicon-bookmark:before { - content: "\e044"; -} - -.glyphicon-print:before { - content: "\e045"; -} - -.glyphicon-camera:before { - content: "\e046"; -} - -.glyphicon-font:before { - content: "\e047"; -} - -.glyphicon-bold:before { - content: "\e048"; -} - -.glyphicon-italic:before { - content: "\e049"; -} - -.glyphicon-text-height:before { - content: "\e050"; -} - -.glyphicon-text-width:before { - content: "\e051"; -} - -.glyphicon-align-left:before { - content: "\e052"; -} - -.glyphicon-align-center:before { - content: "\e053"; -} - -.glyphicon-align-right:before { - content: "\e054"; -} - -.glyphicon-align-justify:before { - content: "\e055"; -} - -.glyphicon-list:before { - content: "\e056"; -} - -.glyphicon-indent-left:before { - content: "\e057"; -} - -.glyphicon-indent-right:before { - content: "\e058"; -} - -.glyphicon-facetime-video:before { - content: "\e059"; -} - -.glyphicon-picture:before { - content: "\e060"; -} - -.glyphicon-map-marker:before { - content: "\e062"; -} - -.glyphicon-adjust:before { - content: "\e063"; -} - -.glyphicon-tint:before { - content: "\e064"; -} - -.glyphicon-edit:before { - content: "\e065"; -} - -.glyphicon-share:before { - content: "\e066"; -} - -.glyphicon-check:before { - content: "\e067"; -} - -.glyphicon-move:before { - content: "\e068"; -} - -.glyphicon-step-backward:before { - content: "\e069"; -} - -.glyphicon-fast-backward:before { - content: "\e070"; -} - -.glyphicon-backward:before { - content: "\e071"; -} - -.glyphicon-play:before { - content: "\e072"; -} - -.glyphicon-pause:before { - content: "\e073"; -} - -.glyphicon-stop:before { - content: "\e074"; -} - -.glyphicon-forward:before { - content: "\e075"; -} - -.glyphicon-fast-forward:before { - content: "\e076"; -} - -.glyphicon-step-forward:before { - content: "\e077"; -} - -.glyphicon-eject:before { - content: "\e078"; -} - -.glyphicon-chevron-left:before { - content: "\e079"; -} - -.glyphicon-chevron-right:before { - content: "\e080"; -} - -.glyphicon-plus-sign:before { - content: "\e081"; -} - -.glyphicon-minus-sign:before { - content: "\e082"; -} - -.glyphicon-remove-sign:before { - content: "\e083"; -} - -.glyphicon-ok-sign:before { - content: "\e084"; -} - -.glyphicon-question-sign:before { - content: "\e085"; -} - -.glyphicon-info-sign:before { - content: "\e086"; -} - -.glyphicon-screenshot:before { - content: "\e087"; -} - -.glyphicon-remove-circle:before { - content: "\e088"; -} - -.glyphicon-ok-circle:before { - content: "\e089"; -} - -.glyphicon-ban-circle:before { - content: "\e090"; -} - -.glyphicon-arrow-left:before { - content: "\e091"; -} - -.glyphicon-arrow-right:before { - content: "\e092"; -} - -.glyphicon-arrow-up:before { - content: "\e093"; -} - -.glyphicon-arrow-down:before { - content: "\e094"; -} - -.glyphicon-share-alt:before { - content: "\e095"; -} - -.glyphicon-resize-full:before { - content: "\e096"; -} - -.glyphicon-resize-small:before { - content: "\e097"; -} - -.glyphicon-exclamation-sign:before { - content: "\e101"; -} - -.glyphicon-gift:before { - content: "\e102"; -} - -.glyphicon-leaf:before { - content: "\e103"; -} - -.glyphicon-fire:before { - content: "\e104"; -} - -.glyphicon-eye-open:before { - content: "\e105"; -} - -.glyphicon-eye-close:before { - content: "\e106"; -} - -.glyphicon-warning-sign:before { - content: "\e107"; -} - -.glyphicon-plane:before { - content: "\e108"; -} - -.glyphicon-calendar:before { - content: "\e109"; -} - -.glyphicon-random:before { - content: "\e110"; -} - -.glyphicon-comment:before { - content: "\e111"; -} - -.glyphicon-magnet:before { - content: "\e112"; -} - -.glyphicon-chevron-up:before { - content: "\e113"; -} - -.glyphicon-chevron-down:before { - content: "\e114"; -} - -.glyphicon-retweet:before { - content: "\e115"; -} - -.glyphicon-shopping-cart:before { - content: "\e116"; -} - -.glyphicon-folder-close:before { - content: "\e117"; -} - -.glyphicon-folder-open:before { - content: "\e118"; -} - -.glyphicon-resize-vertical:before { - content: "\e119"; -} - -.glyphicon-resize-horizontal:before { - content: "\e120"; -} - -.glyphicon-hdd:before { - content: "\e121"; -} - -.glyphicon-bullhorn:before { - content: "\e122"; -} - -.glyphicon-bell:before { - content: "\e123"; -} - -.glyphicon-certificate:before { - content: "\e124"; -} - -.glyphicon-thumbs-up:before { - content: "\e125"; -} - -.glyphicon-thumbs-down:before { - content: "\e126"; -} - -.glyphicon-hand-right:before { - content: "\e127"; -} - -.glyphicon-hand-left:before { - content: "\e128"; -} - -.glyphicon-hand-up:before { - content: "\e129"; -} - -.glyphicon-hand-down:before { - content: "\e130"; -} - -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} - -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} - -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} - -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} - -.glyphicon-globe:before { - content: "\e135"; -} - -.glyphicon-wrench:before { - content: "\e136"; -} - -.glyphicon-tasks:before { - content: "\e137"; -} - -.glyphicon-filter:before { - content: "\e138"; -} - -.glyphicon-briefcase:before { - content: "\e139"; -} - -.glyphicon-fullscreen:before { - content: "\e140"; -} - -.glyphicon-dashboard:before { - content: "\e141"; -} - -.glyphicon-paperclip:before { - content: "\e142"; -} - -.glyphicon-heart-empty:before { - content: "\e143"; -} - -.glyphicon-link:before { - content: "\e144"; -} - -.glyphicon-phone:before { - content: "\e145"; -} - -.glyphicon-pushpin:before { - content: "\e146"; -} - -.glyphicon-usd:before { - content: "\e148"; -} - -.glyphicon-gbp:before { - content: "\e149"; -} - -.glyphicon-sort:before { - content: "\e150"; -} - -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} - -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} - -.glyphicon-sort-by-order:before { - content: "\e153"; -} - -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} - -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} - -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} - -.glyphicon-unchecked:before { - content: "\e157"; -} - -.glyphicon-expand:before { - content: "\e158"; -} - -.glyphicon-collapse-down:before { - content: "\e159"; -} - -.glyphicon-collapse-up:before { - content: "\e160"; -} - -.glyphicon-log-in:before { - content: "\e161"; -} - -.glyphicon-flash:before { - content: "\e162"; -} - -.glyphicon-log-out:before { - content: "\e163"; -} - -.glyphicon-new-window:before { - content: "\e164"; -} - -.glyphicon-record:before { - content: "\e165"; -} - -.glyphicon-save:before { - content: "\e166"; -} - -.glyphicon-open:before { - content: "\e167"; -} - -.glyphicon-saved:before { - content: "\e168"; -} - -.glyphicon-import:before { - content: "\e169"; -} - -.glyphicon-export:before { - content: "\e170"; -} - -.glyphicon-send:before { - content: "\e171"; -} - -.glyphicon-floppy-disk:before { - content: "\e172"; -} - -.glyphicon-floppy-saved:before { - content: "\e173"; -} - -.glyphicon-floppy-remove:before { - content: "\e174"; -} - -.glyphicon-floppy-save:before { - content: "\e175"; -} - -.glyphicon-floppy-open:before { - content: "\e176"; -} - -.glyphicon-credit-card:before { - content: "\e177"; -} - -.glyphicon-transfer:before { - content: "\e178"; -} - -.glyphicon-cutlery:before { - content: "\e179"; -} - -.glyphicon-header:before { - content: "\e180"; -} - -.glyphicon-compressed:before { - content: "\e181"; -} - -.glyphicon-earphone:before { - content: "\e182"; -} - -.glyphicon-phone-alt:before { - content: "\e183"; -} - -.glyphicon-tower:before { - content: "\e184"; -} - -.glyphicon-stats:before { - content: "\e185"; -} - -.glyphicon-sd-video:before { - content: "\e186"; -} - -.glyphicon-hd-video:before { - content: "\e187"; -} - -.glyphicon-subtitles:before { - content: "\e188"; -} - -.glyphicon-sound-stereo:before { - content: "\e189"; -} - -.glyphicon-sound-dolby:before { - content: "\e190"; -} - -.glyphicon-sound-5-1:before { - content: "\e191"; -} - -.glyphicon-sound-6-1:before { - content: "\e192"; -} - -.glyphicon-sound-7-1:before { - content: "\e193"; -} - -.glyphicon-copyright-mark:before { - content: "\e194"; -} - -.glyphicon-registration-mark:before { - content: "\e195"; -} - -.glyphicon-cloud-download:before { - content: "\e197"; -} - -.glyphicon-cloud-upload:before { - content: "\e198"; -} - -.glyphicon-tree-conifer:before { - content: "\e199"; -} - -.glyphicon-tree-deciduous:before { - content: "\e200"; -} - -.glyphicon-cd:before { - content: "\e201"; -} - -.glyphicon-save-file:before { - content: "\e202"; -} - -.glyphicon-open-file:before { - content: "\e203"; -} - -.glyphicon-level-up:before { - content: "\e204"; -} - -.glyphicon-copy:before { - content: "\e205"; -} - -.glyphicon-paste:before { - content: "\e206"; -} - -.glyphicon-alert:before { - content: "\e209"; -} - -.glyphicon-equalizer:before { - content: "\e210"; -} - -.glyphicon-king:before { - content: "\e211"; -} - -.glyphicon-queen:before { - content: "\e212"; -} - -.glyphicon-pawn:before { - content: "\e213"; -} - -.glyphicon-bishop:before { - content: "\e214"; -} - -.glyphicon-knight:before { - content: "\e215"; -} - -.glyphicon-baby-formula:before { - content: "\e216"; -} - -.glyphicon-tent:before { - content: "\26fa"; -} - -.glyphicon-blackboard:before { - content: "\e218"; -} - -.glyphicon-bed:before { - content: "\e219"; -} - -.glyphicon-apple:before { - content: "\f8ff"; -} - -.glyphicon-erase:before { - content: "\e221"; -} - -.glyphicon-hourglass:before { - content: "\231b"; -} - -.glyphicon-lamp:before { - content: "\e223"; -} - -.glyphicon-duplicate:before { - content: "\e224"; -} - -.glyphicon-piggy-bank:before { - content: "\e225"; -} - -.glyphicon-scissors:before { - content: "\e226"; -} - -.glyphicon-bitcoin:before { - content: "\e227"; -} - -.glyphicon-btc:before { - content: "\e227"; -} - -.glyphicon-xbt:before { - content: "\e227"; -} - -.glyphicon-yen:before { - content: "\00a5"; -} - -.glyphicon-jpy:before { - content: "\00a5"; -} - -.glyphicon-ruble:before { - content: "\20bd"; -} - -.glyphicon-rub:before { - content: "\20bd"; -} - -.glyphicon-scale:before { - content: "\e230"; -} - -.glyphicon-ice-lolly:before { - content: "\e231"; -} - -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} - -.glyphicon-education:before { - content: "\e233"; -} - -.glyphicon-option-horizontal:before { - content: "\e234"; -} - -.glyphicon-option-vertical:before { - content: "\e235"; -} - -.glyphicon-menu-hamburger:before { - content: "\e236"; -} - -.glyphicon-modal-window:before { - content: "\e237"; -} - -.glyphicon-oil:before { - content: "\e238"; -} - -.glyphicon-grain:before { - content: "\e239"; -} - -.glyphicon-sunglasses:before { - content: "\e240"; -} - -.glyphicon-text-size:before { - content: "\e241"; -} - -.glyphicon-text-color:before { - content: "\e242"; -} - -.glyphicon-text-background:before { - content: "\e243"; -} - -.glyphicon-object-align-top:before { - content: "\e244"; -} - -.glyphicon-object-align-bottom:before { - content: "\e245"; -} - -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} - -.glyphicon-object-align-left:before { - content: "\e247"; -} - -.glyphicon-object-align-vertical:before { - content: "\e248"; -} - -.glyphicon-object-align-right:before { - content: "\e249"; -} - -.glyphicon-triangle-right:before { - content: "\e250"; -} - -.glyphicon-triangle-left:before { - content: "\e251"; -} - -.glyphicon-triangle-bottom:before { - content: "\e252"; -} - -.glyphicon-triangle-top:before { - content: "\e253"; -} - -.glyphicon-console:before { - content: "\e254"; -} - -.glyphicon-superscript:before { - content: "\e255"; -} - -.glyphicon-subscript:before { - content: "\e256"; -} - -.glyphicon-menu-left:before { - content: "\e257"; -} - -.glyphicon-menu-right:before { - content: "\e258"; -} - -.glyphicon-menu-down:before { - content: "\e259"; -} - -.glyphicon-menu-up:before { - content: "\e260"; -} - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - - *:before, *:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0,0,0,0); -} - -body { - font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: 15px; - line-height: 1.4; - color: #222222; - background-color: #ffffff; -} - -input, button, select, textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -a { - color: #008cba; - text-decoration: none; -} - - a:hover, a:focus { - color: #008cba; - text-decoration: underline; - } - - a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - -figure { - margin: 0; -} - -img { - vertical-align: middle; -} - -.img-responsive, .thumbnail > img, .thumbnail a > img, .carousel-inner > .item > img, .carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} - -.img-rounded { - border-radius: 0; -} - -.img-thumbnail { - padding: 4px; - line-height: 1.4; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 0; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} - -.img-circle { - border-radius: 50%; -} - -hr { - margin-top: 21px; - margin-bottom: 21px; - border: 0; - border-top: 1px solid #dddddd; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} - -[role="button"] { - cursor: pointer; -} - -h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { - font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; - font-weight: 300; - line-height: 1.1; - color: inherit; -} - - h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { - font-weight: normal; - line-height: 1; - color: #999999; - } - -h1, .h1, h2, .h2, h3, .h3 { - margin-top: 21px; - margin-bottom: 10.5px; -} - - h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h1 .small, .h1 .small, h2 .small, .h2 .small, h3 .small, .h3 .small { - font-size: 65%; - } - -h4, .h4, h5, .h5, h6, .h6 { - margin-top: 10.5px; - margin-bottom: 10.5px; -} - - h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small, h4 .small, .h4 .small, h5 .small, .h5 .small, h6 .small, .h6 .small { - font-size: 75%; - } - -h1, .h1 { - font-size: 39px; -} - -h2, .h2 { - font-size: 32px; -} - -h3, .h3 { - font-size: 26px; -} - -h4, .h4 { - font-size: 19px; -} - -h5, .h5 { - font-size: 15px; -} - -h6, .h6 { - font-size: 13px; -} - -p { - margin: 0 0 10.5px; -} - -.lead { - margin-bottom: 21px; - font-size: 17px; - font-weight: 300; - line-height: 1.4; -} - -@media (min-width:768px) { - .lead { - font-size: 22.5px; - } -} - -small, .small { - font-size: 80%; -} - -mark, .mark { - background-color: #fcf8e3; - padding: .2em; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -.text-justify { - text-align: justify; -} - -.text-nowrap { - white-space: nowrap; -} - -.text-lowercase { - text-transform: lowercase; -} - -.text-uppercase { - text-transform: uppercase; -} - -.text-capitalize { - text-transform: capitalize; -} - -.text-muted { - color: #999999; -} - -.text-primary { - color: #008cba; -} - -a.text-primary:hover, a.text-primary:focus { - color: #006687; -} - -.text-success { - color: #43ac6a; -} - -a.text-success:hover, a.text-success:focus { - color: #358753; -} - -.text-info { - color: #5bc0de; -} - -a.text-info:hover, a.text-info:focus { - color: #31b0d5; -} - -.text-warning { - color: #e99002; -} - -a.text-warning:hover, a.text-warning:focus { - color: #b67102; -} - -.text-danger { - color: #f04124; -} - -a.text-danger:hover, a.text-danger:focus { - color: #d32a0e; -} - -.bg-primary { - color: #fff; - background-color: #008cba; -} - -a.bg-primary:hover, a.bg-primary:focus { - background-color: #006687; -} - -.bg-success { - background-color: #dff0d8; -} - -a.bg-success:hover, a.bg-success:focus { - background-color: #c1e2b3; -} - -.bg-info { - background-color: #d9edf7; -} - -a.bg-info:hover, a.bg-info:focus { - background-color: #afd9ee; -} - -.bg-warning { - background-color: #fcf8e3; -} - -a.bg-warning:hover, a.bg-warning:focus { - background-color: #f7ecb5; -} - -.bg-danger { - background-color: #f2dede; -} - -a.bg-danger:hover, a.bg-danger:focus { - background-color: #e4b9b9; -} - -.page-header { - padding-bottom: 9.5px; - margin: 42px 0 21px; - border-bottom: 1px solid #dddddd; -} - -ul, ol { - margin-top: 0; - margin-bottom: 10.5px; -} - - ul ul, ol ul, ul ol, ol ol { - margin-bottom: 0; - } - -.list-unstyled { - padding-left: 0; - list-style: none; -} - -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} - - .list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; - } - -dl { - margin-top: 0; - margin-bottom: 21px; -} - -dt, dd { - line-height: 1.4; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 0; -} - -@media (min-width:768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .dl-horizontal dd { - margin-left: 180px; - } -} - -abbr[title], abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 10.5px 21px; - margin: 0 0 21px; - font-size: 18.75px; - border-left: 5px solid #dddddd; -} - - blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child { - margin-bottom: 0; - } - - blockquote footer, blockquote small, blockquote .small { - display: block; - font-size: 80%; - line-height: 1.4; - color: #6f6f6f; - } - - blockquote footer:before, blockquote small:before, blockquote .small:before { - content: '\2014 \00A0'; - } - - .blockquote-reverse, blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #dddddd; - border-left: 0; - text-align: right; - } - - .blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { - content: ''; - } - - .blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { - content: '\00A0 \2014'; - } - -address { - margin-bottom: 21px; - font-style: normal; - line-height: 1.4; -} - -code, kbd, pre, samp { - font-family: Menlo,Monaco,Consolas,"Courier New",monospace; -} - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 0; -} - -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 0; - -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.25); - box-shadow: inset 0 -1px 0 rgba(0,0,0,0.25); -} - - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; - } - -pre { - display: block; - padding: 10px; - margin: 0 0 10.5px; - font-size: 14px; - line-height: 1.4; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 0; -} - - pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -@media (min-width:768px) { - .container { - width: 750px; - } -} - -@media (min-width:992px) { - .container { - width: 970px; - } -} - -@media (min-width:1200px) { - .container { - width: 1170px; - } -} - -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -.row { - margin-left: -15px; - margin-right: -15px; -} - -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} - -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} - -.col-xs-12 { - width: 100%; -} - -.col-xs-11 { - width: 91.66666667%; -} - -.col-xs-10 { - width: 83.33333333%; -} - -.col-xs-9 { - width: 75%; -} - -.col-xs-8 { - width: 66.66666667%; -} - -.col-xs-7 { - width: 58.33333333%; -} - -.col-xs-6 { - width: 50%; -} - -.col-xs-5 { - width: 41.66666667%; -} - -.col-xs-4 { - width: 33.33333333%; -} - -.col-xs-3 { - width: 25%; -} - -.col-xs-2 { - width: 16.66666667%; -} - -.col-xs-1 { - width: 8.33333333%; -} - -.col-xs-pull-12 { - right: 100%; -} - -.col-xs-pull-11 { - right: 91.66666667%; -} - -.col-xs-pull-10 { - right: 83.33333333%; -} - -.col-xs-pull-9 { - right: 75%; -} - -.col-xs-pull-8 { - right: 66.66666667%; -} - -.col-xs-pull-7 { - right: 58.33333333%; -} - -.col-xs-pull-6 { - right: 50%; -} - -.col-xs-pull-5 { - right: 41.66666667%; -} - -.col-xs-pull-4 { - right: 33.33333333%; -} - -.col-xs-pull-3 { - right: 25%; -} - -.col-xs-pull-2 { - right: 16.66666667%; -} - -.col-xs-pull-1 { - right: 8.33333333%; -} - -.col-xs-pull-0 { - right: auto; -} - -.col-xs-push-12 { - left: 100%; -} - -.col-xs-push-11 { - left: 91.66666667%; -} - -.col-xs-push-10 { - left: 83.33333333%; -} - -.col-xs-push-9 { - left: 75%; -} - -.col-xs-push-8 { - left: 66.66666667%; -} - -.col-xs-push-7 { - left: 58.33333333%; -} - -.col-xs-push-6 { - left: 50%; -} - -.col-xs-push-5 { - left: 41.66666667%; -} - -.col-xs-push-4 { - left: 33.33333333%; -} - -.col-xs-push-3 { - left: 25%; -} - -.col-xs-push-2 { - left: 16.66666667%; -} - -.col-xs-push-1 { - left: 8.33333333%; -} - -.col-xs-push-0 { - left: auto; -} - -.col-xs-offset-12 { - margin-left: 100%; -} - -.col-xs-offset-11 { - margin-left: 91.66666667%; -} - -.col-xs-offset-10 { - margin-left: 83.33333333%; -} - -.col-xs-offset-9 { - margin-left: 75%; -} - -.col-xs-offset-8 { - margin-left: 66.66666667%; -} - -.col-xs-offset-7 { - margin-left: 58.33333333%; -} - -.col-xs-offset-6 { - margin-left: 50%; -} - -.col-xs-offset-5 { - margin-left: 41.66666667%; -} - -.col-xs-offset-4 { - margin-left: 33.33333333%; -} - -.col-xs-offset-3 { - margin-left: 25%; -} - -.col-xs-offset-2 { - margin-left: 16.66666667%; -} - -.col-xs-offset-1 { - margin-left: 8.33333333%; -} - -.col-xs-offset-0 { - margin-left: 0%; -} - -@media (min-width:768px) { - .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 { - float: left; - } - - .col-sm-12 { - width: 100%; - } - - .col-sm-11 { - width: 91.66666667%; - } - - .col-sm-10 { - width: 83.33333333%; - } - - .col-sm-9 { - width: 75%; - } - - .col-sm-8 { - width: 66.66666667%; - } - - .col-sm-7 { - width: 58.33333333%; - } - - .col-sm-6 { - width: 50%; - } - - .col-sm-5 { - width: 41.66666667%; - } - - .col-sm-4 { - width: 33.33333333%; - } - - .col-sm-3 { - width: 25%; - } - - .col-sm-2 { - width: 16.66666667%; - } - - .col-sm-1 { - width: 8.33333333%; - } - - .col-sm-pull-12 { - right: 100%; - } - - .col-sm-pull-11 { - right: 91.66666667%; - } - - .col-sm-pull-10 { - right: 83.33333333%; - } - - .col-sm-pull-9 { - right: 75%; - } - - .col-sm-pull-8 { - right: 66.66666667%; - } - - .col-sm-pull-7 { - right: 58.33333333%; - } - - .col-sm-pull-6 { - right: 50%; - } - - .col-sm-pull-5 { - right: 41.66666667%; - } - - .col-sm-pull-4 { - right: 33.33333333%; - } - - .col-sm-pull-3 { - right: 25%; - } - - .col-sm-pull-2 { - right: 16.66666667%; - } - - .col-sm-pull-1 { - right: 8.33333333%; - } - - .col-sm-pull-0 { - right: auto; - } - - .col-sm-push-12 { - left: 100%; - } - - .col-sm-push-11 { - left: 91.66666667%; - } - - .col-sm-push-10 { - left: 83.33333333%; - } - - .col-sm-push-9 { - left: 75%; - } - - .col-sm-push-8 { - left: 66.66666667%; - } - - .col-sm-push-7 { - left: 58.33333333%; - } - - .col-sm-push-6 { - left: 50%; - } - - .col-sm-push-5 { - left: 41.66666667%; - } - - .col-sm-push-4 { - left: 33.33333333%; - } - - .col-sm-push-3 { - left: 25%; - } - - .col-sm-push-2 { - left: 16.66666667%; - } - - .col-sm-push-1 { - left: 8.33333333%; - } - - .col-sm-push-0 { - left: auto; - } - - .col-sm-offset-12 { - margin-left: 100%; - } - - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - - .col-sm-offset-9 { - margin-left: 75%; - } - - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - - .col-sm-offset-6 { - margin-left: 50%; - } - - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - - .col-sm-offset-3 { - margin-left: 25%; - } - - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - - .col-sm-offset-0 { - margin-left: 0%; - } -} - -@media (min-width:992px) { - .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 { - float: left; - } - - .col-md-12 { - width: 100%; - } - - .col-md-11 { - width: 91.66666667%; - } - - .col-md-10 { - width: 83.33333333%; - } - - .col-md-9 { - width: 75%; - } - - .col-md-8 { - width: 66.66666667%; - } - - .col-md-7 { - width: 58.33333333%; - } - - .col-md-6 { - width: 50%; - } - - .col-md-5 { - width: 41.66666667%; - } - - .col-md-4 { - width: 33.33333333%; - } - - .col-md-3 { - width: 25%; - } - - .col-md-2 { - width: 16.66666667%; - } - - .col-md-1 { - width: 8.33333333%; - } - - .col-md-pull-12 { - right: 100%; - } - - .col-md-pull-11 { - right: 91.66666667%; - } - - .col-md-pull-10 { - right: 83.33333333%; - } - - .col-md-pull-9 { - right: 75%; - } - - .col-md-pull-8 { - right: 66.66666667%; - } - - .col-md-pull-7 { - right: 58.33333333%; - } - - .col-md-pull-6 { - right: 50%; - } - - .col-md-pull-5 { - right: 41.66666667%; - } - - .col-md-pull-4 { - right: 33.33333333%; - } - - .col-md-pull-3 { - right: 25%; - } - - .col-md-pull-2 { - right: 16.66666667%; - } - - .col-md-pull-1 { - right: 8.33333333%; - } - - .col-md-pull-0 { - right: auto; - } - - .col-md-push-12 { - left: 100%; - } - - .col-md-push-11 { - left: 91.66666667%; - } - - .col-md-push-10 { - left: 83.33333333%; - } - - .col-md-push-9 { - left: 75%; - } - - .col-md-push-8 { - left: 66.66666667%; - } - - .col-md-push-7 { - left: 58.33333333%; - } - - .col-md-push-6 { - left: 50%; - } - - .col-md-push-5 { - left: 41.66666667%; - } - - .col-md-push-4 { - left: 33.33333333%; - } - - .col-md-push-3 { - left: 25%; - } - - .col-md-push-2 { - left: 16.66666667%; - } - - .col-md-push-1 { - left: 8.33333333%; - } - - .col-md-push-0 { - left: auto; - } - - .col-md-offset-12 { - margin-left: 100%; - } - - .col-md-offset-11 { - margin-left: 91.66666667%; - } - - .col-md-offset-10 { - margin-left: 83.33333333%; - } - - .col-md-offset-9 { - margin-left: 75%; - } - - .col-md-offset-8 { - margin-left: 66.66666667%; - } - - .col-md-offset-7 { - margin-left: 58.33333333%; - } - - .col-md-offset-6 { - margin-left: 50%; - } - - .col-md-offset-5 { - margin-left: 41.66666667%; - } - - .col-md-offset-4 { - margin-left: 33.33333333%; - } - - .col-md-offset-3 { - margin-left: 25%; - } - - .col-md-offset-2 { - margin-left: 16.66666667%; - } - - .col-md-offset-1 { - margin-left: 8.33333333%; - } - - .col-md-offset-0 { - margin-left: 0%; - } -} - -@media (min-width:1200px) { - .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 { - float: left; - } - - .col-lg-12 { - width: 100%; - } - - .col-lg-11 { - width: 91.66666667%; - } - - .col-lg-10 { - width: 83.33333333%; - } - - .col-lg-9 { - width: 75%; - } - - .col-lg-8 { - width: 66.66666667%; - } - - .col-lg-7 { - width: 58.33333333%; - } - - .col-lg-6 { - width: 50%; - } - - .col-lg-5 { - width: 41.66666667%; - } - - .col-lg-4 { - width: 33.33333333%; - } - - .col-lg-3 { - width: 25%; - } - - .col-lg-2 { - width: 16.66666667%; - } - - .col-lg-1 { - width: 8.33333333%; - } - - .col-lg-pull-12 { - right: 100%; - } - - .col-lg-pull-11 { - right: 91.66666667%; - } - - .col-lg-pull-10 { - right: 83.33333333%; - } - - .col-lg-pull-9 { - right: 75%; - } - - .col-lg-pull-8 { - right: 66.66666667%; - } - - .col-lg-pull-7 { - right: 58.33333333%; - } - - .col-lg-pull-6 { - right: 50%; - } - - .col-lg-pull-5 { - right: 41.66666667%; - } - - .col-lg-pull-4 { - right: 33.33333333%; - } - - .col-lg-pull-3 { - right: 25%; - } - - .col-lg-pull-2 { - right: 16.66666667%; - } - - .col-lg-pull-1 { - right: 8.33333333%; - } - - .col-lg-pull-0 { - right: auto; - } - - .col-lg-push-12 { - left: 100%; - } - - .col-lg-push-11 { - left: 91.66666667%; - } - - .col-lg-push-10 { - left: 83.33333333%; - } - - .col-lg-push-9 { - left: 75%; - } - - .col-lg-push-8 { - left: 66.66666667%; - } - - .col-lg-push-7 { - left: 58.33333333%; - } - - .col-lg-push-6 { - left: 50%; - } - - .col-lg-push-5 { - left: 41.66666667%; - } - - .col-lg-push-4 { - left: 33.33333333%; - } - - .col-lg-push-3 { - left: 25%; - } - - .col-lg-push-2 { - left: 16.66666667%; - } - - .col-lg-push-1 { - left: 8.33333333%; - } - - .col-lg-push-0 { - left: auto; - } - - .col-lg-offset-12 { - margin-left: 100%; - } - - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - - .col-lg-offset-9 { - margin-left: 75%; - } - - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - - .col-lg-offset-6 { - margin-left: 50%; - } - - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - - .col-lg-offset-3 { - margin-left: 25%; - } - - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - - .col-lg-offset-0 { - margin-left: 0%; - } -} - -table { - background-color: transparent; -} - -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #999999; - text-align: left; -} - -th { - text-align: left; -} - -.table { - width: 100%; - max-width: 100%; - margin-bottom: 21px; -} - - .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { - padding: 8px; - line-height: 1.4; - vertical-align: top; - border-top: 1px solid #dddddd; - } - - .table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; - } - - .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > td { - border-top: 0; - } - - .table > tbody + tbody { - border-top: 2px solid #dddddd; - } - - .table .table { - background-color: #ffffff; - } - -.table-condensed > thead > tr > th, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > tbody > tr > td, .table-condensed > tfoot > tr > td { - padding: 5px; -} - -.table-bordered { - border: 1px solid #dddddd; -} - - .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; - } - - .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { - border-bottom-width: 2px; - } - -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} - -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} - -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} - -table td[class*="col-"], table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} - -.table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, .table > thead > tr > th.active, .table > tbody > tr > th.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > tbody > tr.active > td, .table > tfoot > tr.active > td, .table > thead > tr.active > th, .table > tbody > tr.active > th, .table > tfoot > tr.active > th { - background-color: #f5f5f5; -} - -.table-hover > tbody > tr > td.active:hover, .table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr:hover > .active, .table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} - -.table > thead > tr > td.success, .table > tbody > tr > td.success, .table > tfoot > tr > td.success, .table > thead > tr > th.success, .table > tbody > tr > th.success, .table > tfoot > tr > th.success, .table > thead > tr.success > td, .table > tbody > tr.success > td, .table > tfoot > tr.success > td, .table > thead > tr.success > th, .table > tbody > tr.success > th, .table > tfoot > tr.success > th { - background-color: #dff0d8; -} - -.table-hover > tbody > tr > td.success:hover, .table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr:hover > .success, .table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} - -.table > thead > tr > td.info, .table > tbody > tr > td.info, .table > tfoot > tr > td.info, .table > thead > tr > th.info, .table > tbody > tr > th.info, .table > tfoot > tr > th.info, .table > thead > tr.info > td, .table > tbody > tr.info > td, .table > tfoot > tr.info > td, .table > thead > tr.info > th, .table > tbody > tr.info > th, .table > tfoot > tr.info > th { - background-color: #d9edf7; -} - -.table-hover > tbody > tr > td.info:hover, .table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr:hover > .info, .table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} - -.table > thead > tr > td.warning, .table > tbody > tr > td.warning, .table > tfoot > tr > td.warning, .table > thead > tr > th.warning, .table > tbody > tr > th.warning, .table > tfoot > tr > th.warning, .table > thead > tr.warning > td, .table > tbody > tr.warning > td, .table > tfoot > tr.warning > td, .table > thead > tr.warning > th, .table > tbody > tr.warning > th, .table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} - -.table-hover > tbody > tr > td.warning:hover, .table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr:hover > .warning, .table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} - -.table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { - background-color: #f2dede; -} - -.table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} - -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} - -@media screen and (max-width:767px) { - .table-responsive { - width: 100%; - margin-bottom: 15.75px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #dddddd; - } - - .table-responsive > .table { - margin-bottom: 0; - } - - .table-responsive > .table > thead > tr > th, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - - .table-responsive > .table-bordered { - border: 0; - } - - .table-responsive > .table-bordered > thead > tr > th:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - - .table-responsive > .table-bordered > thead > tr > th:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - - .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > th, .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} - -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 21px; - font-size: 22.5px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -input[type="radio"], input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} - -input[type="file"] { - display: block; -} - -input[type="range"] { - display: block; - width: 100%; -} - -select[multiple], select[size] { - height: auto; -} - -input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -output { - display: block; - padding-top: 9px; - font-size: 15px; - line-height: 1.4; - color: #6f6f6f; -} - -.form-control { - display: block; - width: 100%; - height: 39px; - padding: 8px 12px; - font-size: 15px; - line-height: 1.4; - color: #6f6f6f; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - - .form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6); - } - - .form-control::-moz-placeholder { - color: #999999; - opacity: 1; - } - - .form-control:-ms-input-placeholder { - color: #999999; - } - - .form-control::-webkit-input-placeholder { - color: #999999; - } - - .form-control::-ms-expand { - border: 0; - background-color: transparent; - } - - .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { - background-color: #eeeeee; - opacity: 1; - } - - .form-control[disabled], fieldset[disabled] .form-control { - cursor: not-allowed; - } - -textarea.form-control { - height: auto; -} - -input[type="search"] { - -webkit-appearance: none; -} - -@media screen and (-webkit-min-device-pixel-ratio:0) { - input[type="date"].form-control, input[type="time"].form-control, input[type="datetime-local"].form-control, input[type="month"].form-control { - line-height: 39px; - } - - input[type="date"].input-sm, input[type="time"].input-sm, input[type="datetime-local"].input-sm, input[type="month"].input-sm, .input-group-sm input[type="date"], .input-group-sm input[type="time"], .input-group-sm input[type="datetime-local"], .input-group-sm input[type="month"] { - line-height: 36px; - } - - input[type="date"].input-lg, input[type="time"].input-lg, input[type="datetime-local"].input-lg, input[type="month"].input-lg, .input-group-lg input[type="date"], .input-group-lg input[type="time"], .input-group-lg input[type="datetime-local"], .input-group-lg input[type="month"] { - line-height: 60px; - } -} - -.form-group { - margin-bottom: 15px; -} - -.radio, .checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} - - .radio label, .checkbox label { - min-height: 21px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; - } - - .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px; \9 - } - - .radio + .radio, .checkbox + .checkbox { - margin-top: -5px; - } - -.radio-inline, .checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} - - .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; - } - -input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"].disabled, input[type="checkbox"].disabled, fieldset[disabled] input[type="radio"], fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} - -.radio-inline.disabled, .checkbox-inline.disabled, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} - -.radio.disabled label, .checkbox.disabled label, fieldset[disabled] .radio label, fieldset[disabled] .checkbox label { - cursor: not-allowed; -} - -.form-control-static { - padding-top: 9px; - padding-bottom: 9px; - margin-bottom: 0; - min-height: 36px; -} - - .form-control-static.input-lg, .form-control-static.input-sm { - padding-left: 0; - padding-right: 0; - } - -.input-sm { - height: 36px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -select.input-sm { - height: 36px; - line-height: 36px; -} - -textarea.input-sm, select[multiple].input-sm { - height: auto; -} - -.form-group-sm .form-control { - height: 36px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -.form-group-sm select.form-control { - height: 36px; - line-height: 36px; -} - -.form-group-sm textarea.form-control, .form-group-sm select[multiple].form-control { - height: auto; -} - -.form-group-sm .form-control-static { - height: 36px; - min-height: 33px; - padding: 9px 12px; - font-size: 12px; - line-height: 1.5; -} - -.input-lg { - height: 60px; - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -select.input-lg { - height: 60px; - line-height: 60px; -} - -textarea.input-lg, select[multiple].input-lg { - height: auto; -} - -.form-group-lg .form-control { - height: 60px; - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -.form-group-lg select.form-control { - height: 60px; - line-height: 60px; -} - -.form-group-lg textarea.form-control, .form-group-lg select[multiple].form-control { - height: auto; -} - -.form-group-lg .form-control-static { - height: 60px; - min-height: 40px; - padding: 17px 20px; - font-size: 19px; - line-height: 1.3333333; -} - -.has-feedback { - position: relative; -} - - .has-feedback .form-control { - padding-right: 48.75px; - } - -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 39px; - height: 39px; - line-height: 39px; - text-align: center; - pointer-events: none; -} - -.input-lg + .form-control-feedback, .input-group-lg + .form-control-feedback, .form-group-lg .form-control + .form-control-feedback { - width: 60px; - height: 60px; - line-height: 60px; -} - -.input-sm + .form-control-feedback, .input-group-sm + .form-control-feedback, .form-group-sm .form-control + .form-control-feedback { - width: 36px; - height: 36px; - line-height: 36px; -} - -.has-success .help-block, .has-success .control-label, .has-success .radio, .has-success .checkbox, .has-success .radio-inline, .has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { - color: #43ac6a; -} - -.has-success .form-control { - border-color: #43ac6a; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); -} - - .has-success .form-control:focus { - border-color: #358753; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #85d0a1; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #85d0a1; - } - -.has-success .input-group-addon { - color: #43ac6a; - border-color: #43ac6a; - background-color: #dff0d8; -} - -.has-success .form-control-feedback { - color: #43ac6a; -} - -.has-warning .help-block, .has-warning .control-label, .has-warning .radio, .has-warning .checkbox, .has-warning .radio-inline, .has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label { - color: #e99002; -} - -.has-warning .form-control { - border-color: #e99002; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); -} - - .has-warning .form-control:focus { - border-color: #b67102; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #febc53; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #febc53; - } - -.has-warning .input-group-addon { - color: #e99002; - border-color: #e99002; - background-color: #fcf8e3; -} - -.has-warning .form-control-feedback { - color: #e99002; -} - -.has-error .help-block, .has-error .control-label, .has-error .radio, .has-error .checkbox, .has-error .radio-inline, .has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label { - color: #f04124; -} - -.has-error .form-control { - border-color: #f04124; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); -} - - .has-error .form-control:focus { - border-color: #d32a0e; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f79483; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f79483; - } - -.has-error .input-group-addon { - color: #f04124; - border-color: #f04124; - background-color: #f2dede; -} - -.has-error .form-control-feedback { - color: #f04124; -} - -.has-feedback label ~ .form-control-feedback { - top: 26px; -} - -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #626262; -} - -@media (min-width:768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - - .form-inline .form-control-static { - display: inline-block; - } - - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - - .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn, .form-inline .input-group .form-control { - width: auto; - } - - .form-inline .input-group > .form-control { - width: 100%; - } - - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .radio, .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .radio label, .form-inline .checkbox label { - padding-left: 0; - } - - .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} - -.form-horizontal .radio, .form-horizontal .checkbox, .form-horizontal .radio-inline, .form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 9px; -} - -.form-horizontal .radio, .form-horizontal .checkbox { - min-height: 30px; -} - -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} - -@media (min-width:768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 9px; - } -} - -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} - -@media (min-width:768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 17px; - font-size: 19px; - } -} - -@media (min-width:768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 9px; - font-size: 12px; - } -} - -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 8px 12px; - font-size: 15px; - line-height: 1.4; - border-radius: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - - .btn:focus, .btn:active:focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - .btn:hover, .btn:focus, .btn.focus { - color: #333333; - text-decoration: none; - } - - .btn:active, .btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); - box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); - } - - .btn.disabled, .btn[disabled], fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - } - -a.btn.disabled, fieldset[disabled] a.btn { - pointer-events: none; -} - -.btn-default { - color: #333333; - background-color: #e7e7e7; - border-color: #cccccc; -} - - .btn-default:focus, .btn-default.focus { - color: #333333; - background-color: #cecece; - border-color: #8c8c8c; - } - - .btn-default:hover { - color: #333333; - background-color: #cecece; - border-color: #adadad; - } - - .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { - color: #333333; - background-color: #cecece; - border-color: #adadad; - } - - .btn-default:active:hover, .btn-default.active:hover, .open > .dropdown-toggle.btn-default:hover, .btn-default:active:focus, .btn-default.active:focus, .open > .dropdown-toggle.btn-default:focus, .btn-default:active.focus, .btn-default.active.focus, .open > .dropdown-toggle.btn-default.focus { - color: #333333; - background-color: #bcbcbc; - border-color: #8c8c8c; - } - - .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { - background-image: none; - } - - .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled.focus, .btn-default[disabled].focus, fieldset[disabled] .btn-default.focus { - background-color: #e7e7e7; - border-color: #cccccc; - } - - .btn-default .badge { - color: #e7e7e7; - background-color: #333333; - } - -.btn-primary { - color: #ffffff; - background-color: #008cba; - border-color: #0079a1; -} - - .btn-primary:focus, .btn-primary.focus { - color: #ffffff; - background-color: #006687; - border-color: #001921; - } - - .btn-primary:hover { - color: #ffffff; - background-color: #006687; - border-color: #004b63; - } - - .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #006687; - border-color: #004b63; - } - - .btn-primary:active:hover, .btn-primary.active:hover, .open > .dropdown-toggle.btn-primary:hover, .btn-primary:active:focus, .btn-primary.active:focus, .open > .dropdown-toggle.btn-primary:focus, .btn-primary:active.focus, .btn-primary.active.focus, .open > .dropdown-toggle.btn-primary.focus { - color: #ffffff; - background-color: #004b63; - border-color: #001921; - } - - .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { - background-image: none; - } - - .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled.focus, .btn-primary[disabled].focus, fieldset[disabled] .btn-primary.focus { - background-color: #008cba; - border-color: #0079a1; - } - - .btn-primary .badge { - color: #008cba; - background-color: #ffffff; - } - -.btn-success { - color: #ffffff; - background-color: #43ac6a; - border-color: #3c9a5f; -} - - .btn-success:focus, .btn-success.focus { - color: #ffffff; - background-color: #358753; - border-color: #183e26; - } - - .btn-success:hover { - color: #ffffff; - background-color: #358753; - border-color: #2b6e44; - } - - .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #358753; - border-color: #2b6e44; - } - - .btn-success:active:hover, .btn-success.active:hover, .open > .dropdown-toggle.btn-success:hover, .btn-success:active:focus, .btn-success.active:focus, .open > .dropdown-toggle.btn-success:focus, .btn-success:active.focus, .btn-success.active.focus, .open > .dropdown-toggle.btn-success.focus { - color: #ffffff; - background-color: #2b6e44; - border-color: #183e26; - } - - .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { - background-image: none; - } - - .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled.focus, .btn-success[disabled].focus, fieldset[disabled] .btn-success.focus { - background-color: #43ac6a; - border-color: #3c9a5f; - } - - .btn-success .badge { - color: #43ac6a; - background-color: #ffffff; - } - -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: #46b8da; -} - - .btn-info:focus, .btn-info.focus { - color: #ffffff; - background-color: #31b0d5; - border-color: #1b6d85; - } - - .btn-info:hover { - color: #ffffff; - background-color: #31b0d5; - border-color: #269abc; - } - - .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #31b0d5; - border-color: #269abc; - } - - .btn-info:active:hover, .btn-info.active:hover, .open > .dropdown-toggle.btn-info:hover, .btn-info:active:focus, .btn-info.active:focus, .open > .dropdown-toggle.btn-info:focus, .btn-info:active.focus, .btn-info.active.focus, .open > .dropdown-toggle.btn-info.focus { - color: #ffffff; - background-color: #269abc; - border-color: #1b6d85; - } - - .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { - background-image: none; - } - - .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled.focus, .btn-info[disabled].focus, fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; - } - - .btn-info .badge { - color: #5bc0de; - background-color: #ffffff; - } - -.btn-warning { - color: #ffffff; - background-color: #e99002; - border-color: #d08002; -} - - .btn-warning:focus, .btn-warning.focus { - color: #ffffff; - background-color: #b67102; - border-color: #513201; - } - - .btn-warning:hover { - color: #ffffff; - background-color: #b67102; - border-color: #935b01; - } - - .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #b67102; - border-color: #935b01; - } - - .btn-warning:active:hover, .btn-warning.active:hover, .open > .dropdown-toggle.btn-warning:hover, .btn-warning:active:focus, .btn-warning.active:focus, .open > .dropdown-toggle.btn-warning:focus, .btn-warning:active.focus, .btn-warning.active.focus, .open > .dropdown-toggle.btn-warning.focus { - color: #ffffff; - background-color: #935b01; - border-color: #513201; - } - - .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { - background-image: none; - } - - .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled.focus, .btn-warning[disabled].focus, fieldset[disabled] .btn-warning.focus { - background-color: #e99002; - border-color: #d08002; - } - - .btn-warning .badge { - color: #e99002; - background-color: #ffffff; - } - -.btn-danger { - color: #ffffff; - background-color: #f04124; - border-color: #ea2f10; -} - - .btn-danger:focus, .btn-danger.focus { - color: #ffffff; - background-color: #d32a0e; - border-color: #731708; - } - - .btn-danger:hover { - color: #ffffff; - background-color: #d32a0e; - border-color: #b1240c; - } - - .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #d32a0e; - border-color: #b1240c; - } - - .btn-danger:active:hover, .btn-danger.active:hover, .open > .dropdown-toggle.btn-danger:hover, .btn-danger:active:focus, .btn-danger.active:focus, .open > .dropdown-toggle.btn-danger:focus, .btn-danger:active.focus, .btn-danger.active.focus, .open > .dropdown-toggle.btn-danger.focus { - color: #ffffff; - background-color: #b1240c; - border-color: #731708; - } - - .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { - background-image: none; - } - - .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled.focus, .btn-danger[disabled].focus, fieldset[disabled] .btn-danger.focus { - background-color: #f04124; - border-color: #ea2f10; - } - - .btn-danger .badge { - color: #f04124; - background-color: #ffffff; - } - -.btn-link { - color: #008cba; - font-weight: normal; - border-radius: 0; -} - - .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { - border-color: transparent; - } - - .btn-link:hover, .btn-link:focus { - color: #008cba; - text-decoration: underline; - background-color: transparent; - } - - .btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { - color: #999999; - text-decoration: none; - } - -.btn-lg, .btn-group-lg > .btn { - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -.btn-sm, .btn-group-sm > .btn { - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -.btn-xs, .btn-group-xs > .btn { - padding: 4px 6px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -.btn-block { - display: block; - width: 100%; -} - - .btn-block + .btn-block { - margin-top: 5px; - } - -input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { - width: 100%; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - - .fade.in { - opacity: 1; - } - -.collapse { - display: none; -} - - .collapse.in { - display: block; - } - -tr.collapse.in { - display: table-row; -} - -tbody.collapse.in { - display: table-row-group; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - -o-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.dropup, .dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 15px; - text-align: left; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0,0,0,0.15); - border-radius: 0; - -webkit-box-shadow: 0 6px 12px rgba(0,0,0,0.175); - box-shadow: 0 6px 12px rgba(0,0,0,0.175); - -webkit-background-clip: padding-box; - background-clip: padding-box; -} - - .dropdown-menu.pull-right { - right: 0; - left: auto; - } - - .dropdown-menu .divider { - height: 1px; - margin: 9.5px 0; - overflow: hidden; - background-color: rgba(0,0,0,0.2); - } - - .dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.4; - color: #555555; - white-space: nowrap; - } - - .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - text-decoration: none; - color: #262626; - background-color: #eeeeee; - } - - .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #008cba; - } - - .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - color: #999999; - } - - .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - cursor: not-allowed; - } - -.open > .dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-menu-right { - left: auto; - right: 0; -} - -.dropdown-menu-left { - left: 0; - right: auto; -} - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.4; - color: #999999; - white-space: nowrap; -} - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, .navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; -} - -.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} - -@media (min-width:768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} - -.btn-group, .btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} - - .btn-group > .btn, .btn-group-vertical > .btn { - position: relative; - float: left; - } - - .btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { - z-index: 2; - } - - .btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { - margin-left: -1px; - } - -.btn-toolbar { - margin-left: -5px; -} - - .btn-toolbar .btn, .btn-toolbar .btn-group, .btn-toolbar .input-group { - float: left; - } - - .btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { - margin-left: 5px; - } - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -.btn-group > .btn:first-child { - margin-left: 0; -} - - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - -.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.btn-group > .btn-group { - float: left; -} - - .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; - } - - .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - -.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} - -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); - box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); -} - - .btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; - } - -.btn .caret { - margin-left: 0; -} - -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} - -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} - -.btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} - - .btn-group-vertical > .btn-group > .btn { - float: none; - } - - .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(:first-child):not(:last-child) { - border-radius: 0; - } - - .btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; - } - - .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; - } - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} - - .btn-group-justified > .btn, .btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - - .btn-group-justified > .btn-group .btn { - width: 100%; - } - - .btn-group-justified > .btn-group .dropdown-menu { - left: auto; - } - -[data-toggle="buttons"] > .btn input[type="radio"], [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], [data-toggle="buttons"] > .btn input[type="checkbox"], [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} - -.input-group { - position: relative; - display: table; - border-collapse: separate; -} - - .input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; - } - - .input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; - } - - .input-group .form-control:focus { - z-index: 3; - } - -.input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { - height: 60px; - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; - border-radius: 0; -} - -select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { - height: 60px; - line-height: 60px; -} - -textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn, select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} - -.input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { - height: 36px; - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} - -select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { - height: 36px; - line-height: 36px; -} - -textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn, select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} - -.input-group-addon, .input-group-btn, .input-group .form-control { - display: table-cell; -} - - .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; - } - -.input-group-addon, .input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} - -.input-group-addon { - padding: 8px 12px; - font-size: 15px; - font-weight: normal; - line-height: 1; - color: #6f6f6f; - text-align: center; - background-color: #eeeeee; - border: 1px solid #cccccc; - border-radius: 0; -} - - .input-group-addon.input-sm { - padding: 8px 12px; - font-size: 12px; - border-radius: 0; - } - - .input-group-addon.input-lg { - padding: 16px 20px; - font-size: 19px; - border-radius: 0; - } - - .input-group-addon input[type="radio"], .input-group-addon input[type="checkbox"] { - margin-top: 0; - } - - .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .input-group-addon:first-child { - border-right: 0; - } - - .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .input-group-addon:last-child { - border-left: 0; - } - -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} - - .input-group-btn > .btn { - position: relative; - } - - .input-group-btn > .btn + .btn { - margin-left: -1px; - } - - .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { - z-index: 2; - } - - .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { - margin-right: -1px; - } - - .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; - } - -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} - - .nav > li { - position: relative; - display: block; - } - - .nav > li > a { - position: relative; - display: block; - padding: 10px 15px; - } - - .nav > li > a:hover, .nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; - } - - .nav > li.disabled > a { - color: #999999; - } - - .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { - color: #999999; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; - } - - .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { - background-color: #eeeeee; - border-color: #008cba; - } - - .nav .nav-divider { - height: 1px; - margin: 9.5px 0; - overflow: hidden; - background-color: #e5e5e5; - } - - .nav > li > a > img { - max-width: none; - } - -.nav-tabs { - border-bottom: 1px solid #dddddd; -} - - .nav-tabs > li { - float: left; - margin-bottom: -1px; - } - - .nav-tabs > li > a { - margin-right: 2px; - line-height: 1.4; - border: 1px solid transparent; - border-radius: 0 0 0 0; - } - - .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; - } - - .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { - color: #6f6f6f; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; - } - - .nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; - } - - .nav-tabs.nav-justified > li { - float: none; - } - - .nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; - } - - .nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - -@media (min-width:768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} - -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 0; -} - -.nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} - -@media (min-width:768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 0 0 0 0; - } - - .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} - -.nav-pills > li { - float: left; -} - - .nav-pills > li > a { - border-radius: 0; - } - - .nav-pills > li + li { - margin-left: 2px; - } - - .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #008cba; - } - -.nav-stacked > li { - float: none; -} - - .nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; - } - -.nav-justified { - width: 100%; -} - - .nav-justified > li { - float: none; - } - - .nav-justified > li > a { - text-align: center; - margin-bottom: 5px; - } - - .nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - -@media (min-width:768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - - .nav-justified > li > a { - margin-bottom: 0; - } -} - -.nav-tabs-justified { - border-bottom: 0; -} - - .nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 0; - } - - .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; - } - -@media (min-width:768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 0 0 0 0; - } - - .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} - -.tab-content > .tab-pane { - display: none; -} - -.tab-content > .active { - display: block; -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar { - position: relative; - min-height: 45px; - margin-bottom: 21px; - border: 1px solid transparent; -} - -@media (min-width:768px) { - .navbar { - border-radius: 0; - } -} - -@media (min-width:768px) { - .navbar-header { - float: left; - } -} - -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); - box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); - -webkit-overflow-scrolling: touch; -} - - .navbar-collapse.in { - overflow-y: auto; - } - -@media (min-width:768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - - .navbar-collapse.in { - overflow-y: visible; - } - - .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} - -.navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} - -@media (max-device-width:480px) and (orientation:landscape) { - .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} - -.container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} - -@media (min-width:768px) { - .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} - -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} - -@media (min-width:768px) { - .navbar-static-top { - border-radius: 0; - } -} - -.navbar-fixed-top, .navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} - -@media (min-width:768px) { - .navbar-fixed-top, .navbar-fixed-bottom { - border-radius: 0; - } -} - -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} - -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} - -.navbar-brand { - float: left; - padding: 12px 15px; - font-size: 19px; - line-height: 21px; - height: 45px; -} - - .navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; - } - - .navbar-brand > img { - display: block; - } - -@media (min-width:768px) { - .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} - -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 5.5px; - margin-bottom: 5.5px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 0; -} - - .navbar-toggle:focus { - outline: 0; - } - - .navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; - } - - .navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; - } - -@media (min-width:768px) { - .navbar-toggle { - display: none; - } -} - -.navbar-nav { - margin: 6px -15px; -} - - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 21px; - } - -@media (max-width:767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - - .navbar-nav .open .dropdown-menu > li > a { - line-height: 21px; - } - - .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} - -@media (min-width:768px) { - .navbar-nav { - float: left; - margin: 0; - } - - .navbar-nav > li { - float: left; - } - - .navbar-nav > li > a { - padding-top: 12px; - padding-bottom: 12px; - } -} - -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1); - box-shadow: inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1); - margin-top: 3px; - margin-bottom: 3px; -} - -@media (min-width:768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - - .navbar-form .form-control-static { - display: inline-block; - } - - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - - .navbar-form .input-group .input-group-addon, .navbar-form .input-group .input-group-btn, .navbar-form .input-group .form-control { - width: auto; - } - - .navbar-form .input-group > .form-control { - width: 100%; - } - - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .radio, .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .radio label, .navbar-form .checkbox label { - padding-left: 0; - } - - .navbar-form .radio input[type="radio"], .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} - -@media (max-width:767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} - -@media (min-width:768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} - -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.navbar-btn { - margin-top: 3px; - margin-bottom: 3px; -} - - .navbar-btn.btn-sm { - margin-top: 4.5px; - margin-bottom: 4.5px; - } - - .navbar-btn.btn-xs { - margin-top: 11.5px; - margin-bottom: 11.5px; - } - -.navbar-text { - margin-top: 12px; - margin-bottom: 12px; -} - -@media (min-width:768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } -} - -@media (min-width:768px) { - .navbar-left { - float: left !important; - } - - .navbar-right { - float: right !important; - margin-right: -15px; - } - - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} - -.navbar-default { - background-color: #333333; - border-color: #222222; -} - - .navbar-default .navbar-brand { - color: #ffffff; - } - - .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { - color: #ffffff; - background-color: transparent; - } - - .navbar-default .navbar-text { - color: #ffffff; - } - - .navbar-default .navbar-nav > li > a { - color: #ffffff; - } - - .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } - - .navbar-default .navbar-toggle { - border-color: transparent; - } - - .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { - background-color: transparent; - } - - .navbar-default .navbar-toggle .icon-bar { - background-color: #ffffff; - } - - .navbar-default .navbar-collapse, .navbar-default .navbar-form { - border-color: #222222; - } - - .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - background-color: #272727; - color: #ffffff; - } - -@media (max-width:767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #272727; - } - - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} - -.navbar-default .navbar-link { - color: #ffffff; -} - - .navbar-default .navbar-link:hover { - color: #ffffff; - } - -.navbar-default .btn-link { - color: #ffffff; -} - - .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { - color: #ffffff; - } - - .navbar-default .btn-link[disabled]:hover, fieldset[disabled] .navbar-default .btn-link:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:focus { - color: #cccccc; - } - -.navbar-inverse { - background-color: #008cba; - border-color: #006687; -} - - .navbar-inverse .navbar-brand { - color: #ffffff; - } - - .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; - } - - .navbar-inverse .navbar-text { - color: #ffffff; - } - - .navbar-inverse .navbar-nav > li > a { - color: #ffffff; - } - - .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; - } - - .navbar-inverse .navbar-toggle { - border-color: transparent; - } - - .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { - background-color: transparent; - } - - .navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; - } - - .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { - border-color: #007196; - } - - .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { - background-color: #006687; - color: #ffffff; - } - -@media (max-width:767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #006687; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} - -.navbar-inverse .navbar-link { - color: #ffffff; -} - - .navbar-inverse .navbar-link:hover { - color: #ffffff; - } - -.navbar-inverse .btn-link { - color: #ffffff; -} - - .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { - color: #ffffff; - } - - .navbar-inverse .btn-link[disabled]:hover, fieldset[disabled] .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444444; - } - -.breadcrumb { - padding: 8px 15px; - margin-bottom: 21px; - list-style: none; - background-color: #f5f5f5; - border-radius: 0; -} - - .breadcrumb > li { - display: inline-block; - } - - .breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #999999; - } - - .breadcrumb > .active { - color: #333333; - } - -.pagination { - display: inline-block; - padding-left: 0; - margin: 21px 0; - border-radius: 0; -} - - .pagination > li { - display: inline; - } - - .pagination > li > a, .pagination > li > span { - position: relative; - float: left; - padding: 8px 12px; - line-height: 1.4; - text-decoration: none; - color: #008cba; - background-color: transparent; - border: 1px solid transparent; - margin-left: -1px; - } - - .pagination > li:first-child > a, .pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .pagination > li:last-child > a, .pagination > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { - z-index: 2; - color: #008cba; - background-color: #eeeeee; - border-color: transparent; - } - - .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { - z-index: 3; - color: #ffffff; - background-color: #008cba; - border-color: transparent; - cursor: default; - } - - .pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { - color: #999999; - background-color: #ffffff; - border-color: transparent; - cursor: not-allowed; - } - -.pagination-lg > li > a, .pagination-lg > li > span { - padding: 16px 20px; - font-size: 19px; - line-height: 1.3333333; -} - -.pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.pagination-sm > li > a, .pagination-sm > li > span { - padding: 8px 12px; - font-size: 12px; - line-height: 1.5; -} - -.pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.pager { - padding-left: 0; - margin: 21px 0; - list-style: none; - text-align: center; -} - - .pager li { - display: inline; - } - - .pager li > a, .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: transparent; - border: 1px solid transparent; - border-radius: 3px; - } - - .pager li > a:hover, .pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; - } - - .pager .next > a, .pager .next > span { - float: right; - } - - .pager .previous > a, .pager .previous > span { - float: left; - } - - .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { - color: #999999; - background-color: transparent; - cursor: not-allowed; - } - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} - -a.label:hover, a.label:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label:empty { - display: none; -} - -.btn .label { - position: relative; - top: -1px; -} - -.label-default { - background-color: #999999; -} - - .label-default[href]:hover, .label-default[href]:focus { - background-color: #808080; - } - -.label-primary { - background-color: #008cba; -} - - .label-primary[href]:hover, .label-primary[href]:focus { - background-color: #006687; - } - -.label-success { - background-color: #43ac6a; -} - - .label-success[href]:hover, .label-success[href]:focus { - background-color: #358753; - } - -.label-info { - background-color: #5bc0de; -} - - .label-info[href]:hover, .label-info[href]:focus { - background-color: #31b0d5; - } - -.label-warning { - background-color: #e99002; -} - - .label-warning[href]:hover, .label-warning[href]:focus { - background-color: #b67102; - } - -.label-danger { - background-color: #f04124; -} - - .label-danger[href]:hover, .label-danger[href]:focus { - background-color: #d32a0e; - } - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: #ffffff; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #008cba; - border-radius: 10px; -} - - .badge:empty { - display: none; - } - -.btn .badge { - position: relative; - top: -1px; -} - -.btn-xs .badge, .btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} - -a.badge:hover, a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.list-group-item.active > .badge, .nav-pills > .active > a > .badge { - color: #008cba; - background-color: #ffffff; -} - -.list-group-item > .badge { - float: right; -} - - .list-group-item > .badge + .badge { - margin-right: 5px; - } - -.nav-pills > li > a > .badge { - margin-left: 3px; -} - -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #fafafa; -} - - .jumbotron h1, .jumbotron .h1 { - color: inherit; - } - - .jumbotron p { - margin-bottom: 15px; - font-size: 23px; - font-weight: 200; - } - - .jumbotron > hr { - border-top-color: #e1e1e1; - } - -.container .jumbotron, .container-fluid .jumbotron { - border-radius: 0; - padding-left: 15px; - padding-right: 15px; -} - -.jumbotron .container { - max-width: 100%; -} - -@media screen and (min-width:768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - - .container .jumbotron, .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - - .jumbotron h1, .jumbotron .h1 { - font-size: 68px; - } -} - -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 21px; - line-height: 1.4; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 0; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; - transition: border .2s ease-in-out; -} - - .thumbnail > img, .thumbnail a > img { - margin-left: auto; - margin-right: auto; - } - -a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { - border-color: #008cba; -} - -.thumbnail .caption { - padding: 9px; - color: #222222; -} - -.alert { - padding: 15px; - margin-bottom: 21px; - border: 1px solid transparent; - border-radius: 0; -} - - .alert h4 { - margin-top: 0; - color: inherit; - } - - .alert .alert-link { - font-weight: bold; - } - - .alert > p, .alert > ul { - margin-bottom: 0; - } - - .alert > p + p { - margin-top: 5px; - } - -.alert-dismissable, .alert-dismissible { - padding-right: 35px; -} - - .alert-dismissable .close, .alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } - -.alert-success { - background-color: #43ac6a; - border-color: #3c9a5f; - color: #ffffff; -} - - .alert-success hr { - border-top-color: #358753; - } - - .alert-success .alert-link { - color: #e6e6e6; - } - -.alert-info { - background-color: #5bc0de; - border-color: #3db5d8; - color: #ffffff; -} - - .alert-info hr { - border-top-color: #2aabd2; - } - - .alert-info .alert-link { - color: #e6e6e6; - } - -.alert-warning { - background-color: #e99002; - border-color: #d08002; - color: #ffffff; -} - - .alert-warning hr { - border-top-color: #b67102; - } - - .alert-warning .alert-link { - color: #e6e6e6; - } - -.alert-danger { - background-color: #f04124; - border-color: #ea2f10; - color: #ffffff; -} - - .alert-danger hr { - border-top-color: #d32a0e; - } - - .alert-danger .alert-link { - color: #e6e6e6; - } - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -.progress { - overflow: hidden; - height: 21px; - margin-bottom: 21px; - background-color: #f5f5f5; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); - box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); -} - -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 21px; - color: #ffffff; - text-align: center; - background-color: #008cba; - -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15); - box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress-striped .progress-bar, .progress-bar-striped { - background-image: -webkit-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-image: -o-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-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); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} - -.progress.active .progress-bar, .progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-bar-success { - background-color: #43ac6a; -} - -.progress-striped .progress-bar-success { - background-image: -webkit-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-image: -o-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-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); -} - -.progress-bar-info { - background-color: #5bc0de; -} - -.progress-striped .progress-bar-info { - background-image: -webkit-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-image: -o-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-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); -} - -.progress-bar-warning { - background-color: #e99002; -} - -.progress-striped .progress-bar-warning { - background-image: -webkit-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-image: -o-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-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); -} - -.progress-bar-danger { - background-color: #f04124; -} - -.progress-striped .progress-bar-danger { - background-image: -webkit-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-image: -o-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-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); -} - -.media { - margin-top: 15px; -} - - .media:first-child { - margin-top: 0; - } - -.media, .media-body { - zoom: 1; - overflow: hidden; -} - -.media-body { - width: 10000px; -} - -.media-object { - display: block; -} - - .media-object.img-thumbnail { - max-width: none; - } - -.media-right, .media > .pull-right { - padding-left: 10px; -} - -.media-left, .media > .pull-left { - padding-right: 10px; -} - -.media-left, .media-right, .media-body { - display: table-cell; - vertical-align: top; -} - -.media-middle { - vertical-align: middle; -} - -.media-bottom { - vertical-align: bottom; -} - -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.media-list { - padding-left: 0; - list-style: none; -} - -.list-group { - margin-bottom: 20px; - padding-left: 0; -} - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} - - .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; - } - - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - -a.list-group-item, button.list-group-item { - color: #555555; -} - - a.list-group-item .list-group-item-heading, button.list-group-item .list-group-item-heading { - color: #333333; - } - - a.list-group-item:hover, button.list-group-item:hover, a.list-group-item:focus, button.list-group-item:focus { - text-decoration: none; - color: #555555; - background-color: #f5f5f5; - } - -button.list-group-item { - width: 100%; - text-align: left; -} - -.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { - background-color: #eeeeee; - color: #999999; - cursor: not-allowed; -} - - .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { - color: inherit; - } - - .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { - color: #999999; - } - -.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #008cba; - border-color: #008cba; -} - - .list-group-item.active .list-group-item-heading, .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading, .list-group-item.active .list-group-item-heading > small, .list-group-item.active:hover .list-group-item-heading > small, .list-group-item.active:focus .list-group-item-heading > small, .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; - } - - .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { - color: #87e1ff; - } - -.list-group-item-success { - color: #43ac6a; - background-color: #dff0d8; -} - -a.list-group-item-success, button.list-group-item-success { - color: #43ac6a; -} - - a.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading { - color: inherit; - } - - a.list-group-item-success:hover, button.list-group-item-success:hover, a.list-group-item-success:focus, button.list-group-item-success:focus { - color: #43ac6a; - background-color: #d0e9c6; - } - - a.list-group-item-success.active, button.list-group-item-success.active, a.list-group-item-success.active:hover, button.list-group-item-success.active:hover, a.list-group-item-success.active:focus, button.list-group-item-success.active:focus { - color: #fff; - background-color: #43ac6a; - border-color: #43ac6a; - } - -.list-group-item-info { - color: #5bc0de; - background-color: #d9edf7; -} - -a.list-group-item-info, button.list-group-item-info { - color: #5bc0de; -} - - a.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading { - color: inherit; - } - - a.list-group-item-info:hover, button.list-group-item-info:hover, a.list-group-item-info:focus, button.list-group-item-info:focus { - color: #5bc0de; - background-color: #c4e3f3; - } - - a.list-group-item-info.active, button.list-group-item-info.active, a.list-group-item-info.active:hover, button.list-group-item-info.active:hover, a.list-group-item-info.active:focus, button.list-group-item-info.active:focus { - color: #fff; - background-color: #5bc0de; - border-color: #5bc0de; - } - -.list-group-item-warning { - color: #e99002; - background-color: #fcf8e3; -} - -a.list-group-item-warning, button.list-group-item-warning { - color: #e99002; -} - - a.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading { - color: inherit; - } - - a.list-group-item-warning:hover, button.list-group-item-warning:hover, a.list-group-item-warning:focus, button.list-group-item-warning:focus { - color: #e99002; - background-color: #faf2cc; - } - - a.list-group-item-warning.active, button.list-group-item-warning.active, a.list-group-item-warning.active:hover, button.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, button.list-group-item-warning.active:focus { - color: #fff; - background-color: #e99002; - border-color: #e99002; - } - -.list-group-item-danger { - color: #f04124; - background-color: #f2dede; -} - -a.list-group-item-danger, button.list-group-item-danger { - color: #f04124; -} - - a.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading { - color: inherit; - } - - a.list-group-item-danger:hover, button.list-group-item-danger:hover, a.list-group-item-danger:focus, button.list-group-item-danger:focus { - color: #f04124; - background-color: #ebcccc; - } - - a.list-group-item-danger.active, button.list-group-item-danger.active, a.list-group-item-danger.active:hover, button.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, button.list-group-item-danger.active:focus { - color: #fff; - background-color: #f04124; - border-color: #f04124; - } - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} - -.panel { - margin-bottom: 21px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.05); - box-shadow: 0 1px 1px rgba(0,0,0,0.05); -} - -.panel-body { - padding: 15px; -} - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: -1; - border-top-left-radius: -1; -} - - .panel-heading > .dropdown .dropdown-toggle { - color: inherit; - } - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 17px; - color: inherit; -} - - .panel-title > a, .panel-title > small, .panel-title > .small, .panel-title > small > a, .panel-title > .small > a { - color: inherit; - } - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} - -.panel > .list-group, .panel > .panel-collapse > .list-group { - margin-bottom: 0; -} - - .panel > .list-group .list-group-item, .panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; - } - - .panel > .list-group:first-child .list-group-item:first-child, .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: -1; - border-top-left-radius: -1; - } - - .panel > .list-group:last-child .list-group-item:last-child, .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; - } - -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} - -.list-group + .panel-footer { - border-top-width: 0; -} - -.panel > .table, .panel > .table-responsive > .table, .panel > .panel-collapse > .table { - margin-bottom: 0; -} - - .panel > .table caption, .panel > .table-responsive > .table caption, .panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; - } - - .panel > .table:first-child, .panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: -1; - border-top-left-radius: -1; - } - - .panel > .table:first-child > thead:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: -1; - border-top-right-radius: -1; - } - - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: -1; - } - - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: -1; - } - - .panel > .table:last-child, .panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: -1; - border-bottom-right-radius: -1; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: -1; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: -1; - } - - .panel > .panel-body + .table, .panel > .panel-body + .table-responsive, .panel > .table + .panel-body, .panel > .table-responsive + .panel-body { - border-top: 1px solid #dddddd; - } - - .panel > .table > tbody:first-child > tr:first-child th, .panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; - } - -.panel > .table-bordered, .panel > .table-responsive > .table-bordered { - border: 0; -} - - .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, .panel > .table-bordered > tbody > tr > th:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, .panel > .table-bordered > tfoot > tr > th:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, .panel > .table-bordered > thead > tr > td:first-child, .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, .panel > .table-bordered > tbody > tr > td:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - - .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, .panel > .table-bordered > tbody > tr > th:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, .panel > .table-bordered > tfoot > tr > th:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, .panel > .table-bordered > thead > tr > td:last-child, .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, .panel > .table-bordered > tbody > tr > td:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - - .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, .panel > .table-bordered > thead > tr:first-child > th, .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; - } - - .panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, .panel > .table-bordered > tbody > tr:last-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; - } - -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} - -.panel-group { - margin-bottom: 21px; -} - - .panel-group .panel { - margin-bottom: 0; - border-radius: 0; - } - - .panel-group .panel + .panel { - margin-top: 5px; - } - - .panel-group .panel-heading { - border-bottom: 0; - } - - .panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #dddddd; - } - - .panel-group .panel-footer { - border-top: 0; - } - - .panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; - } - -.panel-default { - border-color: #dddddd; -} - - .panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #dddddd; - } - - .panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #dddddd; - } - - .panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333333; - } - - .panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #dddddd; - } - -.panel-primary { - border-color: #008cba; -} - - .panel-primary > .panel-heading { - color: #ffffff; - background-color: #008cba; - border-color: #008cba; - } - - .panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #008cba; - } - - .panel-primary > .panel-heading .badge { - color: #008cba; - background-color: #ffffff; - } - - .panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #008cba; - } - -.panel-success { - border-color: #3c9a5f; -} - - .panel-success > .panel-heading { - color: #ffffff; - background-color: #43ac6a; - border-color: #3c9a5f; - } - - .panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #3c9a5f; - } - - .panel-success > .panel-heading .badge { - color: #43ac6a; - background-color: #ffffff; - } - - .panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #3c9a5f; - } - -.panel-info { - border-color: #3db5d8; -} - - .panel-info > .panel-heading { - color: #ffffff; - background-color: #5bc0de; - border-color: #3db5d8; - } - - .panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #3db5d8; - } - - .panel-info > .panel-heading .badge { - color: #5bc0de; - background-color: #ffffff; - } - - .panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #3db5d8; - } - -.panel-warning { - border-color: #d08002; -} - - .panel-warning > .panel-heading { - color: #ffffff; - background-color: #e99002; - border-color: #d08002; - } - - .panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d08002; - } - - .panel-warning > .panel-heading .badge { - color: #e99002; - background-color: #ffffff; - } - - .panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d08002; - } - -.panel-danger { - border-color: #ea2f10; -} - - .panel-danger > .panel-heading { - color: #ffffff; - background-color: #f04124; - border-color: #ea2f10; - } - - .panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ea2f10; - } - - .panel-danger > .panel-heading .badge { - color: #f04124; - background-color: #ffffff; - } - - .panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ea2f10; - } - -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} - - .embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; - } - -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} - -.embed-responsive-4by3 { - padding-bottom: 75%; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #fafafa; - border: 1px solid #e8e8e8; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); - box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); -} - - .well blockquote { - border-color: #ddd; - border-color: rgba(0,0,0,0.15); - } - -.well-lg { - padding: 24px; - border-radius: 0; -} - -.well-sm { - padding: 9px; - border-radius: 0; -} - -.close { - float: right; - font-size: 22.5px; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - - .close:hover, .close:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); - } - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.modal-open { - overflow: hidden; -} - -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} - - .modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - } - - .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - } - -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} - -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0,0,0,0.2); - border-radius: 0; - -webkit-box-shadow: 0 3px 9px rgba(0,0,0,0.5); - box-shadow: 0 3px 9px rgba(0,0,0,0.5); - -webkit-background-clip: padding-box; - background-clip: padding-box; - outline: 0; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - - .modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); - } - - .modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); - } - -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} - - .modal-header .close { - margin-top: -2px; - } - -.modal-title { - margin: 0; - line-height: 1.4; -} - -.modal-body { - position: relative; - padding: 20px; -} - -.modal-footer { - padding: 20px; - text-align: right; - border-top: 1px solid #e5e5e5; -} - - .modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; - } - - .modal-footer .btn-group .btn + .btn { - margin-left: -1px; - } - - .modal-footer .btn-block + .btn-block { - margin-left: 0; - } - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -@media (min-width:768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0,0,0,0.5); - box-shadow: 0 5px 15px rgba(0,0,0,0.5); - } - - .modal-sm { - width: 300px; - } -} - -@media (min-width:992px) { - .modal-lg { - width: 900px; - } -} - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.4; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 12px; - opacity: 0; - filter: alpha(opacity=0); -} - - .tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); - } - - .tooltip.top { - margin-top: -3px; - padding: 5px 0; - } - - .tooltip.right { - margin-left: 3px; - padding: 0 5px; - } - - .tooltip.bottom { - margin-top: 3px; - padding: 5px 0; - } - - .tooltip.left { - margin-left: -3px; - padding: 0 5px; - } - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - background-color: #333333; - border-radius: 0; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #333333; -} - -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #333333; -} - -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #333333; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #333333; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #333333; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #333333; -} - -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #333333; -} - -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #333333; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.4; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 15px; - background-color: #333333; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #333333; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 5px 10px rgba(0,0,0,0.2); - box-shadow: 0 5px 10px rgba(0,0,0,0.2); -} - - .popover.top { - margin-top: -10px; - } - - .popover.right { - margin-left: 10px; - } - - .popover.bottom { - margin-top: 10px; - } - - .popover.left { - margin-left: -10px; - } - -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 15px; - background-color: #333333; - border-bottom: 1px solid #262626; - border-radius: -1 -1 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover > .arrow, .popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover > .arrow { - border-width: 11px; -} - - .popover > .arrow:after { - border-width: 10px; - content: ""; - } - -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #000000; - border-top-color: rgba(0,0,0,0.05); - bottom: -11px; -} - - .popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #333333; - } - -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #000000; - border-right-color: rgba(0,0,0,0.05); -} - - .popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #333333; - } - -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #000000; - border-bottom-color: rgba(0,0,0,0.05); - top: -11px; -} - - .popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #333333; - } - -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #000000; - border-left-color: rgba(0,0,0,0.05); -} - - .popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #333333; - bottom: -10px; - } - -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} - - .carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; - } - - .carousel-inner > .item > img, .carousel-inner > .item > a > img { - line-height: 1; - } - -@media all and (transform-3d),(-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform .6s ease-in-out; - -o-transition: -o-transform .6s ease-in-out; - transition: transform .6s ease-in-out; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; - } - - .carousel-inner > .item.next, .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - - .carousel-inner > .item.prev, .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - - .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} - -.carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { - display: block; -} - -.carousel-inner > .active { - left: 0; -} - -.carousel-inner > .next, .carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel-inner > .next { - left: 100%; -} - -.carousel-inner > .prev { - left: -100%; -} - - .carousel-inner > .next.left, .carousel-inner > .prev.right { - left: 0; - } - -.carousel-inner > .active.left { - left: -100%; -} - -.carousel-inner > .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0,0,0,0.6); - background-color: rgba(0,0,0,0); -} - - .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001))); - background-image: linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - } - - .carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5))); - background-image: linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - } - - .carousel-control:hover, .carousel-control:focus { - outline: 0; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); - } - - .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; - } - - .carousel-control .icon-prev, .carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - - .carousel-control .icon-next, .carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - - .carousel-control .icon-prev, .carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; - } - - .carousel-control .icon-prev:before { - content: '\2039'; - } - - .carousel-control .icon-next:before { - content: '\203a'; - } - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} - - .carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0,0,0,0); - } - - .carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; - } - -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0,0,0,0.6); -} - - .carousel-caption .btn { - text-shadow: none; - } - -@media screen and (min-width:768px) { - .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - - .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { - margin-left: -10px; - } - - .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { - margin-right: -10px; - } - - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - .carousel-indicators { - bottom: 20px; - } -} - -.clearfix:before, .clearfix:after, .dl-horizontal dd:before, .dl-horizontal dd:after, .container:before, .container:after, .container-fluid:before, .container-fluid:after, .row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, .btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after, .nav:before, .nav:after, .navbar:before, .navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, .navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, .panel-body:after, .modal-header:before, .modal-header:after, .modal-footer:before, .modal-footer:after { - content: " "; - display: table; -} - -.clearfix:after, .dl-horizontal dd:after, .container:after, .container-fluid:after, .row:after, .form-horizontal .form-group:after, .btn-toolbar:after, .btn-group-vertical > .btn-group:after, .nav:after, .navbar:after, .navbar-header:after, .navbar-collapse:after, .pager:after, .panel-body:after, .modal-header:after, .modal-footer:after { - clear: both; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.pull-right { - float: right !important; -} - -.pull-left { - float: left !important; -} - -.hide { - display: none !important; -} - -.show { - display: block !important; -} - -.invisible { - visibility: hidden; -} - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.hidden { - display: none !important; -} - -.affix { - position: fixed; -} - -@-ms-viewport { - width: device-width; -} - -.visible-xs, .visible-sm, .visible-md, .visible-lg { - display: none !important; -} - -.visible-xs-block, .visible-xs-inline, .visible-xs-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-lg-block, .visible-lg-inline, .visible-lg-inline-block { - display: none !important; -} - -@media (max-width:767px) { - .visible-xs { - display: block !important; - } - - table.visible-xs { - display: table !important; - } - - tr.visible-xs { - display: table-row !important; - } - - th.visible-xs, td.visible-xs { - display: table-cell !important; - } -} - -@media (max-width:767px) { - .visible-xs-block { - display: block !important; - } -} - -@media (max-width:767px) { - .visible-xs-inline { - display: inline !important; - } -} - -@media (max-width:767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} - -@media (min-width:768px) and (max-width:991px) { - .visible-sm { - display: block !important; - } - - table.visible-sm { - display: table !important; - } - - tr.visible-sm { - display: table-row !important; - } - - th.visible-sm, td.visible-sm { - display: table-cell !important; - } -} - -@media (min-width:768px) and (max-width:991px) { - .visible-sm-block { - display: block !important; - } -} - -@media (min-width:768px) and (max-width:991px) { - .visible-sm-inline { - display: inline !important; - } -} - -@media (min-width:768px) and (max-width:991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} - -@media (min-width:992px) and (max-width:1199px) { - .visible-md { - display: block !important; - } - - table.visible-md { - display: table !important; - } - - tr.visible-md { - display: table-row !important; - } - - th.visible-md, td.visible-md { - display: table-cell !important; - } -} - -@media (min-width:992px) and (max-width:1199px) { - .visible-md-block { - display: block !important; - } -} - -@media (min-width:992px) and (max-width:1199px) { - .visible-md-inline { - display: inline !important; - } -} - -@media (min-width:992px) and (max-width:1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} - -@media (min-width:1200px) { - .visible-lg { - display: block !important; - } - - table.visible-lg { - display: table !important; - } - - tr.visible-lg { - display: table-row !important; - } - - th.visible-lg, td.visible-lg { - display: table-cell !important; - } -} - -@media (min-width:1200px) { - .visible-lg-block { - display: block !important; - } -} - -@media (min-width:1200px) { - .visible-lg-inline { - display: inline !important; - } -} - -@media (min-width:1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} - -@media (max-width:767px) { - .hidden-xs { - display: none !important; - } -} - -@media (min-width:768px) and (max-width:991px) { - .hidden-sm { - display: none !important; - } -} - -@media (min-width:992px) and (max-width:1199px) { - .hidden-md { - display: none !important; - } -} - -@media (min-width:1200px) { - .hidden-lg { - display: none !important; - } -} - -.visible-print { - display: none !important; -} - -@media print { - .visible-print { - display: block !important; - } - - table.visible-print { - display: table !important; - } - - tr.visible-print { - display: table-row !important; - } - - th.visible-print, td.visible-print { - display: table-cell !important; - } -} - -.visible-print-block { - display: none !important; -} - -@media print { - .visible-print-block { - display: block !important; - } -} - -.visible-print-inline { - display: none !important; -} - -@media print { - .visible-print-inline { - display: inline !important; - } -} - -.visible-print-inline-block { - display: none !important; -} - -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} - -@media print { - .hidden-print { - display: none !important; - } -} - -.navbar { - border: none; - font-size: 13px; - font-weight: 300; -} - - .navbar .navbar-toggle:hover .icon-bar { - background-color: #b3b3b3; - } - -.navbar-collapse { - border-top-color: rgba(0,0,0,0.2); - -webkit-box-shadow: none; - box-shadow: none; -} - -.navbar .btn { - padding-top: 6px; - padding-bottom: 6px; -} - -.navbar-form { - margin-top: 7px; - margin-bottom: 5px; -} - - .navbar-form .form-control { - height: auto; - padding: 4px 6px; - } - -.navbar-text { - margin: 12px 15px; - line-height: 21px; -} - -.navbar .dropdown-menu { - border: none; -} - - .navbar .dropdown-menu > li > a, .navbar .dropdown-menu > li > a:focus { - background-color: transparent; - font-size: 13px; - font-weight: 300; - } - -.navbar .dropdown-header { - color: rgba(255,255,255,0.5); -} - -.navbar-default .dropdown-menu { - background-color: #333333; -} - - .navbar-default .dropdown-menu > li > a, .navbar-default .dropdown-menu > li > a:focus { - color: #ffffff; - } - - .navbar-default .dropdown-menu > li > a:hover, .navbar-default .dropdown-menu > .active > a, .navbar-default .dropdown-menu > .active > a:hover { - background-color: #272727; - } - -.navbar-inverse .dropdown-menu { - background-color: #008cba; -} - - .navbar-inverse .dropdown-menu > li > a, .navbar-inverse .dropdown-menu > li > a:focus { - color: #ffffff; - } - - .navbar-inverse .dropdown-menu > li > a:hover, .navbar-inverse .dropdown-menu > .active > a, .navbar-inverse .dropdown-menu > .active > a:hover { - background-color: #006687; - } - -.btn { - padding: 8px 12px; -} - -.btn-lg { - padding: 16px 20px; -} - -.btn-sm { - padding: 8px 12px; -} - -.btn-xs { - padding: 4px 6px; -} - -.btn-group .btn ~ .dropdown-toggle { - padding-left: 16px; - padding-right: 16px; -} - -.btn-group .dropdown-menu { - border-top-width: 0; -} - -.btn-group.dropup .dropdown-menu { - border-top-width: 1px; - border-bottom-width: 0; - margin-bottom: 0; -} - -.btn-group .dropdown-toggle.btn-default ~ .dropdown-menu { - background-color: #e7e7e7; - border-color: #cccccc; -} - - .btn-group .dropdown-toggle.btn-default ~ .dropdown-menu > li > a { - color: #333333; - } - - .btn-group .dropdown-toggle.btn-default ~ .dropdown-menu > li > a:hover { - background-color: #d3d3d3; - } - -.btn-group .dropdown-toggle.btn-primary ~ .dropdown-menu { - background-color: #008cba; - border-color: #0079a1; -} - - .btn-group .dropdown-toggle.btn-primary ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-primary ~ .dropdown-menu > li > a:hover { - background-color: #006d91; - } - -.btn-group .dropdown-toggle.btn-success ~ .dropdown-menu { - background-color: #43ac6a; - border-color: #3c9a5f; -} - - .btn-group .dropdown-toggle.btn-success ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-success ~ .dropdown-menu > li > a:hover { - background-color: #388f58; - } - -.btn-group .dropdown-toggle.btn-info ~ .dropdown-menu { - background-color: #5bc0de; - border-color: #46b8da; -} - - .btn-group .dropdown-toggle.btn-info ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-info ~ .dropdown-menu > li > a:hover { - background-color: #39b3d7; - } - -.btn-group .dropdown-toggle.btn-warning ~ .dropdown-menu { - background-color: #e99002; - border-color: #d08002; -} - - .btn-group .dropdown-toggle.btn-warning ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-warning ~ .dropdown-menu > li > a:hover { - background-color: #c17702; - } - -.btn-group .dropdown-toggle.btn-danger ~ .dropdown-menu { - background-color: #f04124; - border-color: #ea2f10; -} - - .btn-group .dropdown-toggle.btn-danger ~ .dropdown-menu > li > a { - color: #ffffff; - } - - .btn-group .dropdown-toggle.btn-danger ~ .dropdown-menu > li > a:hover { - background-color: #dc2c0f; - } - -.lead { - color: #6f6f6f; -} - -cite { - font-style: italic; -} - -blockquote { - border-left-width: 1px; - color: #6f6f6f; -} - - blockquote.pull-right { - border-right-width: 1px; - } - - blockquote small { - font-size: 12px; - font-weight: 300; - } - -table { - font-size: 12px; -} - -label, .control-label, .help-block, .checkbox, .radio { - font-size: 12px; - font-weight: normal; -} - -input[type="radio"], input[type="checkbox"] { - margin-top: 1px; -} - -.nav .open > a, .nav .open > a:hover, .nav .open > a:focus { - border-color: transparent; -} - -.nav-tabs > li > a { - background-color: #e7e7e7; - color: #222222; -} - -.nav-tabs .caret { - border-top-color: #222222; - border-bottom-color: #222222; -} - -.nav-pills { - font-weight: 300; -} - -.breadcrumb { - border: 1px solid #dddddd; - border-radius: 3px; - font-size: 10px; - font-weight: 300; - text-transform: uppercase; -} - -.pagination { - font-size: 12px; - font-weight: 300; - color: #999999; -} - - .pagination > li > a, .pagination > li > span { - margin-left: 4px; - color: #999999; - } - - .pagination > .active > a, .pagination > .active > span { - color: #fff; - } - - .pagination > li > a, .pagination > li:first-child > a, .pagination > li:last-child > a, .pagination > li > span, .pagination > li:first-child > span, .pagination > li:last-child > span { - border-radius: 3px; - } - -.pagination-lg > li > a, .pagination-lg > li > span { - padding-left: 22px; - padding-right: 22px; -} - -.pagination-sm > li > a, .pagination-sm > li > span { - padding: 0 5px; -} - -.pager { - font-size: 12px; - font-weight: 300; - color: #999999; -} - -.list-group { - font-size: 12px; - font-weight: 300; -} - -.close { - opacity: 0.4; - text-decoration: none; - text-shadow: none; -} - - .close:hover, .close:focus { - opacity: 1; - } - -.alert { - font-size: 12px; - font-weight: 300; -} - - .alert .alert-link { - font-weight: normal; - color: #fff; - text-decoration: underline; - } - -.label { - padding-left: 1em; - padding-right: 1em; - border-radius: 0; - font-weight: 300; -} - -.label-default { - background-color: #e7e7e7; - color: #333333; -} - -.badge { - font-weight: 300; -} - -.progress { - height: 22px; - padding: 2px; - background-color: #f6f6f6; - border: 1px solid #ccc; - -webkit-box-shadow: none; - box-shadow: none; -} - -.dropdown-menu { - padding: 0; - margin-top: 0; - font-size: 12px; -} - - .dropdown-menu > li > a { - padding: 12px 15px; - } - -.dropdown-header { - padding-left: 15px; - padding-right: 15px; - font-size: 9px; - text-transform: uppercase; -} - -.popover { - color: #fff; - font-size: 12px; - font-weight: 300; -} - -.panel-heading, .panel-footer { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.panel-default .close { - color: #222222; -} - -.modal .close { - color: #222222; -} diff --git a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.eot b/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953f..000000000 Binary files a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.svg b/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 94fb5490a..000000000 --- a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.ttf b/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609..000000000 Binary files a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.woff b/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e612858f..000000000 Binary files a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.woff2 b/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c..000000000 Binary files a/samples/Samples.Mvc5.EFCore/Content/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/samples/Samples.Mvc5.EFCore/Controllers/BaseController.cs b/samples/Samples.Mvc5.EFCore/Controllers/BaseController.cs deleted file mode 100644 index 0c9eabd1a..000000000 --- a/samples/Samples.Mvc5.EFCore/Controllers/BaseController.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Web.Mvc; -using StackExchange.Profiling; - -namespace Samples.Mvc5.Controllers -{ - /// - /// The base controller. - /// - public abstract class BaseController : Controller - { - /// - /// keep track of the profiler to dispose it. - /// - private IDisposable _resultExecutingToExecuted; - - /// - /// on action executing. - /// demonstrate using a base controller to intercept actions as they are executed. - /// - /// The filter context. - protected override void OnActionExecuting(ActionExecutingContext filterContext) - { - var profiler = MiniProfiler.Current; - - using (profiler.Step("OnActionExecuting")) - { - //UpsertRouteHit(filterContext.ActionDescriptor, profiler); - base.OnActionExecuting(filterContext); - } - } - - /// - /// on result executing. - /// demonstrate using a base controller to intercept actions as they are executed. - /// - /// The filter context. - protected override void OnResultExecuting(ResultExecutingContext filterContext) - { - _resultExecutingToExecuted = MiniProfiler.Current.Step("OnResultExecuting"); - - base.OnResultExecuting(filterContext); - } - - /// - /// on result executed. - /// demonstrate using a base controller to intercept actions as they are executed. - /// - /// The filter context. - protected override void OnResultExecuted(ResultExecutedContext filterContext) - { - _resultExecutingToExecuted?.Dispose(); - - base.OnResultExecuted(filterContext); - } - } -} diff --git a/samples/Samples.Mvc5.EFCore/Controllers/HomeController.cs b/samples/Samples.Mvc5.EFCore/Controllers/HomeController.cs deleted file mode 100644 index f5bfe9ef4..000000000 --- a/samples/Samples.Mvc5.EFCore/Controllers/HomeController.cs +++ /dev/null @@ -1,160 +0,0 @@ -using System.Linq; -using System.Threading; -using System.Web.Mvc; -using StackExchange.Profiling; - -using Samples.Mvc5.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.Data.Sqlite; -using StackExchange.Profiling.Data; -using Dapper; - -namespace Samples.Mvc5.Controllers -{ - public class HomeController : BaseController - { - /// - /// the default view, home page, top right orientation. - /// - public ActionResult Index() - { - DefaultActions(); - return View("Index"); - } - - /// - /// Runs the default actions used on all Index views (default, and bottom left/right) - /// - private void DefaultActions() - { - var profiler = MiniProfiler.Current; - - using (profiler.Step("Set page title")) - { - ViewBag.Title = "Home Page"; - } - - using (profiler.Step("Doing complex stuff")) - { - using (profiler.Step("Step A")) - { - // simulate fetching a url - using (profiler.CustomTiming("http", "GET http://google.com")) - { - Thread.Sleep(10); - } - } - using (profiler.Step("Step B")) - { - // simulate fetching a url - using (profiler.CustomTiming("http", "GET http://stackoverflow.com")) - { - Thread.Sleep(20); - } - - using (profiler.CustomTiming("redis", "SET \"mykey\" 10")) - { - Thread.Sleep(5); - } - } - } - - // now something that loops - for (int i = 0; i < 15; i++) - { - using (profiler.CustomTiming("redis", "SET \"mykey\" 10")) - { - Thread.Sleep(i); - } - } - - // let's also add a custom link to stack overflow! - profiler.AddCustomLink("stack overflow", "http://stackoverflow.com"); - } - - /// - /// about view. - /// - /// the about view (default) - /// this view is not profiled. - public ActionResult About() - { - // prevent this specific route from being profiled - MiniProfiler.Current?.Stop(true); - - return View(); - } - - /// - /// The EF core. - /// - /// The entity framework core. - public ActionResult EFCore() - { - int count; - int? newCount = null; - - EFContext context = null; - //using (var connection = new ProfiledDbConnection(new SqliteConnection("DataSource=:memory:"), MiniProfiler.Current)) - using (var connection = new SqliteConnection("DataSource=:memory:")) - using (MiniProfiler.Current.Step("EF Core Stuff")) - { - try - { - connection.Open(); - - var options = new DbContextOptionsBuilder() - .UseSqlite(connection) - .Options; - - using (MiniProfiler.Current.Step("Create Context")) - { - context = new EFContext(options); - } - - using (MiniProfiler.Current.Step("Create Schema")) - { - context.Database.EnsureCreated(); - } - - // this is not correct, as the count from this assignment is never actually used - using (MiniProfiler.Current.Step("First count")) - { - count = context.People.Count(); - } - - using (MiniProfiler.Current.Step("Insertion")) - { - var p = new Person { Name = "sam" }; - context.People.Add(p); - context.SaveChanges(); - } - - // this count is actually used. - using (MiniProfiler.Current.Step("Second count")) - { - count = context.People.Count(); - } - - using (MiniProfiler.Current.Step("Get Count from SqlQuery Method - no sql recorded")) - { - newCount = context.People.FromSql("Select * from People").Count(); - } - using (MiniProfiler.Current.Step("Get Count using ProfiledConnection - sql recorded")) - using (var conn = new ProfiledDbConnection(context.Database.GetDbConnection(), MiniProfiler.Current)) - { - conn.Open(); - newCount = conn.Query("Select Count(*) from People").Single(); - conn.Close(); - } - } - finally - { - context?.Dispose(); - } - } - - return Content(string.Format("EF Code First complete - count: {0}, sqlQuery count {1}", count, newCount)); - } - } -} diff --git a/samples/Samples.Mvc5.EFCore/Global.asax b/samples/Samples.Mvc5.EFCore/Global.asax deleted file mode 100644 index 71f57b15d..000000000 --- a/samples/Samples.Mvc5.EFCore/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Codebehind="Global.asax.cs" Inherits="Samples.Mvc5.MvcApplication" Language="C#" %> diff --git a/samples/Samples.Mvc5.EFCore/Global.asax.cs b/samples/Samples.Mvc5.EFCore/Global.asax.cs deleted file mode 100644 index bdb599205..000000000 --- a/samples/Samples.Mvc5.EFCore/Global.asax.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System.Web; -using System.Web.Mvc; -using System.Web.Optimization; -using System.Web.Routing; - -using StackExchange.Profiling; -using StackExchange.Profiling.Mvc; - -namespace Samples.Mvc5 -{ - public class MvcApplication : HttpApplication - { - protected void Application_Start() - { - RegisterGlobalFilters(GlobalFilters.Filters); - RegisterRoutes(RouteTable.Routes); - RegisterBundles(BundleTable.Bundles); - - InitProfilerSettings(); - } - - public static void RegisterGlobalFilters(GlobalFilterCollection filters) - { - filters.Add(new HandleErrorAttribute()); - filters.Add(new ProfilingActionFilter()); - } - - public static void RegisterRoutes(RouteCollection routes) - { - routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); - - routes.MapRoute( - name: "Default", - url: "{controller}/{action}/{id}", - defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } - ); - } - - public static void RegisterBundles(BundleCollection bundles) - { - bundles.Add(new ScriptBundle("~/bundles/jquery").Include( - "~/Scripts/jquery-{version}.js")); - - bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( - "~/Scripts/bootstrap.js")); - - bundles.Add(new StyleBundle("~/Content/css").Include( - "~/Content/bootstrap.css", - "~/Content/bootstrap-theme.css", - "~/Content/site.css")); - } - - /// - /// The application begin request event. - /// - protected void Application_BeginRequest() - { - MiniProfiler profiler = null; - - // might want to decide here (or maybe inside the action) whether you want - // to profile this request - for example, using an "IsSystemAdmin" flag against - // the user, or similar; this could also all be done in action filters, but this - // is simple and practical; just return null for most users. For our test, we'll - // profile only for local requests (seems reasonable) - if (Request.IsLocal) - { - profiler = MiniProfiler.StartNew(); - } - - using (profiler.Step("Application_BeginRequest")) - { - // you can start profiling your code immediately - } - } - - /// - /// The application end request. - /// - protected void Application_EndRequest() - { - MiniProfiler.Current?.Stop(); - } - - /// - /// Customize aspects of the MiniProfiler. - /// - private void InitProfilerSettings() - { - // A powerful feature of the MiniProfiler is the ability to share links to results with other developers. - // by default, however, long-term result caching is done in HttpRuntime.Cache, which is very volatile. - // - // Let's rig up serialization of our profiler results to a database, so they survive app restarts. - MiniProfiler.Configure(new MiniProfilerOptions - { RouteBasePath = "~/profiler" } - .AddViewProfiling() // Add MVC view profiling - .AddEntityFramework() // Add EF Core - ); - } - } -} diff --git a/samples/Samples.Mvc5.EFCore/Models/EFContext.cs b/samples/Samples.Mvc5.EFCore/Models/EFContext.cs deleted file mode 100644 index 97b63d0d6..000000000 --- a/samples/Samples.Mvc5.EFCore/Models/EFContext.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.EntityFrameworkCore; - -namespace Samples.Mvc5.Models -{ - /// - /// The EF context. - /// - public class EFContext : DbContext - { - public EFContext() { } - public EFContext(DbContextOptions options) : base(options) { } - - /// - /// Gets or sets the people. - /// - public DbSet People { get; set; } - } -} diff --git a/samples/Samples.Mvc5.EFCore/Models/Person.cs b/samples/Samples.Mvc5.EFCore/Models/Person.cs deleted file mode 100644 index 13a4b56c1..000000000 --- a/samples/Samples.Mvc5.EFCore/Models/Person.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Samples.Mvc5.Models -{ - /// - /// The person. - /// - public class Person - { - /// - /// Gets or sets the id. - /// - public int Id { get; set; } - - /// - /// Gets or sets the name. - /// - public string Name { get; set; } - } -} diff --git a/samples/Samples.Mvc5.EFCore/Properties/launchSettings.json b/samples/Samples.Mvc5.EFCore/Properties/launchSettings.json deleted file mode 100644 index 079da17f0..000000000 --- a/samples/Samples.Mvc5.EFCore/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:51990/", - "sslPort": 0 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Samples.Mvc5": { - "commandName": "Project", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "http://localhost:51992/" - } - } -} \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Samples.Mvc5.EFCore.csproj b/samples/Samples.Mvc5.EFCore/Samples.Mvc5.EFCore.csproj deleted file mode 100644 index dfbc47120..000000000 --- a/samples/Samples.Mvc5.EFCore/Samples.Mvc5.EFCore.csproj +++ /dev/null @@ -1,59 +0,0 @@ - - - Debug - AnyCPU - Library - Samples.Mvc5 - Samples.Mvc5 - net462 - true - bin\ - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - 51485 - / - http://localhost:51485/ - False - False - - False - - - - - \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Scripts/_references.js b/samples/Samples.Mvc5.EFCore/Scripts/_references.js deleted file mode 100644 index f7a693e4c..000000000 --- a/samples/Samples.Mvc5.EFCore/Scripts/_references.js +++ /dev/null @@ -1,2 +0,0 @@ -/// -/// diff --git a/samples/Samples.Mvc5.EFCore/Scripts/bootstrap.js b/samples/Samples.Mvc5.EFCore/Scripts/bootstrap.js deleted file mode 100644 index 8a2e99a53..000000000 --- a/samples/Samples.Mvc5.EFCore/Scripts/bootstrap.js +++ /dev/null @@ -1,2377 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ - -if (typeof jQuery === 'undefined') { - throw new Error('Bootstrap\'s JavaScript requires jQuery') -} - -+function ($) { - 'use strict'; - var version = $.fn.jquery.split(' ')[0].split('.') - if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { - throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') - } -}(jQuery); - -/* ======================================================================== - * Bootstrap: transition.js v3.3.7 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - - if (!$.support.transition) return - - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) - } - } - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.3.7 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.7' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector === '#' ? [] : selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.3.7 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.7' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d).prop(d, true) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d).prop(d, false) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') - } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target).closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { - // Prevent double click on radios, and the double selections (so cancellation) on checkboxes - e.preventDefault() - // The target component still receive the focus - if ($btn.is('input,button')) $btn.trigger('focus') - else $btn.find('input:visible,button:visible').first().trigger('focus') - } - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.3.7 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } - - Carousel.VERSION = '3.3.7' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true - } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return - } - - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.3.7 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - -/* jshint latedef: false */ - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.7' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.7 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.7' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) - } - - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger($.Event('shown.bs.dropdown', relatedTarget)) - } - - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } - - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('.dropdown-menu' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: modal.js v3.3.7 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) - } - } - - Modal.VERSION = '3.3.7' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true - } - - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } - - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(document).off('focusin.bs.modal') - - this.$element - .removeClass('in') - .off('click.dismiss.bs.modal') - .off('mouseup.dismiss.bs.modal') - - this.$dialog.off('mousedown.dismiss.bs.modal') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (document !== e.target && - this.$element[0] !== e.target && - !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() - } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() - - } else if (callback) { - callback() - } - } - - // these following methods are used to handle overflowing modals - - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) - } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } - - - // MODAL PLUGIN DEFINITION - // ======================= - - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tooltip.js v3.3.7 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== - - var Tooltip = function (element, options) { - this.type = null - this.options = null - this.enabled = null - this.timeout = null - this.hoverState = null - this.$element = null - this.inState = null - - this.init('tooltip', element, options) - } - - Tooltip.VERSION = '3.3.7' - - Tooltip.TRANSITION_DURATION = 150 - - Tooltip.DEFAULTS = { - animation: true, - placement: 'top', - selector: false, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - container: false, - viewport: { - selector: 'body', - padding: 0 - } - } - - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) - this.inState = { click: false, hover: false, focus: false } - - if (this.$element[0] instanceof document.constructor && !this.options.selector) { - throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') - } - - var triggers = this.options.trigger.split(' ') - - for (var i = triggers.length; i--;) { - var trigger = triggers[i] - - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) - } - } - - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } - - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } - - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) - - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay - } - } - - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true - } - - if (self.tip().hasClass('in') || self.hoverState == 'in') { - self.hoverState = 'in' - return - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.isInStateTrue = function () { - for (var key in this.inState) { - if (this.inState[key]) return true - } - - return false - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false - } - - if (self.isInStateTrue()) return - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - this.$element.trigger('inserted.bs.' + this.type) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var viewportDim = this.getPosition(this.$viewport) - - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) - } - - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) - - this.applyPlacement(calculatedOffset, placement) - - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null - - if (prevHoverState == 'out') that.leave(that) - } - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } - - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight - - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) - - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 - - offset.top += marginTop - offset.left += marginLeft - - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) - } - }, offset), 0) - - $tip.addClass('in') - - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight - } - - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) - - if (delta.left) offset.left += delta.left - else offset.top += delta.top - - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' - - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } - - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { - this.arrow() - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isVertical ? 'top' : 'left', '') - } - - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } - - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = $(this.$tip) - var e = $.Event('hide.bs.' + this.type) - - function complete() { - if (that.hoverState != 'in') $tip.detach() - if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - } - callback && callback() - } - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - $tip.removeClass('in') - - $.support.transition && $tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - - this.hoverState = null - - return this - } - - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var isSvg = window.SVGElement && el instanceof window.SVGElement - // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. - // See https://github.com/twbs/bootstrap/issues/20280 - var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset - } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset - } - } - - return delta - } - - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - if (!this.$tip) { - this.$tip = $(this.options.template) - if (this.$tip.length != 1) { - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') - } - } - return this.$tip - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) - } - } - - if (e) { - self.inState.click = !self.inState.click - if (self.isInStateTrue()) self.enter(self) - else self.leave(self) - } else { - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - } - - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - if (that.$tip) { - that.$tip.detach() - } - that.$tip = null - that.$arrow = null - that.$viewport = null - that.$element = null - }) - } - - - // TOOLTIP PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tooltip - - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip - - - // TOOLTIP NO CONFLICT - // =================== - - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: popover.js v3.3.7 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.7' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', - content: '', - template: '' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.7 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.7' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tab.js v3.3.7 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.7' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - } - - callback && callback() - } - - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: affix.js v3.3.7 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.7' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); diff --git a/samples/Samples.Mvc5.EFCore/Scripts/bootstrap.min.js b/samples/Samples.Mvc5.EFCore/Scripts/bootstrap.min.js deleted file mode 100644 index 9bcd2fcca..000000000 --- a/samples/Samples.Mvc5.EFCore/Scripts/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Views/Home/About.cshtml b/samples/Samples.Mvc5.EFCore/Views/Home/About.cshtml deleted file mode 100644 index 594a59cd0..000000000 --- a/samples/Samples.Mvc5.EFCore/Views/Home/About.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@{ - ViewBag.Title = "About Us"; -} -
- -

- We explictly stopped profiling on this route: -

public ActionResult About()
-{
-    // prevent this specific route from being profiled
-    MiniProfiler.Stop(discardResults: true);
-
-    return View();
-}
-

-
\ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Views/Home/Index.cshtml b/samples/Samples.Mvc5.EFCore/Views/Home/Index.cshtml deleted file mode 100644 index da011cbad..000000000 --- a/samples/Samples.Mvc5.EFCore/Views/Home/Index.cshtml +++ /dev/null @@ -1,82 +0,0 @@ -@using StackExchange.Profiling -@{ - using (MiniProfiler.Current.Step("Some complex thinking")) - { - System.Threading.Thread.Sleep(25); - } -} -@section head -{ - -} - -
- -
-
-
-
Click the links below to see it profile ajax requests
-
- -
-
-
-
You can also...
- -
-
-
-
-
Results from ajax requests
-
-
-
-
- -
- Some content way down the page - notice how the profiler button is fixed in the upper left corner. -
\ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Views/Shared/Error.cshtml b/samples/Samples.Mvc5.EFCore/Views/Shared/Error.cshtml deleted file mode 100644 index 9d8983aee..000000000 --- a/samples/Samples.Mvc5.EFCore/Views/Shared/Error.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@model System.Web.Mvc.HandleErrorInfo -@{ - ViewBag.Title = "Error"; -} - -

- Sorry, an error occurred while processing your request. -

\ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Views/Shared/_Layout.cshtml b/samples/Samples.Mvc5.EFCore/Views/Shared/_Layout.cshtml deleted file mode 100644 index 694f0cd2b..000000000 --- a/samples/Samples.Mvc5.EFCore/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,43 +0,0 @@ -@using StackExchange.Profiling; -@using StackExchange.Profiling.Mvc - - - - @this.InitClientTimings() - @this.TimeScript("jQuery 3.1.1", @) - @using (MiniProfiler.Current.Step(" rendering")) - { - @ViewBag.Title - MVC MiniProfiler Demo - @(this.TimeScript("Our CSS", @Styles.Render("~/Content/css"))); - @Scripts.Render("~/bundles/bootstrap") - @RenderSection("head", required: false) - } - - -
- -
-
- @RenderBody() -
- @MiniProfiler.Current.RenderIncludes(position: RenderPosition.Right, showTrivial: false, showTimeWithChildren: false) - - diff --git a/samples/Samples.Mvc5.EFCore/Views/Web.config b/samples/Samples.Mvc5.EFCore/Views/Web.config deleted file mode 100644 index 9d18deae0..000000000 --- a/samples/Samples.Mvc5.EFCore/Views/Web.config +++ /dev/null @@ -1,39 +0,0 @@ - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/Samples.Mvc5.EFCore/Views/_ViewStart.cshtml b/samples/Samples.Mvc5.EFCore/Views/_ViewStart.cshtml deleted file mode 100644 index efda124b1..000000000 --- a/samples/Samples.Mvc5.EFCore/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; -} \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/Web.Debug.config b/samples/Samples.Mvc5.EFCore/Web.Debug.config deleted file mode 100644 index d7712aaf1..000000000 --- a/samples/Samples.Mvc5.EFCore/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - diff --git a/samples/Samples.Mvc5.EFCore/Web.Release.config b/samples/Samples.Mvc5.EFCore/Web.Release.config deleted file mode 100644 index 28a4d5fcc..000000000 --- a/samples/Samples.Mvc5.EFCore/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - diff --git a/samples/Samples.Mvc5.EFCore/Web.config b/samples/Samples.Mvc5.EFCore/Web.config deleted file mode 100644 index 49dd03cab..000000000 --- a/samples/Samples.Mvc5.EFCore/Web.config +++ /dev/null @@ -1,79 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/Samples.Mvc5.EFCore/favicon.ico b/samples/Samples.Mvc5.EFCore/favicon.ico deleted file mode 100644 index a3a799985..000000000 Binary files a/samples/Samples.Mvc5.EFCore/favicon.ico and /dev/null differ diff --git a/samples/Samples.Mvc5/Controllers/BaseController.cs b/samples/Samples.Mvc5/Controllers/BaseController.cs index 669cae294..d86a8d9dc 100644 --- a/samples/Samples.Mvc5/Controllers/BaseController.cs +++ b/samples/Samples.Mvc5/Controllers/BaseController.cs @@ -13,14 +13,14 @@ public abstract class BaseController : Controller /// /// keep track of the profiler to dispose it. /// - private IDisposable _resultExecutingToExecuted; + private IDisposable? _resultExecutingToExecuted; /// /// Returns an open connection that will have its queries profiled. /// /// The mini profiler. /// the data connection abstraction. - public static DbConnection GetConnection(MiniProfiler profiler = null) + public static DbConnection GetConnection(MiniProfiler? profiler = null) { using (profiler.Step("GetOpenConnection")) { diff --git a/samples/Samples.Mvc5/Controllers/HomeController.cs b/samples/Samples.Mvc5/Controllers/HomeController.cs index 1d51b898b..042f892a1 100644 --- a/samples/Samples.Mvc5/Controllers/HomeController.cs +++ b/samples/Samples.Mvc5/Controllers/HomeController.cs @@ -66,7 +66,7 @@ private ActionResult HomeWithPosition(RenderPosition pos) /// private void DefaultActions() { - var profiler = MiniProfiler.Current; + var profiler = MiniProfiler.Current!; // test out using storage for this one request. Only store in SqlLite, not in httpCache profiler.Storage = new SqliteMiniProfilerStorage(MvcApplication.ConnectionString); @@ -224,7 +224,7 @@ public ActionResult EFCodeFirst() int count; int? newCount = null; - EFContext context = null; + EFContext? context = null; using (MiniProfiler.Current.Step("EF Stuff")) { try @@ -239,7 +239,7 @@ public ActionResult EFCodeFirst() using (MiniProfiler.Current.Step("Insertion")) { var p = new Person { Name = "sam" }; - context.People.Add(p); + context.People?.Add(p); context.SaveChanges(); } @@ -321,7 +321,7 @@ public ActionResult MassiveNesting2() /// recursion depth /// the connection /// The profiler. - private void RecursiveMethod(ref int depth, DbConnection connection, MiniProfiler profiler) + private void RecursiveMethod(ref int depth, DbConnection connection, MiniProfiler? profiler) { Thread.Sleep(5); // ensure we show up in the profiler @@ -420,7 +420,7 @@ public class RouteHit /// /// Gets or sets the route name. /// - public string RouteName { get; set; } + public string? RouteName { get; set; } /// /// Gets or sets the hit count. diff --git a/samples/Samples.Mvc5/EFCodeFirst/EFContext.cs b/samples/Samples.Mvc5/EFCodeFirst/EFContext.cs index 6b45f8846..6380914a2 100644 --- a/samples/Samples.Mvc5/EFCodeFirst/EFContext.cs +++ b/samples/Samples.Mvc5/EFCodeFirst/EFContext.cs @@ -10,6 +10,6 @@ public class EFContext : DbContext /// /// Gets or sets the people. /// - public DbSet People { get; set; } + public DbSet? People { get; set; } } -} \ No newline at end of file +} diff --git a/samples/Samples.Mvc5/EFCodeFirst/Person.cs b/samples/Samples.Mvc5/EFCodeFirst/Person.cs index 5aaf2039c..06a5b268c 100644 --- a/samples/Samples.Mvc5/EFCodeFirst/Person.cs +++ b/samples/Samples.Mvc5/EFCodeFirst/Person.cs @@ -13,6 +13,6 @@ public class Person /// /// Gets or sets the name. /// - public string Name { get; set; } + public string? Name { get; set; } } -} \ No newline at end of file +} diff --git a/samples/Samples.Mvc5/Global.asax.cs b/samples/Samples.Mvc5/Global.asax.cs index f3413143d..b31473eef 100644 --- a/samples/Samples.Mvc5/Global.asax.cs +++ b/samples/Samples.Mvc5/Global.asax.cs @@ -46,7 +46,7 @@ protected void Application_Start() /// protected void Application_BeginRequest() { - MiniProfiler profiler = null; + MiniProfiler? profiler = null; // might want to decide here (or maybe inside the action) whether you want // to profile this request - for example, using an "IsSystemAdmin" flag against diff --git a/samples/Samples.Mvc5/Samples.Mvc5.csproj b/samples/Samples.Mvc5/Samples.Mvc5.csproj index 08ecf99ac..ba38d1b01 100644 --- a/samples/Samples.Mvc5/Samples.Mvc5.csproj +++ b/samples/Samples.Mvc5/Samples.Mvc5.csproj @@ -5,7 +5,7 @@ Library Samples.Mvc5 Samples.Mvc5 - net462 + net472 true bin\ false @@ -15,12 +15,12 @@ - + - - - + + + @@ -42,16 +42,6 @@ - - - if not exist "$(TargetDir)x86" md "$(TargetDir)x86" - xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Compact\4.0.8876.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" - if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" - xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Compact\4.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64" - xcopy /s /y /q "$(NuGetPackageRoot)\sqlite\3.13.0\runtimes\win7-x64\native\*.*" "$(TargetDir)x64\.." - - - diff --git a/samples/Samples.Mvc5/Web.config b/samples/Samples.Mvc5/Web.config index 01fc918ec..44cced3f3 100644 --- a/samples/Samples.Mvc5/Web.config +++ b/samples/Samples.Mvc5/Web.config @@ -47,7 +47,8 @@ - + + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 3d8c776bb..9174c5feb 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -28,8 +28,8 @@ - - + + \ No newline at end of file diff --git a/src/MiniProfiler.AspNetCore.Mvc/MiniProfiler.AspNetCore.Mvc.csproj b/src/MiniProfiler.AspNetCore.Mvc/MiniProfiler.AspNetCore.Mvc.csproj index 9db0c16fb..14f042f4a 100644 --- a/src/MiniProfiler.AspNetCore.Mvc/MiniProfiler.AspNetCore.Mvc.csproj +++ b/src/MiniProfiler.AspNetCore.Mvc/MiniProfiler.AspNetCore.Mvc.csproj @@ -5,7 +5,7 @@ Lightweight mini-profiler, designed for ASP.NET Core MVC (*not* System.Web) websites Nick Craver ASP.NET Core;MVC;MVC Core;$(PackageBaseTags) - net6.0 + net8.0 diff --git a/src/MiniProfiler.AspNetCore/MiniProfiler.AspNetCore.csproj b/src/MiniProfiler.AspNetCore/MiniProfiler.AspNetCore.csproj index 1e816e111..da0b55a7f 100644 --- a/src/MiniProfiler.AspNetCore/MiniProfiler.AspNetCore.csproj +++ b/src/MiniProfiler.AspNetCore/MiniProfiler.AspNetCore.csproj @@ -5,7 +5,7 @@ Lightweight mini-profiler, designed for ASP.NET Core (not System.Web) websites Nick Craver ASP.NET Core;$(PackageBaseTags) - net6.0 + net8.0 diff --git a/src/MiniProfiler.AspNetCore/MiniProfilerMiddleware.cs b/src/MiniProfiler.AspNetCore/MiniProfilerMiddleware.cs index e3ee34f59..199c7e583 100644 --- a/src/MiniProfiler.AspNetCore/MiniProfilerMiddleware.cs +++ b/src/MiniProfiler.AspNetCore/MiniProfilerMiddleware.cs @@ -197,7 +197,7 @@ private async Task SetHeadersAndState(HttpContext context, MiniProfiler current) { using (current.StepIf("Set Headers", 0.1m)) { - context.Response.Headers.Add("X-MiniProfiler-Ids", profilerIds.ToJson()); + context.Response.Headers.Append("X-MiniProfiler-Ids", profilerIds.ToJson()); } } diff --git a/src/MiniProfiler.EF6/MiniProfiler.EF6.csproj b/src/MiniProfiler.EF6/MiniProfiler.EF6.csproj index 15de099d4..7e7e12e47 100644 --- a/src/MiniProfiler.EF6/MiniProfiler.EF6.csproj +++ b/src/MiniProfiler.EF6/MiniProfiler.EF6.csproj @@ -6,11 +6,11 @@ MiniProfiler: Integration for Entity Framework 6 Jarrod Dixon, Yaakov Ellis, Nick Craver Entity Framework;Entity Framework 6;$(PackageBaseTags) - net461;netstandard2.1 + net472;netstandard2.1 - + diff --git a/src/MiniProfiler.EFC7/App.config b/src/MiniProfiler.EFC7/App.config deleted file mode 100644 index 27e720f9c..000000000 --- a/src/MiniProfiler.EFC7/App.config +++ /dev/null @@ -1,20 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - diff --git a/src/MiniProfiler.EFC7/EFProfiledDbConnectionFactory.cs b/src/MiniProfiler.EFC7/EFProfiledDbConnectionFactory.cs deleted file mode 100644 index fc00b3eb3..000000000 --- a/src/MiniProfiler.EFC7/EFProfiledDbConnectionFactory.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Data.Common; -using System.Data.Entity.Infrastructure; -using StackExchange.Profiling.Data; - -namespace StackExchange.Profiling.EntityFrameworkClassic7 -{ - /// - /// Wrapper for an - /// - public class EFProfiledDbConnectionFactory : IDbConnectionFactory - { - private readonly IDbConnectionFactory _inner; - - /// - /// Initializes a new instance of the class. - /// - /// The to wrap. - public EFProfiledDbConnectionFactory(IDbConnectionFactory inner) => _inner = inner; - - /// - /// Creates a connection based on the given database name or connection string. - /// - /// The database name or connection string. - /// An initialized . - public DbConnection CreateConnection(string nameOrConnectionString) - { - var connection = _inner.CreateConnection(nameOrConnectionString); - if (connection is ProfiledDbConnection) - { - return connection; - } - - var profiler = MiniProfiler.Current; - return profiler != null - ? new ProfiledDbConnection(connection, profiler) - : connection; - } - } -} diff --git a/src/MiniProfiler.EFC7/EFProfiledDbProviderFactoryResolver.cs b/src/MiniProfiler.EFC7/EFProfiledDbProviderFactoryResolver.cs deleted file mode 100644 index b5dbb1cac..000000000 --- a/src/MiniProfiler.EFC7/EFProfiledDbProviderFactoryResolver.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Data.Common; -using System.Data.Entity.Infrastructure; -using StackExchange.Profiling.Data; - -namespace StackExchange.Profiling.EntityFrameworkClassic7 -{ - /// - /// Wrapper for a service for obtaining the correct from - /// a given . - /// - public class EFProfiledDbProviderFactoryResolver : IDbProviderFactoryResolver - { - private readonly IDbProviderFactoryResolver _inner; - - /// - /// Initializes a new instance of the class. - /// - /// The to wrap. - public EFProfiledDbProviderFactoryResolver(IDbProviderFactoryResolver inner) => _inner = inner; - - /// - /// Returns the for the given connection, - /// unwrapping the as necessary - /// - /// The connection. - /// The provider factory for the connection. - public DbProviderFactory ResolveProviderFactory(DbConnection connection) => - _inner.ResolveProviderFactory(connection is ProfiledDbConnection profiled ? profiled.WrappedConnection : connection); - } -} diff --git a/src/MiniProfiler.EFC7/EFProfiledDbProviderServices.cs b/src/MiniProfiler.EFC7/EFProfiledDbProviderServices.cs deleted file mode 100644 index d1db133b3..000000000 --- a/src/MiniProfiler.EFC7/EFProfiledDbProviderServices.cs +++ /dev/null @@ -1,187 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Data.Entity.Core.Common; -using System.Data.Entity.Core.Common.CommandTrees; -using System.Data.Entity.Core.Metadata.Edm; -using System.Data.Entity.Spatial; - -namespace StackExchange.Profiling.Data -{ - /// - /// Wrapper for a database provider factory to enable profiling - /// - public class EFProfiledDbProviderServices : DbProviderServices - { - private readonly DbProviderServices _tail; - - /// - /// Initializes a new instance of the class. - /// Used for DB provider APIS internally. - /// - /// The to wrap. - /// Throws when providerServices is null. - public EFProfiledDbProviderServices(DbProviderServices providerServices) - { - _tail = providerServices ?? - throw new ArgumentException("providerServices cannot be null. Please check that your web.config defines a section underneath .", nameof(providerServices)); - } - - /// - /// Get DB command definition - /// - /// The prototype. - /// the command definition. - public override DbCommandDefinition CreateCommandDefinition(DbCommand prototype) => - _tail.CreateCommandDefinition(prototype); - - /// - /// The get database provider manifest. - /// - /// The manifest token. - /// the provider manifest. - protected override DbProviderManifest GetDbProviderManifest(string manifestToken) => - _tail.GetProviderManifest(manifestToken); - - /// - /// Get the database provider manifest token. - /// - /// The connection. - /// a string containing the token. - protected override string GetDbProviderManifestToken(DbConnection connection) => - _tail.GetProviderManifestToken(connection is ProfiledDbConnection profiled ? profiled.WrappedConnection : connection); - - /// - /// Create the database command definition. - /// - /// The provider manifest. - /// The command tree. - /// the command definition. - protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) - { - var cmdDef = _tail.CreateCommandDefinition(providerManifest, commandTree); - var cmd = cmdDef.CreateCommand(); - var profiler = cmd.Connection is ProfiledDbConnection profiledConn ? profiledConn.Profiler : MiniProfiler.Current; - return CreateCommandDefinition(new ProfiledDbCommand(cmd, cmd.Connection, profiler)); - } - - /// - /// Create the database. - /// - /// The connection. - /// The command timeout. - /// The store item collection. - protected override void DbCreateDatabase(DbConnection connection, int? commandTimeout, StoreItemCollection storeItemCollection) => - _tail.CreateDatabase(GetRealConnection(connection), commandTimeout, storeItemCollection); - - /// - /// Delete the database. - /// - /// The connection. - /// The command timeout. - /// The store item collection. - protected override void DbDeleteDatabase(DbConnection connection, int? commandTimeout, StoreItemCollection storeItemCollection) => - _tail.DeleteDatabase(GetRealConnection(connection), commandTimeout, storeItemCollection); - - /// - /// Create the database script. - /// - /// The provider manifest token. - /// The store item collection. - /// a string containing the database script. - protected override string DbCreateDatabaseScript(string providerManifestToken, StoreItemCollection storeItemCollection) => - _tail.CreateDatabaseScript(providerManifestToken, storeItemCollection); - - /// - /// test if the database exists. - /// - /// The connection. - /// The command timeout. - /// The store item collection. - /// true if the database exists. - protected override bool DbDatabaseExists(DbConnection connection, int? commandTimeout, StoreItemCollection storeItemCollection) => - _tail.DatabaseExists(GetRealConnection(connection), commandTimeout, storeItemCollection); - - /// - /// Gets the real connection. - /// - /// The connection. - /// the database connection - private static DbConnection GetRealConnection(DbConnection connection) => - connection is ProfiledDbConnection profiled ? profiled.WrappedConnection : connection; - - /// - /// Called to resolve additional default provider services when a derived type is registered - /// as an EF provider either using an entry in the application's config file or through code-based - /// registration in DbConfiguration. The implementation of this method in this class uses the resolvers - /// added with the AddDependencyResolver method to resolve dependencies. - /// - /// The type of the service to be resolved. - /// An optional key providing additional information for resolving the service. - /// An instance of the given type, or null if the service could not be resolved. - public override object GetService(Type type, object key) => - _tail.GetService(type, key); - - /// - /// Called to resolve additional default provider services when a derived type is registered - /// as an EF provider either using an entry in the application's config file or through code-based - /// registration in DbConfiguration. The implementation of this method in this class uses the resolvers - /// added with the AddDependencyResolver method to resolve dependencies. - /// - /// The type of the service to be resolved. - /// An optional key providing additional information for resolving the service. - /// All registered services that satisfy the given type and key, or an empty enumeration if there are none. - public override IEnumerable GetServices(Type type, object key) => - _tail.GetServices(type, key); - - /// - /// Gets the spatial data reader for the DbProviderServices. - /// - /// The reader where the spatial data came from. - /// The token information associated with the provider manifest. - /// The spatial data reader. - protected override DbSpatialDataReader GetDbSpatialDataReader(DbDataReader fromReader, string manifestToken) => - _tail.GetSpatialDataReader(fromReader is ProfiledDbDataReader profiled ? profiled.WrappedReader : fromReader, manifestToken); - - /// - /// Gets the spatial services for the DbProviderServices. - /// - /// The token information associated with the provider manifest. - /// The spatial services. - [Obsolete("Return DbSpatialServices from the GetService method. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.")] - protected override DbSpatialServices DbGetSpatialServices(string manifestToken) => -#pragma warning disable 618, 672 - _tail.GetSpatialServices(manifestToken); -#pragma warning restore 618, 672 - - /// - /// Sets the parameter value and appropriate facets for the given TypeUsage. - /// - /// The parameter. - /// The type of parameter. - /// The value of the parameter. - protected override void SetDbParameterValue(DbParameter parameter, TypeUsage parameterType, object value) => - _tail.SetParameterValue(parameter, parameterType, value); - - /// - /// Clones the connection. - /// - /// The original connection. - /// - public override DbConnection CloneDbConnection(DbConnection connection) => - connection is ProfiledDbConnection profiled - ? new ProfiledDbConnection(base.CloneDbConnection(profiled.WrappedConnection), profiled.Profiler) - : base.CloneDbConnection(connection); - - /// - /// Clones the connection. - /// - /// The original connection. - /// The factory to use. - /// Cloned connection - public override DbConnection CloneDbConnection(DbConnection connection, DbProviderFactory factory) => - connection is ProfiledDbConnection profiled - ? new ProfiledDbConnection(base.CloneDbConnection(profiled.WrappedConnection, factory), profiled.Profiler) - : base.CloneDbConnection(connection, factory); - } -} diff --git a/src/MiniProfiler.EFC7/EFProfiledInvariantNameResolver.cs b/src/MiniProfiler.EFC7/EFProfiledInvariantNameResolver.cs deleted file mode 100644 index 6497d1baf..000000000 --- a/src/MiniProfiler.EFC7/EFProfiledInvariantNameResolver.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Data.Common; -using System.Data.Entity.Infrastructure; -using System.Data.Entity.Infrastructure.DependencyResolution; -using System.Linq; -using System.Reflection; -using StackExchange.Profiling.Data; - -namespace StackExchange.Profiling.EntityFrameworkClassic7 -{ - /// - /// Replacement for the DefaultInvariantNameResolver which can correctly resolve an given a . - /// - internal class EFProfiledInvariantNameResolver : IDbDependencyResolver - { - private readonly ConcurrentDictionary _providerInvariantNameCache = new(); - - public object? GetService(Type type, object key) - { - if (type != typeof(IProviderInvariantName)) - { - return null; - } - var factory = key is ProfiledDbProviderFactory profiled ? profiled.WrappedDbProviderFactory : key as DbProviderFactory; - if (factory == null) - { - return null; - } - return _providerInvariantNameCache.GetOrAdd(factory, GetProviderInvariantNameViaReflection); - } - - public IEnumerable GetServices(Type type, object key) - { - var service = GetService(type, key); - return service == null ? Enumerable.Empty() : new[] { service }; - } - - private static IProviderInvariantName GetProviderInvariantNameViaReflection(DbProviderFactory factory) - { - // Avert your eyes. EF6 implements a handy helper method to get the Invariant Name given a DbProviderFactory instance, - // but of course it is marked internal. Rather than rewrite all of that code, we'll just call into it via reflection and cache the result. - try - { - var extensionsType = Type.GetType("System.Data.Entity.Utilities.DbProviderFactoryExtensions, Z.EntityFramework.Classic"); - var getProviderInvariantNameMethod = extensionsType.GetMethod("GetProviderInvariantName", BindingFlags.Static | BindingFlags.Public); - var providerInvariantName = (string)getProviderInvariantNameMethod.Invoke(null, new[] { factory }); - return new ProviderInvariantName(providerInvariantName); - } - catch (TargetInvocationException ex) - { - if (ex.InnerException != null) - { - throw ex.InnerException; - } - throw; - } - } - - private class ProviderInvariantName : IProviderInvariantName - { - public string Name { get; } - - public ProviderInvariantName(string name) => Name = name; - } - } -} diff --git a/src/MiniProfiler.EFC7/MiniProfiler.EFC7.csproj b/src/MiniProfiler.EFC7/MiniProfiler.EFC7.csproj deleted file mode 100644 index 1de4bc512..000000000 --- a/src/MiniProfiler.EFC7/MiniProfiler.EFC7.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - MiniProfiler.EFC7 - StackExchange.Profiling.Data - MiniProfiler for Entity Framework Classic 7 - MiniProfiler: Integration for Entity Framework Classic 7 - Jarrod Dixon, Yaakov Ellis, Nick Craver, Jan Krynicky - Entity Framework;Entity Framework Classic 7;$(PackageBaseTags) - net461 - - - - - - - - \ No newline at end of file diff --git a/src/MiniProfiler.EFC7/MiniProfilerEFC7.cs b/src/MiniProfiler.EFC7/MiniProfilerEFC7.cs deleted file mode 100644 index d5902f10c..000000000 --- a/src/MiniProfiler.EFC7/MiniProfilerEFC7.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Collections.Concurrent; -using System.Data.Common; -using System.Data.Entity; -using System.Data.Entity.Core.Common; -using System.Data.Entity.Infrastructure; -using System.Data.SqlClient; -using StackExchange.Profiling.Data; - -namespace StackExchange.Profiling.EntityFrameworkClassic7 -{ - /// - /// Provides helper methods to help with initializing the MiniProfiler for Entity Framework 6. - /// - public static class MiniProfilerEFC7 - { - private class Lookup : ConcurrentDictionary { /* just for brevity */ } - private static readonly Lookup _DbProviderServicesCache = new(); - private static readonly Lookup _DbProviderFactoryCache = new(); - private static readonly Lookup _IDbProviderFactoryResolverCache = new(); - private static readonly Lookup _IDbConnectionFactoryCache = new(); - private static readonly object _nullKeyPlaceholder = new(); - - /// - /// Registers the WrapProviderService method with the Entity Framework 6 DbConfiguration as a replacement service for DbProviderServices. - /// - public static void Initialize() - { - try - { - DbConfiguration.Loaded += (_, a) => - { - a.ReplaceService((DbProviderServices inner, object key) => _DbProviderServicesCache.GetOrAdd(key ?? _nullKeyPlaceholder, __ => new EFProfiledDbProviderServices(inner))); - a.ReplaceService((DbProviderFactory inner, object key) => _DbProviderFactoryCache.GetOrAdd(key ?? _nullKeyPlaceholder, __ => new ProfiledDbProviderFactory(inner))); - a.ReplaceService((IDbProviderFactoryResolver inner, object key) => _IDbProviderFactoryResolverCache.GetOrAdd(key ?? _nullKeyPlaceholder, __ => new EFProfiledDbProviderFactoryResolver(inner))); - a.ReplaceService((IDbConnectionFactory inner, object key) => _IDbConnectionFactoryCache.GetOrAdd(key ?? _nullKeyPlaceholder, __ => new EFProfiledDbConnectionFactory(inner))); - a.AddDependencyResolver(new EFProfiledInvariantNameResolver(), false); - }; - } - catch (SqlException ex) when (ex.Message.Contains("Invalid column name 'ContextKey'")) - { - // Try to prevent tripping this harmless Exception when initializing the DB - // Issue in EF6 upgraded from EF5 on first db call in debug mode: http://entityframework.codeplex.com/workitem/594 - } - } - } -} diff --git a/src/MiniProfiler.EFC7/README.md b/src/MiniProfiler.EFC7/README.md deleted file mode 100644 index 05da4f2f8..000000000 --- a/src/MiniProfiler.EFC7/README.md +++ /dev/null @@ -1,20 +0,0 @@ -## MiniProfiler for Entity Framework Classic 7 (https://entityframework-classic.net/) - -This package allows you to profile your Entity Framework Classic 7 requests using MiniProfiler. - -You can install a [nuget package](https://www.nuget.org/packages/MiniProfiler.EFC7/) using `Install-Package MiniProfiler.EFC7 -Pre`. - -To initialize, simply call the following in your application startup logic: - - using StackExchange.Profiling.EntityFrameworkClassic7; - - ... - - protected void Application_Start() - { - MiniProfilerEFC7.Initialize(); - } - -Be sure to call this before using EF in any way. - -Then it should just work. \ No newline at end of file diff --git a/src/MiniProfiler.EntityFrameworkCore/MiniProfiler.EntityFrameworkCore.csproj b/src/MiniProfiler.EntityFrameworkCore/MiniProfiler.EntityFrameworkCore.csproj index 8e127183e..a8d8c539c 100644 --- a/src/MiniProfiler.EntityFrameworkCore/MiniProfiler.EntityFrameworkCore.csproj +++ b/src/MiniProfiler.EntityFrameworkCore/MiniProfiler.EntityFrameworkCore.csproj @@ -6,11 +6,11 @@ MiniProfiler: Integration for Entity Framework Core Nick Craver Entity Framework;Entity Framework Core;$(PackageBaseTags) - netstandard2.0 + net8.0 - + diff --git a/src/MiniProfiler.Minimal/MiniProfiler.Minimal.csproj b/src/MiniProfiler.Minimal/MiniProfiler.Minimal.csproj index a15a9910f..e9350b021 100644 --- a/src/MiniProfiler.Minimal/MiniProfiler.Minimal.csproj +++ b/src/MiniProfiler.Minimal/MiniProfiler.Minimal.csproj @@ -4,7 +4,7 @@ MiniProfiler.Minimal Nick Craver MiniProfiler's no-frills headless build for no-UI applications. - netstandard2.0;net6.0 + netstandard2.0;net8.0 MINIMAL diff --git a/src/MiniProfiler.Mvc5/MiniProfiler.Mvc5.csproj b/src/MiniProfiler.Mvc5/MiniProfiler.Mvc5.csproj index 0718c4552..9ca3b28bd 100644 --- a/src/MiniProfiler.Mvc5/MiniProfiler.Mvc5.csproj +++ b/src/MiniProfiler.Mvc5/MiniProfiler.Mvc5.csproj @@ -6,7 +6,7 @@ MiniProfiler: Extensions and helpers for ASP.NET MVC 5+ (non-.NET Core) Marc Gravell, Jarrod Dixon, Yaakov Ellis, Nick Craver ASP.NET;MVC;MVC 5;$(PackageBaseTags) - net461 + net472 diff --git a/src/MiniProfiler.Providers.MongoDB/MiniProfiler.Providers.MongoDB.csproj b/src/MiniProfiler.Providers.MongoDB/MiniProfiler.Providers.MongoDB.csproj index 1c6ba1408..eb1a16f73 100644 --- a/src/MiniProfiler.Providers.MongoDB/MiniProfiler.Providers.MongoDB.csproj +++ b/src/MiniProfiler.Providers.MongoDB/MiniProfiler.Providers.MongoDB.csproj @@ -5,7 +5,7 @@ MiniProfiler: Profiler storage for MongoDB Nick Craver, Roger Calaf, Ian Kemp NoSQL;MongoDB;$(PackageBaseTags) - net461;netstandard2.0 + net472;netstandard2.0 ..\..\miniprofiler.snk false diff --git a/src/MiniProfiler.Providers.MySql/MiniProfiler.Providers.MySql.csproj b/src/MiniProfiler.Providers.MySql/MiniProfiler.Providers.MySql.csproj index c0cf08802..d42d7a2a9 100644 --- a/src/MiniProfiler.Providers.MySql/MiniProfiler.Providers.MySql.csproj +++ b/src/MiniProfiler.Providers.MySql/MiniProfiler.Providers.MySql.csproj @@ -5,12 +5,12 @@ MiniProfiler: Profiler storage for MySQL Nick Craver, Bradley Grainger SQL;MySQL;$(PackageBaseTags) - net461;netstandard2.0 + net472;netstandard2.0 - - + + diff --git a/src/MiniProfiler.Providers.MySql/MySqlStorage.cs b/src/MiniProfiler.Providers.MySql/MySqlStorage.cs index a43bade29..1eb150a36 100644 --- a/src/MiniProfiler.Providers.MySql/MySqlStorage.cs +++ b/src/MiniProfiler.Providers.MySql/MySqlStorage.cs @@ -188,7 +188,7 @@ public override async Task SaveAsync(MiniProfiler profiler) /// /// The profiler ID to load. /// The loaded . - public override MiniProfiler Load(Guid id) + public override MiniProfiler? Load(Guid id) { using (var conn = GetConnection()) using (var multi = conn.QueryMultiple(SqlStatements, new { id })) diff --git a/src/MiniProfiler.Providers.PostgreSql/MiniProfiler.Providers.PostgreSql.csproj b/src/MiniProfiler.Providers.PostgreSql/MiniProfiler.Providers.PostgreSql.csproj index 900ae30e4..dc8806e9f 100644 --- a/src/MiniProfiler.Providers.PostgreSql/MiniProfiler.Providers.PostgreSql.csproj +++ b/src/MiniProfiler.Providers.PostgreSql/MiniProfiler.Providers.PostgreSql.csproj @@ -5,12 +5,12 @@ MiniProfiler: Profiler storage for PostgreSQL Server Nick Craver, Douglas Cleghorn SQL;Npgsql;PostgreSql;$(PackageBaseTags) - net461;netstandard2.0 + net472;netstandard2.0 - - + + diff --git a/src/MiniProfiler.Providers.RavenDB/Internal/Indexes.cs b/src/MiniProfiler.Providers.RavenDB/Internal/Indexes.cs deleted file mode 100644 index 80368bc1a..000000000 --- a/src/MiniProfiler.Providers.RavenDB/Internal/Indexes.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Linq; -using Raven.Client.Documents.Indexes; - -namespace StackExchange.Profiling.Storage.Internal -{ - /// - /// The MiniProfiler index by user for has viewed - /// - internal class Index_ByHasUserViewedAndUser : AbstractIndexCreationTask - { - public Index_ByHasUserViewedAndUser() => - Map = docs => from profiler in docs select new { profiler.HasUserViewed, profiler.User }; - } - - /// - /// The MiniProfiler index by profiler Id - /// - internal class Index_ByProfilerId : AbstractIndexCreationTask - { - public Index_ByProfilerId() => - Map = docs => from profiler in docs select new { profiler.ProfilerId }; - } - - /// - /// The MiniProfiler index by start time - /// - internal class Index_ByStarted : AbstractIndexCreationTask - { - public Index_ByStarted() => - Map = docs => from profiler in docs select new { profiler.Started }; - } -} diff --git a/src/MiniProfiler.Providers.RavenDB/Internal/MiniProfilerDoc.cs b/src/MiniProfiler.Providers.RavenDB/Internal/MiniProfilerDoc.cs deleted file mode 100644 index ad73ea7d6..000000000 --- a/src/MiniProfiler.Providers.RavenDB/Internal/MiniProfilerDoc.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace StackExchange.Profiling.Storage.Internal -{ - internal class MiniProfilerDoc - { - public string? Id { get; set; } - public Guid ProfilerId { get; set; } - public string? Name { get; set; } - public DateTime Started { get; set; } - public decimal DurationMilliseconds { get; set; } - public string? MachineName { get; set; } - public Dictionary? CustomLinks { get; set; } - public string? CustomLinksJson { get; set; } - public Timing Root { get; set; } - public ClientTimings? ClientTimings { get; set; } - public string? User { get; set; } - public bool HasUserViewed { get; set; } - -#pragma warning disable CS8618 - public MiniProfilerDoc() { /* for serialization */ } -#pragma warning restore CS8618 - - public MiniProfilerDoc(MiniProfiler profiler) - { - ProfilerId = profiler.Id; - Name = profiler.Name; - Started = profiler.Started; - DurationMilliseconds = profiler.DurationMilliseconds; - MachineName = profiler.MachineName; - CustomLinks = profiler.CustomLinks; - CustomLinksJson = profiler.CustomLinksJson; - Root = profiler.Root; - ClientTimings = profiler.ClientTimings; - User = profiler.User; - HasUserViewed = profiler.HasUserViewed; - } - -#pragma warning disable CS0618 // Type or member is obsolete (MiniProfiler serialization constructor) - public MiniProfiler ToMiniProfiler() => new() - { - Id = ProfilerId, - Name = Name, - Started = Started, - DurationMilliseconds = DurationMilliseconds, - MachineName = MachineName, - CustomLinks = CustomLinks, - CustomLinksJson = CustomLinksJson, - Root = Root, - ClientTimings = ClientTimings, - User = User, - HasUserViewed = HasUserViewed - }; -#pragma warning restore CS0618 // Type or member is obsolete (MiniProfiler serialization constructor) - } -} diff --git a/src/MiniProfiler.Providers.RavenDB/MiniProfiler.Providers.RavenDB.csproj b/src/MiniProfiler.Providers.RavenDB/MiniProfiler.Providers.RavenDB.csproj deleted file mode 100644 index c60e8400c..000000000 --- a/src/MiniProfiler.Providers.RavenDB/MiniProfiler.Providers.RavenDB.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - MiniProfiler.Providers.RavenDB - MiniProfiler for RavenDB - MiniProfiler: Profiler storage for RavenDB - Rafael Lillo, Nick Craver - Raven;RavenDB;$(PackageBaseTags) - net461;netstandard2.0 - - - - - - - - - \ No newline at end of file diff --git a/src/MiniProfiler.Providers.RavenDB/RavenDbStorage.cs b/src/MiniProfiler.Providers.RavenDB/RavenDbStorage.cs deleted file mode 100644 index ebd62aaed..000000000 --- a/src/MiniProfiler.Providers.RavenDB/RavenDbStorage.cs +++ /dev/null @@ -1,332 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Cryptography.X509Certificates; -using System.Threading.Tasks; -using Raven.Client.Documents; -using Raven.Client.Documents.Conventions; -using Raven.Client.Documents.Linq; -using Raven.Client.Documents.Session; -using StackExchange.Profiling.Storage.Internal; - -namespace StackExchange.Profiling.Storage -{ - /// - /// Understands how to store a to a RavenDB database. - /// - public class RavenDbStorage : IAsyncStorage - { - private readonly IDocumentStore _store; - private readonly bool _waitForReplication; - private readonly bool _waitForIndexes; - - /// - /// Returns a new . - /// - /// The RavenDB URLs. - /// The RavenDB database name. - /// The identifier for store. - /// The client certificate to use for authentication. - /// Whether to wait for indexes after save. - /// whether to wait for replication after save. - public RavenDbStorage(string[] urls, string database, string identifier = "mini-profiler", - X509Certificate2? certificate = null, bool waitForIndexes = false, bool waitForReplication = false) - { - _waitForReplication = waitForReplication; - _waitForIndexes = waitForIndexes; - _store = new DocumentStore - { - Urls = urls, - Database = database, - Identifier = identifier, - Certificate = certificate - }; - _store.Conventions.FindCollectionName = type => - { - if (type == typeof(MiniProfilerDoc)) - { - return nameof(MiniProfiler); - } - - return DocumentConventions.DefaultGetCollectionName(type); - }; - _store.Initialize(); - WithIndexCreation(); - } - - /// - /// Creates indexes for faster querying. - /// - public RavenDbStorage WithIndexCreation() - { - new Index_ByProfilerId().Execute(_store); - new Index_ByHasUserViewedAndUser().Execute(_store); - new Index_ByStarted().Execute(_store); - - return this; - } - - /// - /// List the MiniProfiler Ids for the given search criteria. - /// - /// The max number of results. - /// Search window start time (inclusive). - /// Search window end time (inclusive). - /// Result order. - /// A list of GUID keys matching the search. - public IEnumerable List(int maxResults, DateTime? start = null, DateTime? finish = null, - ListResultsOrder orderBy = ListResultsOrder.Descending) - { - using var session = _store.OpenSession(new SessionOptions - { - NoTracking = true - }); - - var query = session.Query(); - - if (start.HasValue) - { - query = query.Where(x => x.Started >= start.Value); - } - - if (finish.HasValue) - { - query = query.Where(x => x.Started <= finish.Value); - } - - query = query.Take(maxResults); - - query = orderBy == ListResultsOrder.Descending - ? query.OrderByDescending(x => x.Started) - : query.OrderBy(x => x.Started); - - return query.Select(x => x.ProfilerId).ToList(); - } - - private void ConfigureWait(IDocumentSession session) - { - if (_waitForIndexes) - { - session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false); - } - - if (_waitForReplication) - { - session.Advanced.WaitForReplicationAfterSaveChanges(throwOnTimeout: false); - } - } - - private void ConfigureWait(IAsyncDocumentSession session) - { - if (_waitForIndexes) - { - session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false); - } - - if (_waitForReplication) - { - session.Advanced.WaitForReplicationAfterSaveChanges(throwOnTimeout: false); - } - } - - /// - /// Stores to profilers under its . - /// - /// The to save. - public void Save(MiniProfiler profiler) - { - using var session = _store.OpenSession(); - ConfigureWait(session); - session.Store(new MiniProfilerDoc(profiler)); - session.SaveChanges(); - } - - /// - /// Loads the identified by 'id' from the database. - /// - /// The profiler ID to load. - /// The loaded . - public MiniProfiler? Load(Guid id) - { - using var session = _store.OpenSession(new SessionOptions - { - NoTracking = true - }); - return session.Query() - .FirstOrDefault(x => x.ProfilerId == id)?.ToMiniProfiler(); - } - - /// - /// Sets a particular profiler session so it is considered "unviewed". - /// - /// The user to set this profiler ID as unviewed for. - /// The profiler ID to set unviewed. - public void SetUnviewed(string? user, Guid id) - { - using var session = _store.OpenSession(); - ConfigureWait(session); - - var profile = session.Query() - .First(x => x.ProfilerId == id); - profile.HasUserViewed = false; - session.SaveChanges(); - } - - /// - /// Sets a particular profiler session to "viewed". - /// - /// The user to set this profiler ID as viewed for. - /// The profiler ID to set viewed. - public void SetViewed(string? user, Guid id) - { - using var session = _store.OpenSession(); - ConfigureWait(session); - var profile = session.Query() - .First(x => x.ProfilerId == id); - profile.HasUserViewed = true; - session.SaveChanges(); - } - - /// - /// Returns a list of s that haven't been seen by . - /// - /// User to get IDs for, identified by . - public List GetUnviewedIds(string? user) - { - using var session = _store.OpenSession(new SessionOptions - { - NoTracking = true - }); - return session.Query() - .Where(x => !x.HasUserViewed && x.User == user) - .Select(x => x.ProfilerId) - .ToList(); - } - - /// - /// Asynchronously returns the MiniProfiler Ids for the given search criteria. - /// - /// The max number of results. - /// Search window start time (inclusive). - /// Search window end time (inclusive). - /// Result order. - /// A list of GUID keys matching the search. - public async Task> ListAsync(int maxResults, DateTime? start = null, DateTime? finish = null, ListResultsOrder orderBy = ListResultsOrder.Descending) - { - using var session = _store.OpenAsyncSession(new SessionOptions - { - NoTracking = true - }); - - var query = session.Query(); - - if (start.HasValue) - { - query = query.Where(x => x.Started >= start.Value); - } - - if (finish.HasValue) - { - query = query.Where(x => x.Started <= finish.Value); - } - - query = query.Take(maxResults); - - query = orderBy == ListResultsOrder.Descending - ? query.OrderByDescending(x => x.Started) - : query.OrderBy(x => x.Started); - - return await query - .Select(x => x.ProfilerId) - .ToListAsync() - .ConfigureAwait(false); - } - - /// - /// Asynchronously stores to profilers under its . - /// - /// The to save. - public async Task SaveAsync(MiniProfiler profiler) - { - using var session = _store.OpenAsyncSession(); - ConfigureWait(session); - await session.StoreAsync(new MiniProfilerDoc(profiler)).ConfigureAwait(false); - await session.SaveChangesAsync().ConfigureAwait(false); - } - - /// - /// Loads the identified by 'id' from the database. - /// - /// The profiler ID to load. - /// The loaded . - public async Task LoadAsync(Guid id) - { - using var session = _store.OpenAsyncSession(new SessionOptions - { - NoTracking = true - }); - return (await session.Query() - .FirstOrDefaultAsync(x => x.ProfilerId == id) - .ConfigureAwait(false)).ToMiniProfiler(); - } - - /// - /// Asynchronously sets a particular profiler session so it is considered "unviewed". - /// - /// The user to set this profiler ID as unviewed for. - /// The profiler ID to set unviewed. - public async Task SetUnviewedAsync(string? user, Guid id) - { - using var session = _store.OpenAsyncSession(); - ConfigureWait(session); - - var profile = await session.Query() - .FirstAsync(x => x.ProfilerId == id) - .ConfigureAwait(false); - - profile.HasUserViewed = false; - await session.SaveChangesAsync().ConfigureAwait(false); - } - - /// - /// Asynchronously sets a particular profiler session to "viewed". - /// - /// The user to set this profiler ID as viewed for. - /// The profiler ID to set viewed. - public async Task SetViewedAsync(string? user, Guid id) - { - using var session = _store.OpenAsyncSession(); - ConfigureWait(session); - - var profile = await session.Query() - .FirstAsync(x => x.ProfilerId == id) - .ConfigureAwait(false); - - profile.HasUserViewed = true; - await session.SaveChangesAsync().ConfigureAwait(false); - } - - /// - /// Asynchronously returns a list of s that haven't been seen by . - /// - /// User to get IDs for, identified by . - public async Task> GetUnviewedIdsAsync(string? user) - { - using var session = _store.OpenAsyncSession(new SessionOptions - { - NoTracking = true - }); - - return await session.Query() - .Where(x => !x.HasUserViewed && x.User == user) - .Select(x => x.ProfilerId) - .ToListAsync() - .ConfigureAwait(false); - } - - /// - /// Returns the underlying . - /// - public IDocumentStore GetDocumentStore() => _store; - } -} diff --git a/src/MiniProfiler.Providers.Redis/MiniProfiler.Providers.Redis.csproj b/src/MiniProfiler.Providers.Redis/MiniProfiler.Providers.Redis.csproj index 2d2126bfe..77ef2424b 100644 --- a/src/MiniProfiler.Providers.Redis/MiniProfiler.Providers.Redis.csproj +++ b/src/MiniProfiler.Providers.Redis/MiniProfiler.Providers.Redis.csproj @@ -5,12 +5,12 @@ MiniProfiler: Profiler storage for Redis using StackExchange.Redis Nick Craver, Joseph Daigle Redis;$(PackageBaseTags) - net461;netstandard2.0 + net472;netstandard2.0 - - + + diff --git a/src/MiniProfiler.Providers.SqlServer/MiniProfiler.Providers.SqlServer.csproj b/src/MiniProfiler.Providers.SqlServer/MiniProfiler.Providers.SqlServer.csproj index 788e700b9..581a84544 100644 --- a/src/MiniProfiler.Providers.SqlServer/MiniProfiler.Providers.SqlServer.csproj +++ b/src/MiniProfiler.Providers.SqlServer/MiniProfiler.Providers.SqlServer.csproj @@ -5,11 +5,12 @@ MiniProfiler: Profiler storage for SQL Server Marc Gravell, Jarrod Dixon, Yaakov Ellis, Nick Craver SQL;SQL Server;$(PackageBaseTags) - net461;netstandard2.0 + net472;netstandard2.0 - + + diff --git a/src/MiniProfiler.Providers.SqlServer/SqlServerStorage.cs b/src/MiniProfiler.Providers.SqlServer/SqlServerStorage.cs index c8fa83346..467924242 100644 --- a/src/MiniProfiler.Providers.SqlServer/SqlServerStorage.cs +++ b/src/MiniProfiler.Providers.SqlServer/SqlServerStorage.cs @@ -3,9 +3,9 @@ using System; using System.Collections.Generic; using System.Data.Common; -using System.Data.SqlClient; using System.Linq; using System.Threading.Tasks; +using Microsoft.Data.SqlClient; namespace StackExchange.Profiling.Storage { @@ -192,7 +192,7 @@ public override async Task SaveAsync(MiniProfiler profiler) /// The loaded . public override MiniProfiler? Load(Guid id) { - MiniProfiler result; + MiniProfiler? result; using (var conn = GetConnection()) { using (var multi = conn.QueryMultiple(LoadSql, new { id })) @@ -220,7 +220,7 @@ public override async Task SaveAsync(MiniProfiler profiler) /// The loaded . public override async Task LoadAsync(Guid id) { - MiniProfiler result; + MiniProfiler? result; using (var conn = GetConnection()) { using (var multi = await conn.QueryMultipleAsync(LoadSql, new { id }).ConfigureAwait(false)) diff --git a/src/MiniProfiler.Providers.SqlServerCe/MiniProfiler.Providers.SqlServerCe.csproj b/src/MiniProfiler.Providers.SqlServerCe/MiniProfiler.Providers.SqlServerCe.csproj deleted file mode 100644 index f06bca989..000000000 --- a/src/MiniProfiler.Providers.SqlServerCe/MiniProfiler.Providers.SqlServerCe.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - MiniProfiler.Providers.SqlServerCe - MiniProfiler.Providers.SqlServerCe - MiniProfiler: Profiler storage for SQL Server Compact Edition - Marc Gravell, Jarrod Dixon, Yaakov Ellis, Nick Craver - SQL Server CE;$(PackageBaseTags) - net461 - - - - - - - - - \ No newline at end of file diff --git a/src/MiniProfiler.Providers.SqlServerCe/SqlServerCeStorage.cs b/src/MiniProfiler.Providers.SqlServerCe/SqlServerCeStorage.cs deleted file mode 100644 index 5211e83d6..000000000 --- a/src/MiniProfiler.Providers.SqlServerCe/SqlServerCeStorage.cs +++ /dev/null @@ -1,435 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Data.SqlServerCe; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using Dapper; -using StackExchange.Profiling.Internal; - -namespace StackExchange.Profiling.Storage -{ - /// - /// Understands how to store a to a SQL Server Compact Edition database. - /// - public class SqlServerCeStorage : DatabaseStorageBase - { - /// - /// Initializes a new instance of the class with the specified connection string. - /// - /// The connection string to use. - public SqlServerCeStorage(string connectionString) : base(connectionString) { /* base setup */ } - - /// - /// Initializes a new instance of the class with the specified connection string - /// and the given table names to use. - /// - /// The connection string to use. - /// The table name to use for MiniProfilers. - /// The table name to use for MiniProfiler Timings. - /// The table name to use for MiniProfiler Client Timings. - public SqlServerCeStorage(string connectionString, string profilersTable, string timingsTable, string clientTimingsTable) - : base(connectionString, profilersTable, timingsTable, clientTimingsTable) { } - - private string? _saveSql, _saveTimingsSql, _saveClientTimingsSql; - - private string SaveSql => _saveSql ??= $@" -INSERT INTO {MiniProfilersTable} - (Id, RootTimingId, Name, Started, DurationMilliseconds, [User], HasUserViewed, MachineName, CustomLinksJson, ClientTimingsRedirectCount) -SELECT @Id, @RootTimingId, @Name, @Started, @DurationMilliseconds, @User, @HasUserViewed, @MachineName, @CustomLinksJson, @ClientTimingsRedirectCount -WHERE NOT EXISTS (SELECT 1 FROM {MiniProfilersTable} WHERE Id = @Id)"; // this syntax works on both MSSQL and SQLite - - private string SaveTimingsSql => _saveTimingsSql ??= $@" -INSERT INTO {MiniProfilerTimingsTable} - (Id, MiniProfilerId, ParentTimingId, Name, DurationMilliseconds, StartMilliseconds, IsRoot, Depth, CustomTimingsJson) -SELECT @Id, @MiniProfilerId, @ParentTimingId, @Name, @DurationMilliseconds, @StartMilliseconds, @IsRoot, @Depth, @CustomTimingsJson -WHERE NOT EXISTS (SELECT 1 FROM {MiniProfilerTimingsTable} WHERE Id = @Id)"; - - private string SaveClientTimingsSql => _saveClientTimingsSql ??= $@" -INSERT INTO {MiniProfilerClientTimingsTable} - (Id, MiniProfilerId, Name, Start, Duration) -SELECT @Id, @MiniProfilerId, @Name, @Start, @Duration -WHERE NOT EXISTS (SELECT 1 FROM {MiniProfilerClientTimingsTable} WHERE Id = @Id)"; - - /// - /// Stores to dbo.MiniProfilers under its ; - /// - /// The to save. - public override void Save(MiniProfiler profiler) - { - using (var conn = GetConnection()) - { - conn.Execute(SaveSql, new - { - profiler.Id, - profiler.Started, - User = profiler.User.Truncate(100), - Name = profiler.Name.Truncate(200), - RootTimingId = profiler.Root?.Id, - profiler.DurationMilliseconds, - profiler.HasUserViewed, - MachineName = profiler.MachineName.Truncate(100), - profiler.CustomLinksJson, - ClientTimingsRedirectCount = profiler.ClientTimings?.RedirectCount - }); - - var timings = new List(); - if (profiler.Root != null) - { - profiler.Root.MiniProfilerId = profiler.Id; - FlattenTimings(profiler.Root, timings); - } - - conn.Execute(SaveTimingsSql, timings.Select(timing => new - { - timing.Id, - timing.MiniProfilerId, - timing.ParentTimingId, - Name = timing.Name.Truncate(200), - timing.DurationMilliseconds, - timing.StartMilliseconds, - timing.IsRoot, - timing.Depth, - timing.CustomTimingsJson - })); - - if (profiler.ClientTimings?.Timings?.Any() ?? false) - { - // set the profilerId (isn't needed unless we are storing it) - foreach (var timing in profiler.ClientTimings.Timings) - { - timing.MiniProfilerId = profiler.Id; - timing.Id = Guid.NewGuid(); - } - conn.Execute(SaveClientTimingsSql, profiler.ClientTimings.Timings.Select(timing => new - { - timing.Id, - timing.MiniProfilerId, - Name = timing.Name.Truncate(200), - timing.Start, - timing.Duration - })); - } - } - } - - /// - /// Asynchronously stores to dbo.MiniProfilers under its . - /// - /// The to save. - public override async Task SaveAsync(MiniProfiler profiler) - { - using (var conn = GetConnection()) - { - await conn.ExecuteAsync(SaveSql, new - { - profiler.Id, - profiler.Started, - User = profiler.User.Truncate(100), - Name = profiler.Name.Truncate(200), - RootTimingId = profiler.Root?.Id, - DurationMilliseconds = decimal.Round(profiler.DurationMilliseconds, 1), - profiler.HasUserViewed, - MachineName = profiler.MachineName.Truncate(100), - profiler.CustomLinksJson, - ClientTimingsRedirectCount = profiler.ClientTimings?.RedirectCount - }).ConfigureAwait(false); - - var timings = new List(); - if (profiler.Root != null) - { - profiler.Root.MiniProfilerId = profiler.Id; - FlattenTimings(profiler.Root, timings); - } - - await conn.ExecuteAsync(SaveTimingsSql, timings.Select(timing => new - { - timing.Id, - timing.MiniProfilerId, - timing.ParentTimingId, - Name = timing.Name.Truncate(200), - timing.DurationMilliseconds, - timing.StartMilliseconds, - timing.IsRoot, - timing.Depth, - timing.CustomTimingsJson - })).ConfigureAwait(false); - - if (profiler.ClientTimings?.Timings?.Any() ?? false) - { - // set the profilerId (isn't needed unless we are storing it) - foreach (var timing in profiler.ClientTimings.Timings) - { - timing.MiniProfilerId = profiler.Id; - timing.Id = Guid.NewGuid(); - } - await conn.ExecuteAsync(SaveClientTimingsSql, profiler.ClientTimings.Timings.Select(timing => new - { - timing.Id, - timing.MiniProfilerId, - Name = timing.Name.Truncate(200), - timing.Start, - timing.Duration - })).ConfigureAwait(false); - } - } - } - - private string? _getSql, _getTimingsSql, _getClientTimingsSql; - private string GetSql => _getSql ??= $"SELECT * FROM {MiniProfilersTable} WHERE Id = @id"; - private string GetTimingsSql => _getTimingsSql ??= $"SELECT * FROM {MiniProfilerTimingsTable} WHERE MiniProfilerId = @id ORDER BY StartMilliseconds"; - private string GetClientTimingsSql => _getClientTimingsSql ??= $"SELECT * FROM {MiniProfilerClientTimingsTable} WHERE MiniProfilerId = @id ORDER BY Start"; - - /// - /// Loads the identified by 'id' from the database. - /// - /// The profiler ID to load. - /// The loaded . - public override MiniProfiler? Load(Guid id) - { - MiniProfiler result; - using (var conn = GetConnection()) - { - // SQL CE can't do a multi-query - var param = new { id }; - result = conn.QuerySingleOrDefault(GetSql, param); - var timings = conn.Query(GetTimingsSql, param).AsList(); - var clientTimings = conn.Query(GetClientTimingsSql, param).AsList(); - - ConnectTimings(result, timings, clientTimings); - } - - return SetUTC(result); - } - - /// - /// Loads the MiniProfiler identified by 'id' from the database. - /// - /// The profiler ID to load. - /// The loaded . - public override async Task LoadAsync(Guid id) - { - MiniProfiler result; - using (var conn = GetConnection()) - { - // SQL CE can't do a multi-query - var param = new { id }; - result = await conn.QuerySingleOrDefaultAsync(GetSql, param).ConfigureAwait(false); - var timings = (await conn.QueryAsync(GetTimingsSql, param).ConfigureAwait(false)).AsList(); - var clientTimings = (await conn.QueryAsync(GetClientTimingsSql, param).ConfigureAwait(false)).AsList(); - - ConnectTimings(result, timings, clientTimings); - } - - return SetUTC(result); - } - - private MiniProfiler? SetUTC(MiniProfiler? result) - { - if (result != null) - { - // HACK: stored dates are UTC, but are pulled out as local time - result.Started = DateTime.SpecifyKind(result.Started, DateTimeKind.Utc); - } - return result; - } - - /// - /// Sets a particular profiler session so it is considered "unviewed". - /// - /// The user to set this profiler ID as unviewed for. - /// The profiler ID to set unviewed. - public override void SetUnviewed(string? user, Guid id) => ToggleViewed(user, id, false); - - /// - /// Asynchronously sets a particular profiler session so it is considered "unviewed". - /// - /// The user to set this profiler ID as unviewed for. - /// The profiler ID to set unviewed. - public override Task SetUnviewedAsync(string? user, Guid id) => ToggleViewedAsync(user, id, false); - - /// - /// Sets a particular profiler session to "viewed" - /// - /// The user - /// The profiler ID - public override void SetViewed(string? user, Guid id) => ToggleViewed(user, id, true); - - /// - /// Asynchronously sets a particular profiler session to "viewed" - /// - /// The user to set this profiler ID as viewed for. - /// The profiler ID to set viewed. - public override Task SetViewedAsync(string? user, Guid id) => ToggleViewedAsync(user, id, true); - - private string? _toggleViewedSql; - - private string ToggleViewedSql => _toggleViewedSql ??= $@" -Update {MiniProfilersTable} - Set HasUserViewed = @hasUserVeiwed - Where Id = @id - And [User] = @user"; - - private void ToggleViewed(string? user, Guid id, bool hasUserVeiwed) - { - using (var conn = GetConnection()) - { - conn.Execute(ToggleViewedSql, new { id, user, hasUserVeiwed }); - } - } - - private async Task ToggleViewedAsync(string? user, Guid id, bool hasUserVeiwed) - { - using (var conn = GetConnection()) - { - await conn.ExecuteAsync(ToggleViewedSql, new { id, user, hasUserVeiwed }).ConfigureAwait(false); - } - } - - private string? _getUnviewedIdsSql; - - private string GetUnviewedIdsSql => _getUnviewedIdsSql ??= $@" - Select Id - From {MiniProfilersTable} - Where [User] = @user - And HasUserViewed = 0 -Order By Started"; - - /// - /// Returns a list of s that haven't been seen by . - /// - /// User identified by the current MiniProfilerOptions.UserProvider - /// The list of keys for the supplied user - public override List GetUnviewedIds(string? user) - { - using (var conn = GetConnection()) - { - return conn.Query(GetUnviewedIdsSql, new { user }).AsList(); - } - } - - /// - /// Asynchronously returns a list of s that haven't been seen by . - /// - /// User identified by the current MiniProfilerOptions.UserProvider - /// The list of keys for the supplied user - public override async Task> GetUnviewedIdsAsync(string? user) - { - using (var conn = GetConnection()) - { - return (await conn.QueryAsync(GetUnviewedIdsSql, new { user }).ConfigureAwait(false)).AsList(); - } - } - - /// - /// List the MiniProfiler Ids for the given search criteria. - /// - /// The max number of results - /// Search window start - /// Search window end - /// Result order - /// The list of GUID keys - public override IEnumerable List(int maxResults, DateTime? start = null, DateTime? finish = null, ListResultsOrder orderBy = ListResultsOrder.Descending) - { - using (var conn = GetConnection()) - { - var query = BuildListQuery(start, finish, orderBy); - return conn.Query(query, new { maxResults, start, finish }).AsList(); - } - } - - /// - /// Asynchronously returns the MiniProfiler Ids for the given search criteria. - /// - /// The max number of results - /// Search window start - /// Search window end - /// Result order - /// The list of GUID keys - public override async Task> ListAsync(int maxResults, DateTime? start = null, DateTime? finish = null, ListResultsOrder orderBy = ListResultsOrder.Descending) - { - using (var conn = GetConnection()) - { - var query = BuildListQuery(start, finish, orderBy); - return await conn.QueryAsync(query, new { maxResults, start, finish }).ConfigureAwait(false); - } - } - - private string BuildListQuery(DateTime? start = null, DateTime? finish = null, ListResultsOrder orderBy = ListResultsOrder.Descending) - { - var sb = new StringBuilder(@" -Select Top {=maxResults} Id - From ").Append(MiniProfilersTable).Append(@" -"); - if (finish != null) - { - sb.AppendLine("Where Started < @finish"); - } - if (start != null) - { - sb.AppendLine(finish != null - ? " And Started > @start" - : "Where Started > @start"); - } - sb.Append("Order By ").Append(orderBy == ListResultsOrder.Descending ? "Started Desc" : "Started Asc"); - - return sb.ToString(); - } - - /// - /// Returns a connection to Sql Server. - /// - protected override DbConnection GetConnection() => new SqlCeConnection(ConnectionString); - - /// - /// SQL statements to create the SQL Server CE tables. - /// - protected override IEnumerable GetTableCreationScripts() - { - yield return $@"CREATE TABLE {MiniProfilersTable} - ( - RowId integer not null identity, - Id uniqueidentifier not null, - RootTimingId uniqueidentifier null, - Name nvarchar(200) null, - Started datetime not null, - DurationMilliseconds decimal(15,1) not null, - [User] nvarchar(100) null, - HasUserViewed bit not null, - MachineName nvarchar(100) null, - CustomLinksJson ntext, - ClientTimingsRedirectCount int null - );"; - yield return $"CREATE UNIQUE NONCLUSTERED INDEX IX_{MiniProfilersTable}_Id on {MiniProfilersTable} (Id);"; - yield return $"CREATE NONCLUSTERED INDEX IX_{MiniProfilersTable}_User_HasUserViewed on {MiniProfilersTable} ([User], HasUserViewed);"; - yield return $@"CREATE TABLE {MiniProfilerTimingsTable} - ( - RowId integer not null identity, - Id uniqueidentifier not null, - MiniProfilerId uniqueidentifier not null, - ParentTimingId uniqueidentifier null, - Name nvarchar(200) not null, - DurationMilliseconds decimal(15,3) not null, - StartMilliseconds decimal(15,3) not null, - IsRoot bit not null, - Depth smallint not null, - CustomTimingsJson ntext null - );"; - yield return $"CREATE UNIQUE NONCLUSTERED INDEX IX_{MiniProfilerTimingsTable}_Id on {MiniProfilerTimingsTable} (Id);"; - yield return $"CREATE NONCLUSTERED INDEX IX_{MiniProfilerTimingsTable}_MiniProfilerId on {MiniProfilerTimingsTable} (MiniProfilerId);"; - yield return $@"CREATE TABLE {MiniProfilerClientTimingsTable} - ( - RowId integer not null identity, - Id uniqueidentifier not null, - MiniProfilerId uniqueidentifier not null, - Name nvarchar(200) not null, - Start decimal(9, 3) not null, - Duration decimal(9, 3) not null - );"; - yield return $"CREATE UNIQUE NONCLUSTERED INDEX IX_{MiniProfilerClientTimingsTable}_Id on {MiniProfilerClientTimingsTable} (Id);"; - yield return $"CREATE NONCLUSTERED INDEX IX_{MiniProfilerClientTimingsTable}_MiniProfilerId on {MiniProfilerClientTimingsTable} (MiniProfilerId);"; - } - } -} diff --git a/src/MiniProfiler.Providers.Sqlite/MiniProfiler.Providers.Sqlite.csproj b/src/MiniProfiler.Providers.Sqlite/MiniProfiler.Providers.Sqlite.csproj index bfec4af5e..35b320750 100644 --- a/src/MiniProfiler.Providers.Sqlite/MiniProfiler.Providers.Sqlite.csproj +++ b/src/MiniProfiler.Providers.Sqlite/MiniProfiler.Providers.Sqlite.csproj @@ -5,12 +5,12 @@ MiniProfiler: Profiler storage for SQLite Nick Craver SQL;SQLite;$(PackageBaseTags) - net461;netstandard2.0 + net472;net8.0 - - + + diff --git a/src/MiniProfiler.Providers.Sqlite/SqliteStorage.cs b/src/MiniProfiler.Providers.Sqlite/SqliteStorage.cs index a6dc6fad5..9822d1378 100644 --- a/src/MiniProfiler.Providers.Sqlite/SqliteStorage.cs +++ b/src/MiniProfiler.Providers.Sqlite/SqliteStorage.cs @@ -245,7 +245,7 @@ private class SqliteClientTiming : ClientTiming /// The loaded . public override MiniProfiler? Load(Guid id) { - MiniProfiler result; + MiniProfiler? result; using (var conn = GetConnection()) { using (var multi = conn.QueryMultiple(LoadSql, new { id = id.ToString() })) @@ -273,7 +273,7 @@ private class SqliteClientTiming : ClientTiming /// The loaded . public override async Task LoadAsync(Guid id) { - MiniProfiler result; + MiniProfiler? result; using (var conn = GetConnection()) { using (var multi = await conn.QueryMultipleAsync(LoadSql, new { id = id.ToString() }).ConfigureAwait(false)) diff --git a/src/MiniProfiler.Shared/MiniProfiler.Shared.csproj b/src/MiniProfiler.Shared/MiniProfiler.Shared.csproj index 7a7623193..5ab228cac 100644 --- a/src/MiniProfiler.Shared/MiniProfiler.Shared.csproj +++ b/src/MiniProfiler.Shared/MiniProfiler.Shared.csproj @@ -4,38 +4,31 @@ MiniProfiler.Shared Marc Gravell, Jarrod Dixon, Yaakov Ellis, Nick Craver You shouldn't reference this - MiniProfiler's shared library for all frameworks - net461;netstandard2.0;net6.0 + net472;netstandard2.0;net8.0 - NEWTONSOFT + NEWTONSOFT NEWTONSOFT - STJSON + STJSON - - + + - - - + - - - - - - + - + diff --git a/src/MiniProfiler.Shared/Storage/DatabaseStorageBase.cs b/src/MiniProfiler.Shared/Storage/DatabaseStorageBase.cs index ff833a502..9032db1ce 100644 --- a/src/MiniProfiler.Shared/Storage/DatabaseStorageBase.cs +++ b/src/MiniProfiler.Shared/Storage/DatabaseStorageBase.cs @@ -161,7 +161,7 @@ protected DatabaseStorageBase(string connectionString, string profilersTable, st /// The profiler to connect the timing tree to. /// The raw list of Timings to construct the tree from. /// The client timings to connect to the profiler. - protected void ConnectTimings(MiniProfiler profiler, List timings, List clientTimings) + protected void ConnectTimings(MiniProfiler? profiler, List timings, List clientTimings) { if (profiler?.RootTimingId.HasValue == true && timings.Count > 0) { diff --git a/src/MiniProfiler/MiniProfiler.csproj b/src/MiniProfiler/MiniProfiler.csproj index 3660da054..be346d37a 100644 --- a/src/MiniProfiler/MiniProfiler.csproj +++ b/src/MiniProfiler/MiniProfiler.csproj @@ -5,7 +5,7 @@ Lightweight mini-profiler, designed for ASP.NET (including MVC) (non-.NET Core) websites Marc Gravell, Jarrod Dixon, Yaakov Ellis, Nick Craver ASP.NET;SQL;$(PackageBaseTags) - net461 + net472 diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index e63e320da..010905a33 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -11,13 +11,13 @@ - - - - + + + + - + diff --git a/tests/MiniProfiler.Tests.AspNet/MiniProfileHandlerTests.cs b/tests/MiniProfiler.Tests.AspNet/MiniProfileHandlerTests.cs index 39a7addae..20b510b97 100644 --- a/tests/MiniProfiler.Tests.AspNet/MiniProfileHandlerTests.cs +++ b/tests/MiniProfiler.Tests.AspNet/MiniProfileHandlerTests.cs @@ -71,7 +71,7 @@ public void GivenContext_WhenIndexIsRequested_ThenTheCorrectHttpStatusCodeIsRetu [InlineData("deflate", typeof(DeflateStream))] [InlineData("unknown", null)] [InlineData("", null)] - public void GivenContext_WhenIndexIsRequested_ThenTheCorrectHttpStatusCodeIsReturnedType(string acceptEncoding, Type expectedEncodingFilterType) + public void GivenContext_WhenIndexIsRequested_ThenTheCorrectHttpStatusCodeIsReturnedType(string acceptEncoding, Type? expectedEncodingFilterType) { // Arrange var sut = new MiniProfilerHandler(new MiniProfilerOptions()); diff --git a/tests/MiniProfiler.Tests.AspNet/MiniProfiler.Tests.AspNet.csproj b/tests/MiniProfiler.Tests.AspNet/MiniProfiler.Tests.AspNet.csproj index 885206918..d3f79e53d 100644 --- a/tests/MiniProfiler.Tests.AspNet/MiniProfiler.Tests.AspNet.csproj +++ b/tests/MiniProfiler.Tests.AspNet/MiniProfiler.Tests.AspNet.csproj @@ -2,31 +2,21 @@ MiniProfiler.Tests.AspNet StackExchange.Profiling.Tests - net462 + net472 - - + + - - - - - if not exist "$(TargetDir)x86" md "$(TargetDir)x86" - xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Compact\4.0.8876.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" - if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" - xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Compact\4.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64" - - \ No newline at end of file diff --git a/tests/MiniProfiler.Tests.AspNetCore/MiniProfiler.Tests.AspNetCore.csproj b/tests/MiniProfiler.Tests.AspNetCore/MiniProfiler.Tests.AspNetCore.csproj index 4364a95fc..9d0fd46b6 100644 --- a/tests/MiniProfiler.Tests.AspNetCore/MiniProfiler.Tests.AspNetCore.csproj +++ b/tests/MiniProfiler.Tests.AspNetCore/MiniProfiler.Tests.AspNetCore.csproj @@ -2,11 +2,11 @@ MiniProfiler.Tests.AspNetCore StackExchange.Profiling.Tests - net6.0 + net8.0 - + diff --git a/tests/MiniProfiler.Tests/Helpers/BaseTest.cs b/tests/MiniProfiler.Tests/Helpers/BaseTest.cs index 67133c258..7df127b80 100644 --- a/tests/MiniProfiler.Tests/Helpers/BaseTest.cs +++ b/tests/MiniProfiler.Tests/Helpers/BaseTest.cs @@ -134,7 +134,7 @@ where p.IsDefined(typeof(System.Runtime.Serialization.DataMemberAttribute), fals } catch (Exception ex) { - Assert.True(false, "AssertPublicPropertiesAreEqual had an exception on " + p.Name + "; " + ex); + Assert.Fail("AssertPublicPropertiesAreEqual had an exception on " + p.Name + "; " + ex); } } } diff --git a/tests/MiniProfiler.Tests/Helpers/TestConfig.cs b/tests/MiniProfiler.Tests/Helpers/TestConfig.cs index 67132ce2f..bb24896b0 100644 --- a/tests/MiniProfiler.Tests/Helpers/TestConfig.cs +++ b/tests/MiniProfiler.Tests/Helpers/TestConfig.cs @@ -38,7 +38,6 @@ public class Config public string MySQLConnectionString { get; set; } = Environment.GetEnvironmentVariable(nameof(MySQLConnectionString)) ?? "server=localhost;uid=root;pwd=root;database=test;Allow User Variables=True;SslMode=none;AllowPublicKeyRetrieval=True"; public string PostgreSqlConnectionString { get; set; } = Environment.GetEnvironmentVariable(nameof(PostgreSqlConnectionString)) ?? "Server=localhost;Port=5432;Database=test;User Id=postgres;Password=postgres;"; public string MongoDbConnectionString { get; set; } = Environment.GetEnvironmentVariable(nameof(MongoDbConnectionString)) ?? "mongodb://localhost:27017/test"; - public string RavenDbUrls { get; set; } = Environment.GetEnvironmentVariable(nameof(RavenDbUrls)) ?? "http://localhost:8080"; public string RavenDatabase { get; set; } = Environment.GetEnvironmentVariable(nameof(RavenDatabase)) ?? "test"; } } diff --git a/tests/MiniProfiler.Tests/MiniProfiler.Tests.csproj b/tests/MiniProfiler.Tests/MiniProfiler.Tests.csproj index 5fea3c9bb..d3473d4fe 100644 --- a/tests/MiniProfiler.Tests/MiniProfiler.Tests.csproj +++ b/tests/MiniProfiler.Tests/MiniProfiler.Tests.csproj @@ -2,35 +2,24 @@ MiniProfiler.Tests StackExchange.Profiling.Tests - net462;net6.0 + net472;net8.0 - - - + + + + - - + - - - - - if not exist "$(TargetDir)x86" md "$(TargetDir)x86" - xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Compact\4.0.8876.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" - if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" - xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Compact\4.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64" - xcopy /s /y /q "$(NuGetPackageRoot)\sqlite\3.13.0\runtimes\win7-x64\native\*.*" "$(TargetDir)x64\.." - - \ No newline at end of file diff --git a/tests/MiniProfiler.Tests/SqlFormatterTests.cs b/tests/MiniProfiler.Tests/SqlFormatterTests.cs index d69800186..9ef15a9bf 100644 --- a/tests/MiniProfiler.Tests/SqlFormatterTests.cs +++ b/tests/MiniProfiler.Tests/SqlFormatterTests.cs @@ -1,12 +1,11 @@ using System; using System.Collections.Generic; using System.Data; -using System.Data.SqlClient; - +using Microsoft.Data.SqlClient; using StackExchange.Profiling.Internal; using StackExchange.Profiling.SqlFormatters; using Xunit; -#if NET461 +#if NET472 using System.Transactions; #endif @@ -171,7 +170,7 @@ public void VerboseSqlServerFormatterAddsTransactionInformation() var formatter = new VerboseSqlServerFormatter(true); const string text = "select 1"; var cmd = CreateDbCommand(CommandType.Text, text); -#if NET461 +#if NET472 const string expectedOutput = "-- Command Type: Text\n-- Database: TestDatabase\n-- Transaction Scope Iso Level: Serializable\n\nselect 1;"; var transactionScope = new TransactionScope(); var actualOutput = GenerateOutput(formatter, cmd, text); diff --git a/tests/MiniProfiler.Tests/Storage/PostgreSqlStorageTests.cs b/tests/MiniProfiler.Tests/Storage/PostgreSqlStorageTests.cs index 610e7ba06..f8af1a6e0 100644 --- a/tests/MiniProfiler.Tests/Storage/PostgreSqlStorageTests.cs +++ b/tests/MiniProfiler.Tests/Storage/PostgreSqlStorageTests.cs @@ -1,4 +1,4 @@ -#if (NETCOREAPP2_0 || NET461) +#if (NETCOREAPP2_0 || NET472) using System; using StackExchange.Profiling.Storage; using Xunit; diff --git a/tests/MiniProfiler.Tests/Storage/RavenDbStoreTests.cs b/tests/MiniProfiler.Tests/Storage/RavenDbStoreTests.cs deleted file mode 100644 index fba7ae8a7..000000000 --- a/tests/MiniProfiler.Tests/Storage/RavenDbStoreTests.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using Raven.Client.Documents; -using Raven.Client.Documents.Operations; -using Raven.Client.Exceptions; -using Raven.Client.Exceptions.Database; -using Raven.Client.ServerWide; -using Raven.Client.ServerWide.Operations; -using StackExchange.Profiling.Storage; -using Xunit; -using Xunit.Abstractions; - -namespace StackExchange.Profiling.Tests.Storage -{ - public class RavenDbStoreTests : StorageBaseTest, IClassFixture - { - public RavenDbStoreTests(RavenDbStoreFixture fixture, ITestOutputHelper output) - : base(fixture, output) - { - } - } - - public class RavenDbStoreFixture : StorageFixtureBase, IDisposable - { - public RavenDbStoreFixture() - { - Skip.IfNoConfig(nameof(TestConfig.Current.RavenDbUrls), TestConfig.Current.RavenDbUrls); - Skip.IfNoConfig(nameof(TestConfig.Current.RavenDatabase), TestConfig.Current.RavenDatabase); - - try - { - var store = new DocumentStore - { - Urls = TestConfig.Current.RavenDbUrls.Split(';'), - Database = TestConfig.Current.RavenDatabase + TestId - }; - - store.Initialize(); - - try - { - store.Maintenance.ForDatabase(store.Database).Send(new GetStatisticsOperation()); - } - catch (DatabaseDoesNotExistException) - { - try - { - store.Maintenance.Server.Send(new CreateDatabaseOperation(new DatabaseRecord(store.Database))); - } - catch (ConcurrencyException) - { - // The database was already created before calling CreateDatabaseOperation - } - } - - var dbName = store.Database; - store.Dispose(); - store = null; - - Storage = new RavenDbStorage(TestConfig.Current.RavenDbUrls.Split(';'), dbName, waitForIndexes: true); - Storage.GetUnviewedIds(""); - } - catch (Exception e) - { - e.MaybeLog(TestConfig.Current.RavenDbUrls); - e.MaybeLog(TestConfig.Current.RavenDatabase); - ShouldSkip = true; - SkipReason = e.Message; - } - } - - protected override void Dispose(bool disposing) - { - if (!ShouldSkip) - { - Storage.DropDatabase(); - } - } - } - - public static class RavenDbDbStorageExtensions - { - /// - /// Drop database for RavenDB storage. - /// - /// The storage to drop schema for. - public static void DropDatabase(this RavenDbStorage storage) - { - var store = storage.GetDocumentStore(); - store.Maintenance.Server.Send(new DeleteDatabasesOperation(store.Database, true)); - } - } -} diff --git a/tests/MiniProfiler.Tests/Storage/RedisStorageTests.cs b/tests/MiniProfiler.Tests/Storage/RedisStorageTests.cs index 9266cbe87..a490842f1 100644 --- a/tests/MiniProfiler.Tests/Storage/RedisStorageTests.cs +++ b/tests/MiniProfiler.Tests/Storage/RedisStorageTests.cs @@ -68,11 +68,9 @@ public RedisStorageFixture() try { Storage = new RedisStorage(TestConfig.Current.RedisConnectionString); -#pragma warning disable CS0612 // Type or member is obsolete - Storage.ProfilerResultKeyPrefix += testSuffix; - Storage.ProfilerResultSetKey += testSuffix; - Storage.ProfilerResultUnviewedSetKeyPrefix += testSuffix; -#pragma warning restore CS0612 // Type or member is obsolete + Storage.ProfilerResultKeyPrefix = Storage.ProfilerResultKeyPrefix.Append(testSuffix); + Storage.ProfilerResultSetKey = Storage.ProfilerResultSetKey.Append(testSuffix); + Storage.ProfilerResultUnviewedSetKeyPrefix = Storage.ProfilerResultUnviewedSetKeyPrefix.Append(testSuffix); } catch (Exception e) { diff --git a/tests/MiniProfiler.Tests/Storage/SqlServerCeStorageTests.cs b/tests/MiniProfiler.Tests/Storage/SqlServerCeStorageTests.cs deleted file mode 100644 index 1dbb14483..000000000 --- a/tests/MiniProfiler.Tests/Storage/SqlServerCeStorageTests.cs +++ /dev/null @@ -1,66 +0,0 @@ -#if NET461 && WINDOWS -using System; -using System.Data.SqlServerCe; -using System.IO; -using StackExchange.Profiling.Storage; -using Xunit; -using Xunit.Abstractions; - -namespace StackExchange.Profiling.Tests.Storage -{ - public class SqlServerCeStorageTests : StorageBaseTest, IClassFixture - { - public SqlServerCeStorageTests(SqlServerCeStorageFixture fixture, ITestOutputHelper output) : base(fixture, output) - { - } - } - - public class SqlServerCeStorageFixture : StorageFixtureBase, IDisposable - { - public SqlServerCeStorageFixture() - { - Skip.IfNoConfig(nameof(TestConfig.Current.SQLServerCeConnectionString), TestConfig.Current.SQLServerCeConnectionString); - - var connString = TestConfig.Current.SQLServerCeConnectionString; - var csb = new SqlCeConnectionStringBuilder(connString); - var filename = csb.DataSource; - - Storage = new SqlServerCeStorage( - connString, - "MPTest" + TestId, - "MPTimingsTest" + TestId, - "MPClientTimingsTest" + TestId); - try - { - try - { - File.Delete(filename); - } - catch { /* expected */ } - - var engine = new SqlCeEngine(connString); - engine.CreateDatabase(); - Storage.CreateSchema(); - } - catch (Exception e) - { - e.MaybeLog(TestConfig.Current.SQLServerCeConnectionString); - ShouldSkip = true; - SkipReason = e.Message; - } - } - - protected override void Dispose(bool disposing) - { - try - { - Storage?.DropSchema(); - } - catch - { - // Eat it here intentionally. This won't be friendly on Linux. - } - } - } -} -#endif diff --git a/tests/MiniProfiler.Tests/Storage/SqliteStorageTests.cs b/tests/MiniProfiler.Tests/Storage/SqliteStorageTests.cs index 6cf58f1d3..eb1217001 100644 --- a/tests/MiniProfiler.Tests/Storage/SqliteStorageTests.cs +++ b/tests/MiniProfiler.Tests/Storage/SqliteStorageTests.cs @@ -22,7 +22,7 @@ public SqliteStorageFixture() fileName = Guid.NewGuid() + ".sqlite"; Storage = new SqliteStorage( - $"Data Source={fileName}", + $"Data Source={fileName},Pooling=False", "MPTest" + TestId, "MPTimingsTest" + TestId, "MPClientTimingsTest" + TestId); diff --git a/tests/docker-compose.yml b/tests/docker-compose.yml index a0e4b7c05..952daf4ab 100644 --- a/tests/docker-compose.yml +++ b/tests/docker-compose.yml @@ -22,15 +22,6 @@ services: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: test - raven: - image: ravendb/ravendb - container_name: raven-db - ports: - - 8080:8080 - environment: - RAVEN_ARGS: '--Setup.Mode=None' - RAVEN_License_Eula_Accepted: 'true' - RAVEN_Security_UnsecuredAccessAllowed: 'PrivateNetwork' redis: image: redis:6-alpine container_name: redis diff --git a/version.json b/version.json index 867be20bb..fae268857 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "version": "4.3", + "version": "4.5", "assemblyVersion": "4.0.0.0", "publicReleaseRefSpec": [ "^refs/heads/main$",