diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json deleted file mode 100644 index 18fcc5fb..00000000 --- a/.config/dotnet-tools.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "paket": { - "version": "9.0.2", - "commands": [ - "paket" - ] - }, - "fake-cli": { - "version": "6.1.3", - "commands": [ - "fake" - ] - }, - "fsdocs-tool": { - "version": "15.0.0", - "commands": [ - "fsdocs" - ] - }, - "fantomas": { - "version": "5.0.3", - "commands": [ - "fantomas" - ] - } - } -} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 4ce32de8..00000000 --- a/.editorconfig +++ /dev/null @@ -1,26 +0,0 @@ -; EditorConfig helps developers define and maintain consistent -; coding styles between different editors and IDEs. - -; For more visit http://editorconfig.org. -root = true - -; Choose between lf or rf on "end_of_line" property -[*] -indent_style = space -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[{*.fs,*.fsx}] -indent_size = 4 -indent_style = space -max_line_length=150 -fsharp_max_function_binding_width=10 -fsharp_max_infix_operator_expression=70 -fsharp_space_before_parameter=false -fsharp_space_before_lowercase_invocation=false -fsharp_multiline_block_brackets_on_same_column=true -fsharp_experimental_stroustrup_style=true -fsharp_bar_before_discriminated_union_declaration=true -fsharp_keep_max_number_of_blank_lines=3 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 2fca1106..00000000 --- a/.gitattributes +++ /dev/null @@ -1,24 +0,0 @@ -# Auto detect text files -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp text=auto eol=lf -*.fs diff=csharp text=auto eol=lf -*.fsi diff=csharp text=auto eol=lf -*.sln text eol=crlf merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain \ No newline at end of file diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml deleted file mode 100644 index b9b60e82..00000000 --- a/.github/workflows/dotnetcore.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build and Test - -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - build: - - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macOS-latest] - dotnet6: [6.0.400] - dotnet8: [8.0.400] - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v1 - - name: Setup .NET Core 6 (for build) - uses: actions/setup-dotnet@v1 - with: - dotnet-version: ${{ matrix.dotnet6 }} - - name: Setup .NET Core 8 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: ${{ matrix.dotnet8 }} - - name: Install local tools - run: dotnet tool restore - - name: Paket Restore - run: dotnet paket restore - - name: Build and Test - run: dotnet fake run build.fsx diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d3683420..00000000 --- a/.gitignore +++ /dev/null @@ -1,190 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results - -[Dd]ebug/ -[Rr]elease/ -x64/ -build/ -[Bb]in/ -[Oo]bj/ - -# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets -!packages/*/build/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.log -*.scc - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -*.ncrunch* -.*crunch*.local.xml - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.Publish.xml - -# Enable nuget.exe in the .nuget folder (though normally executables are not tracked) -!.nuget/NuGet.exe - -# Windows Azure Build Output -csx -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Others -sql/ -*.Cache -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.[Pp]ublish.xml -*.pfx -*.publishsettings - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -App_Data/*.mdf -App_Data/*.ldf - - -#LightSwitch generated files -GeneratedArtifacts/ -_Pvt_Extensions/ -ModelManifest.xml - -# ========================= -# Windows detritus -# ========================= - -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Mac desktop service store files -.DS_Store - -# =================================================== -# Exclude F# project specific directories and files -# =================================================== - -.idea/ -.vs/ -.vscode/ - -# NuGet Packages Directory -packages/ - -# Generated documentation folder -docs/output/ - -# Temp folder used for publishing docs -temp/ -tmp/ - -# Test results produced by build -TestResults.xml -release.cmd -nuget/ -.paket/ -.fake/ -.ionide/ -.fsdocs/ - -# Nuget outputs -nuget/*.nupkg -*.bak -paket-files -build_PRIVATE.cmd -.fake/build.fsx_* -docs/tools/.fake/generate.fsx_* diff --git a/AppSettingsProvider.html b/AppSettingsProvider.html new file mode 100644 index 00000000..971b95d0 --- /dev/null +++ b/AppSettingsProvider.html @@ -0,0 +1,170 @@ + + + + + The AppSettings type provider + + + + + + + + + + + + + + + + +
+
+ +

FSharp.Configuration

+
+
+
+
+ +

The AppSettings type provider

+

This tutorial shows the use of the AppSettings type provider. +It allows to access app.config files in a strongly typed way.

+

Using App.Settings from F# scripts

+

Create a config file called app.config like this:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+
<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+  <appSettings>
+    <add key="test2" value="Some Test Value 5"/>
+    <add key="TestInt" value="102"/>
+    <add key="TestBool" value="True"/>
+    <add key="TestDouble" value="10.01"/>
+    <add key="TestDateTime" value="2014-05-18 11:14:28Z"/>
+    <add key="TestTimeSpan" value="00:12:30"/>
+    <add key="TestUri" value="http://fsharp.org" />
+    <add key="TestGuid" value="{7B7EB384-FEBA-4409-B560-66FF63F1E8D0}"/>
+  </appSettings>
+  <connectionStrings>
+    <add name="Test" connectionString="Server=.;Database=SomeDatabase;Integrated Security=true"/>
+  </connectionStrings>
+</configuration>
+
+

Reference the type provider assembly and configure it to use your app.settings file:

+ + + +
1: 
+2: 
+3: 
+4: 
+5: 
+
#r "FSharp.Configuration.dll"
+#r "System.Configuration.dll"
+open FSharp.Configuration
+
+type Settings = AppSettings<"app.config">
+
+

Now you have typed access to your app.config files:

+

alt text

+

Reading and writing from the config

+ + + +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+
// read a value from the config
+Settings.Test2
+val it : string = "Some Test Value 5"
+
+// verify the file name
+Settings.ConfigFileName
+val it : string = "C:\Code\FSharp.Configuration\docs\content\app.config"
+
+// read a connection string from the config
+Settings.ConnectionStrings.Test
+val it : string = "Server=.;Database=SomeDatabase;Integrated Security=true"
+
+

Using AppSettingsProvider in *.fsx-script

+

The default executable is the current project .config. (Which is Fsi.exe.config in F# interactive.) +How ever, if you want to modify the configuration of some other application, you can do with SelectExecutableFile-method:

+ + + +
1: 
+2: 
+3: 
+
let path = System.IO.Path.Combine [|__SOURCE_DIRECTORY__ ; "bin"; "myProject.exe" |]
+Settings.SelectExecutableFile path
+Settings.Test2
+
+ +
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
+
namespace FSharp.Configuration
+
type Settings = AppSettings<...>

Full name: AppSettingsProvider.Settings
+
type AppSettings

Full name: FSharp.Configuration.AppSettings
+
property AppSettings<...>.Test2: string


Returns the value from app.config with key test2
+
property AppSettings<...>.ConfigFileName: string


Returns the Filename
+
type ConnectionStrings =
  static member LocalSqlServer : string with get, set
  static member Test : string with get, set

Full name: FSharp.Configuration.AppSettings,configFileName="app.config".ConnectionStrings


Represents the available connection strings from app.config
+
property AppSettings<...>.ConnectionStrings.Test: string


Returns the connection string from app.config with name Test
+
val path : string

Full name: AppSettingsProvider.path
+
namespace System
+
namespace System.IO
+
type Path =
  static val DirectorySeparatorChar : char
  static val AltDirectorySeparatorChar : char
  static val VolumeSeparatorChar : char
  static val InvalidPathChars : char[]
  static val PathSeparator : char
  static member ChangeExtension : path:string * extension:string -> string
  static member Combine : [<ParamArray>] paths:string[] -> string + 3 overloads
  static member GetDirectoryName : path:string -> string
  static member GetExtension : path:string -> string
  static member GetFileName : path:string -> string
  ...

Full name: System.IO.Path
+
System.IO.Path.Combine([<System.ParamArray>] paths: string []) : string
System.IO.Path.Combine(path1: string, path2: string) : string
System.IO.Path.Combine(path1: string, path2: string, path3: string) : string
System.IO.Path.Combine(path1: string, path2: string, path3: string, path4: string) : string
+
AppSettings<...>.SelectExecutableFile(pathOfExe: string) : Unit


Property to change the executable file that is read for configurations. This idea is that you can manage other executables also (e.g. from script).
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/Directory.Build.props b/Directory.Build.props deleted file mode 100644 index d4b718f0..00000000 --- a/Directory.Build.props +++ /dev/null @@ -1,12 +0,0 @@ - - - Steffen Forkmann; Sergey Tihon; Daniel Mohl; Tomas Petricek; Ryan Riley; Mauricio Scheffer; Phil Trelford; Vasily Kirichenko; Reed Copsey, Jr. - Apache-2.0 - http://fsprojects.github.io/FSharp.Configuration/ - https://github.com/fsprojects/FSharp.Configuration - https://raw.githubusercontent.com/fsprojects/FSharp.Configuration/master/docs/img/logo.png - git - Copyright 2014-2025 - false - - diff --git a/FSharp.Configuration.sln b/FSharp.Configuration.sln deleted file mode 100644 index 166e42b3..00000000 --- a/FSharp.Configuration.sln +++ /dev/null @@ -1,75 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29613.14 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}" - ProjectSection(SolutionItems) = preProject - docs\content\app.config = docs\content\app.config - docs\content\AppSettingsProvider.fsx = docs\content\AppSettingsProvider.fsx - docs\content\Config.yaml = docs\content\Config.yaml - docs\content\index.fsx = docs\content\index.fsx - docs\content\IniTypeProvider.fsx = docs\content\IniTypeProvider.fsx - docs\content\Resource1.resx = docs\content\Resource1.resx - docs\content\ResXProvider.fsx = docs\content\ResXProvider.fsx - docs\content\Sample.ini = docs\content\Sample.ini - docs\content\YamlConfigProvider.fsx = docs\content\YamlConfigProvider.fsx - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{BF60BC93-E09B-4E5F-9D85-95A519479D54}" - ProjectSection(SolutionItems) = preProject - build.fsx = build.fsx - paket.dependencies = paket.dependencies - paket.lock = paket.lock - README.md = README.md - RELEASE_NOTES.md = RELEASE_NOTES.md - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{83F16175-43B1-4C90-A1EE-8E351C33435D}" - ProjectSection(SolutionItems) = preProject - docs\tools\generate.fsx = docs\tools\generate.fsx - docs\tools\templates\template.cshtml = docs\tools\templates\template.cshtml - EndProjectSection -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Configuration.Runtime", "src\FSharp.Configuration.Runtime\FSharp.Configuration.Runtime.fsproj", "{CB156D37-AA7D-4F43-9BC8-816318107F79}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Configuration.DesignTime", "src\FSharp.Configuration.DesignTime\FSharp.Configuration.DesignTime.fsproj", "{28A30128-1DDE-4CD8-9A67-A6FC0BBC2D68}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F1BDBF61-84AB-476B-9A1D-3FB51E7DB4BC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{09FBC2D9-4689-4759-919B-B0A2662522BC}" -EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Configuration.Tests", "tests\FSharp.Configuration.Tests\FSharp.Configuration.Tests.fsproj", "{4E6FEA3F-9C19-45E1-AA59-2FA7CEBAF11F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB156D37-AA7D-4F43-9BC8-816318107F79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB156D37-AA7D-4F43-9BC8-816318107F79}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB156D37-AA7D-4F43-9BC8-816318107F79}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB156D37-AA7D-4F43-9BC8-816318107F79}.Release|Any CPU.Build.0 = Release|Any CPU - {28A30128-1DDE-4CD8-9A67-A6FC0BBC2D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28A30128-1DDE-4CD8-9A67-A6FC0BBC2D68}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28A30128-1DDE-4CD8-9A67-A6FC0BBC2D68}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28A30128-1DDE-4CD8-9A67-A6FC0BBC2D68}.Release|Any CPU.Build.0 = Release|Any CPU - {4E6FEA3F-9C19-45E1-AA59-2FA7CEBAF11F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E6FEA3F-9C19-45E1-AA59-2FA7CEBAF11F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E6FEA3F-9C19-45E1-AA59-2FA7CEBAF11F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E6FEA3F-9C19-45E1-AA59-2FA7CEBAF11F}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {83F16175-43B1-4C90-A1EE-8E351C33435D} = {A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1} - {CB156D37-AA7D-4F43-9BC8-816318107F79} = {09FBC2D9-4689-4759-919B-B0A2662522BC} - {28A30128-1DDE-4CD8-9A67-A6FC0BBC2D68} = {09FBC2D9-4689-4759-919B-B0A2662522BC} - {4E6FEA3F-9C19-45E1-AA59-2FA7CEBAF11F} = {F1BDBF61-84AB-476B-9A1D-3FB51E7DB4BC} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5F7E4B18-0D4C-454A-A7BD-3F3E5E8CE018} - EndGlobalSection -EndGlobal diff --git a/IniTypeProvider.html b/IniTypeProvider.html new file mode 100644 index 00000000..e95e35aa --- /dev/null +++ b/IniTypeProvider.html @@ -0,0 +1,119 @@ + + + + + The Ini type provider + + + + + + + + + + + + + + + + +
+
+ +

FSharp.Configuration

+
+
+
+
+ +

The Ini type provider

+

This tutorial shows the use of the Ini type provider.

+

Using Ini type provider from F# scripts

+

Create a Sample.ini file like this:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+
[Section1]
+intSetting = 2
+stringSetting = stringValue
+;you are free to add comments like this
+[Section2]
+floatSetting = 1.23 ; float settings are also supported
+boolSetting = true
+anotherBoolSetting = False
+; settings with no value are OK
+emptySetting =
+
+

Reference the type provider assembly and configure it to use your ini file:

+ + + +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+
#r "FSharp.Configuration.dll"
+open FSharp.Configuration
+
+// Let the type provider do it's work
+type IniFileType = IniFile<"Sample.ini ">
+
+// read a value from the config
+IniFileType.Section1.intSetting
+
+val it : int = 
+  2
+
+ +
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
+
namespace FSharp.Configuration
+
type IniFileType = IniFile<...>

Full name: IniTypeProvider.IniFileType
+
type IniFile

Full name: FSharp.Configuration.IniFile
+
type Section1 =
  static member intSetting : int
  static member stringSetting : string

Full name: FSharp.Configuration.IniFile,configFileName="Sample.ini ".Section1
+
property IniFile<...>.Section1.intSetting: int


Returns the value from Sample.ini from section Section1 with key intSetting
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 4c4a3e52..00000000 --- a/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ -Copyright 2013, F# Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - ------------------------------------------------------------- - -Apache License, Version 2.0 -=========================== - -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -### TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - -**1. Definitions.** - - - "License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - - - "Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - - - "Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - - - "You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - - - "Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - - - "Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - - - "Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). - - - "Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - - - "Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - - - "Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -**2. Grant of Copyright License.** -Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -**3. Grant of Patent License.** -Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. - -**4. Redistribution.** -You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: - - - You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - - You must cause any modified files to carry prominent notices - stating that You changed the files; and - - - You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - - If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. - -**5. Submission of Contributions.** -Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -**6. Trademarks.** -This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -**7. Disclaimer of Warranty.** -Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -**8. Limitation of Liability.** -In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -**9. Accepting Warranty or Additional Liability.** -While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. diff --git a/README.md b/README.md deleted file mode 100644 index 55bd2f29..00000000 --- a/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# FSharp.Configuration - -[![NuGet Badge](https://buildstats.info/nuget/FSharp.Configuration)](https://www.nuget.org/packages/FSharp.Configuration) -[![Build Status](https://github.com/fsprojects/FSharp.Configuration/workflows/Build%20and%20Test/badge.svg?branch=master)](https://github.com/fsprojects/FSharp.Configuration/actions?query=branch%3Amaster) - -The FSharp.Configuration project contains type providers for the configuration of .NET projects. - -- [AppSettings](https://fsprojects.github.io/FSharp.Configuration/AppSettingsProvider.html) -- [ResX](https://fsprojects.github.io/FSharp.Configuration/ResXProvider.html) -- [Yaml](https://fsprojects.github.io/FSharp.Configuration/YamlConfigProvider.html) -- [Ini](https://fsprojects.github.io/FSharp.Configuration/IniTypeProvider.html) - -Documentation available here. - -## Testing - -- Start FSharp.Configuration.sln and configure the project's debug mode to run `[YOURPATH]\FSharp.Configuration\FSharp.Configuration.Tests.sln` with `C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe`. - -## Maintainer(s) - -- [@forki](https://github.com/forki) Steffen Forkmann -- [@baronfel](https://github.com/baronfel) Chet Husk - -The default maintainer account for projects under "fsprojects" is [@fsprojectsgit](https://github.com/fsprojectsgit) - F# Community Project Incubation Space (repo management) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md deleted file mode 100644 index e99a55c0..00000000 --- a/RELEASE_NOTES.md +++ /dev/null @@ -1,201 +0,0 @@ -#### 3.0.0 - 03.05.2025 - -- Removed `net461` target from TPDTC -- Added `net8.0` target from TPDTC -- Build with .NET 8.0 -- Migration to latest TPSDK -- Dependencies updated -- Docs migrated to fsdocs - -#### 2.0.0 - 09.08.2021 - -- Migration to project system -- Migration from SharpYaml to YamlDotNet -- YamlConfigTypeProvider targets net461 and netstandard2.0 -- IniFileProvider targets net461 and netstandard2.0 -- AppSettingsProvider targets net461 and netstandard2.0 -- Dependencies updated -- Fix bug triggering exception 'xx_ItemType is not comparable' when updating an empty list #158 - -#### 1.5.0 - 15.06.2018 - -- Tweak INI File Parser to allow semicolon characters inside string values (thanks [@zakakula](https://github.com/zakaluka)!). -- NOTE: This will result in comments no longer being valid beside string values, instead comments should go on a line above the key-value pair - -#### 1.4.0 - 23.02.2018 - -- Migration to latest TPSDK - -#### 1.3.1 - 24.09.2017 - -- `SharpYaml.dll` added to NuGet package - -#### 1.3.0 - 14.06.2017 - -- Explicit dependency on FSharp.Core -- Target .NET 4.5 -- Target FSharp.Core 4.0.0.1 - -#### 1.2.0 - 20.05.2017 - -- FSharp.Core 4.4.1.0 - -#### 1.1.0 - 12.05.2017 - -- Mono 5 support - -#### 1.0.1 - 22.04.2017 - -- NuGet package targets .NET 4.6 - -#### 1.0.0 - 12.04.2017 - -- YamlConfig provider: add `InferTypesFromStrings` optional parameter - -#### 0.6.4 - 18.11.2016 - -- Add support for Guids in Yaml and AppSettings - -#### 0.6.2 - 21.08.2016 - -- Handle int32 values loading from YAML files into int64 fields - -#### 0.6.1 - 13.06.2016 - -- YamlConfigProvider: added support for having mixed type content fall back to strings - -#### 0.6.0 - 16.05.2016 - -- YamlConfigProvider throws if file is not found or fails to load -- YamlConfigProvider allows keys of any type - -#### 0.5.12 - 01.03.2016 - -- Added support for data in int64 to YamlConfigProvider - -#### 0.5.11 - 24.01.2016 - -- Add Path.GetFullPath to the filePath calculation in YamlConfigProvider - -#### 0.5.10 - 20.01.2016 - -- Yaml provider: added event to monitor errors in parsing from LoadAndWatch - -#### 0.5.9 - 02.01.2016 - -- Yaml provider handle nested lists - -#### 0.5.8 - 30.12.2015 - -- Get SharpYaml from NuGet but pack dll inside of FSharp.Configuration NuGet package -- Fix Travis build -- For Mono compatibility: TypeConstructor path should be able to be separated by both "/" and "\" -- AppSettingsProvider: Added possibility to change the application that is being configured. -- Fixed AppSettingsProvider to work in parallel with multiple configs. - -#### 0.5.7 - 22.11.2015 - -- Revert dependency on SharpYaml - -#### 0.5.6 - 22.12.2015 - -- Fixed: SharpYaml NuGet package was not listed as dependency of FSharp.Configuration one -- infer URLs with "tcp" schema - -#### 0.5.5 - 20.12.2015 - -- Same as 0.5.4, NuGet publishing problems - -#### 0.5.4 - 20.12.2015 - -- Support "file" and "ssh" uri schemas -- Use SharpYaml NuGet package - -#### 0.5.3 - 12.06.2015 - -- AppConfig type provider raises better exception if a settings or connection string is missing at runtime. - -#### 0.5.2 - 12.06.2015 - -- Add caching into all type providers - -#### 0.5.1 - 18.03.2015 - -- fixed: YamlConfigProvider does not always parse floating point scalars - -#### 0.5.0 - 09.03.2015 - -- YamlConfigProvider supports sequence of maps - -#### 0.4.10 - 06.02.2015 - -- Better YamlConfigProvider error reporting in case of duplicated keys - -#### 0.4.9 - 06.01.2015 - -- Fixed: AppSettings type provider does not read connection strings at runtime - -#### 0.4.8 - 19.12.2014 - -- Use HostingEnvironment.IsHosted to determine that AppSettings type provider is used in a Web application - -#### 0.4.7 - 12.12.2014 - -- Fixed design time memory leaks in all providers - -#### 0.4.6 - 06.12.2014 - -- Fixed: AppSettingsProvider does not find web.config at runtime - -#### 0.4.5 - 06.12.2014 - -- Fixed: AppSettingsProvider infers URLs as ints - -#### 0.4.4 - 22.10.2014 - -- Add support for connection strings to AppSettings TP - -#### 0.4.3 - 20.09.2014 - -- IniFile provider - - -#### 0.3.0 - 19.09.2014 - -- Making config settings writable - -- Relax yaml tp loading rules - - -#### 0.2.2 - 17.01.2013 - -- Allows to read bitmaps from resources - -#### 0.2.1 - 17.01.2013 - -- Fixed bug with the AppSettings type provider and .fsx files - -#### 0.2.0 - 15.01.2013 - -- Yaml type provider renamed to Yaml Config type provider - -#### 0.1.0 - 15.01.2013 - -- First official release of ResX, Yaml and AppSettings type provider - -#### 0.1.0-alpha5 - 15.01.2013 - -- Make it compatible with .NET 4.0 - -#### 0.1.0-alpha4 - 15.01.2013 - -- Using latest version of SharpYaml - -#### 0.1.0-alpha3 - 15.01.2013 - -- Initial release of the Yaml type provider - -#### 0.1.0-alpha2 - 14.01.2013 - -- Initial release of the ResX type provider - -#### 0.1.0-alpha - 14.01.2013 - -- Initial release diff --git a/ResXProvider.html b/ResXProvider.html new file mode 100644 index 00000000..ced06105 --- /dev/null +++ b/ResXProvider.html @@ -0,0 +1,98 @@ + + + + + The ResX type provider + + + + + + + + + + + + + + + + +
+ +
+
+
+ +

The ResX type provider

+

This tutorial shows the use of the ResX type provider. +It allows typed access to .resx files.

+

Create a resource file in Visual Studio like:

+

alt text

+

Reference the type provider assembly and configure it to use your Resource1.resx file:

+ + + +
1: 
+2: 
+3: 
+4: 
+5: 
+6: 
+
// reference the type provider dll
+#r "FSharp.Configuration.dll"
+open FSharp.Configuration
+
+// Let the type provider do it's work
+type Resource1 = ResXProvider<file="Resource1.resx">
+
+

Now you have typed access to .resx files:

+

alt text

+

Reading from the resx file

+ + + +
1: 
+2: 
+
Resource1.Greetings
+val it : string = "Hello World!"
+
+ +
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
+
namespace FSharp.Configuration
+
type Resource1 = ResXProvider<...>

Full name: ResXProvider.Resource1
+
Multiple items
module ResXProvider

from FSharp.Configuration

--------------------
type ResXProvider

Full name: FSharp.Configuration.ResXProvider
+
property ResXProvider<...>.Greetings: string


Greetings
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/YamlConfigProvider.html b/YamlConfigProvider.html new file mode 100644 index 00000000..64d06763 --- /dev/null +++ b/YamlConfigProvider.html @@ -0,0 +1,502 @@ + + + + + The YamlConfig type provider + + + + + + + + + + + + + + + + +
+ +
+
+
+ +

The YamlConfig type provider

+

This tutorial shows the use of the YamlConfig type provider.

+

It's generated, hence the types can be used from any .NET language, not only from F# code.

+

It can produce mutable properties for Yaml scalars (leafs), which means the object tree can be loaded, modified and saved into the original file or a stream as Yaml text. Adding new properties is not supported, however lists can be replaced with new ones atomically. This is intentionally, see below.

+

The main purpose for this is to be used as part of a statically typed application configuration system which would have a single master source of configuration structure - a Yaml file. Then any F#/C# project in a solution will able to use the generated read-only object graph.

+

When you push a system into production, you can modify the configs with scripts written in F# in safe, statically typed way with full intellisense.

+

Using Yaml type provider from F# scripts

+

Create a Config.yaml file like this:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+17: 
+18: 
+19: 
+20: 
+
Mail:
+    Smtp:
+        Host: smtp.sample.com
+        Port: 25
+        User: user1
+        Password: pass1
+    Pop3:
+        Host: pop3.sample.com
+        Port: 110
+        User: user2
+        Password: pass2
+        CheckPeriod: 00:01:00
+    ErrorNotificationRecipients:
+        - user1@sample.com
+        - user2@sample.com
+    ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93
+DB:
+    ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;
+    NumberOfDeadlockRepeats: 5
+    DefaultTimeout: 00:05:00
+
+

Reference the type provider assembly and configure it to use your yaml file:

+ + + +
1: 
+2: 
+3: 
+4: 
+5: 
+6: 
+
#r "FSharp.Configuration.dll"
+open FSharp.Configuration
+
+// Let the type provider do it's work
+type TestConfig = YamlConfig<"Config.yaml">
+let config = TestConfig()
+
+

alt text

+

Reading and writing from the config

+ + + +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+
// read a value from the config
+config.DB.ConnectionString
+
+val it : string = 
+  "Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;"
+
+// change a value in the config
+config.DB.ConnectionString <- "Data Source=server2;"
+config.DB.ConnectionString
+val it : string = "Data Source=server2;"
+
+// write the settings back to a yaml file
+config.Save(__SOURCE_DIRECTORY__ + @"\ChangedConfig.yaml")
+
+

Using configuration from C#

+

Let's create a F# project named Config, add reference to FSharp.Configuration.dll, then add the following Config.yaml file:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+17: 
+18: 
+19: 
+20: 
+
Mail:
+  Smtp:
+    Host: smtp.sample.com
+    Port: 25
+    User: user1
+    Password: pass1
+  Pop3:
+    Host: pop3.sample.com
+    Port: 110
+    User: user2
+    Password: pass2
+    CheckPeriod: 00:01:00
+  ErrorNotificationRecipients:
+    - user1@sample.com
+    - user2@sample.com
+  ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93
+DB:
+  ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;
+  NumberOfDeadlockRepeats: 5
+  DefaultTimeout: 00:05:00
+
+

Declare a YamlConfig type and point it to the file above:

+ + + +
1: 
+2: 
+3: 
+
open FSharp.Configuration
+
+type Config = YamlConfig<"Config.yaml">
+
+

Compile it. Now we have assembly Config.dll containing generated types with the default values "baked" into them (actually the values are set in the type constructors).

+

Let's test it in a C# project. Create a Console Application, add reference to FSharp.Configuration.dll and our F# Config project.

+

First, we'll try to create an instance of our generated Config type and check that all the values are there:

+ +
1: 
+2: 
+
var config = new Config.Config();
+Console.WriteLine(string.Format("Default configuration:\n{0}", config));
+
+

It should outputs this:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+17: 
+18: 
+19: 
+20: 
+21: 
+
Default settings:
+Mail:
+  Smtp:
+    Host: smtp.sample.com
+    Port: 25
+    User: user1
+    Password: pass1
+  Pop3:
+    Host: pop3.sample.com
+    Port: 110
+    User: user2
+    Password: pass2
+    CheckPeriod: 00:01:00
+  ErrorNotificationRecipients:
+  - user1@sample.com
+  - user2@sample.com
+  ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93
+DB:
+  ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;
+  NumberOfDeadlockRepeats: 5
+  DefaultTimeout: 00:05:00
+
+

And, of course, we now able to access all the config data in a nice typed way like this:

+ + + +
1: 
+2: 
+3: 
+4: 
+5: 
+
let pop3host = config.Mail.Pop3.Host
+val pop3host : string = "pop3.sample.com"
+
+let dbTimeout = config.DB.DefaultTimeout
+val dbTimeout : System.TimeSpan = 00:05:00
+
+

It's not very interesting so far, as the main purpose of any configuration is to be loaded from a config file at runtime. +So, add the following RuntimeConfig.yaml into the C# console project:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+17: 
+18: 
+19: 
+20: 
+21: 
+
Mail:
+  Smtp:
+    Host: smtp2.sample.com
+    Port: 26
+    User: user11
+    Password: pass11
+  Pop3:
+    Host: pop32.sample.com
+    Port: 111
+    User: user2
+    Password: pass2
+    CheckPeriod: 00:02:00
+  ErrorNotificationRecipients:
+    - user11@sample.com
+    - user22@sample.com
+    - new_user@sample.com
+  ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93
+DB:
+  ConnectionString: Data Source=server2;Initial Catalog=Database1;Integrated Security=SSPI;
+  NumberOfDeadlockRepeats: 5
+  DefaultTimeout: 00:10:00
+
+

We changed almost every setting here. Update our default config with this file:

+ +
1: 
+2: 
+3: 
+4: 
+
// ...as before
+config.Load(@"RuntimeConfig.yaml");
+Console.WriteLine(string.Format("Loaded config:\n{0}", config));
+Console.ReadLine();
+
+

The output should be:

+ +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+17: 
+18: 
+19: 
+20: 
+21: 
+22: 
+
Loaded settings:
+Mail:
+  Smtp:
+    Host: smtp2.sample.com
+    Port: 26
+    User: user11
+    Password: pass11
+  Pop3:
+    Host: pop32.sample.com
+    Port: 111
+    User: user2
+    Password: pass2
+    CheckPeriod: 00:02:00
+  ErrorNotificationRecipients:
+  - user11@sample.com
+  - user22@sample.com
+  - new_user@sample.com
+  ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93
+DB:
+  ConnectionString: Data Source=server2;Initial Catalog=Database1;Integrated Security=SSPI;
+  NumberOfDeadlockRepeats: 5
+  DefaultTimeout: 00:10:00
+
+

Great! Values have been updated properly, the new user has been added into ErrorNotificationRecipients list.

+

The Changed event

+

Every type in the hierarchy contains Changed: EventHandler event. It's raised when an instance is updated (Loaded), not when the writable properties are assigned.

+

Let's show the event in action:

+ + + +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+12: 
+13: 
+14: 
+15: 
+16: 
+17: 
+18: 
+19: 
+20: 
+21: 
+22: 
+23: 
+24: 
+25: 
+26: 
+27: 
+28: 
+29: 
+30: 
+31: 
+32: 
+33: 
+
// ...reference assemblies and open namespaces as before...
+let c = Config()
+let log name _ = printfn "%s changed!" name
+// add handlers for the root and all down the Mail hierarchy 
+c.Changed.Add (log "ROOT")
+c.Mail.Changed.Add (log "Mail")
+c.Mail.Smtp.Changed.Add (log "Mail.Smtp")
+c.Mail.Pop3.Changed.Add (log "Mail.Pop3")
+// as a marker, add a handler for DB
+c.DB.Changed.Add (log "DB")
+c.LoadText """
+Mail:
+  Smtp:
+    Host: smtp.sample.com
+    Port: 25
+    User:       => first changed value <=
+    Password:   => second changed value on the same level (in the same Map) <=
+    Ssl: true   
+  Pop3:
+    Host: pop3.sample.com
+    Port: 110
+    User: user2
+    Password: pass2
+    CheckPeriod: 00:01:00
+  ErrorNotificationRecipients:
+    - user1@sample.com
+    - user2@sample.com
+  ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93
+DB:
+  ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;
+  NumberOfDeadlockRepeats: 5
+  DefaultTimeout: 00:05:00
+""" |> ignore
+
+

The output is as follows:

+ +
1: 
+2: 
+3: 
+
ROOT changed!
+Mail changed!
+Mail.Smtp changed!
+
+

So, we can see that all the events have been raised from the root's one down to the most close to the changed value one. And note that there're no duplicates - even though two value was changed in Mail.Smpt map, its Changed event has been raised only once.

+ +
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
+
namespace FSharp.Configuration
+
Multiple items
type TestConfig =
  inherit Root
  new : unit -> TestConfig
  event Changed : EventHandler
  member DB : DB_Type
  member Error : IEvent<Exception>
  member Mail : Mail_Type
  nested type DB_Type
  nested type Mail_Type

Full name: YamlConfigProvider.TestConfig

--------------------
TestConfig() : TestConfig
+
type YamlConfig =
  inherit Root
  member Error : IEvent<Exception>

Full name: FSharp.Configuration.YamlConfig


<summary>Statically typed YAML config.</summary>
           <param name='FilePath'>Path to YAML file.</param>
           <param name='ReadOnly'>Whether the resulting properties will be read-only or not.</param>
           <param name='YamlText'>Yaml as text. Mutually exclusive with FilePath parameter.</param>
+
val config : TestConfig

Full name: YamlConfigProvider.config
+
property TestConfig.DB: TestConfig.DB_Type
+
property TestConfig.DB_Type.ConnectionString: string
+
member YamlConfigTypeProvider.Root.Save : unit -> unit
member YamlConfigTypeProvider.Root.Save : filePath:string -> unit
member YamlConfigTypeProvider.Root.Save : writer:System.IO.TextWriter -> unit
member YamlConfigTypeProvider.Root.Save : stream:System.IO.Stream -> unit
+
Multiple items
type Config =
  inherit Root
  new : unit -> Config
  event Changed : EventHandler
  member DB : DB_Type
  member Error : IEvent<Exception>
  member Mail : Mail_Type
  nested type DB_Type
  nested type Mail_Type

Full name: YamlConfigProvider.Config

--------------------
Config() : Config
+
val pop3host : string

Full name: YamlConfigProvider.pop3host
+
property TestConfig.Mail: TestConfig.Mail_Type
+
property TestConfig.Mail_Type.Pop3: TestConfig.Mail_Type.Pop3_Type
+
property TestConfig.Mail_Type.Pop3_Type.Host: string
+
val dbTimeout : System.TimeSpan

Full name: YamlConfigProvider.dbTimeout
+
property TestConfig.DB_Type.DefaultTimeout: System.TimeSpan
+
val c : Config

Full name: YamlConfigProvider.c
+
val log : name:string -> 'a -> unit

Full name: YamlConfigProvider.log
+
val name : string
+
val printfn : format:Printf.TextWriterFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printfn
+
event Config.Changed: IEvent<System.EventHandler,System.EventArgs>
+
member System.IObservable.Add : callback:('T -> unit) -> unit
+
property Config.Mail: Config.Mail_Type
+
event Config.Mail_Type.Changed: IEvent<System.EventHandler,System.EventArgs>
+
property Config.Mail_Type.Smtp: Config.Mail_Type.Smtp_Type
+
event Config.Mail_Type.Smtp_Type.Changed: IEvent<System.EventHandler,System.EventArgs>
+
property Config.Mail_Type.Pop3: Config.Mail_Type.Pop3_Type
+
event Config.Mail_Type.Pop3_Type.Changed: IEvent<System.EventHandler,System.EventArgs>
+
property Config.DB: Config.DB_Type
+
event Config.DB_Type.Changed: IEvent<System.EventHandler,System.EventArgs>
+
member YamlConfigTypeProvider.Root.LoadText : yamlText:string -> unit
+
val ignore : value:'T -> unit

Full name: Microsoft.FSharp.Core.Operators.ignore
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/build.cmd b/build.cmd deleted file mode 100644 index d7f75484..00000000 --- a/build.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -dotnet tool restore -dotnet paket restore -dotnet fake run build.fsx %* \ No newline at end of file diff --git a/build.fsx b/build.fsx deleted file mode 100644 index a6c0722d..00000000 --- a/build.fsx +++ /dev/null @@ -1,204 +0,0 @@ -#r @"paket: -source https://api.nuget.org/v3/index.json -framework net6.0 -nuget FSharp.Core -nuget Fake.Core.Target -nuget Fake.Core.Process -nuget Fake.Core.ReleaseNotes -nuget Fake.IO.FileSystem -nuget Fake.DotNet.Cli -nuget Fake.DotNet.MSBuild -nuget Fake.DotNet.AssemblyInfoFile -nuget Fake.DotNet.Paket -nuget Fake.DotNet.Testing.Expecto -nuget Fake.DotNet.FSFormatting -nuget Fake.Tools.Git -nuget Fake.Api.GitHub //" - -#load "./.fake/build.fsx/intellisense.fsx" - -open Fake -open Fake.Core.TargetOperators -open Fake.Core -open Fake.IO -open Fake.IO.Globbing.Operators -open Fake.DotNet -open Fake.Tools -open System - -Target.initEnvironment() - -// -------------------------------------------------------------------------------------- - -// The name of the project -// (used by attributes in AssemblyInfo, name of a NuGet package and directory in 'src') -let project = "FSharp.Configuration" - -// Short summary of the project -// (used as description in AssemblyInfo and as a short summary for NuGet package) -let summary = - "The FSharp.Configuration project contains type providers for the configuration of .NET projects." - -let cloneUrl = "git@github.com:fsprojects/FSharp.Configuration.git" -// -------------------------------------------------------------------------------------- -// END TODO: The rest of the file includes standard build steps -// -------------------------------------------------------------------------------------- - -let buildDir = "bin" - - -// Read additional information from the release notes document -let release = ReleaseNotes.load "RELEASE_NOTES.md" - -let genFSAssemblyInfo(projectPath: string) = - let projectName = System.IO.Path.GetFileNameWithoutExtension(projectPath) - let basePath = "src/" + projectName - let fileName = basePath + "/AssemblyInfo.fs" - - AssemblyInfoFile.createFSharp fileName [ - AssemblyInfo.Title(projectName) - AssemblyInfo.Product project - AssemblyInfo.Description summary - AssemblyInfo.Version release.AssemblyVersion - AssemblyInfo.FileVersion release.AssemblyVersion - ] - -let genCSAssemblyInfo(projectPath: string) = - let projectName = System.IO.Path.GetFileNameWithoutExtension(projectPath) - let basePath = "src/" + projectName + "/Properties" - let fileName = basePath + "/AssemblyInfo.cs" - - AssemblyInfoFile.createCSharp fileName [ - AssemblyInfo.Title(projectName) - AssemblyInfo.Product project - AssemblyInfo.Description summary - AssemblyInfo.Version release.AssemblyVersion - AssemblyInfo.FileVersion release.AssemblyVersion - ] - -// Generate assembly info files with the right version & up-to-date information -Target.create "AssemblyInfo" (fun _ -> - let fsProjs = !! "src/**/*.fsproj" - let csProjs = !! "src/**/*.csproj" - fsProjs |> Seq.iter genFSAssemblyInfo - csProjs |> Seq.iter genCSAssemblyInfo) - -// -------------------------------------------------------------------------------------- -// Clean build results & restore NuGet packages - -Target.create "Clean" (fun _ -> Shell.cleanDirs [ buildDir ]) - -Target.create "CleanDocs" (fun _ -> Shell.cleanDirs [ "docs/output" ]) - -// -------------------------------------------------------------------------------------- -// Build library & test project - -let dotnet buildOptions command args = - DotNet.exec buildOptions command args - |> fun x -> - if x.ExitCode <> 0 then - let messages = List.concat [ x.Errors; x.Messages ] - failwith <| String.Join("\n", messages) - -Target.create "Build" (fun _ -> dotnet id "build" "FSharp.Configuration.sln -c Release") - -Target.create "RunTests" (fun _ -> - dotnet - (fun r -> - { r with - WorkingDirectory = "tests/FSharp.Configuration.Tests/" - }) - //"run --framework net48" - "run --framework net8.0" - "") - -Target.create "NuGet" (fun _ -> - Paket.pack(fun p -> - { p with - ToolType = ToolType.CreateLocalTool() - OutputPath = "bin" - Version = release.NugetVersion - ReleaseNotes = String.toLines release.Notes - })) - -// -------------------------------------------------------------------------------------- -// Fantomas code formatting and style checking - -let sourceFiles = - !! "**/*.fs" ++ "**/*.fsx" - -- "packages/**/*.*" - -- "paket-files/**/*.*" - -- ".fake/**/*.*" - -- "**/obj/**/*.*" - -- "**/AssemblyInfo.fs" - -Target.create "Format" (fun _ -> - let result = - sourceFiles - |> Seq.map(sprintf "\"%s\"") - |> String.concat " " - |> DotNet.exec id "fantomas" - - if not result.OK then - printfn "Errors while formatting all files: %A" result.Messages) - -Target.create "CheckFormat" (fun _ -> - let result = - sourceFiles - |> Seq.map(sprintf "\"%s\"") - |> String.concat " " - |> sprintf "%s --check" - |> DotNet.exec id "fantomas" - - if result.ExitCode = 0 then - Trace.log "No files need formatting" - elif result.ExitCode = 99 then - failwith "Some files need formatting, run `dotnet fake build -t Format` to format them" - else - Trace.logf "Errors while formatting: %A" result.Errors - failwith "Unknown errors while formatting") - -// -------------------------------------------------------------------------------------- -// Generate the documentation - -Target.create "GenerateDocs" (fun _ -> - Shell.cleanDir ".fsdocs" - DotNet.exec id "fsdocs" "build --clean" |> ignore) - -Target.create "ReleaseDocs" (fun _ -> - Git.Repository.clone "" cloneUrl "temp/gh-pages" - Git.Branches.checkoutBranch "temp/gh-pages" "gh-pages" - Shell.copyRecursive "output" "temp/gh-pages" true |> printfn "%A" - - Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" "add ." - |> printfn "%s" - - let cmd = - sprintf """commit -a -m "Update generated documentation for version %s""" release.NugetVersion - - Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd - |> printfn "%s" - - Git.Branches.push "temp/gh-pages") - -Target.create "Release" ignore - -Target.create "BuildPackage" ignore - -// -------------------------------------------------------------------------------------- -// Run all targets by default. Invoke 'build ' to override - -Target.create "All" ignore - -"Clean" -==> "AssemblyInfo" -==> "CheckFormat" -==> "Build" -==> "RunTests" -==> "All" - -"All" ==> "NuGet" ==> "BuildPackage" ==> "Release" - -"GenerateDocs" ==> "ReleaseDocs" ==> "Release" - -Target.runOrDefault "All" diff --git a/build.fsx.lock b/build.fsx.lock deleted file mode 100644 index 67a80980..00000000 --- a/build.fsx.lock +++ /dev/null @@ -1,233 +0,0 @@ -STORAGE: NONE -RESTRICTION: == net6.0 -NUGET - remote: https://api.nuget.org/v3/index.json - BlackFox.VsWhere (1.1) - FSharp.Core (>= 4.2.3) - Microsoft.Win32.Registry (>= 4.7) - Fake.Api.GitHub (6.1.3) - FSharp.Core (>= 8.0.301) - Octokit (>= 13.0.1) - Fake.Core.CommandLineParsing (6.1.3) - FParsec (>= 1.1.1) - FSharp.Core (>= 8.0.301) - Fake.Core.Context (6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.Environment (6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.FakeVar (6.1.3) - Fake.Core.Context (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.Process (6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.FakeVar (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - System.Collections.Immutable (>= 8.0) - Fake.Core.ReleaseNotes (6.1.3) - Fake.Core.SemVer (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.SemVer (6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.String (6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.Target (6.1.3) - Fake.Core.CommandLineParsing (>= 6.1.3) - Fake.Core.Context (>= 6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.FakeVar (>= 6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - FSharp.Control.Reactive (>= 5.0.2) - FSharp.Core (>= 8.0.301) - Fake.Core.Tasks (6.1.3) - Fake.Core.Trace (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.Trace (6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.FakeVar (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Core.Xml (6.1.3) - Fake.Core.String (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.DotNet.AssemblyInfoFile (6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.DotNet.Cli (6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.DotNet.MSBuild (>= 6.1.3) - Fake.DotNet.NuGet (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Mono.Posix.NETStandard (>= 1.0) - Newtonsoft.Json (>= 13.0.3) - Fake.DotNet.FSFormatting (6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.DotNet.Cli (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.DotNet.MSBuild (6.1.3) - BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - MSBuild.StructuredLogger (>= 2.1.815) - Fake.DotNet.NuGet (6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.SemVer (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Tasks (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.Core.Xml (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - Fake.Net.Http (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Newtonsoft.Json (>= 13.0.3) - NuGet.Protocol (>= 6.10.1) - Fake.DotNet.Paket (6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.DotNet.Cli (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.DotNet.Testing.Expecto (6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.Testing.Common (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.IO.FileSystem (6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Net.Http (6.1.3) - Fake.Core.Trace (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Testing.Common (6.1.3) - Fake.Core.Trace (>= 6.1.3) - FSharp.Core (>= 8.0.301) - Fake.Tools.Git (6.1.3) - Fake.Core.Environment (>= 6.1.3) - Fake.Core.Process (>= 6.1.3) - Fake.Core.SemVer (>= 6.1.3) - Fake.Core.String (>= 6.1.3) - Fake.Core.Trace (>= 6.1.3) - Fake.IO.FileSystem (>= 6.1.3) - FSharp.Core (>= 8.0.301) - FParsec (1.1.1) - FSharp.Core (>= 4.3.4) - FSharp.Control.Reactive (6.1.2) - FSharp.Core (>= 6.0.7) - System.Reactive (>= 6.0.1) - FSharp.Core (9.0.202) - Microsoft.Bcl.AsyncInterfaces (9.0.4) - Microsoft.Bcl.Cryptography (9.0.4) - System.Formats.Asn1 (>= 9.0.4) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - Microsoft.Build.Framework (17.13.9) - Microsoft.Win32.Registry (>= 5.0) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Security.Principal.Windows (>= 5.0) - Microsoft.Build.Utilities.Core (17.13.9) - Microsoft.Build.Framework (>= 17.13.9) - Microsoft.NET.StringTools (>= 17.13.9) - Microsoft.Win32.Registry (>= 5.0) - System.Collections.Immutable (>= 8.0) - System.Configuration.ConfigurationManager (>= 8.0) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Security.Principal.Windows (>= 5.0) - System.Text.Encoding.CodePages (>= 7.0) - Microsoft.NET.StringTools (17.13.9) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - Microsoft.Win32.Registry (5.0) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (>= 5.0) - Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.2.472) - Microsoft.Build.Framework (>= 17.5) - Microsoft.Build.Utilities.Core (>= 17.5) - System.Collections.Immutable (>= 8.0) - System.Memory (>= 4.6) - System.Runtime.CompilerServices.Unsafe (>= 6.1) - Newtonsoft.Json (13.0.3) - NuGet.Common (6.13.2) - NuGet.Frameworks (>= 6.13.2) - System.Collections.Immutable (>= 8.0) - NuGet.Configuration (6.13.2) - NuGet.Common (>= 6.13.2) - System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.13.2) - NuGet.Packaging (6.13.2) - Newtonsoft.Json (>= 13.0.3) - NuGet.Configuration (>= 6.13.2) - NuGet.Versioning (>= 6.13.2) - System.Formats.Asn1 (>= 8.0.1) - System.Security.Cryptography.Pkcs (>= 6.0.4) - System.Text.Json (>= 8.0.5) - NuGet.Protocol (6.13.2) - NuGet.Packaging (>= 6.13.2) - System.Text.Json (>= 8.0.5) - NuGet.Versioning (6.13.2) - Octokit (14.0) - System.Buffers (4.6.1) - System.Collections.Immutable (9.0.4) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Configuration.ConfigurationManager (9.0.4) - System.Security.Cryptography.ProtectedData (>= 9.0.4) - System.Formats.Asn1 (9.0.4) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.5) - System.IO.Pipelines (9.0.4) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.5) - System.Threading.Tasks.Extensions (>= 4.5.4) - System.Memory (4.6.3) - System.Reactive (6.0.1) - System.Runtime.CompilerServices.Unsafe (6.1.2) - System.Security.AccessControl (6.0.1) - System.Security.Cryptography.Cng (5.0) - System.Formats.Asn1 (>= 5.0) - System.Security.Cryptography.Pkcs (9.0.4) - Microsoft.Bcl.Cryptography (>= 9.0.4) - System.Formats.Asn1 (>= 9.0.4) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.ProtectedData (9.0.4) - System.Memory (>= 4.5.5) - System.Security.Principal.Windows (5.0) - System.Text.Encoding.CodePages (9.0.4) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Encodings.Web (9.0.4) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Json (9.0.4) - Microsoft.Bcl.AsyncInterfaces (>= 9.0.4) - System.Buffers (>= 4.5.1) - System.IO.Pipelines (>= 9.0.4) - System.Memory (>= 4.5.5) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Encodings.Web (>= 9.0.4) - System.Threading.Tasks.Extensions (>= 4.5.4) - System.Threading.Tasks.Extensions (4.6.3) diff --git a/build.sh b/build.sh deleted file mode 100755 index 2fc81634..00000000 --- a/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -if test "$OS" = "Windows_NT" -then - cmd /C build.cmd -else - dotnet tool restore - dotnet paket restore - dotnet fake run build.fsx $@ -fi \ No newline at end of file diff --git a/content/img/github-blue.png b/content/img/github-blue.png new file mode 100644 index 00000000..57432a03 Binary files /dev/null and b/content/img/github-blue.png differ diff --git a/content/img/github.png b/content/img/github.png new file mode 100644 index 00000000..5d48d83f Binary files /dev/null and b/content/img/github.png differ diff --git a/content/style.css b/content/style.css new file mode 100644 index 00000000..a765e369 --- /dev/null +++ b/content/style.css @@ -0,0 +1,226 @@ +@import url(https://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono|Open+Sans:400,600,700); + +/*-------------------------------------------------------------------------- + Formatting for F# code snippets +/*--------------------------------------------------------------------------*/ + +/* strings --- and stlyes for other string related formats */ +span.s { color:#E0E268; } +/* printf formatters */ +span.pf { color:#E0C57F; } +/* escaped chars */ +span.e { color:#EA8675; } + +/* identifiers --- and styles for more specific identifier types */ +span.i { color:#d1d1d1; } +/* type or module */ +span.t { color:#43AEC6; } +/* function */ +span.f { color:#e1e1e1; } +/* DU case or active pattern */ +span.p { color:#4ec9b0; } + +/* keywords */ +span.k { color:#FAB11D; } +/* comment */ +span.c { color:#808080; } +/* operators */ +span.o { color:#af75c1; } +/* numbers */ +span.n { color:#96C71D; } +/* line number */ +span.l { color:#80b0b0; } +/* mutable var or ref cell */ +span.v { color:#d1d1d1; font-weight: bold; } +/* inactive code */ +span.inactive { color:#808080; } +/* preprocessor */ +span.prep { color:#af75c1; } +/* fsi output */ +span.fsi { color:#808080; } + +/* omitted */ +span.omitted { + background:#3c4e52; + border-radius:5px; + color:#808080; + padding:0px 0px 1px 0px; +} +/* tool tip */ +div.tip { + background:#475b5f; + border-radius:4px; + font:11pt 'Droid Sans', arial, sans-serif; + padding:6px 8px 6px 8px; + display:none; + color:#d1d1d1; + pointer-events:none; +} +table.pre pre { + padding:0px; + margin:0px; + border:none; +} +table.pre, pre.fssnip, pre { + line-height:13pt; + border:1px solid #d8d8d8; + border-collapse:separate; + white-space:pre; + font: 9pt 'Droid Sans Mono',consolas,monospace; + width:90%; + margin:10px 20px 20px 20px; + background-color:#212d30; + padding:10px; + border-radius:5px; + color:#d1d1d1; + max-width: none; +} +pre.fssnip code { + font: 9pt 'Droid Sans Mono',consolas,monospace; +} +table.pre pre { + padding:0px; + margin:0px; + border-radius:0px; + width: 100%; +} +table.pre td { + padding:0px; + white-space:normal; + margin:0px; +} +table.pre td.lines { + width:30px; +} + +/*-------------------------------------------------------------------------- + Formatting for page & standard document content +/*--------------------------------------------------------------------------*/ + +body { + font-family: 'Open Sans', serif; + padding-top: 0px; + padding-bottom: 40px; +} + +pre { + word-wrap: inherit; +} + +/* Format the heading - nicer spacing etc. */ +.masthead { + overflow: hidden; +} +.masthead .muted a { + text-decoration:none; + color:#999999; +} +.masthead ul, .masthead li { + margin-bottom:0px; +} +.masthead .nav li { + margin-top: 15px; + font-size:110%; +} +.masthead h3 { + margin-bottom:5px; + font-size:170%; +} +hr { + margin:0px 0px 20px 0px; +} + +/* Make table headings and td.title bold */ +td.title, thead { + font-weight:bold; +} + +/* Format the right-side menu */ +#menu { + margin-top:50px; + font-size:11pt; + padding-left:20px; +} + +#menu .nav-header { + font-size:12pt; + color:#606060; + margin-top:20px; +} + +#menu li { + line-height:25px; +} + +/* Change font sizes for headings etc. */ +#main h1 { font-size: 26pt; margin:10px 0px 15px 0px; font-weight:400; } +#main h2 { font-size: 20pt; margin:20px 0px 0px 0px; font-weight:400; } +#main h3 { font-size: 14pt; margin:15px 0px 0px 0px; font-weight:600; } +#main p { font-size: 11pt; margin:5px 0px 15px 0px; } +#main ul { font-size: 11pt; margin-top:10px; } +#main li { font-size: 11pt; margin: 5px 0px 5px 0px; } +#main strong { font-weight:700; } + +/*-------------------------------------------------------------------------- + Formatting for API reference +/*--------------------------------------------------------------------------*/ + +.type-list .type-name, .module-list .module-name { + width:25%; + font-weight:bold; +} +.member-list .member-name { + width:35%; +} +#main .xmldoc h2 { + font-size:14pt; + margin:10px 0px 0px 0px; +} +#main .xmldoc h3 { + font-size:12pt; + margin:10px 0px 0px 0px; +} +.github-link { + float:right; + text-decoration:none; +} +.github-link img { + border-style:none; + margin-left:10px; +} +.github-link .hover { display:none; } +.github-link:hover .hover { display:block; } +.github-link .normal { display: block; } +.github-link:hover .normal { display: none; } + +/*-------------------------------------------------------------------------- + Links +/*--------------------------------------------------------------------------*/ + +h1 a, h1 a:hover, h1 a:focus, +h2 a, h2 a:hover, h2 a:focus, +h3 a, h3 a:hover, h3 a:focus, +h4 a, h4 a:hover, h4 a:focus, +h5 a, h5 a:hover, h5 a:focus, +h6 a, h6 a:hover, h6 a:focus { color : inherit; text-decoration : inherit; outline:none } + +/*-------------------------------------------------------------------------- + Additional formatting for the homepage +/*--------------------------------------------------------------------------*/ + +#nuget { + margin-top:20px; + font-size: 11pt; + padding:20px; +} + +#nuget pre { + font-size:11pt; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; + background: #404040; + border-style:none; + color: #e0e0e0; + margin-top:15px; +} diff --git a/content/style.css.bak b/content/style.css.bak new file mode 100644 index 00000000..367e72ae --- /dev/null +++ b/content/style.css.bak @@ -0,0 +1,193 @@ +@import url(http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono|Open+Sans:400,600,700); + +/*-------------------------------------------------------------------------- + Formatting for F# code snippets +/*--------------------------------------------------------------------------*/ + +/* identifier */ +span.i { color:#d1d1d1; } +/* string */ +span.s { color:#d4b43c; } +/* keywords */ +span.k { color:#4e98dc; } +/* comment */ +span.c { color:#96C71D; } +/* operators */ +span.o { color:#af75c1; } +/* numbers */ +span.n { color:#96C71D; } +/* line number */ +span.l { color:#80b0b0; } + +/* inactive code */ +span.inactive { color:#808080; } +/* preprocessor */ +span.prep { color:#af75c1; } +/* fsi output */ +span.fsi { color:#808080; } + +/* omitted */ +span.omitted { + background:#3c4e52; + border-radius:5px; + color:#808080; + padding:0px 0px 1px 0px; +} +/* tool tip */ +div.tip { + background:#475b5f; + border-radius:4px; + font:11pt 'Droid Sans', arial, sans-serif; + padding:6px 8px 6px 8px; + display:none; + color:#d1d1d1; +} +table.pre pre { + padding:0px; + margin:0px; + border:none; +} +table.pre, pre.fssnip, pre { + line-height:13pt; + border:1px solid #d8d8d8; + border-collapse:separate; + white-space:pre; + font: 9pt 'Droid Sans Mono',consolas,monospace; + width:90%; + margin:10px 20px 20px 20px; + background-color:#212d30; + padding:10px; + border-radius:5px; + color:#d1d1d1; +} +table.pre pre { + padding:0px; + margin:0px; + border-radius:0px; + width: 100%; +} +table.pre td { + padding:0px; + white-space:normal; + margin:0px; +} +table.pre td.lines { + width:30px; +} + +/*-------------------------------------------------------------------------- + Formatting for page & standard document content +/*--------------------------------------------------------------------------*/ + +body { + font-family: 'Open Sans', serif; + padding-top: 0px; + padding-bottom: 40px; +} + +pre { + word-wrap: inherit; +} + +/* Format the heading - nicer spacing etc. */ +.masthead { + overflow: hidden; +} +.masthead ul, .masthead li { + margin-bottom:0px; +} +.masthead .nav li { + margin-top: 15px; + font-size:110%; +} +.masthead h3 { + margin-bottom:5px; + font-size:170%; +} +hr { + margin:0px 0px 20px 0px; +} + +/* Make table headings and td.title bold */ +td.title, thead { + font-weight:bold; +} + +/* Format the right-side menu */ +#menu { + margin-top:50px; + font-size:11pt; + padding-left:20px; +} + +#menu .nav-header { + font-size:12pt; + color:#606060; + margin-top:20px; +} + +#menu li { + line-height:25px; +} + +/* Change font sizes for headings etc. */ +#main h1 { font-size: 26pt; margin:10px 0px 15px 0px; font-weight:400; } +#main h2 { font-size: 20pt; margin:20px 0px 0px 0px; font-weight:400; } +#main h3 { font-size: 14pt; margin:15px 0px 0px 0px; font-weight:600; } +#main p { font-size: 11pt; margin:5px 0px 15px 0px; } +#main ul { font-size: 11pt; margin-top:10px; } +#main li { font-size: 11pt; margin: 5px 0px 5px 0px; } +#main strong { font-weight:700; } + +/*-------------------------------------------------------------------------- + Formatting for API reference +/*--------------------------------------------------------------------------*/ + +.type-list .type-name, .module-list .module-name { + width:25%; + font-weight:bold; +} +.member-list .member-name { + width:35%; +} +#main .xmldoc h2 { + font-size:14pt; + margin:10px 0px 0px 0px; +} +#main .xmldoc h3 { + font-size:12pt; + margin:10px 0px 0px 0px; +} +.github-link { + float:right; + text-decoration:none; +} +.github-link img { + border-style:none; + margin-left:10px; +} +.github-link .hover { display:none; } +.github-link:hover .hover { display:block; } +.github-link .normal { display: block; } +.github-link:hover .normal { display: none; } + +/*-------------------------------------------------------------------------- + Additional formatting for the homepage +/*--------------------------------------------------------------------------*/ + +#nuget { + margin-top:20px; + font-size: 11pt; + padding:20px; +} + +#nuget pre { + font-size:11pt; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; + background: #404040; + border-style:none; + color: #e0e0e0; + margin-top:15px; +} \ No newline at end of file diff --git a/content/style_light.css b/content/style_light.css new file mode 100644 index 00000000..488f3b72 --- /dev/null +++ b/content/style_light.css @@ -0,0 +1,227 @@ +@import url(https://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono|Open+Sans:400,600,700); + +/*-------------------------------------------------------------------------- + Formatting for F# code snippets +/*--------------------------------------------------------------------------*/ + +/* identifier */ +span.i { color:#000000; } +/* string */ +span.s { color:#a31515; } +/* keywords */ +span.k { color:#0000ff; } +/* comment */ +span.c { color:#008000; } +/* operators */ +span.o { color:#000000; } +/* numbers */ +span.n { color:#000000; } +/* line number */ +span.l { color:#96c2cd; } +/* type or module */ +span.t { color:#2b91af; } +/* function */ +span.f { color:#0000a0; } +/* DU case or active pattern */ +span.p { color:#800080; } +/* mutable var or ref cell */ +span.v { color:#000000; font-weight: bold; } +/* printf formatters */ +span.pf { color:#2b91af; } +/* escaped chars */ +span.e { color:#ff0080; } +/* mutable var or ref cell */ + + +/* inactive code */ +span.inactive { color:#808080; } +/* preprocessor */ +span.prep { color:#0000ff; } +/* fsi output */ +span.fsi { color:#808080; } + +/* omitted */ +span.omitted { + background:#3c4e52; + border-radius:5px; + color:#808080; + padding:0px 0px 1px 0px; +} +/* tool tip */ +div.tip { + background:#e5e5e5; + border-radius:4px; + font:9pt 'Droid Sans', arial, sans-serif; + padding:6px 8px 6px 8px; + display:none; + color:#000000; + pointer-events:none; +} +table.pre pre { + padding:0px; + margin:0px; + border:none; +} +table.pre, pre.fssnip, pre { + line-height:13pt; + border:1px solid #d8d8d8; + border-collapse:separate; + white-space:pre; + font: 10pt consolas,monospace; + width:90%; + margin:10px 20px 20px 20px; + background-color:#fdfdfd; + padding:10px; + border-radius:5px; + color:#000000; + max-width: none; +} +pre.fssnip code { + font: 9pt 'Droid Sans Mono',consolas,monospace; +} +table.pre pre { + padding:0px; + margin:0px; + border-radius:0px; + width: 100%; +} +table.pre td { + padding:0px; + white-space:normal; + margin:0px; +} +table.pre td.lines { + width:30px; +} + +/*-------------------------------------------------------------------------- + Formatting for page & standard document content +/*--------------------------------------------------------------------------*/ + +body { + font-family: 'Open Sans', serif; + padding-top: 0px; + padding-bottom: 40px; +} + +pre { + word-wrap: inherit; +} + +/* Format the heading - nicer spacing etc. */ +.masthead { + overflow: hidden; +} +.masthead .muted a { + text-decoration:none; + color:#999999; +} +.masthead ul, .masthead li { + margin-bottom:0px; +} +.masthead .nav li { + margin-top: 15px; + font-size:110%; +} +.masthead h3 { + margin-bottom:5px; + font-size:170%; +} +hr { + margin:0px 0px 20px 0px; +} + +/* Make table headings and td.title bold */ +td.title, thead { + font-weight:bold; +} + +/* Format the right-side menu */ +#menu { + margin-top:50px; + font-size:11pt; + padding-left:20px; +} + +#menu .nav-header { + font-size:12pt; + color:#606060; + margin-top:20px; +} + +#menu li { + line-height:25px; +} + +/* Change font sizes for headings etc. */ +#main h1 { font-size: 26pt; margin:10px 0px 15px 0px; font-weight:400; } +#main h2 { font-size: 20pt; margin:20px 0px 0px 0px; font-weight:400; } +#main h3 { font-size: 14pt; margin:15px 0px 0px 0px; font-weight:600; } +#main p { font-size: 11pt; margin:5px 0px 15px 0px; } +#main ul { font-size: 11pt; margin-top:10px; } +#main li { font-size: 11pt; margin: 5px 0px 5px 0px; } +#main strong { font-weight:700; } + +/*-------------------------------------------------------------------------- + Formatting for API reference +/*--------------------------------------------------------------------------*/ + +.type-list .type-name, .module-list .module-name { + width:25%; + font-weight:bold; +} +.member-list .member-name { + width:35%; +} +#main .xmldoc h2 { + font-size:14pt; + margin:10px 0px 0px 0px; +} +#main .xmldoc h3 { + font-size:12pt; + margin:10px 0px 0px 0px; +} +.github-link { + float:right; + text-decoration:none; +} +.github-link img { + border-style:none; + margin-left:10px; +} +.github-link .hover { display:none; } +.github-link:hover .hover { display:block; } +.github-link .normal { display: block; } +.github-link:hover .normal { display: none; } + +/*-------------------------------------------------------------------------- + Links +/*--------------------------------------------------------------------------*/ + +h1 a, h1 a:hover, h1 a:focus, +h2 a, h2 a:hover, h2 a:focus, +h3 a, h3 a:hover, h3 a:focus, +h4 a, h4 a:hover, h4 a:focus, +h5 a, h5 a:hover, h5 a:focus, +h6 a, h6 a:hover, h6 a:focus { color : inherit; text-decoration : inherit; outline:none } + +/*-------------------------------------------------------------------------- + Additional formatting for the homepage +/*--------------------------------------------------------------------------*/ + +#nuget { + margin-top:20px; + font-size: 11pt; + padding:20px; +} + +#nuget pre { + font-size:11pt; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; + background: #404040; + border-style:none; + color: #e0e0e0; + margin-top:15px; +} diff --git a/content/tips.js b/content/tips.js new file mode 100644 index 00000000..196d4f27 --- /dev/null +++ b/content/tips.js @@ -0,0 +1,46 @@ +var currentTip = null; +var currentTipElement = null; + +function hideTip(evt, name, unique) { + var el = document.getElementById(name); + el.style.display = "none"; + currentTip = null; +} + +function findPos(obj) { + // no idea why, but it behaves differently in webbrowser component + if (window.location.search == "?inapp") + return [obj.offsetLeft + 10, obj.offsetTop + 30]; + + var curleft = 0; + var curtop = obj.offsetHeight; + while (obj) { + curleft += obj.offsetLeft; + curtop += obj.offsetTop; + obj = obj.offsetParent; + }; + return [curleft, curtop]; +} + +function hideUsingEsc(e) { + if (!e) { e = event; } + hideTip(e, currentTipElement, currentTip); +} + +function showTip(evt, name, unique, owner) { + document.onkeydown = hideUsingEsc; + if (currentTip == unique) return; + currentTip = unique; + currentTipElement = name; + + var pos = findPos(owner ? owner : (evt.srcElement ? evt.srcElement : evt.target)); + var posx = pos[0]; + var posy = pos[1]; + + var el = document.getElementById(name); + var parent = (document.documentElement == null) ? document.body : document.documentElement; + el.style.position = "absolute"; + el.style.left = posx + "px"; + el.style.top = posy + "px"; + el.style.display = "block"; +} \ No newline at end of file diff --git a/docs/AppSettingsProvider.fsx b/docs/AppSettingsProvider.fsx deleted file mode 100644 index 81c17124..00000000 --- a/docs/AppSettingsProvider.fsx +++ /dev/null @@ -1,79 +0,0 @@ -(*** hide ***) -#I "../src/FSharp.Configuration.Runtime/bin/Release/netstandard2.0" - -(** -AppSettingsProvider -============================ - -This tutorial shows the use of the AppSettings type provider. -It allows to access app.config files in a strongly typed way. - -Using App.Settings from F# scripts ----------------------------------- - -Create a config file called `app.config` like this: - - [lang=xml] - - - - - - - - - - - - - - - - - -Reference the type provider assembly and configure it to use your app.settings file: - -*) - -#r "FSharp.Configuration.Runtime.dll" -#r "System.Configuration.dll" - -open FSharp.Configuration - -type Settings = AppSettings<"app.config"> - -(** - -Now you have typed access to your app.config files: - -![alt text](img/AppSettingsProvider.png "Intellisense for the App.Settings") - -Reading and writing from the config ------------------------------------ - -*) - -// read a value from the config -Settings.Test2 -// [fsi:val it : string = "Some Test Value 5"] - -// verify the file name -Settings.ConfigFileName -// [fsi:val it : string = "C:\Code\FSharp.Configuration\docs\content\app.config"] - -// read a connection string from the config -Settings.ConnectionStrings.Test -// [fsi:val it : string = "Server=.;Database=SomeDatabase;Integrated Security=true"] - -(** - -Using AppSettingsProvider in *.fsx-script ------------------------------------------ - -The default executable is the current project .config. (Which is Fsi.exe.config in F# interactive.) -How ever, if you want to modify the configuration of some other application, you can do with SelectExecutableFile-method: -*) - -let path = System.IO.Path.Combine [| __SOURCE_DIRECTORY__; "bin"; "myProject.exe" |] -Settings.SelectExecutableFile path -Settings.Test2 diff --git a/docs/Config.yaml b/docs/Config.yaml deleted file mode 100644 index 2e2b893c..00000000 --- a/docs/Config.yaml +++ /dev/null @@ -1,20 +0,0 @@ -Mail: - Smtp: - Host: smtp.sample.com - Port: 443 - User: user1 - Password: pass1 - Pop3: - Host: pop3.sample.com - Port: 331 - User: user2 - Password: pass2 - CheckPeriod: 00:01:00 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 -DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:05:00 \ No newline at end of file diff --git a/docs/IniTypeProvider.fsx b/docs/IniTypeProvider.fsx deleted file mode 100644 index 5a02786e..00000000 --- a/docs/IniTypeProvider.fsx +++ /dev/null @@ -1,43 +0,0 @@ -(*** hide ***) -#I "../src/FSharp.Configuration.Runtime/bin/Release/netstandard2.0" - -(** -IniTypeProvider -===================== - -This tutorial shows the use of the Ini type provider. - -Using Ini type provider from F# scripts ---------------------------------------- - -Create a `Sample.ini` file like this: - - [lang=ini] - [Section1] - intSetting = 2 - stringSetting = stringValue - ; you are free to add comments like this. They are only valid if they begin a new line - [Section2] - ; float settings are also supported - floatSetting = 1.23 - boolSetting = true - anotherBoolSetting = False - ; settings with no value are OK - emptySetting = - stringWithSemiColonValue = DataSource=foo@bar;UserName=blah - -Reference the type provider assembly and configure it to use your ini file: -*) - -#r "FSharp.Configuration.Runtime.dll" - -open FSharp.Configuration - -// Let the type provider do it's work -type IniFileType = IniFile<"Sample.ini "> - -// read a value from the config -IniFileType.Section1.intSetting - -// [fsi:val it : int = ] -// [fsi: 2] diff --git a/docs/ResXProvider.fsx b/docs/ResXProvider.fsx deleted file mode 100644 index 97f8a923..00000000 --- a/docs/ResXProvider.fsx +++ /dev/null @@ -1,38 +0,0 @@ -(*** hide ***) -#I "../src/FSharp.Configuration.Runtime/bin/Release/netstandard2.0" - -(** -ResXProvider -============================ - -This tutorial shows the use of the ResX type provider. -It allows typed access to .resx files. - -Create a resource file in Visual Studio like: - -![alt text](img/Resource1.png "Resources") - -Reference the type provider assembly and configure it to use your Resource1.resx file: - -*) - -// reference the type provider dll -#r "FSharp.Configuration.Runtime.dll" - -open FSharp.Configuration - -// Let the type provider do it's work -type Resource1 = ResXProvider - -(** -Now you have typed access to .resx files: - -![alt text](img/ResXProvider.png "Intellisense for .resx files") - -Reading from the resx file --------------------------- - -*) - -Resource1.Greetings -// [fsi:val it : string = "Hello World!"] diff --git a/docs/Resource1.resx b/docs/Resource1.resx deleted file mode 100644 index 40bf340b..00000000 --- a/docs/Resource1.resx +++ /dev/null @@ -1,2869 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Welcome! - - - - - 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 - 2c7c07xzw3Xh03jVL30nPwke+3jo0s8XGn691vqbjaY/Gzh+J/b6ZvrgZvad9ckr15ba74zUrYy0rt4N - fXXd97P72b++n/v7bdOfZ47c8zy76z94Z7HnLyKX18MXZpJnFg2P9+t/NK1/ZLH3exPyH02ZfrIQeH5n - 9I2PJw9+1v/GvcSL18OP74Yevar7l4vyfzrf+o+nGv6nsfb/fXbyzO+2av9u4NhHc5U/21b8Ra7hjvPC - 4mDvvWnj/RnzvUXXra3IrauZGzcGru1ml66PLFwfG78+OXhjOgutJNJQmsqQ8enpwe2pAWBnevDa3MjN - xfHba9P3Nmfu31j+/P3Nn39+/edf3ISm0P2Pt96/v/HxpztgmY/e3bqxPrs20Q81E+r/1mAG1LADyhhK - IGTarjhzt2DeLScUHrZqkVtPlMTzZNEvGMUUy4X6ReoRACQiKQGYXESzELkws/CtHnDKXEoUiriIkaxj - pOsbcXkRSRNEMeCX2VSM+CUdh3Q6E0ezMLmAWVAuk6k4k0s+YAkHQSuQDoUDuOwIlzViOkjXSeMmLzm3 - N+PJb+xy4FzlS+cvv3Dx8otl5S9frnilrOIloLzi5YrKVyqrIH3pStULlyufv1T5HFBW9fzl6hcu1zx3 - pfq5iqrnqmpeqK1/uaHh1SZKcz2hpe7V1vrX2hrebGt4vb3ujdb6N1rq3+5qPa7oOqvuvaDpPq/uOKvt - OGvoPG/uumjrvuTovezqveKWVfr7qoOK2qiqIalpBcuQJUVqMkEGlyzifF9wSkzdGdF2hDXtQXVbWNsR - 1XWSg+tpiymkboNCv6bNq2kGPOoWr6rFr2yFWCYq70jIu5N93ZCCg8JqcBNpHBFBaBRIUq1MqBQJtTym - 6gNQKFGNLKQmRNR9cbUcnJJSE4h9sBfZoIrplRG9Coga1EDCbABSJl3KrE0ZVSlTH5I0K5ImFQBNpwzp - lzEMWUzjVvOEVT/l0I86teMh40BQF/er/O7uRELX1HampfeiytKi9XZ3O9uuyC8dbz9eLqsqr29qrlOr - OwNe1YS+erTnnWH14WXNm1uWwzcNb13VvrbmOnEjV/Wl+fWrroMfBN/8IPDCxuqlz0cP3kg+v9z/5vrQ - yfWh8uUl/c2vNv/tr+7+zZ998je//fzf/8Vn/9dffvz/+/tPf//J2H9Y6v3NTN2vl9r+4n3b/7nc9UXo - +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 - EkVPiwZiYmXEgYSInRnPzU4E8P9C5GVZnsmMh/HXyUgAcNLjAaDBA8OQrCSgCegLIA5bdwDAXSvgYevP - 2ag4ACstHjk10ZJwcTNSBJkpwDWS7BQROlmCTpShk+TZSYqspPLMZFlmiiIjuQKVUBETrvLzVjk5Vp4+ - ozx8THHgiPzQMe7BI8R9Bwp278rcvjV9+5b8/buwh/cWHtyVcXBn7MHtMWf3Jnofi/M/nJt8nkcM4JZ6 - ELPOxHh+5/v/MPYXwHUja6Mu3GItZjPHDjMzJ47ZTmLHiWNmZmZmZogpzOjEEGbmDOOejd93zrlw6v71 - V9364W3JWePJ7O/UrXqqq9VqaS1nRs9631artUDtvGKhy6Idux32+s1NSVzdnrJ8KH/D+UrnK+W7LmWt - OZ20+ET6sovF66eK146nzjsdZjKQu+BK+apbVeumer0fnw37dC78m0sh347sftS+5Gq13cnupTfOOr/q - XjtZPvdkgf1wiqqlf+0ElsuOp8Pr751yeTHo+qDH897wwTcFa0a79x6t3pa9X2LnxyiDWG2swiKY0KSo - rSIQk8bwOTRXxsjalJb9WscBjeOAymFINXtEM/e4duFpk6Un9YvPmC67aLniivWKa1YrxixXTFqtumO9 - 8pnN0te2i1/bzHtuPuuZ3vKV1vyN2vBOofpGrftOof1OpvlBYfhJbfG9yuIlqZxC5FmELlP0fZnijUb3 - jUb/g0r/k8rws9rkB5XJTwbrv1g6gJh+tnL4xdr+ZxvbH2xs/rVk6T+XL/vHiuX/WLXiX+s2/I9tO/43 - N/d/7dv7a2jQtxkJb6pzH7dV3OqqBrlM9Tbf7m251Vt/q7f2Zn/dzYHGqcGmqcGWW0eAtltDHTeHO7BQ - RjtvjLSPj7RPDLXhtzLidzm2CW9xbLnR2wyMdzeJ3OhqNAKbE91Nkz3NEz24j5Hrfc3Xe1tv9LXd6BPe - 0yjqaQDfAsc3rQa7JwY7AfCXiNCCEV0mvt0RT8YRJuaIc3P+OF34d8SJxZd78HOSl7rbLnbhRRsutjfj - ZWLamvACMS0NZ5vrZ3KmCa/eMIP6040NwEmBE03TCI9TNwLHGxuPNTQAR+vrj9bWYeoaR+vqRmsbUOSO - dUDUzrVRO9dH71oXvWtD1O51MbvxOzHi9myOddkY57olznUTlLHumxPctyV6bE3y3JbsuSXFc3uK19ZU - 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 - - - - Hello World! - Greetings - - \ No newline at end of file diff --git a/docs/Sample.ini b/docs/Sample.ini deleted file mode 100644 index 6bfce3e4..00000000 --- a/docs/Sample.ini +++ /dev/null @@ -1,10 +0,0 @@ -[Section1] - intSetting = 2 - stringSetting = stringValue - ;you are free to add comments like this - [Section2] - floatSetting = 1.23 ; float settings are also supported - boolSetting = true - anotherBoolSetting = False - ; settings with no value are OK - emptySetting = \ No newline at end of file diff --git a/docs/YamlConfigProvider.fsx b/docs/YamlConfigProvider.fsx deleted file mode 100644 index 9e861dbe..00000000 --- a/docs/YamlConfigProvider.fsx +++ /dev/null @@ -1,273 +0,0 @@ -(*** hide ***) -#I "../src/FSharp.Configuration.Runtime/bin/Release/netstandard2.0" - -(** -YamlConfigProvider -============================ - -This tutorial shows the use of the YamlConfig type provider. - -It's generated, hence the types can be used from any .NET language, not only from F# code. - -It can produce mutable properties for Yaml scalars (leafs), which means the object tree can be loaded, modified and saved into the original file or a stream as Yaml text. Adding new properties is not supported, however lists can be replaced with new ones atomically. This is intentional, see below. - -The main purpose for this is to be used as part of a statically typed application configuration system which would have a single master source of configuration structure - a Yaml file. Then any F#/C# project in a solution will able to use the generated read-only object graph. - -When you push a system into production, you can modify the configs with scripts written in F# in safe, statically typed way with full intellisense. - -Using Yaml type provider from F# scripts ----------------------------------------- - -Create a `Config.yaml` file like this: - - [lang=yaml] - Mail: - Smtp: - Host: smtp.sample.com - Port: 25 - User: user1 - Password: pass1 - Pop3: - Host: pop3.sample.com - Port: 110 - User: user2 - Password: pass2 - CheckPeriod: 00:01:00 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 - DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:05:00 - -Reference the type provider assembly and configure it to use your yaml file: -*) - -#r "FSharp.Configuration.Runtime.dll" - -open FSharp.Configuration - -// Let the type provider do it's work -type TestConfig = YamlConfig<"Config.yaml"> -let config = TestConfig() - -(** - -![alt text](img/YamlConfigProvider.png "Intellisense for YamlConfig") - -Reading and writing from the config ------------------------------------ - -*) - -// read a value from the config -config.DB.ConnectionString - -// [fsi:val it : string = ] -// [fsi: "Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;"] - -// change a value in the config -config.DB.ConnectionString <- "Data Source=server2;" -config.DB.ConnectionString -// [fsi:val it : string = "Data Source=server2;"] - -// write the settings back to a yaml file -config.Save(__SOURCE_DIRECTORY__ + @"\ChangedConfig.yaml") - -(** -Using configuration from C# ---------------------------- -Let's create a F# project named `Config`, add reference to `FSharp.Configuration.dll`, then add the following `Config.yaml` file: - - [lang=yaml] - Mail: - Smtp: - Host: smtp.sample.com - Port: 25 - User: user1 - Password: pass1 - Pop3: - Host: pop3.sample.com - Port: 110 - User: user2 - Password: pass2 - CheckPeriod: 00:01:00 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 - DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:05:00 - -Declare a YamlConfig type and point it to the file above: -*) -open FSharp.Configuration - -type Config = YamlConfig<"Config.yaml"> -(** -Compile it. Now we have assembly `Config.dll` containing generated types with the default values "baked" into them (actually the values are set in the type constructors). - -Let's test it in a C# project. Create a Console Application, add reference to `FSharp.Configuration.dll` and our F# `Config` project. - -First, we'll try to create an instance of our generated `Config` type and check that all the values are there: - - [lang:csharp] - var config = new Config.Config(); - Console.WriteLine(string.Format("Default configuration:\n{0}", config)); - -It should outputs this: - - [lang:yaml] - Default settings: - Mail: - Smtp: - Host: smtp.sample.com - Port: 25 - User: user1 - Password: pass1 - Pop3: - Host: pop3.sample.com - Port: 110 - User: user2 - Password: pass2 - CheckPeriod: 00:01:00 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 - DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:05:00 - -And, of course, we now able to access all the config data in a nice typed way like this: -*) -let pop3host = config.Mail.Pop3.Host -// [fsi:val pop3host : string = "pop3.sample.com"] - -let dbTimeout = config.DB.DefaultTimeout -// [fsi:val dbTimeout : System.TimeSpan = 00:05:00] - -(** -It's not very interesting so far, as the main purpose of any configuration is to be loaded from a config file at runtime. -So, add the following `RuntimeConfig.yaml` into the C# console project: - - [lang:yaml] - Mail: - Smtp: - Host: smtp2.sample.com - Port: 26 - User: user11 - Password: pass11 - Pop3: - Host: pop32.sample.com - Port: 111 - User: user2 - Password: pass2 - CheckPeriod: 00:02:00 - ErrorNotificationRecipients: - - user11@sample.com - - user22@sample.com - - new_user@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 - DB: - ConnectionString: Data Source=server2;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:10:00 - -We changed almost every setting here. Update our default config with this file: - - [lang:csharp] - // ...as before - config.Load(@"RuntimeConfig.yaml"); - Console.WriteLine(string.Format("Loaded config:\n{0}", config)); - Console.ReadLine(); - -The output should be: - - [lang:yaml] - Loaded settings: - Mail: - Smtp: - Host: smtp2.sample.com - Port: 26 - User: user11 - Password: pass11 - Pop3: - Host: pop32.sample.com - Port: 111 - User: user2 - Password: pass2 - CheckPeriod: 00:02:00 - ErrorNotificationRecipients: - - user11@sample.com - - user22@sample.com - - new_user@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 - DB: - ConnectionString: Data Source=server2;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:10:00 - -Great! Values have been updated properly, the new user has been added into `ErrorNotificationRecipients` list. - -The Changed event ------------------ -Every type in the hierarchy contains `Changed: EventHandler` event. It's raised when an instance is updated (`Load`ed), not when the writable properties are assigned. - -Let's show the event in action: -*) - -// ...reference assemblies and open namespaces as before... -let c = Config() - -let log name _ = - printfn "%s changed!" name -// add handlers for the root and all down the Mail hierarchy -c.Changed.Add(log "ROOT") -c.Mail.Changed.Add(log "Mail") -c.Mail.Smtp.Changed.Add(log "Mail.Smtp") -c.Mail.Pop3.Changed.Add(log "Mail.Pop3") -// as a marker, add a handler for DB -c.DB.Changed.Add(log "DB") - -c.LoadText - """ -Mail: - Smtp: - Host: smtp.sample.com - Port: 25 - User: => first changed value <= - Password: => second changed value on the same level (in the same Map) <= - Ssl: true - Pop3: - Host: pop3.sample.com - Port: 110 - User: user2 - Password: pass2 - CheckPeriod: 00:01:00 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com - ErrorMessageId: 9d165087-9b74-4313-ab90-89be897d3d93 -DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - DefaultTimeout: 00:05:00 -""" -|> ignore - -(** -The output is as follows: - - [lang:text] - ROOT changed! - Mail changed! - Mail.Smtp changed! - -So, we can see that all the events have been raised from the root's one down to the most close to the changed value one. And note that there're no duplicates - even though two value was changed in Mail.Smpt map, its Changed event has been raised only once. -*) diff --git a/docs/_template.html b/docs/_template.html deleted file mode 100644 index 80f68bd7..00000000 --- a/docs/_template.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - {{fsdocs-page-title}} - - - - - - - - - - - - - - - - - - - - {{fsdocs-watch-script}} - - - - -
- -
-
- {{fsdocs-content}} - {{fsdocs-tooltips}} -
- - - - - - - - -
- - - \ No newline at end of file diff --git a/docs/app.config b/docs/app.config deleted file mode 100644 index 63185213..00000000 --- a/docs/app.config +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/index.fsx b/docs/index.fsx deleted file mode 100644 index c2449b57..00000000 --- a/docs/index.fsx +++ /dev/null @@ -1,67 +0,0 @@ -(*** hide ***) -#I "../src/FSharp.Configuration.Runtime/bin/Release/netstandard2.0" - -(** -FSharp.Configuration -=========================== - -The FSharp.Configuration project contains type providers for the configuration of .NET projects. - -* [AppSettings](AppSettingsProvider.html) -* [ResX](ResXProvider.html) -* [Yaml](YamlConfigProvider.html) -* [Ini](IniTypeProvider.html) - -
-
-
-
-

The library can be installed from NuGet:

-
PM> Install-Package FSharp.Configuration
-
-
-
-
- - -Example -------- - -This example demonstrates the use of the AppSettings type provider: - -*) -// reference the type provider dll -#r "FSharp.Configuration.Runtime.dll" -#r "System.Configuration.dll" - -open FSharp.Configuration - -// Let the type provider do it's work -type Settings = AppSettings<"app.config"> - -Settings.ConfigFileName -Settings.Test2 -// [fsi:val it : string = "Some Test Value 5"] - -(** - -![alt text](img/AppSettingsProvider.png "Intellisense for the App.Settings") - -Contributing and copyright --------------------------- - -The project is hosted on [GitHub][gh] where you can [report issues][issues], fork -the project and submit pull requests. If you're adding new public API, please also -consider adding [samples][content] that can be turned into a documentation. You might -also want to read [library design notes][readme] to understand how it works. - -The library is available under Public Domain license, which allows modification and -redistribution for both commercial and non-commercial purposes. For more information see the -[License file][license] in the GitHub repository. - - [content]: https://github.com/fsprojects/FSharp.Configuration/tree/master/docs/content - [gh]: https://github.com/fsprojects/FSharp.Configuration - [issues]: https://github.com/fsprojects/FSharp.Configuration/issues - [readme]: https://github.com/fsprojects/FSharp.Configuration/blob/master/README.md - [license]: https://github.com/fsprojects/FSharp.Configuration/blob/master/LICENSE.txt -*) diff --git a/docs/img/AppSettingsProvider.png b/img/AppSettingsProvider.png similarity index 100% rename from docs/img/AppSettingsProvider.png rename to img/AppSettingsProvider.png diff --git a/docs/img/ResXImages.png b/img/ResXImages.png similarity index 100% rename from docs/img/ResXImages.png rename to img/ResXImages.png diff --git a/docs/img/ResXProvider.png b/img/ResXProvider.png similarity index 100% rename from docs/img/ResXProvider.png rename to img/ResXProvider.png diff --git a/docs/img/Resource1.png b/img/Resource1.png similarity index 100% rename from docs/img/Resource1.png rename to img/Resource1.png diff --git a/docs/img/YamlConfigProvider.png b/img/YamlConfigProvider.png similarity index 100% rename from docs/img/YamlConfigProvider.png rename to img/YamlConfigProvider.png diff --git a/docs/img/logo.pdn b/img/logo.pdn similarity index 100% rename from docs/img/logo.pdn rename to img/logo.pdn diff --git a/docs/img/logo.png b/img/logo.png similarity index 100% rename from docs/img/logo.png rename to img/logo.png diff --git a/index.html b/index.html new file mode 100644 index 00000000..6b3899d4 --- /dev/null +++ b/index.html @@ -0,0 +1,121 @@ + + + + + FSharp.Configuration + + + + + + + + + + + + + + + + +
+ +
+
+
+ +

FSharp.Configuration

+

The FSharp.Configuration project contains type providers for the configuration of .NET projects.

+ +
+
+
+
+ The library can be installed from NuGet: +
PM> Install-Package FSharp.Configuration
+
+
+
+
+

Example

+

This example demonstrates the use of the AppSettings type provider:

+ + + +
 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: 
+11: 
+
// reference the type provider dll
+#r "FSharp.Configuration.dll"
+#r "System.Configuration.dll"
+open FSharp.Configuration
+
+// Let the type provider do it's work
+type Settings = AppSettings<"app.config">
+
+Settings.ConfigFileName
+Settings.Test2
+val it : string = "Some Test Value 5"
+
+

alt text

+

Contributing and copyright

+

The project is hosted on GitHub where you can report issues, fork +the project and submit pull requests. If you're adding new public API, please also +consider adding samples that can be turned into a documentation. You might +also want to read library design notes to understand how it works.

+

The library is available under Public Domain license, which allows modification and +redistribution for both commercial and non-commercial purposes. For more information see the +License file in the GitHub repository.

+ +
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
+
namespace FSharp.Configuration
+
type Settings = AppSettings<...>

Full name: Index.Settings
+
type AppSettings

Full name: FSharp.Configuration.AppSettings
+
property AppSettings<...>.ConfigFileName: string


Returns the Filename
+
property AppSettings<...>.Test2: string


Returns the value from app.config with key test2
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/license.html b/license.html new file mode 100644 index 00000000..958e6d87 --- /dev/null +++ b/license.html @@ -0,0 +1,266 @@ + + + + + Apache License, Version 2.0 + + + + + + + + + + + + + + + + +
+ +
+
+
+ +

Copyright 2013, F# Foundation

+

Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

+ + + +
1: 
+
http://www.apache.org/licenses/LICENSE-2.0
+
+

Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

+
+

Apache License, Version 2.0

+

Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+
    +
  • +

    "License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document.

    +
  • +
  • +

    "Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License.

    +
  • +
  • +

    "Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity.

    +
  • +
  • +

    "You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License.

    +
  • +
  • +

    "Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files.

    +
  • +
  • +

    "Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types.

    +
  • +
  • +

    "Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below).

    +
  • +
  • +

    "Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof.

    +
  • +
  • +

    "Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution."

    +
  • +
  • +

    "Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work.

    +
  • +
+

2. Grant of Copyright License. +Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form.

+

3. Grant of Patent License. +Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed.

+

4. Redistribution. +You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions:

+
    +
  • +

    You must give any other recipients of the Work or +Derivative Works a copy of this License; and

    +
  • +
  • +

    You must cause any modified files to carry prominent notices +stating that You changed the files; and

    +
  • +
  • +

    You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and

    +
  • +
  • +

    If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License.

    +
  • +
+

You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License.

+

5. Submission of Contributions. +Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions.

+

6. Trademarks. +This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file.

+

7. Disclaimer of Warranty. +Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License.

+

8. Limitation of Liability. +In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages.

+

9. Accepting Warranty or Additional Liability. +While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability.

+ + +
+ +
+
+ Fork me on GitHub + + diff --git a/paket.dependencies b/paket.dependencies deleted file mode 100644 index 3e94e34d..00000000 --- a/paket.dependencies +++ /dev/null @@ -1,21 +0,0 @@ -version 8.1.0 -source https://api.nuget.org/v3/index.json -storage: none - -nuget YamlDotNet -nuget FSharp.Core 8.0.301 - -nuget System.Configuration.ConfigurationManager 8.0.1 -nuget NETStandard.Library.NETFramework - -github fsprojects/FSharp.TypeProviders.SDK src/ProvidedTypes.fs -github fsprojects/FSharp.TypeProviders.SDK src/ProvidedTypes.fsi -github fsprojects/FSharp.TypeProviders.SDK tests/ProvidedTypesTesting.fs - -group Test - source https://api.nuget.org/v3/index.json - - nuget FSharp.Core redirects: force - nuget Expecto 9.0.4 - nuget System.Configuration.ConfigurationManager 8.0.1 redirects: force - nuget System.Resources.Extensions \ No newline at end of file diff --git a/paket.lock b/paket.lock deleted file mode 100644 index 62513f70..00000000 --- a/paket.lock +++ /dev/null @@ -1,69 +0,0 @@ -STORAGE: NONE -NUGET - remote: https://api.nuget.org/v3/index.json - FSharp.Core (8.0.301) - Microsoft.NETCore.Platforms (7.0.4) - restriction: >= net461 - NETStandard.Library (2.0.3) - restriction: >= net461 - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4)) (>= net461) (>= netcoreapp2.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8) (< win8)) (&& (< netstandard1.0) (< portable-net45+win8) (>= portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (>= uap10.1) (>= wp8) - NETStandard.Library.NETFramework (2.0.0-preview2-25405-01) - Microsoft.NETCore.Platforms (>= 2.0.0-preview2-25405-01) - restriction: >= net461 - NETStandard.Library (>= 2.0.0-preview2-25401-01) - restriction: >= net461 - System.Buffers (4.5.1) - restriction: || (&& (>= monoandroid) (>= net6.0) (< netstandard1.1)) (&& (>= monoandroid) (< netstandard1.1) (>= netstandard2.0)) (&& (< monoandroid) (>= net6.0) (< netstandard1.1)) (&& (< monoandroid) (>= net6.0) (< netstandard2.0)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net6.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (>= net45) (>= net6.0) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= net461) (< net462) (>= netstandard2.0)) (&& (>= net461) (>= net6.0)) (&& (>= net6.0) (< net8.0) (>= xamarintvos)) (&& (>= net6.0) (< net8.0) (>= xamarinwatchos)) (&& (>= net6.0) (< netcoreapp2.0)) (&& (>= net6.0) (< netstandard1.1) (>= win8)) (&& (>= net6.0) (< netstandard2.0) (>= wpa81)) (&& (< net8.0) (>= netstandard2.0) (>= xamarintvos)) (&& (< net8.0) (>= netstandard2.0) (>= xamarinwatchos)) (&& (< net8.0) (>= xamarinios)) (&& (< net8.0) (>= xamarinmac)) (&& (< netstandard1.1) (>= netstandard2.0) (>= win8)) - System.Configuration.ConfigurationManager (8.0.1) - System.Diagnostics.EventLog (>= 8.0.1) - restriction: >= net7.0 - System.Security.Cryptography.ProtectedData (>= 8.0) - restriction: || (&& (< net462) (>= netstandard2.0)) (>= net6.0) - System.Diagnostics.EventLog (9.0.4) - restriction: >= net7.0 - System.Security.Principal.Windows (>= 5.0) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Memory (4.5.5) - restriction: || (&& (< net462) (< net8.0) (>= netstandard2.0)) (&& (>= net6.0) (< net8.0)) - System.Buffers (>= 4.5.1) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) - System.Numerics.Vectors (>= 4.4) - restriction: && (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) - System.Numerics.Vectors (4.5) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net6.0) (< netcoreapp2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.CompilerServices.Unsafe (6.0) - restriction: || (&& (>= monoandroid) (>= net6.0) (< netstandard1.1)) (&& (>= monoandroid) (< netstandard1.1) (>= netstandard2.0)) (&& (< monoandroid) (>= net6.0) (< netcoreapp2.1)) (&& (< monoandroid) (>= net6.0) (< netstandard1.1)) (&& (< monoandroid) (>= net6.0) (< netstandard2.0)) (&& (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net6.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (>= net45) (>= net6.0) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= net461) (< net462) (>= netstandard2.0)) (&& (>= net461) (>= net6.0)) (&& (>= net6.0) (< net8.0) (>= xamarintvos)) (&& (>= net6.0) (< net8.0) (>= xamarinwatchos)) (&& (>= net6.0) (< netcoreapp2.0)) (&& (>= net6.0) (< netstandard1.1) (>= win8)) (&& (>= net6.0) (< netstandard2.0) (>= wpa81)) (&& (>= net6.0) (>= uap10.1)) (&& (< net8.0) (>= netstandard2.0) (>= xamarintvos)) (&& (< net8.0) (>= netstandard2.0) (>= xamarinwatchos)) (&& (< net8.0) (>= xamarinios)) (&& (< net8.0) (>= xamarinmac)) (&& (< netstandard1.1) (>= netstandard2.0) (>= win8)) (&& (>= netstandard2.0) (>= uap10.1)) - System.Security.Cryptography.ProtectedData (9.0.4) - restriction: || (&& (< net462) (>= netstandard2.0)) (>= net6.0) - System.Memory (>= 4.5.5) - restriction: && (< net462) (< net8.0) (>= netstandard2.0) - System.Security.Principal.Windows (5.0) - restriction: || (&& (>= net462) (>= net7.0)) (&& (>= net7.0) (< net8.0)) - YamlDotNet (12.0.1) -GITHUB - remote: fsprojects/FSharp.TypeProviders.SDK - src/ProvidedTypes.fs (23b588d06acb8e100402523abc1d4f3f06325b8a) - src/ProvidedTypes.fsi (23b588d06acb8e100402523abc1d4f3f06325b8a) - tests/ProvidedTypesTesting.fs (23b588d06acb8e100402523abc1d4f3f06325b8a) -GROUP Test -NUGET - remote: https://api.nuget.org/v3/index.json - Expecto (9.0.4) - FSharp.Core (>= 4.6) - restriction: || (>= net461) (>= netstandard2.0) - Mono.Cecil (>= 0.11.3) - restriction: || (>= net461) (>= netstandard2.0) - FSharp.Core (9.0.202) - redirects: force - Microsoft.Bcl.HashCode (6.0) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - Mono.Cecil (0.11.4) - restriction: || (>= net461) (>= netstandard2.0) - System.Buffers (4.6.1) - restriction: || (>= net462) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - System.Collections.Immutable (9.0.4) - restriction: || (>= net462) (&& (>= net8.0) (< net9.0)) (&& (< net8.0) (>= netstandard2.0)) - System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Configuration.ConfigurationManager (8.0.1) - redirects: force - System.Diagnostics.EventLog (>= 8.0.1) - restriction: >= net7.0 - System.Security.Cryptography.ProtectedData (>= 8.0) - restriction: || (&& (< net462) (>= netstandard2.0)) (>= net6.0) - System.Diagnostics.EventLog (9.0.4) - redirects: force, restriction: >= net7.0 - System.Security.Principal.Windows (>= 5.0) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Formats.Nrbf (9.0.4) - restriction: || (>= net462) (>= netstandard2.0) - Microsoft.Bcl.HashCode (>= 1.1.1) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Reflection.Metadata (>= 9.0.4) - restriction: || (>= net462) (&& (>= net8.0) (< net9.0)) (&& (< net8.0) (>= netstandard2.0)) - System.ValueTuple (>= 4.5) - restriction: >= net462 - System.Memory (4.6.3) - restriction: || (>= net462) (&& (>= net6.0) (< net8.0)) (&& (< net8.0) (>= netstandard2.0)) - System.Buffers (>= 4.6.1) - restriction: || (>= net462) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - System.Numerics.Vectors (>= 4.6.1) - restriction: || (>= net462) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - System.Runtime.CompilerServices.Unsafe (>= 6.1.2) - restriction: || (>= net462) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - System.Numerics.Vectors (4.6.1) - restriction: || (>= net462) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - System.Reflection.Metadata (9.0.4) - restriction: || (>= net462) (&& (>= net8.0) (< net9.0)) (&& (< net8.0) (>= netstandard2.0)) - System.Collections.Immutable (>= 9.0.4) - restriction: || (>= net462) (&& (>= net8.0) (< net9.0)) (&& (< net8.0) (>= netstandard2.0)) - System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Resources.Extensions (9.0.4) - System.Formats.Nrbf (>= 9.0.4) - restriction: || (>= net462) (>= netstandard2.0) - System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) - System.Runtime.CompilerServices.Unsafe (6.1.2) - restriction: || (>= net462) (&& (< net8.0) (>= netstandard2.0)) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - System.Security.Cryptography.ProtectedData (9.0.4) - redirects: force, restriction: || (&& (< net462) (>= netstandard2.0)) (>= net6.0) - System.Memory (>= 4.5.5) - restriction: && (< net462) (< net8.0) (>= netstandard2.0) - System.Security.Principal.Windows (5.0) - redirects: force, restriction: || (&& (>= net462) (>= net7.0)) (&& (>= net7.0) (< net8.0)) - System.ValueTuple (4.6.1) - restriction: >= net462 diff --git a/reference/fsharp-configuration-appsettings.html b/reference/fsharp-configuration-appsettings.html new file mode 100644 index 00000000..02d4e94f --- /dev/null +++ b/reference/fsharp-configuration-appsettings.html @@ -0,0 +1,93 @@ + + + + + AppSettings - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

AppSettings

+

+ Namespace: FSharp.Configuration
+

+
+
+

Static parameters

+ + + + + + + + + + +
Static parametersDescription
+ + + configFileName + +
+ Signature: string
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-appsettingstypeprovider.html b/reference/fsharp-configuration-appsettingstypeprovider.html new file mode 100644 index 00000000..7b8791d7 --- /dev/null +++ b/reference/fsharp-configuration-appsettingstypeprovider.html @@ -0,0 +1,186 @@ + + + + + AppSettingsTypeProvider - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

AppSettingsTypeProvider

+

+ Namespace: FSharp.Configuration
+

+
+
+ + + +

Functions and values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function or valueDescription
+ + + getConfig file + +
+ Signature: file:string -> Configuration
+
+
+ + + + + +
+ + + getConfigValue (file, key) + +
+ Signature: (file:string * key:string) -> string
+
+
+ + + + + +
+ + + getConnectionString (file, key) + +
+ Signature: (file:string * key:string) -> string
+
+
+ + + + + +
+ + + setConfigValue (file, key, value) + +
+ Signature: (file:string * key:string * value:string) -> unit
+
+
+ + + + + +
+ + + setConnectionString (file, key, value) + +
+ Signature: (file:string * key:string * value:string) -> unit
+
+
+ + + + + +
+ + + setExeFilePath key filePath + +
+ Signature: key:string -> filePath:string -> unit
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-configtypeprovider-fsharpconfigurationprovider.html b/reference/fsharp-configuration-configtypeprovider-fsharpconfigurationprovider.html new file mode 100644 index 00000000..c4957f2c --- /dev/null +++ b/reference/fsharp-configuration-configtypeprovider-fsharpconfigurationprovider.html @@ -0,0 +1,95 @@ + + + + + FSharpConfigurationProvider - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

FSharpConfigurationProvider

+

+ Namespace: FSharp.Configuration
+ Parent Module: ConfigTypeProvider +

+
+
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(cfg) + +
+ Signature: cfg:TypeProviderConfig -> FSharpConfigurationProvider
+
+
+ + + + + +

CompiledName: .ctor

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-configtypeprovider.html b/reference/fsharp-configuration-configtypeprovider.html new file mode 100644 index 00000000..987a479c --- /dev/null +++ b/reference/fsharp-configuration-configtypeprovider.html @@ -0,0 +1,87 @@ + + + + + ConfigTypeProvider - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ConfigTypeProvider

+

+ Namespace: FSharp.Configuration
+

+
+
+ + +

Nested types and modules

+
+ + + + + + + + + + +
TypeDescription
+ FSharpConfigurationProvider +
+ +
+ + +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifile.html b/reference/fsharp-configuration-inifile.html new file mode 100644 index 00000000..7af12f31 --- /dev/null +++ b/reference/fsharp-configuration-inifile.html @@ -0,0 +1,93 @@ + + + + + IniFile - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

IniFile

+

+ Namespace: FSharp.Configuration
+

+
+
+

Static parameters

+ + + + + + + + + + +
Static parametersDescription
+ + + configFileName + +
+ Signature: string
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser-key.html b/reference/fsharp-configuration-inifileprovider-parser-key.html new file mode 100644 index 00000000..7c98a4b2 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser-key.html @@ -0,0 +1,104 @@ + + + + + Key - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Key

+

+ Namespace: FSharp.Configuration
+ Parent Module: Parser +

+
+
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + Chars(arg1) + +
+ Signature: int -> char
+
+
+ +
+ + + Length + +
+ Signature: int
+
+
+ +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser-section.html b/reference/fsharp-configuration-inifileprovider-parser-section.html new file mode 100644 index 00000000..5f935157 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser-section.html @@ -0,0 +1,112 @@ + + + + + Section - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Section

+

+ Namespace: FSharp.Configuration
+ Parent Module: Parser +

+
+
+

Record Fields

+ + + + + + + + + + + + + + +
Record FieldDescription
+ + + Name + +
+ Signature: SectionName
+
+
+ + + + + +
+ + + Settings + +
+ Signature: Setting list
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser-sectionname.html b/reference/fsharp-configuration-inifileprovider-parser-sectionname.html new file mode 100644 index 00000000..dc9de3c7 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser-sectionname.html @@ -0,0 +1,104 @@ + + + + + SectionName - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

SectionName

+

+ Namespace: FSharp.Configuration
+ Parent Module: Parser +

+
+
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + Chars(arg1) + +
+ Signature: int -> char
+
+
+ +
+ + + Length + +
+ Signature: int
+
+
+ +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser-setting.html b/reference/fsharp-configuration-inifileprovider-parser-setting.html new file mode 100644 index 00000000..fb6de15a --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser-setting.html @@ -0,0 +1,112 @@ + + + + + Setting - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Setting

+

+ Namespace: FSharp.Configuration
+ Parent Module: Parser +

+
+
+

Record Fields

+ + + + + + + + + + + + + + +
Record FieldDescription
+ + + Key + +
+ Signature: Key
+
+
+ + + + + +
+ + + Value + +
+ Signature: Value
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser-stream.html b/reference/fsharp-configuration-inifileprovider-parser-stream.html new file mode 100644 index 00000000..795f01e8 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser-stream.html @@ -0,0 +1,94 @@ + + + + + Stream - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Stream

+

+ Namespace: FSharp.Configuration
+ Parent Module: Parser +

+
+
+

Union Cases

+ + + + + + + + + + +
Union CaseDescription
+ + + Stream(int,string list) + +
+ Signature: int * string list
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser-value.html b/reference/fsharp-configuration-inifileprovider-parser-value.html new file mode 100644 index 00000000..b8c62f33 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser-value.html @@ -0,0 +1,104 @@ + + + + + Value - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Value

+

+ Namespace: FSharp.Configuration
+ Parent Module: Parser +

+
+
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + Chars(arg1) + +
+ Signature: int -> char
+
+
+ +
+ + + Length + +
+ Signature: int
+
+
+ +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider-parser.html b/reference/fsharp-configuration-inifileprovider-parser.html new file mode 100644 index 00000000..926bbc66 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider-parser.html @@ -0,0 +1,321 @@ + + + + + Parser - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Parser

+

+ Namespace: FSharp.Configuration
+ Parent Module: IniFileProvider +

+
+
+ + +

Nested types and modules

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ Key +
+ Section +
+ SectionName +
+ Setting +
+ Stream +
+ Value +
+ +
+ +

Functions and values

+ + + + + + + + + + + + + + + + + + +
Function or valueDescription
+ + + parse path + +
+ Signature: path:string -> Choice<Section list,Stream>
+
+
+ + + + + +
+ + + streamOfFile path + +
+ Signature: path:string -> Stream
+
+
+ + + + + +
+ + + streamOfLines lines + +
+ Signature: lines:seq<string> -> Stream
+
+
+ + + + + +
+

Active patterns

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Active patternDescription
+ + + ( |Comment|_| ) _arg1 + +
+ Signature: _arg1:Stream -> Stream option
+
+
+ + + + + +

CompiledName: |Comment|_|

+
+ + + ( |Header|_| ) _arg1 + +
+ Signature: _arg1:Stream -> (string * Stream) option
+
+
+ + + + + +

CompiledName: |Header|_|

+
+ + + ( |Regex|_| ) pattern _arg1 + +
+ Signature: pattern:string -> _arg1:Stream -> (string list * Stream) option
+
+
+ + + + + +

CompiledName: |Regex|_|

+
+ + + ( |Section|_| ) _arg1 + +
+ Signature: _arg1:Stream -> (Section * Stream) option
+
+
+ + + + + +

CompiledName: |Section|_|

+
+ + + ( |Sections|_| ) s + +
+ Signature: s:Stream -> (Section list * Stream) option
+
+
+ + + + + +

CompiledName: |Sections|_|

+
+ + + ( |Setting|_| ) _arg1 + +
+ Signature: _arg1:Stream -> (Setting * Stream) option
+
+
+ + + + + +

CompiledName: |Setting|_|

+
+ + + ( |Settings|_| ) s + +
+ Signature: s:Stream -> (Setting list * Stream) option
+
+
+ + + + + +

CompiledName: |Settings|_|

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-inifileprovider.html b/reference/fsharp-configuration-inifileprovider.html new file mode 100644 index 00000000..454f8080 --- /dev/null +++ b/reference/fsharp-configuration-inifileprovider.html @@ -0,0 +1,113 @@ + + + + + IniFileProvider - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

IniFileProvider

+

+ Namespace: FSharp.Configuration
+

+
+
+ + +

Nested types and modules

+
+ + + + + + + + + + +
ModuleDescription
+ Parser +
+ +
+ +

Functions and values

+ + + + + + + + + + +
Function or valueDescription
+ + + getValue iniFileName section key + +
+ Signature: iniFileName:string -> section:string -> key:string -> Value option
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-resxprovider-0.html b/reference/fsharp-configuration-resxprovider-0.html new file mode 100644 index 00000000..83a9d9cd --- /dev/null +++ b/reference/fsharp-configuration-resxprovider-0.html @@ -0,0 +1,132 @@ + + + + + ResXProvider - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ResXProvider

+

+ Namespace: FSharp.Configuration
+

+
+
+ + + +

Functions and values

+ + + + + + + + + + + + + + + + + + +
Function or valueDescription
+ + + readFile filePath + +
+ Signature: filePath:FilePath -> ResXDataNode list
+
+
+ + + + + +
+ + + readValue resourceName assembly key + +
+ Signature: resourceName:string -> assembly:Assembly -> key:string -> '?7279
+ Type parameters: '?7279
+
+ + + + + +
+ + + resourceManCache + +
+ Signature: ConcurrentDictionary<(string * Assembly),ResourceManager>
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-yamlconfig.html b/reference/fsharp-configuration-yamlconfig.html new file mode 100644 index 00000000..bbc1a288 --- /dev/null +++ b/reference/fsharp-configuration-yamlconfig.html @@ -0,0 +1,155 @@ + + + + + YamlConfig - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

YamlConfig

+

+ Namespace: FSharp.Configuration
+

+
+

Statically typed YAML config.

+ +
+

Static parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Static parametersDescription
+ + + FilePath + +
+ Signature: string (optional, default = "")
+
+
+ + + + +

Path to YAML file.

+ + +
+ + + ReadOnly + +
+ Signature: bool (optional, default = false)
+
+
+ + + + +

Whether the resulting properties will be read-only or not.

+ + +
+ + + YamlText + +
+ Signature: string (optional, default = "")
+
+
+ + + + +

Yaml as text. Mutually exclusive with FilePath parameter.

+ + +
+ + + InferTypesFromStrings + +
+ Signature: bool (optional, default = true)
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-yamlconfigtypeprovider-helper.html b/reference/fsharp-configuration-yamlconfigtypeprovider-helper.html new file mode 100644 index 00000000..cc951e2b --- /dev/null +++ b/reference/fsharp-configuration-yamlconfigtypeprovider-helper.html @@ -0,0 +1,121 @@ + + + + + Helper - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Helper

+

+ Namespace: FSharp.Configuration
+ Parent Module: YamlConfigTypeProvider +

+
+
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new() + +
+ Signature: unit -> Helper
+
+
+ + + + + +

CompiledName: .ctor

+
+

Static members

+ + + + + + + + + + +
Static memberDescription
+ + + CreateResizeArray(data) + +
+ Signature: data:seq<'a> -> ResizeArray<'a>
+ Type parameters: 'a
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-yamlconfigtypeprovider-root.html b/reference/fsharp-configuration-yamlconfigtypeprovider-root.html new file mode 100644 index 00000000..9f137fbd --- /dev/null +++ b/reference/fsharp-configuration-yamlconfigtypeprovider-root.html @@ -0,0 +1,321 @@ + + + + + Root - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

Root

+

+ Namespace: FSharp.Configuration
+ Parent Module: YamlConfigTypeProvider +

+
+
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(inferTypesFromStrings) + +
+ Signature: inferTypesFromStrings:bool -> Root
+
+
+ + + + + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + add_Error(arg1) + +
+ Signature: Handler<Exception> -> unit
+
+
+ + + + + +
+ + + Error + +
+ Signature: IEvent<Exception>
+
+
+ + + + + +

CompiledName: get_Error

+
+ + + Load(filePath) + +
+ Signature: filePath:string -> unit
+
+
+ + + + +

Load Yaml config from a file and update itself with it.

+ + +
+ + + Load(reader) + +
+ Signature: reader:TextReader -> unit
+
+
+ + + + +

Load Yaml config from a TextReader and update itself with it.

+ + +
+ + + LoadAndWatch(filePath) + +
+ Signature: filePath:string -> IDisposable
+
+
+ + + + +

Load Yaml config from a file, update itself with it, then start watching it for changes. +If it detects any change, it reloads the file.

+ + +
+ + + LoadText(yamlText) + +
+ Signature: yamlText:string -> unit
+
+
+ + + + +

Load Yaml config as text and update itself with it.

+ + +
+ + + remove_Error(arg1) + +
+ Signature: Handler<Exception> -> unit
+
+
+ + + + + +
+ + + Save() + +
+ Signature: unit -> unit
+
+
+ + + + +

Saves configuration as Yaml text into the last file it was loaded (if any). +Throws InvalidOperationException if configuration has not been loaded at all or if it has loaded from +a different kind of source (string or TextReader).

+ + +
+ + + Save(filePath) + +
+ Signature: filePath:string -> unit
+
+
+ + + + +

Saves configuration as Yaml text into a file.

+ + +
+ + + Save(writer) + +
+ Signature: writer:TextWriter -> unit
+
+
+ + + + +

Saves configuration as Yaml text into a TextWriter.

+ + +
+ + + Save(stream) + +
+ Signature: stream:Stream -> unit
+
+
+ + + + +

Saves configuration as Yaml text into a stream.

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/fsharp-configuration-yamlconfigtypeprovider.html b/reference/fsharp-configuration-yamlconfigtypeprovider.html new file mode 100644 index 00000000..f0fb207a --- /dev/null +++ b/reference/fsharp-configuration-yamlconfigtypeprovider.html @@ -0,0 +1,93 @@ + + + + + YamlConfigTypeProvider - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

YamlConfigTypeProvider

+

+ Namespace: FSharp.Configuration
+

+
+
+ + +

Nested types and modules

+
+ + + + + + + + + + + + + + +
TypeDescription
+ Helper +
+ Root +
+ +
+ + +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/index.html b/reference/index.html new file mode 100644 index 00000000..121cf8fc --- /dev/null +++ b/reference/index.html @@ -0,0 +1,270 @@ + + + + + Namespaces - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + +

FSharp.Configuration

+ + +

FSharp.Configuration Namespace

+
+ + + + + + + + + + + + + + + + + + +
TypeDescription
+ AppSettings +
+ IniFile +
+ YamlConfig +

Statically typed YAML config.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModuleDescription
+ AppSettingsTypeProvider +
+ ConfigTypeProvider +
+ IniFileProvider +
+ ResXProvider +
+ ResXProvider +
+ YamlConfigTypeProvider +
+ +
+

ProviderImplementation.ProvidedTypes Namespace

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ ProvidedAssembly +

A provided generated assembly

+ +
+ ProvidedConstructor +

Represents an erased provided constructor.

+ +
+ ProvidedEvent +

Represents an erased provided property.

+ +
+ ProvidedField +

Represents an erased provided field.

+ +
+ ProvidedLiteralField +

Represents an erased provided field.

+ +
+ ProvidedMeasureBuilder +

Helps create erased provided unit-of-measure annotations.

+ +
+ ProvidedMethod +
+ ProvidedParameter +

Represents an erased provided parameter

+ +
+ ProvidedProperty +

Represents an erased provided property.

+ +
+ ProvidedStaticParameter +

Represents a provided static parameter.

+ +
+ ProvidedSymbolType +

FSharp.Data addition: ProvidedSymbolType is used by AssemblyReplacer.fs +Represents an array or other symbolic type involving a provided type as the argument. +See the type provider spec for the methods that must be implemented. +Note that the type provider specification does not require us to implement pointer-equality for provided types.

+ +
+ ProvidedTypeBuilder +

Provides symbolic provided types

+ +
+ ProvidedTypeDefinition +

Represents a provided type definition.

+ +
+ SymbolKind +

FSharp.Data addition: SymbolKind is used by AssemblyReplacer.fs +Represents the type constructor in a provided symbol type.

+ +
+ TypeProviderForNamespaces +

A base type providing default implementations of type provider functionality when all provided +types are of type ProvidedTypeDefinition.

+ +
+ +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedassembly.html b/reference/providerimplementation-providedtypes-providedassembly.html new file mode 100644 index 00000000..9891d32f --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedassembly.html @@ -0,0 +1,174 @@ + + + + + ProvidedAssembly - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedAssembly

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

A provided generated assembly

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(assemblyFileName) + +
+ Signature: assemblyFileName:string -> ProvidedAssembly
+
+
+ + + + + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddNestedTypes(...) + +
+ Signature: (types:ProvidedTypeDefinition list * enclosingGeneratedTypeNames:string list) -> unit
+
+
+ + + + + +
+ + + AddTypes(types) + +
+ Signature: (types:ProvidedTypeDefinition list) -> unit
+
+
+ + + + +

Emit the given provided type definitions as part of the assembly +and adjust the 'Assembly' property of all provided type definitions to return that +assembly.

+

The assembly is only emitted when the Assembly property on the root type is accessed for the first time. +The host F# compiler does this when processing a generative type declaration for the type.

+ + +
+

Static members

+ + + + + + + + + + +
Static memberDescription
+ + + RegisterGenerated(fileName) + +
+ Signature: fileName:string -> Assembly
+
+
+ + + + +

Register that a given file is a provided generated assembly

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedconstructor.html b/reference/providerimplementation-providedtypes-providedconstructor.html new file mode 100644 index 00000000..2c1d7681 --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedconstructor.html @@ -0,0 +1,374 @@ + + + + + ProvidedConstructor - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedConstructor

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents an erased provided constructor.

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(parameters) + +
+ Signature: (parameters:ProvidedParameter list) -> ProvidedConstructor
+
+
+ + + + +

Create a new provided constructor. It is not initially associated with any specific provided type definition.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided constructor.

+ + +
+ + + AddObsoleteAttribute(message, isError) + +
+ Signature: (message:string * isError:bool option) -> unit
+
+
+ + + + +

Add a 'System.Obsolete' attribute to this provided constructor

+ + +
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary

+ + +
+ + + BaseConstructorCall() + +
+ Signature: unit -> Expr list -> ConstructorInfo * Expr list
+
+
+ + + + +

Set the target and arguments of the base constructor call. Only used for generated types.

+ + +

CompiledName: set_BaseConstructorCall

+
+ + + BaseConstructorCall() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the target and arguments of the base constructor call. Only used for generated types.

+ + +

CompiledName: set_BaseConstructorCall

+
+ + + InvokeCode() + +
+ Signature: unit -> Expr list -> Expr
+
+
+ + + + +

Set the quotation used to compute the implementation of invocations of this constructor.

+ + +

CompiledName: set_InvokeCode

+
+ + + InvokeCode() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the quotation used to compute the implementation of invocations of this constructor.

+ + +

CompiledName: set_InvokeCode

+
+ + + IsImplicitCtor() + +
+ Signature: unit -> bool
+
+
+ + + + +

Set a flag indicating that the constructor acts like an F# implicit constructor, so the +parameters of the constructor become fields and can be accessed using Expr.GlobalVar with the +same name.

+ + +

CompiledName: set_IsImplicitCtor

+
+ + + IsImplicitCtor() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set a flag indicating that the constructor acts like an F# implicit constructor, so the +parameters of the constructor become fields and can be accessed using Expr.GlobalVar with the +same name.

+ + +

CompiledName: get_IsImplicitCtor

+
+ + + IsTypeInitializer() + +
+ Signature: unit -> bool
+
+
+ + + + + +

CompiledName: set_IsTypeInitializer

+
+ + + IsTypeInitializer() + +
+ Signature: unit -> unit
+
+
+ + + + + +

CompiledName: get_IsTypeInitializer

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedevent.html b/reference/providerimplementation-providedtypes-providedevent.html new file mode 100644 index 00000000..5c7c7a17 --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedevent.html @@ -0,0 +1,313 @@ + + + + + ProvidedEvent - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedEvent

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents an erased provided property.

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(propertyName, eventHandlerType) + +
+ Signature: (propertyName:string * eventHandlerType:Type) -> ProvidedEvent
+
+
+ + + + +

Create a new provided type. It is not initially associated with any specific provided type definition.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided type definition.

+ + +
+ + + AdderCode() + +
+ Signature: unit -> Expr list -> Expr
+
+
+ + + + +

Set the quotation used to compute the implementation of gets of this property.

+ + +

CompiledName: set_AdderCode

+
+ + + AdderCode() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the quotation used to compute the implementation of gets of this property.

+ + +

CompiledName: set_AdderCode

+
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary +The documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary

+ + +
+ + + IsStatic() + +
+ Signature: unit -> bool
+
+
+ + + + +

Get or set a flag indicating if the property is static.

+ + +

CompiledName: set_IsStatic

+
+ + + IsStatic() + +
+ Signature: unit -> unit
+
+
+ + + + +

Get or set a flag indicating if the property is static.

+ + +

CompiledName: set_IsStatic

+
+ + + RemoverCode() + +
+ Signature: unit -> Expr list -> Expr
+
+
+ + + + +

Set the function used to compute the implementation of sets of this property.

+ + +

CompiledName: set_RemoverCode

+
+ + + RemoverCode() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the function used to compute the implementation of sets of this property.

+ + +

CompiledName: set_RemoverCode

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedfield.html b/reference/providerimplementation-providedtypes-providedfield.html new file mode 100644 index 00000000..8a12382d --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedfield.html @@ -0,0 +1,225 @@ + + + + + ProvidedField - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedField

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents an erased provided field.

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(fieldName, fieldType) + +
+ Signature: (fieldName:string * fieldType:Type) -> ProvidedField
+
+
+ + + + +

Create a new provided field. It is not initially associated with any specific provided type definition.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided field definition.

+ + +
+ + + AddObsoleteAttribute(message, isError) + +
+ Signature: (message:string * isError:bool option) -> unit
+
+
+ + + + +

Add a 'System.Obsolete' attribute to this provided field

+ + +
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided field

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided field, where the computation of the documentation is delayed until necessary +The documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided field, where the computation of the documentation is delayed until necessary

+ + +
+ + + SetFieldAttributes(attributes) + +
+ Signature: attributes:FieldAttributes -> unit
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedliteralfield.html b/reference/providerimplementation-providedtypes-providedliteralfield.html new file mode 100644 index 00000000..a9709bf6 --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedliteralfield.html @@ -0,0 +1,207 @@ + + + + + ProvidedLiteralField - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedLiteralField

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents an erased provided field.

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(fieldName, fieldType, literalValue) + +
+ Signature: (fieldName:string * fieldType:Type * literalValue:obj) -> ProvidedLiteralField
+
+
+ + + + +

Create a new provided field. It is not initially associated with any specific provided type definition.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided field.

+ + +
+ + + AddObsoleteAttribute(message, isError) + +
+ Signature: (message:string * isError:bool option) -> unit
+
+
+ + + + +

Add a 'System.Obsolete' attribute to this provided field

+ + +
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided field

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided field, where the computation of the documentation is delayed until necessary +The documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided field, where the computation of the documentation is delayed until necessary

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedmeasurebuilder.html b/reference/providerimplementation-providedtypes-providedmeasurebuilder.html new file mode 100644 index 00000000..529b70ee --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedmeasurebuilder.html @@ -0,0 +1,247 @@ + + + + + ProvidedMeasureBuilder - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedMeasureBuilder

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Helps create erased provided unit-of-measure annotations.

+ +
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AnnotateType(basic, argument) + +
+ Signature: (basic:Type * argument:Type list) -> Type
+
+
+ + + + +

e.g. float, Vector

+ + +
+ + + Inverse(denominator) + +
+ Signature: denominator:Type -> Type
+
+
+ + + + +

e.g. 1 / kg

+ + +
+ + + One + +
+ Signature: Type
+
+
+ + + + +

e.g. 1

+ + +

CompiledName: get_One

+
+ + + Product(measure1, measure1) + +
+ Signature: (measure1:Type * measure1:Type) -> Type
+
+
+ + + + +

e.g. m * kg

+ + +
+ + + Ratio(numerator, denominator) + +
+ Signature: (numerator:Type * denominator:Type) -> Type
+
+
+ + + + +

e.g. kg / m

+ + +
+ + + SI(arg1) + +
+ Signature: string -> Type
+
+
+ + + + +

the SI unit from the F# core library, where the string is in capitals and US spelling, e.g. Meter

+ + +
+ + + Square(measure) + +
+ Signature: measure:Type -> Type
+
+
+ + + + +

e.g. m * m

+ + +
+

Static members

+ + + + + + + + + + +
Static memberDescription
+ + + Default + +
+ Signature: ProvidedMeasureBuilder
+
+
+ + + + +

The ProvidedMeasureBuilder for building measures.

+ + +

CompiledName: get_Default

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedmethod.html b/reference/providerimplementation-providedtypes-providedmethod.html new file mode 100644 index 00000000..395a951f --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedmethod.html @@ -0,0 +1,347 @@ + + + + + ProvidedMethod - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedMethod

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(methodName, parameters, returnType) + +
+ Signature: (methodName:string * parameters:ProvidedParameter list * returnType:Type) -> ProvidedMethod
+
+
+ + + + +

Create a new provided method. It is not initially associated with any specific provided type definition.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddCustomAttribute(arg1) + +
+ Signature: CustomAttributeData -> unit
+
+
+ + + + +

Add a custom attribute to the provided method definition.

+ + +
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided type definition.

+ + +
+ + + AddMethodAttrs(attributes) + +
+ Signature: attributes:MethodAttributes -> unit
+
+
+ + + + + +
+ + + AddObsoleteAttribute(message, isError) + +
+ Signature: (message:string * isError:bool option) -> unit
+
+
+ + + + +

Add XML documentation information to this provided method

+ + +
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary +The documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary

+ + +
+ + + InvokeCode() + +
+ Signature: unit -> Expr list -> Expr
+
+
+ + + + +

Set the quotation used to compute the implementation of invocations of this method.

+ + +

CompiledName: set_InvokeCode

+
+ + + InvokeCode() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the quotation used to compute the implementation of invocations of this method.

+ + +

CompiledName: set_InvokeCode

+
+ + + IsStaticMethod() + +
+ Signature: unit -> bool
+
+
+ + + + +

Get or set a flag indicating if the property is static.

+ + +

CompiledName: set_IsStaticMethod

+
+ + + IsStaticMethod() + +
+ Signature: unit -> unit
+
+
+ + + + +

Get or set a flag indicating if the property is static.

+ + +

CompiledName: get_IsStaticMethod

+
+ + + SetMethodAttrs(attributes) + +
+ Signature: attributes:MethodAttributes -> unit
+
+
+ + + + +

Set the method attributes of the method. By default these are simple 'MethodAttributes.Public'

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedparameter.html b/reference/providerimplementation-providedtypes-providedparameter.html new file mode 100644 index 00000000..7db4608f --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedparameter.html @@ -0,0 +1,142 @@ + + + + + ProvidedParameter - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedParameter

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents an erased provided parameter

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(...) + +
+ Signature: (parameterName:string * parameterType:Type * isOut:bool option * optionalValue:obj option) -> ProvidedParameter
+
+
+ + + + + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + IsParamArray() + +
+ Signature: unit -> bool
+
+
+ + + + + +

CompiledName: set_IsParamArray

+
+ + + IsParamArray() + +
+ Signature: unit -> unit
+
+
+ + + + + +

CompiledName: get_IsParamArray

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedproperty.html b/reference/providerimplementation-providedtypes-providedproperty.html new file mode 100644 index 00000000..455d0fd1 --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedproperty.html @@ -0,0 +1,355 @@ + + + + + ProvidedProperty - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedProperty

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents an erased provided property.

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(...) + +
+ Signature: (propertyName:string * propertyType:Type * parameters:ProvidedParameter list option) -> ProvidedProperty
+
+
+ + + + +

Create a new provided type. It is not initially associated with any specific provided type definition.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddCustomAttribute(arg1) + +
+ Signature: CustomAttributeData -> unit
+
+
+ + + + +

Add a custom attribute to the provided property definition.

+ + +
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided type definition.

+ + +
+ + + AddObsoleteAttribute(message, isError) + +
+ Signature: (message:string * isError:bool option) -> unit
+
+
+ + + + +

Add a 'System.Obsolete' attribute to this provided property

+ + +
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary +The documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary

+ + +
+ + + GetterCode() + +
+ Signature: unit -> Expr list -> Expr
+
+
+ + + + +

Set the quotation used to compute the implementation of gets of this property.

+ + +

CompiledName: set_GetterCode

+
+ + + GetterCode() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the quotation used to compute the implementation of gets of this property.

+ + +

CompiledName: set_GetterCode

+
+ + + IsStatic() + +
+ Signature: unit -> bool
+
+
+ + + + +

Get or set a flag indicating if the property is static. +FSharp.Data addition: the getter is used by Debug.fs

+ + +

CompiledName: set_IsStatic

+
+ + + IsStatic() + +
+ Signature: unit -> unit
+
+
+ + + + +

Get or set a flag indicating if the property is static. +FSharp.Data addition: the getter is used by Debug.fs

+ + +

CompiledName: get_IsStatic

+
+ + + SetterCode() + +
+ Signature: unit -> Expr list -> Expr
+
+
+ + + + +

Set the function used to compute the implementation of sets of this property.

+ + +

CompiledName: set_SetterCode

+
+ + + SetterCode() + +
+ Signature: unit -> unit
+
+
+ + + + +

Set the function used to compute the implementation of sets of this property.

+ + +

CompiledName: set_SetterCode

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedstaticparameter.html b/reference/providerimplementation-providedtypes-providedstaticparameter.html new file mode 100644 index 00000000..cdd744ae --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedstaticparameter.html @@ -0,0 +1,144 @@ + + + + + ProvidedStaticParameter - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedStaticParameter

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents a provided static parameter.

+ +
+

Constructors

+ + + + + + + + + + +
ConstructorDescription
+ + + new(...) + +
+ Signature: (parameterName:string * parameterType:Type * parameterDefaultValue:obj option) -> ProvidedStaticParameter
+
+
+ + + + + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedsymboltype.html b/reference/providerimplementation-providedtypes-providedsymboltype.html new file mode 100644 index 00000000..b6bd08d1 --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedsymboltype.html @@ -0,0 +1,122 @@ + + + + + ProvidedSymbolType - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedSymbolType

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

FSharp.Data addition: ProvidedSymbolType is used by AssemblyReplacer.fs +Represents an array or other symbolic type involving a provided type as the argument. +See the type provider spec for the methods that must be implemented. +Note that the type provider specification does not require us to implement pointer-equality for provided types.

+ +
+

Instance members

+ + + + + + + + + + + + + + +
Instance memberDescription
+ + + Args + +
+ Signature: Type list
+
+
+ + + + +

Return the provided types used as arguments of this symbolic type

+ + +

CompiledName: get_Args

+
+ + + Kind + +
+ Signature: SymbolKind
+
+
+ + + + +

Returns the kind of this symbolic type

+ + +

CompiledName: get_Kind

+
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedtypebuilder.html b/reference/providerimplementation-providedtypes-providedtypebuilder.html new file mode 100644 index 00000000..47250503 --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedtypebuilder.html @@ -0,0 +1,117 @@ + + + + + ProvidedTypeBuilder - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedTypeBuilder

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Provides symbolic provided types

+ +
+

Static members

+ + + + + + + + + + + + + + +
Static memberDescription
+ + + MakeGenericMethod(...) + +
+ Signature: (genericMethodDefinition:MethodInfo * genericArguments:Type list) -> MethodInfo
+
+
+ + + + +

Like methodInfo.MakeGenericMethod, but will also work with unit-annotated types and provided types

+ + +
+ + + MakeGenericType(...) + +
+ Signature: (genericTypeDefinition:Type * genericArguments:Type list) -> Type
+
+
+ + + + +

Like typ.MakeGenericType, but will also work with unit-annotated types

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-providedtypedefinition.html b/reference/providerimplementation-providedtypes-providedtypedefinition.html new file mode 100644 index 00000000..fd25271c --- /dev/null +++ b/reference/providerimplementation-providedtypes-providedtypedefinition.html @@ -0,0 +1,706 @@ + + + + + ProvidedTypeDefinition - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

ProvidedTypeDefinition

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

Represents a provided type definition.

+ +
+

Constructors

+ + + + + + + + + + + + + + +
ConstructorDescription
+ + + new(className, baseType) + +
+ Signature: (className:string * baseType:Type option) -> ProvidedTypeDefinition
+
+
+ + + + +

Create a new provided type definition, to be located as a nested type in some type definition.

+ + +

CompiledName: .ctor

+
+ + + new(...) + +
+ Signature: (assembly:Assembly * namespaceName:string * className:string * baseType:Type option) -> ProvidedTypeDefinition
+
+
+ + + + +

Create a new provided type definition in a namespace.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + AddAssemblyTypesAsNestedTypesDelayed(...) + +
+ Signature: (assemblyFunction:(unit -> Assembly)) -> unit
+
+
+ + + + +

Add the types of the generated assembly as generative types, where types in namespaces get hierarchically positioned as nested types.

+ + +
+ + + AddCustomAttribute(arg1) + +
+ Signature: CustomAttributeData -> unit
+
+
+ + + + +

Add a custom attribute to the provided type definition.

+ + +
+ + + AddDefinitionLocation(...) + +
+ Signature: (line:int * column:int * filePath:string) -> unit
+
+
+ + + + +

Add definition location information to the provided type definition.

+ + +
+ + + AddInterfaceImplementation(...) + +
+ Signature: interfaceType:Type -> unit
+
+
+ + + + +

Add the given type as an implemented interface.

+ + +
+ + + AddInterfaceImplementationsDelayed(...) + +
+ Signature: (interfacesFunction:(unit -> Type list)) -> unit
+
+
+ + + + +

Add the given function as a set of on-demand computed interfaces.

+ + +
+ + + AddMember(memberInfo) + +
+ Signature: memberInfo:MemberInfo -> unit
+
+
+ + + + +

Add a method, property, nested type or other member to a ProvidedTypeDefinition

+ + +
+ + + AddMemberDelayed(memberFunction) + +
+ Signature: (memberFunction:(unit -> '?7481)) -> unit
+ Type parameters: '?7481
+
+ + + + +

Add a member to a ProvidedTypeDefinition, delaying computation of the members until required by the compilation context.

+ + +
+ + + AddMembers(memberInfos) + +
+ Signature: (memberInfos:'a list) -> unit
+ Type parameters: 'a
+
+ + + + +

Add a set of members to a ProvidedTypeDefinition

+ + +
+ + + AddMembersDelayed(arg1) + +
+ Signature: ((unit -> '?7483 list)) -> unit
+ Type parameters: '?7483
+
+ + + + +

Add a set of members to a ProvidedTypeDefinition, delaying computation of the members until required by the compilation context.

+ + +
+ + + AddObsoleteAttribute(message, isError) + +
+ Signature: (message:string * isError:bool option) -> unit
+
+
+ + + + +

Add a 'System.Obsolete' attribute to this provided type definition

+ + +
+ + + AddXmlDoc(xmlDoc) + +
+ Signature: xmlDoc:string -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor

+ + +
+ + + AddXmlDocComputed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary +The documentation is re-computed every time it is required.

+ + +
+ + + AddXmlDocDelayed(xmlDocFunction) + +
+ Signature: (xmlDocFunction:(unit -> string)) -> unit
+
+
+ + + + +

Add XML documentation information to this provided constructor, where the computation of the documentation is delayed until necessary. +The documentation is only computed once.

+ + +
+ + + DefineMethodOverride(...) + +
+ Signature: (methodInfoBody:ProvidedMethod * methodInfoDeclaration:MethodInfo) -> unit
+
+
+ + + + +

Specifies that the given method body implements the given method declaration.

+ + +
+ + + DefineStaticParameters(...) + +
+ Signature: (parameters:ProvidedStaticParameter list * instantiationFunction:(string -> obj [] -> ProvidedTypeDefinition)) -> unit
+
+
+ + + + + +
+ + + HideObjectMethods() + +
+ Signature: unit -> bool
+
+
+ + + + +

Suppress System.Object entries in intellisense menus in instances of this provided type

+ + +

CompiledName: set_HideObjectMethods

+
+ + + HideObjectMethods() + +
+ Signature: unit -> unit
+
+
+ + + + +

Suppress System.Object entries in intellisense menus in instances of this provided type

+ + +

CompiledName: set_HideObjectMethods

+
+ + + IsErased() + +
+ Signature: unit -> bool
+
+
+ + + + +

Get or set a flag indicating if the ProvidedTypeDefinition is erased

+ + +

CompiledName: set_IsErased

+
+ + + IsErased() + +
+ Signature: unit -> unit
+
+
+ + + + +

Get or set a flag indicating if the ProvidedTypeDefinition is erased

+ + +

CompiledName: get_IsErased

+
+ + + MakeParametricType(name, args) + +
+ Signature: (name:string * args:obj []) -> ProvidedTypeDefinition
+
+
+ + + + +

FSharp.Data addition: this method is used by Debug.fs

+ + +
+ + + ResetEnclosingType(enclosingType) + +
+ Signature: enclosingType:Type -> unit
+
+
+ + + + +

Reset the enclosing type (for generated nested types)

+ + +
+ + + SetAttributes(arg1) + +
+ Signature: TypeAttributes -> unit
+
+
+ + + + +

Set the attributes on the provided type. This fully replaces the default TypeAttributes.

+ + +
+ + + SetBaseType(arg1) + +
+ Signature: Type -> unit
+
+
+ + + + +

Set the base type

+ + +
+ + + SetBaseTypeDelayed(arg1) + +
+ Signature: (Lazy<Type option>) -> unit
+
+
+ + + + +

Set the base type to a lazily evaluated value

+ + +
+ + + SetEnumUnderlyingType(arg1) + +
+ Signature: Type -> unit
+
+
+ + + + +

Set underlying type for generated enums

+ + +
+ + + SuppressRelocation() + +
+ Signature: unit -> bool
+
+
+ + + + +

Get or set a flag indicating if the ProvidedTypeDefinition has type-relocation suppressed

+ + +

CompiledName: set_SuppressRelocation

+
+ + + SuppressRelocation() + +
+ Signature: unit -> unit
+
+
+ + + + +

Get or set a flag indicating if the ProvidedTypeDefinition has type-relocation suppressed

+ + +

CompiledName: get_SuppressRelocation

+
+

Static members

+ + + + + + + + + + +
Static memberDescription
+ + + EraseType(t) + +
+ Signature: t:Type -> Type
+
+
+ + + + +

FSharp.Data addition: this method is used by Debug.fs and QuotationBuilder.fs +Emulate the F# type provider type erasure mechanism to get the +actual (erased) type. We erase ProvidedTypes to their base type +and we erase array of provided type to array of base type. In the +case of generics all the generic type arguments are also recursively +replaced with the erased-to types

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-symbolkind.html b/reference/providerimplementation-providedtypes-symbolkind.html new file mode 100644 index 00000000..6740b6aa --- /dev/null +++ b/reference/providerimplementation-providedtypes-symbolkind.html @@ -0,0 +1,186 @@ + + + + + SymbolKind - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

SymbolKind

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

FSharp.Data addition: SymbolKind is used by AssemblyReplacer.fs +Represents the type constructor in a provided symbol type.

+ +
+

Union Cases

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Union CaseDescription
+ + + Array(int) + +
+ Signature: int
+
+
+ + + + + +
+ + + ByRef + +
+ Signature:
+
+
+ + + + + +
+ + + FSharpTypeAbbreviation(...) + +
+ Signature: Assembly * string * string []
+
+
+ + + + + +
+ + + Generic(Type) + +
+ Signature: Type
+
+
+ + + + + +
+ + + Pointer + +
+ Signature:
+
+
+ + + + + +
+ + + SDArray + +
+ Signature:
+
+
+ + + + + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/reference/providerimplementation-providedtypes-typeproviderfornamespaces.html b/reference/providerimplementation-providedtypes-typeproviderfornamespaces.html new file mode 100644 index 00000000..424eb77d --- /dev/null +++ b/reference/providerimplementation-providedtypes-typeproviderfornamespaces.html @@ -0,0 +1,306 @@ + + + + + TypeProviderForNamespaces - FSharp.Configuration + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + +

TypeProviderForNamespaces

+

+ Namespace: ProviderImplementation.ProvidedTypes
+

+
+

A base type providing default implementations of type provider functionality when all provided +types are of type ProvidedTypeDefinition.

+ +
+

Constructors

+ + + + + + + + + + + + + + +
ConstructorDescription
+ + + new() + +
+ Signature: unit -> TypeProviderForNamespaces
+
+
+ + + + +

Initializes a type provider

+ + +

CompiledName: .ctor

+
+ + + new(namespaceName, types) + +
+ Signature: (namespaceName:string * types:ProvidedTypeDefinition list) -> TypeProviderForNamespaces
+
+
+ + + + +

Initializes a type provider to provide the types in the given namespace.

+ + +

CompiledName: .ctor

+
+

Instance members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance memberDescription
+ + + add_Disposing(arg1) + +
+ Signature: EventHandler -> unit
+
+
+ + + + + +
+ + + AddNamespace(namespaceName, types) + +
+ Signature: (namespaceName:string * types:ProvidedTypeDefinition list) -> unit
+
+
+ + + + +

Add a namespace of provided types.

+ + +
+ + + Disposing + +
+ Signature: IEvent<EventHandler,EventArgs>
+
+
+ + + + + +

CompiledName: get_Disposing

+
+ + + Invalidate() + +
+ Signature: unit -> unit
+
+
+ + + + +

Invalidate the information provided by the provider

+ + +
+ + + Namespaces + +
+ Signature: seq<string * ProvidedTypeDefinition list>
+
+
+ + + + +

FSharp.Data addition: this method is used by Debug.fs +Get all namespace with their provided types.

+ + +

CompiledName: get_Namespaces

+
+ + + RegisterProbingFolder(folder) + +
+ Signature: folder:string -> unit
+
+
+ + + + +

Registers custom probing path that can be used for probing assemblies

+ + +
+ + + RegisterRuntimeAssemblyLocationAsProbingFolder(...) + +
+ Signature: cfg:TypeProviderConfig -> unit
+
+
+ + + + +

Registers location of RuntimeAssembly (from TypeProviderConfig) as probing folder

+ + +
+ + + remove_Disposing(arg1) + +
+ Signature: EventHandler -> unit
+
+
+ + + + + +
+ + + ResolveAssembly(arg1) + +
+ Signature: ResolveEventArgs -> Assembly
+ Modifiers: abstract
+
+
+ + + + +

AssemblyResolve handler. Default implementation searches .dll file in registered folders

+ + +
+ +
+ +
+
+ Fork me on GitHub + + diff --git a/release-notes.html b/release-notes.html new file mode 100644 index 00000000..e2a33af1 --- /dev/null +++ b/release-notes.html @@ -0,0 +1,223 @@ + + + + + release-notes + + + + + + + + + + + + + + + +
+ +
+
+
+ +

1.2.0 - 20.05.2017

+
    +
  • FSharp.Core 4.4.1.0
  • +
+

1.1.0 - 12.05.2017

+
    +
  • Mono 5 support
  • +
+

1.0.1 - 22.04.2017

+
    +
  • NuGet package targets .NET 4.6
  • +
+

1.0.0 - 12.04.2017

+
    +
  • YamlConfig provider: add InferTypesFromStrings optional parameter
  • +
+

0.6.4 - 18.11.2016

+
    +
  • Add support for Guids in Yaml and AppSettings
  • +
+

0.6.2 - 21.08.2016

+
    +
  • Handle int32 values loading from YAML files into int64 fields
  • +
+

0.6.1 - 13.06.2016

+
    +
  • YamlConfigProvider: added support for having mixed type content fall back to strings
  • +
+

0.6.0 - 16.05.2016

+
    +
  • YamlConfigProvider throws if file is not found or fails to load
  • +
  • YamlConfigProvider allows keys of any type
  • +
+

0.5.12 - 01.03.2016

+
    +
  • Added support for data in int64 to YamlConfigProvider
  • +
+

0.5.11 - 24.01.2016

+
    +
  • Add Path.GetFullPath to the filePath calculation in YamlConfigProvider
  • +
+

0.5.10 - 20.01.2016

+
    +
  • Yaml provider: added event to monitor errors in parsing from LoadAndWatch
  • +
+

0.5.9 - 02.01.2016

+
    +
  • Yaml provider handle nested lists
  • +
+

0.5.8 - 30.12.2015

+
    +
  • Get SharpYaml from NuGet but pack dll inside of FSharp.Configuration NuGet package
  • +
  • Fix Travis build
  • +
  • For Mono compatibility: TypeConstructor path should be able to be separated by both "/" and "\"
  • +
  • AppSettingsProvider: Added possibility to change the application that is being configured.
  • +
  • Fixed AppSettingsProvider to work in parallel with multiple configs.
  • +
+

0.5.7 - 22.11.2015

+
    +
  • Revert dependency on SharpYaml
  • +
+

0.5.6 - 22.12.2015

+
    +
  • Fixed: SharpYaml NuGet package was not listed as dependency of FSharp.Configuration one
  • +
  • infer URLs with "tcp" schema
  • +
+

0.5.5 - 20.12.2015

+
    +
  • Same as 0.5.4, NuGet publishing problems
  • +
+

0.5.4 - 20.12.2015

+
    +
  • Support "file" and "ssh" uri schemas
  • +
  • Use SharpYaml NuGet package
  • +
+

0.5.3 - 12.06.2015

+
    +
  • AppConfig type provider raises better exception if a settings or connection string is missing at runtime.
  • +
+

0.5.2 - 12.06.2015

+
    +
  • Add caching into all type providers
  • +
+

0.5.1 - 18.03.2015

+
    +
  • fixed: YamlConfigProvider does not always parse floating point scalars
  • +
+

0.5.0 - 09.03.2015

+
    +
  • YamlConfigProvider supports sequence of maps
  • +
+

0.4.10 - 06.02.2015

+
    +
  • Better YamlConfigProvider error reporting in case of duplicated keys
  • +
+

0.4.9 - 06.01.2015

+
    +
  • Fixed: AppSettings type provider does not read connection strings at runtime
  • +
+

0.4.8 - 19.12.2014

+
    +
  • Use HostingEnvironment.IsHosted to determine that AppSettings type provider is used in a Web application
  • +
+

0.4.7 - 12.12.2014

+ +

0.4.6 - 06.12.2014

+
    +
  • Fixed: AppSettingsProvider does not find web.config at runtime
  • +
+

0.4.5 - 06.12.2014

+
    +
  • Fixed: AppSettingsProvider infers URLs as ints
  • +
+

0.4.4 - 22.10.2014

+
    +
  • Add support for connection strings to AppSettings TP
  • +
+

0.4.3 - 20.09.2014

+ +

0.3.0 - 19.09.2014

+ +

0.2.2 - 17.01.2013

+
    +
  • Allows to read bitmaps from resources
  • +
+

0.2.1 - 17.01.2013

+
    +
  • Fixed bug with the AppSettings type provider and .fsx files
  • +
+

0.2.0 - 15.01.2013

+
    +
  • Yaml type provider renamed to Yaml Config type provider
  • +
+

0.1.0 - 15.01.2013

+
    +
  • First official release of ResX, Yaml and AppSettings type provider
  • +
+

0.1.0-alpha5 - 15.01.2013

+
    +
  • Make it compatible with .NET 4.0
  • +
+

0.1.0-alpha4 - 15.01.2013

+
    +
  • Using latest version of SharpYaml
  • +
+

0.1.0-alpha3 - 15.01.2013

+
    +
  • Initial release of the Yaml type provider
  • +
+

0.1.0-alpha2 - 14.01.2013

+
    +
  • Initial release of the ResX type provider
  • +
+

0.1.0-alpha - 14.01.2013

+
    +
  • Initial release
  • +
+ + +
+ +
+
+ Fork me on GitHub + + diff --git a/src/FSharp.Configuration.DesignTime/AppSettingsProvider.fs b/src/FSharp.Configuration.DesignTime/AppSettingsProvider.fs deleted file mode 100644 index b8db614a..00000000 --- a/src/FSharp.Configuration.DesignTime/AppSettingsProvider.fs +++ /dev/null @@ -1,192 +0,0 @@ -module FSharp.Configuration.AppSettingsTypeProvider - -#nowarn "57" - -open FSharp.Configuration.Helper -open ProviderImplementation.ProvidedTypes -open System -open System.Configuration -open System.Globalization -open FSharp.Configuration - -let internal typedAppSettings(context: Context) = - try - let appSettings = erasedType thisAssembly rootNamespace "AppSettings" None - - appSettings.DefineStaticParameters( - parameters = [ ProvidedStaticParameter("configFileName", typeof) ], - instantiationFunction = - fun typeName parameterValues -> - let typedConnectionStrings(config: Configuration, filePath, configFileName) = - let typeDef = - ProvidedTypeDefinition("ConnectionStrings", Some typeof, hideObjectMethods = true) - - typeDef.AddXmlDoc(sprintf "Represents the available connection strings from %s" configFileName) - let niceName = createNiceNameProvider() - let connectionStrings = config.ConnectionStrings.ConnectionStrings - - for connectionString in connectionStrings do - let key = connectionString.Name - let name = niceName key - - let prop = - ProvidedProperty( - name, - typeof, - getterCode = (fun _ -> <@@ AppSettings.getConnectionString(filePath, key) @@>), - setterCode = (fun args -> <@@ AppSettings.setConnectionString(filePath, key, %%args.[0]) @@>), - isStatic = true - ) - - prop.AddXmlDoc(sprintf "Returns the connection string from %s with name %s" configFileName name) - prop.AddDefinitionLocation(1, 1, filePath) - typeDef.AddMember prop - - typeDef - - match parameterValues with - | [| :? string as configFileName |] -> - let typeDef = erasedType thisAssembly rootNamespace typeName None - let niceName = createNiceNameProvider() - - try - let filePath = findConfigFile context.ResolutionFolder configFileName - let fileMap = ExeConfigurationFileMap(ExeConfigFilename = filePath) - - let config = - ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None) - - let appSettings = config.AppSettings.Settings - - for key in appSettings.AllKeys do - let name = niceName key - - let prop = - match (appSettings.Item key).Value with - | ValueParser.Uri _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = (fun _ -> <@@ Uri(AppSettings.getConfigValue(filePath, key)) @@>), - setterCode = fun args -> <@@ AppSettings.setConfigValue(filePath, key, string(%%args.[0]: Uri)) @@> - ) - | ValueParser.Int _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = (fun _ -> <@@ Int32.Parse(AppSettings.getConfigValue(filePath, key)) @@>), - setterCode = fun args -> <@@ AppSettings.setConfigValue(filePath, key, string(%%args.[0]: Int32)) @@> - ) - | ValueParser.Bool _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = (fun _ -> <@@ Boolean.Parse(AppSettings.getConfigValue(filePath, key)) @@>), - setterCode = fun args -> <@@ AppSettings.setConfigValue(filePath, key, string(%%args.[0]: Boolean)) @@> - ) - | ValueParser.Float _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = - (fun _ -> - <@@ - Double.Parse( - AppSettings.getConfigValue(filePath, key), - NumberStyles.Any, - CultureInfo.InvariantCulture - ) - @@>), - setterCode = fun args -> <@@ AppSettings.setConfigValue(filePath, key, string(%%args.[0]: float)) @@> - ) - | ValueParser.TimeSpan _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = - (fun _ -> - <@@ TimeSpan.Parse(AppSettings.getConfigValue(filePath, key), CultureInfo.InvariantCulture) @@>), - setterCode = fun args -> <@@ AppSettings.setConfigValue(filePath, key, string(%%args.[0]: TimeSpan)) @@> - ) - | ValueParser.DateTime _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = - (fun _ -> - <@@ - DateTime.Parse( - AppSettings.getConfigValue(filePath, key), - CultureInfo.InvariantCulture, - DateTimeStyles.AssumeUniversal - ) - @@>), - setterCode = - fun args -> <@@ AppSettings.setConfigValue(filePath, key, (%%args.[0]: DateTime).ToString("o")) @@> - ) - | ValueParser.Guid _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = (fun _ -> <@@ Guid.Parse(AppSettings.getConfigValue(filePath, key)) @@>), - setterCode = - fun args -> <@@ AppSettings.setConfigValue(filePath, key, (%%args.[0]: Guid).ToString("B")) @@> - ) - | _ -> - ProvidedProperty( - name, - typeof, - isStatic = true, - getterCode = (fun _ -> <@@ AppSettings.getConfigValue(filePath, key) @@>), - setterCode = fun args -> <@@ AppSettings.setConfigValue(filePath, key, %%args.[0]) @@> - ) - - prop.AddXmlDoc(sprintf "Returns the value from %s with key %s" configFileName key) - prop.AddDefinitionLocation(1, 1, filePath) - - typeDef.AddMember prop - - let executeSelector = - ProvidedMethod( - niceName "SelectExecutableFile", - [ ProvidedParameter("pathOfExe", typeof) ], - typeof, - isStatic = true, - invokeCode = fun args -> <@@ AppSettings.setExeFilePath filePath %%args.[0] @@> - ) - - executeSelector.AddXmlDoc - "Property to change the executable file that is read for configurations. This idea is that you can manage other executables also (e.g. from script)." - - typeDef.AddMember executeSelector - - - let configFileNameProp = - ProvidedProperty(niceName "ConfigFileName", typeof, isStatic = true, getterCode = fun _ -> <@@ filePath @@>) - - configFileNameProp.AddXmlDoc "Returns the Filename" - typeDef.AddMember configFileNameProp - - let connectionStringTypeDefinition = - typedConnectionStrings(config, filePath, configFileName) - - typeDef.AddMember connectionStringTypeDefinition - - context.WatchFile filePath - typeDef - with _ -> - typeDef - | x -> failwithf "unexpected parameter values %A" x - ) - - appSettings - with ex -> - debug "Error in AppSettingsProvider: %s\n\t%s" ex.Message ex.StackTrace - reraise() diff --git a/src/FSharp.Configuration.DesignTime/AssemblyInfo.fs b/src/FSharp.Configuration.DesignTime/AssemblyInfo.fs deleted file mode 100644 index ff42c5a4..00000000 --- a/src/FSharp.Configuration.DesignTime/AssemblyInfo.fs +++ /dev/null @@ -1,17 +0,0 @@ -// Auto-Generated by FAKE; do not edit -namespace System -open System.Reflection - -[] -[] -[] -[] -[] -do () - -module internal AssemblyVersionInformation = - let [] AssemblyTitle = "FSharp.Configuration.DesignTime" - let [] AssemblyProduct = "FSharp.Configuration" - let [] AssemblyDescription = "The FSharp.Configuration project contains type providers for the configuration of .NET projects." - let [] AssemblyVersion = "3.0.0" - let [] AssemblyFileVersion = "3.0.0" diff --git a/src/FSharp.Configuration.DesignTime/FSharp.Configuration.DesignTime.fs b/src/FSharp.Configuration.DesignTime/FSharp.Configuration.DesignTime.fs deleted file mode 100644 index 58c89909..00000000 --- a/src/FSharp.Configuration.DesignTime/FSharp.Configuration.DesignTime.fs +++ /dev/null @@ -1,39 +0,0 @@ -module FSharp.Configuration.ConfigTypeProvider - -open FSharp.Configuration.Helper -open Microsoft.FSharp.Core.CompilerServices -open ProviderImplementation.ProvidedTypes -open System.Reflection - -[] -type FSharpConfigurationProvider(cfg: TypeProviderConfig) as this = - inherit TypeProviderForNamespaces - ( - cfg, - assemblyReplacementMap = [ ("FSharp.Configuration.DesignTime", "FSharp.Configuration.Runtime") ], - addDefaultProbingLocation = true - ) - - let asm = Assembly.GetExecutingAssembly() - // check we contain a copy of runtime files, and are not referencing the runtime DLL - do assert (typeof.Assembly.GetName().Name = asm.GetName().Name) - - let context = new Context(this, cfg) - - do - this.AddNamespace( - rootNamespace, - [ -#if NET461 - ResXProvider.typedResources context -#endif - AppSettingsTypeProvider.typedAppSettings context - YamlConfigTypeProvider.typedYamlConfig context - IniFileProvider.typedIniFile context - ] - ) - - do this.Disposing.Add(fun _ -> dispose context) - -[] -do () diff --git a/src/FSharp.Configuration.DesignTime/FSharp.Configuration.DesignTime.fsproj b/src/FSharp.Configuration.DesignTime/FSharp.Configuration.DesignTime.fsproj deleted file mode 100644 index 220a219c..00000000 --- a/src/FSharp.Configuration.DesignTime/FSharp.Configuration.DesignTime.fsproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - Library - netstandard2.0;net8.0 - true - true - true - PackageReference - true - false - DESIGNTIME - ..\FSharp.Configuration.Runtime\bin\$(Configuration)\typeproviders\fsharp41\ - - - NET461 - - - - - True - paket-files/ProvidedTypes.fsi - - - True - paket-files/ProvidedTypes.fs - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/FSharp.Configuration.DesignTime/IniFileProvider.fs b/src/FSharp.Configuration.DesignTime/IniFileProvider.fs deleted file mode 100644 index 20decbc1..00000000 --- a/src/FSharp.Configuration.DesignTime/IniFileProvider.fs +++ /dev/null @@ -1,118 +0,0 @@ -module FSharp.Configuration.IniFileProvider - -open System -open FSharp.Configuration -open ProviderImplementation.ProvidedTypes -open System.Globalization - -let internal typedIniFile(context: Context) = - try - let iniFile = erasedType thisAssembly rootNamespace "IniFile" None - - iniFile.DefineStaticParameters( - parameters = [ ProvidedStaticParameter("configFileName", typeof) ], - instantiationFunction = - fun typeName parameterValues -> - match parameterValues with - | [| :? string as iniFileName |] -> - let typeDef = erasedType thisAssembly rootNamespace typeName (Some true) - let niceName = createNiceNameProvider() - - try - let filePath = findConfigFile context.ResolutionFolder iniFileName - - match Ini.Parser.parse filePath with - | Choice1Of2 sections -> - for section in sections do - let sectionTy = - ProvidedTypeDefinition(section.Name, Some typeof, hideObjectMethods = true) - - for setting in section.Settings do - let sectionName = section.Name - let key = setting.Key - - let prop = - match setting.Value with - | ValueParser.Int value -> - ProvidedProperty( - key, - typeof, - isStatic = true, - getterCode = - fun _ -> - <@@ - match Ini.getValue filePath sectionName key with - | Some v -> Int32.Parse v - | None -> value - @@> - ) - | ValueParser.Bool value -> - ProvidedProperty( - key, - typeof, - isStatic = true, - getterCode = - fun _ -> - <@@ - match Ini.getValue filePath sectionName key with - | Some v -> Boolean.Parse v - | None -> value - @@> - ) - | ValueParser.Float value -> - ProvidedProperty( - key, - typeof, - isStatic = true, - getterCode = - fun _ -> - <@@ - match Ini.getValue filePath sectionName key with - | Some v -> Double.Parse(v, NumberStyles.Any, CultureInfo.InvariantCulture) - | None -> value - @@> - ) - | value -> - ProvidedProperty( - key, - typeof, - isStatic = true, - getterCode = - fun _ -> - <@@ - match Ini.getValue filePath sectionName key with - | Some v -> v - | None -> value - @@> - ) - - prop.AddXmlDoc( - sprintf "Returns the value from %s from section %s with key %s" iniFileName section.Name setting.Key - ) - - prop.AddDefinitionLocation(1, 1, filePath) - sectionTy.AddMember prop - - typeDef.AddMember sectionTy - | Choice2Of2 e -> failwithf "%A" e - - let name = niceName "ConfigFileName" - let getValue = <@@ filePath @@> - - let prop = - ProvidedProperty(name, typeof, isStatic = true, getterCode = fun _ -> getValue) - - prop.AddXmlDoc "Returns the Filename" - - typeDef.AddMember prop - context.WatchFile filePath - typeDef - with _ -> - typeDef - | x -> failwithf "unexpected parameter values %A" x - ) - - iniFile - with ex -> - debug "Error in IniProvider: %s\n\t%s" ex.Message ex.StackTrace - reraise() diff --git a/src/FSharp.Configuration.DesignTime/ResXProvider.fs b/src/FSharp.Configuration.DesignTime/ResXProvider.fs deleted file mode 100644 index b806fb1c..00000000 --- a/src/FSharp.Configuration.DesignTime/ResXProvider.fs +++ /dev/null @@ -1,81 +0,0 @@ -module FSharp.Configuration.ResXProvider - -#if NET461 - -open System -open System.IO -open System.Reflection -open System.Resources -open System.ComponentModel.Design -open System.Collections -open System.Collections.Concurrent -open ProviderImplementation.ProvidedTypes -open FSharp.Configuration.Helper - -/// Converts ResX entries to provided properties -let private toProperties (filePath: FilePath) resourceName : MemberInfo list = - ResX.readFile filePath - |> List.map(fun node -> - let key = node.Name - - let ty = - node.GetValueTypeName Unchecked.defaultof - |> Type.GetType - - let resource = - ProvidedProperty( - key, - ty, - isStatic = true, - getterCode = fun _ -> <@@ ResX.readValue resourceName (Assembly.GetExecutingAssembly()) key @@> - ) - - if not(String.IsNullOrEmpty node.Comment) then - resource.AddXmlDoc node.Comment - - resource :> MemberInfo) - -/// Creates provided type from static resource file parameter -let private createResXProvider typeName resourceName filePath = - let ty = - ProvidedTypeDefinition(thisAssembly, rootNamespace, typeName, baseType = Some typeof) - - ty.SetAttributes(ty.Attributes ||| TypeAttributes.Abstract ||| TypeAttributes.Sealed) - toProperties filePath resourceName |> Seq.iter ty.AddMember - ty - -let inline private replace (oldChar: char) (newChar: char) (s: string) = - s.Replace(oldChar, newChar) - -let internal typedResources(context: Context) = - try - let resXType = erasedType thisAssembly rootNamespace "ResXProvider" None - - resXType.DefineStaticParameters( - parameters = [ ProvidedStaticParameter("file", typeof) ], - instantiationFunction = - fun typeName parameterValues -> - match parameterValues with - | [| :? string as resourcePath |] -> - let filePath = findConfigFile context.ResolutionFolder resourcePath - - if not(File.Exists filePath) then - invalidArg "file" "Resource file not found" - - let resourceName = - Path.ChangeExtension(resourcePath, null) - |> replace '\\' '.' - |> replace '/' '.' - - let providedType = createResXProvider typeName resourceName filePath - context.WatchFile filePath - providedType - | _ -> failwith "unexpected parameter values" - ) - - resXType - with ex -> - debug "Error in ResxProvider: %s\n\t%s" ex.Message ex.StackTrace - reraise() - -#endif diff --git a/src/FSharp.Configuration.DesignTime/YamlConfigProvider.fs b/src/FSharp.Configuration.DesignTime/YamlConfigProvider.fs deleted file mode 100644 index d464ed5d..00000000 --- a/src/FSharp.Configuration.DesignTime/YamlConfigProvider.fs +++ /dev/null @@ -1,335 +0,0 @@ -module FSharp.Configuration.YamlConfigTypeProvider - -#nowarn "57" -#nowarn "25" - -open System.Reflection -open System -open System.IO -open System.Collections.Generic - -open Microsoft.FSharp.Quotations - -open YamlDotNet.Serialization - -open ProviderImplementation.ProvidedTypes -open ProviderImplementation.ProvidedTypes.UncheckedQuotations -open FSharp.Configuration.Helper -open FSharp.Configuration.Yaml - -module private TypesFactory = - open Parser - - type Scalar with - - member x.ToExpr() = - match x with - | Int x -> Expr.Value x - | Int64 x -> Expr.Value x - | String x -> Expr.Value x - | Bool x -> Expr.Value x - | Float x -> Expr.Value x - | TimeSpan x -> - let parse = typeof.GetMethod ("Parse", [| typeof |]) - Expr.Call(parse, [ Expr.Value(x.ToString()) ]) - | Uri x -> - let ctr = typeof.GetConstructor [| typeof |] - Expr.NewObject(ctr, [ Expr.Value x.OriginalString ]) - | Guid x -> - let parse = typeof.GetMethod ("Parse", [| typeof |]) - Expr.Call(parse, [ Expr.Value(x.ToString()) ]) - - type T = { - MainType: Type option - Types: MemberInfo list - Init: Expr -> Expr - } - - let private generateChangedEvent = - let eventType = typeof - let delegateType = typeof - - let combineMethod = - delegateType.GetMethod("Combine", [| delegateType; delegateType |]) - - let removeMethod = - delegateType.GetMethod("Remove", [| delegateType; delegateType |]) - - fun () -> - let eventField = ProvidedField("_changed", eventType) - - let changeEvent m me v = - let current = Expr.Coerce(Expr.FieldGetUnchecked(me, eventField), delegateType) - let other = Expr.Coerce(v, delegateType) - Expr.Coerce(Expr.Call(m, [ current; other ]), eventType) - - let adder = changeEvent combineMethod - let remover = changeEvent removeMethod - - let event = - ProvidedEvent( - "Changed", - eventType, - adderCode = (fun [ me; v ] -> Expr.FieldSetUnchecked(me, eventField, adder me v)), - removerCode = (fun [ me; v ] -> Expr.FieldSetUnchecked(me, eventField, remover me v)) - ) - - eventField, event - - let rec transform readOnly name (node: Node) = - match name, node with - | Some name, Scalar x -> transformScalar readOnly name x - | _, Map m -> transformMap readOnly name m - | Some name, List l -> transformList readOnly name true l - | None, _ -> failwithf "Only Maps are allowed at the root level." - - and transformScalar readOnly name (node: Scalar) = - let rawType = node.UnderlyingType - let field = ProvidedField("_" + name, rawType) - - let prop = - if readOnly then - ProvidedProperty(name, rawType, isStatic = false, getterCode = (fun [ me ] -> Expr.FieldGetUnchecked(me, field))) - else - ProvidedProperty( - name, - rawType, - isStatic = false, - getterCode = (fun [ me ] -> Expr.FieldGetUnchecked(me, field)), - setterCode = (fun [ me; v ] -> Expr.FieldSetUnchecked(me, field, v)) - ) - - let initValue = node.ToExpr() - - { - MainType = Some rawType - Types = [ field :> MemberInfo; prop :> MemberInfo ] - Init = fun me -> Expr.FieldSetUnchecked(me, field, initValue) - } - - and transformList readOnly name generateField (children: Node list) = - let elements = - children - |> List.map (function - | Scalar x -> { - MainType = Some x.UnderlyingType - Types = [] - Init = fun _ -> x.ToExpr() - } - | Map m -> transformMap readOnly None m - | List l -> transformList readOnly (name + "_Items") false l) - - let elements, elementType = - match - elements - |> Seq.groupBy(fun n -> n.MainType) - |> Seq.map fst - |> Seq.toList - with - | [ Some ty ] -> elements, ty - | [ None ] -> - // Sequence of maps: https://github.com/fsprojects/FSharp.Configuration/issues/51 - // TODOL Construct the type from all the elements (instead of only the first entry) - let headChildren = - match children |> Seq.head with - | Map m -> m - | _ -> failwith "expected a sequence of maps." - - let childTypes, childInits = foldChildren readOnly headChildren - let eventField, event = generateChangedEvent() - - let mapTy = - ProvidedTypeDefinition( - name + "_Item_Type", - Some typeof, - hideObjectMethods = true, - isErased = false, - SuppressRelocation = false - ) - - let ctr = ProvidedConstructor([], invokeCode = (fun [ me ] -> childInits me)) - mapTy.AddMembers childTypes - mapTy.AddMember ctr - mapTy.AddMember eventField - mapTy.AddMember event - - [ - { - MainType = Some(mapTy :> _) - Types = [ mapTy :> MemberInfo ] - Init = fun _ -> Expr.NewObject(ctr, []) - } - ], - mapTy :> _ - | types -> - failwithf - "List cannot contain elements of heterogeneous types (attempt to mix types: %A)." - (types |> List.map(Option.map(fun x -> x.Name))) - - let propType = - ProvidedTypeBuilder.MakeGenericType(typedefof>, [ elementType ]) - - let ctrType = - ProvidedTypeBuilder.MakeGenericType(typedefof>, [ elementType ]) - - let listCtr = - let meth = typeof.GetMethod ("CreateResizeArray") - ProvidedTypeBuilder.MakeGenericMethod(meth, [ elementType ]) - - let childTypes = elements |> List.collect(fun x -> x.Types) - - let initValue ty me = - Expr.Coerce( - Expr.CallUnchecked( - listCtr, - [ - Expr.Coerce(Expr.NewArray(elementType, elements |> List.map(fun x -> x.Init me)), ctrType) - ] - ), - ty - ) - - if generateField then - let fieldType = - ProvidedTypeBuilder.MakeGenericType(typedefof>, [ elementType ]) - - let field = ProvidedField("_" + name, fieldType) - - let prop = - if readOnly then - ProvidedProperty( - name, - propType, - isStatic = false, - getterCode = (fun [ me ] -> Expr.Coerce(Expr.FieldGetUnchecked(me, field), propType)) - ) - else - ProvidedProperty( - name, - propType, - isStatic = false, - getterCode = (fun [ me ] -> Expr.Coerce(Expr.FieldGetUnchecked(me, field), propType)), - setterCode = - (fun [ me; v ] -> - Expr.FieldSetUnchecked(me, field, Expr.Coerce(Expr.CallUnchecked(listCtr, [ Expr.Coerce(v, ctrType) ]), fieldType))) - ) - - { - MainType = Some fieldType - Types = childTypes @ [ field :> MemberInfo; prop :> MemberInfo ] - Init = fun me -> Expr.FieldSetUnchecked(me, field, initValue fieldType me) - } - else - { - MainType = Some propType - Types = childTypes - Init = initValue propType - } - - and foldChildren readOnly (children: (string * Node) list) = - let childTypes, childInits = - children - |> List.map(fun (name, node) -> transform readOnly (Some name) node) - |> List.fold (fun (types, inits) t -> types @ t.Types, inits @ [ t.Init ]) ([], []) - - let affinedChildInits me = - childInits - |> List.fold (fun acc expr -> expr me :: acc) [] - |> List.reduce(fun res expr -> Expr.Sequential(res, expr)) - - childTypes, affinedChildInits - - and transformMap readOnly name (children: (string * Node) list) = - let childTypes, childInits = foldChildren readOnly children - let eventField, event = generateChangedEvent() - - match name with - | Some name -> - let mapTy = - ProvidedTypeDefinition(name + "_Type", Some typeof, hideObjectMethods = true, isErased = false, SuppressRelocation = false) - - let ctr = ProvidedConstructor([], invokeCode = (fun [ me ] -> childInits me)) - mapTy.AddMembers childTypes - mapTy.AddMember ctr - mapTy.AddMember eventField - mapTy.AddMember event - - let field = ProvidedField("_" + name, mapTy) - - let prop = - ProvidedProperty(name, mapTy, isStatic = false, getterCode = (fun [ me ] -> Expr.FieldGetUnchecked(me, field))) - - { - MainType = Some(mapTy :> _) - Types = [ mapTy :> MemberInfo; field :> MemberInfo; prop :> MemberInfo ] - Init = fun me -> Expr.FieldSetUnchecked(me, field, Expr.NewObject(ctr, [])) - } - | None -> { - MainType = None - Types = [ eventField :> MemberInfo; event :> MemberInfo ] @ childTypes - Init = childInits - } - - -let internal typedYamlConfig(context: Context) = - try - let baseTy = typeof - - let asm = Assembly.GetExecutingAssembly() - - let yamlConfig = - ProvidedTypeDefinition(asm, rootNamespace, "YamlConfig", Some baseTy, isErased = false) - - let staticParams = [ - ProvidedStaticParameter("FilePath", typeof, "") - ProvidedStaticParameter("ReadOnly", typeof, false) - ProvidedStaticParameter("YamlText", typeof, "") - ProvidedStaticParameter("InferTypesFromStrings", typeof, true) - ] - - yamlConfig.AddXmlDoc - """Statically typed YAML config. - Path to YAML file. - Whether the resulting properties will be read-only or not. - Yaml as text. Mutually exclusive with FilePath parameter.""" - - yamlConfig.DefineStaticParameters( - parameters = staticParams, - instantiationFunction = - fun typeName paramValues -> - let createTy yaml readOnly inferTypesFromStrings = - let myAssem = ProvidedAssembly() - - let ty = - ProvidedTypeDefinition(myAssem, rootNamespace, typeName, Some baseTy, isErased = false, hideObjectMethods = true) - - let types = - TypesFactory.transform readOnly None (Parser.parse inferTypesFromStrings yaml) - - let ctr = ProvidedConstructor([], invokeCode = fun (me :: _) -> types.Init me) - - let baseCtor = - baseTy.GetConstructor(BindingFlags.Public ||| BindingFlags.Instance, null, [| typeof |], null) - - ctr.BaseConstructorCall <- fun [ me ] -> baseCtor, [ me; Expr.Value inferTypesFromStrings ] - ty.AddMembers(ctr :> MemberInfo :: types.Types) - myAssem.AddTypes [ ty ] - ty - - match paramValues with - | [| :? string as filePath; :? bool as readOnly; :? string as yamlText; :? bool as inferTypesFromStrings |] -> - match filePath, yamlText with - | "", "" -> failwith "You must specify either FilePath or YamlText parameter." - | "", yamlText -> createTy yamlText readOnly inferTypesFromStrings - | filePath, _ -> - let filePath = findConfigFile context.ResolutionFolder filePath - context.WatchFile filePath - createTy (File.ReadAllText filePath) readOnly inferTypesFromStrings - | _ -> failwith "Wrong parameters" - - ) - - yamlConfig - with ex -> - debug "Error in YamlProvider: %s\n\t%s" ex.Message ex.StackTrace - reraise() diff --git a/src/FSharp.Configuration.DesignTime/paket.references b/src/FSharp.Configuration.DesignTime/paket.references deleted file mode 100644 index a39c40c2..00000000 --- a/src/FSharp.Configuration.DesignTime/paket.references +++ /dev/null @@ -1,6 +0,0 @@ -File:ProvidedTypes.fsi -File:ProvidedTypes.fs - -FSharp.Core -YamlDotNet -System.Configuration.ConfigurationManager diff --git a/src/FSharp.Configuration.Runtime/AppSettingsProvider.Runtime.fs b/src/FSharp.Configuration.Runtime/AppSettingsProvider.Runtime.fs deleted file mode 100644 index 3c676ddc..00000000 --- a/src/FSharp.Configuration.Runtime/AppSettingsProvider.Runtime.fs +++ /dev/null @@ -1,59 +0,0 @@ -module FSharp.Configuration.AppSettings - -open FSharp.Configuration.Helper -open ProviderImplementation.ProvidedTypes -open System -open System.Configuration -open System.Collections.Generic -open System.Globalization -#if NET461 -open System.Web.Hosting -#endif - -let mutable private exePath = Map.empty - -let setExeFilePath key filePath = - exePath <- exePath.Add(key, filePath) - -let getConfig file = - let path = exePath - - if path.ContainsKey(file) && System.IO.File.Exists(path.[file]) then - ConfigurationManager.OpenExeConfiguration path.[file] - else -#if NET461 - if - HostingEnvironment.IsHosted - then - Web.Configuration.WebConfigurationManager.OpenWebConfiguration "~" - else - ConfigurationManager.OpenExeConfiguration ConfigurationUserLevel.None -#else - ConfigurationManager.OpenExeConfiguration ConfigurationUserLevel.None -#endif - -let getConfigValue(file, key) = - let conf = getConfig file - - match conf.AppSettings.Settings.[key] with - | null -> - raise - <| KeyNotFoundException(sprintf "Cannot find name %s in section of config file. (%s)" key conf.FilePath) - | settings -> settings.Value - -let setConfigValue(file, key, value) = - let config = getConfig file - config.AppSettings.Settings.[key].Value <- value - config.Save() - -let getConnectionString(file, key: string) = - match getConfig(file).ConnectionStrings.ConnectionStrings.[key] with - | null -> - raise - <| KeyNotFoundException(sprintf "Cannot find name %s in section of config file." key) - | section -> section.ConnectionString - -let setConnectionString(file, key: string, value) = - let config = getConfig file - config.ConnectionStrings.ConnectionStrings.[key].ConnectionString <- value - config.Save() diff --git a/src/FSharp.Configuration.Runtime/AssemblyInfo.fs b/src/FSharp.Configuration.Runtime/AssemblyInfo.fs deleted file mode 100644 index 719a669e..00000000 --- a/src/FSharp.Configuration.Runtime/AssemblyInfo.fs +++ /dev/null @@ -1,17 +0,0 @@ -// Auto-Generated by FAKE; do not edit -namespace System -open System.Reflection - -[] -[] -[] -[] -[] -do () - -module internal AssemblyVersionInformation = - let [] AssemblyTitle = "FSharp.Configuration.Runtime" - let [] AssemblyProduct = "FSharp.Configuration" - let [] AssemblyDescription = "The FSharp.Configuration project contains type providers for the configuration of .NET projects." - let [] AssemblyVersion = "3.0.0" - let [] AssemblyFileVersion = "3.0.0" diff --git a/src/FSharp.Configuration.Runtime/FSharp.Configuration.Runtime.fs b/src/FSharp.Configuration.Runtime/FSharp.Configuration.Runtime.fs deleted file mode 100644 index 4357f3cc..00000000 --- a/src/FSharp.Configuration.Runtime/FSharp.Configuration.Runtime.fs +++ /dev/null @@ -1,7 +0,0 @@ -namespace FSharp.Configuration.Yaml - -// Put the TypeProviderAssemblyAttribute in the runtime DLL, pointing to the design-time DLL -#if TP_RUNTIME -[] -do () -#endif diff --git a/src/FSharp.Configuration.Runtime/FSharp.Configuration.Runtime.fsproj b/src/FSharp.Configuration.Runtime/FSharp.Configuration.Runtime.fsproj deleted file mode 100644 index 50f55a20..00000000 --- a/src/FSharp.Configuration.Runtime/FSharp.Configuration.Runtime.fsproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - Library - netstandard2.0;net8.0 - true - false - TP_RUNTIME - - - NET461 - - - - - True - paket-files/ProvidedTypes.fsi - - - True - paket-files/ProvidedTypes.fs - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/FSharp.Configuration.Runtime/IniFileProvider.Runtime.fs b/src/FSharp.Configuration.Runtime/IniFileProvider.Runtime.fs deleted file mode 100644 index 24bf8ca2..00000000 --- a/src/FSharp.Configuration.Runtime/IniFileProvider.Runtime.fs +++ /dev/null @@ -1,91 +0,0 @@ -module FSharp.Configuration.Ini - -open System -open System.IO - -module Parser = - open System.Text.RegularExpressions - - type Key = string - type Value = string - type Setting = { Key: Key; Value: Value } - type SectionName = string - - type Section = { - Name: SectionName - Settings: Setting list - } - - type Stream = | Stream of int * string list - - let (|Regex|_|) pattern = - function - | Stream(n, line :: rest) -> - let m = Regex.Match(line, pattern) - - if m.Success then - let values = [ for gr in m.Groups -> gr.Value ] - Some(values, Stream(n, rest)) - else - None - | _ -> None - - let (|Comment|_|) = - function - | Regex @"^\s*;.*" (_, s) -> Some s - | _ -> None - - let (|Header|_|) = - function - | Regex @"\[\s*(\S+)\s*\]" ([ _; name ], s) -> Some(name, s) - | _ -> None - - let (|Setting|_|) = - function - | Regex @"\s*(\S+)\s*=\s*(.*)" ([ _; key; value ], s) -> Some({ Key = key; Value = value.Trim() }, s) - | _ -> None - - let (|Settings|_|) s = - let rec loop s settings = - match s with - | Setting(setting, s) -> loop s (setting :: settings) - | Comment s -> loop s settings - | _ -> (List.rev settings, s) - - let settings, s = loop s [] - Some(settings, s) - - let rec (|Section|_|) = - function - | Header(name, Settings(settings, s)) -> Some({ Name = name; Settings = settings }, s) - | _ -> None - - let (|Sections|_|) s = - let rec loop s sections = - match s with - | Section(section, s) -> loop s (section :: sections) - | Comment s -> loop s sections - | _ -> (sections |> List.rev, s) - - let sections, s = loop s [] - Some(sections, s) - - let streamOfLines lines = - Stream(0, lines |> Seq.filter(not << String.IsNullOrWhiteSpace) |> List.ofSeq) - - let streamOfFile path = - File.ReadLines path |> streamOfLines - - let parse path = - match streamOfFile path with - | Sections(sections, _) -> Choice1Of2 sections - | e -> Choice2Of2 e - -let getValue (iniFilePath: string) (section: string) (key: string) = - match Parser.parse iniFilePath with - | Choice1Of2 sections -> maybe { - let! section = sections |> List.tryFind(fun s -> s.Name = section) - let! setting = section.Settings |> List.tryFind(fun s -> s.Key = key) - return setting.Value - } - | Choice2Of2 _ -> None diff --git a/src/FSharp.Configuration.Runtime/ResXProvider.Runtime.fs b/src/FSharp.Configuration.Runtime/ResXProvider.Runtime.fs deleted file mode 100644 index 6f8a3264..00000000 --- a/src/FSharp.Configuration.Runtime/ResXProvider.Runtime.fs +++ /dev/null @@ -1,31 +0,0 @@ -module FSharp.Configuration.ResX - -#if NET461 - -open System -open System.IO -open System.Reflection -open System.Resources -open System.ComponentModel.Design -open System.Collections -open System.Collections.Concurrent -open ProviderImplementation.ProvidedTypes -open FSharp.Configuration.Helper - -let readFile(filePath: FilePath) : ResXDataNode list = - use reader = new ResXResourceReader(filePath, UseResXDataNodes = true) - - reader - |> Seq.cast - |> Seq.map(fun (x: DictionaryEntry) -> x.Value :?> ResXDataNode) - |> Seq.toList - -let resourceManCache = ConcurrentDictionary() - -let readValue resourceName assembly key = - let resourceMan = - resourceManCache.GetOrAdd((resourceName, assembly), (fun _ -> ResourceManager(resourceName, assembly))) - - downcast (resourceMan.GetObject key) - -#endif diff --git a/src/FSharp.Configuration.Runtime/TypeProviders.Helper.fs b/src/FSharp.Configuration.Runtime/TypeProviders.Helper.fs deleted file mode 100644 index 35ba648c..00000000 --- a/src/FSharp.Configuration.Runtime/TypeProviders.Helper.fs +++ /dev/null @@ -1,419 +0,0 @@ -/// Starting to implement some helpers on top of ProvidedTypes API -[] -module internal FSharp.Configuration.Helper - -open System -open System.IO -open ProviderImplementation.ProvidedTypes -open Microsoft.FSharp.Core.CompilerServices -open Microsoft.FSharp.Core.Printf -open System.Collections.Generic - -type FilePath = string - -// Active patterns & operators for parsing strings -type String with - - member x.TryGetChar i = - if i >= x.Length then ValueNone else ValueSome x.[i] - -let inline satisfies predicate (charOption: voption) = - match charOption with - | ValueSome c when predicate c -> charOption - | _ -> ValueNone - -let dispose(x: IDisposable) = - if x = null then () else x.Dispose() - -let debug msg = - let dt = DateTime.Now - - let writer msg = - Diagnostics.Debug.WriteLine msg - // System.IO.File.AppendAllLines("debug.log", [sprintf "[%O] %s\n" dt msg]) - Printf.kprintf writer msg - -[] -let (|EOF|_|) = - function - | ValueSome _ -> ValueNone - | _ -> ValueSome() - -[] -let (|LetterDigit|_|) = satisfies Char.IsLetterOrDigit - -[] -let (|Upper|_|) = satisfies Char.IsUpper - -[] -let (|Lower|_|) = satisfies Char.IsLower - -/// Path.Combine -let () x y = - Path.Combine(x, y) - -[] -module Option = - let inline ofNull value = - if obj.ReferenceEquals(value, null) then - None - else - Some value - - /// Gets the value associated with the option or the supplied default value. - let inline getOrElse v = - function - | Some x -> x - | None -> v - -/// Maybe computation expression builder, copied from ExtCore library -/// https://github.com/jack-pappas/ExtCore/blob/master/ExtCore/Control.fs -[] -type MaybeBuilder() = - // 'T -> M<'T> - member inline __.Return value : 'T option = - Some value - - // M<'T> -> M<'T> - member inline __.ReturnFrom value : 'T option = value - - // unit -> M<'T> - member inline __.Zero() : unit option = Some() // TODO: Should this be None? - - // (unit -> M<'T>) -> M<'T> - member __.Delay(f: unit -> 'T option) : 'T option = f() - - // M<'T> -> M<'T> -> M<'T> - // or - // M -> M<'T> -> M<'T> - member inline __.Combine(r1, r2: 'T option) : 'T option = - match r1 with - | None -> None - | Some() -> r2 - - // M<'T> * ('T -> M<'U>) -> M<'U> - member inline __.Bind(value, f: 'T -> 'U option) : 'U option = - Option.bind f value - - // 'T * ('T -> M<'U>) -> M<'U> when 'U :> IDisposable - member __.Using(resource: ('T :> System.IDisposable), body: _ -> _ option) : _ option = - try - body resource - finally - if not <| obj.ReferenceEquals(null, box resource) then - resource.Dispose() - - // (unit -> bool) * M<'T> -> M<'T> - member x.While(guard, body: _ option) : _ option = - if guard() then - // OPTIMIZE: This could be simplified so we don't need to make calls to Bind and While. - x.Bind(body, (fun () -> x.While(guard, body))) - else - x.Zero() - - // seq<'T> * ('T -> M<'U>) -> M<'U> - // or - // seq<'T> * ('T -> M<'U>) -> seq> - member x.For(sequence: seq<_>, body: 'T -> unit option) : _ option = - // OPTIMIZE: This could be simplified so we don't need to make calls to Using, While, Delay. - x.Using(sequence.GetEnumerator(), (fun enum -> x.While(enum.MoveNext, x.Delay(fun () -> body enum.Current)))) - -let maybe = MaybeBuilder() - -[] -module ValueParser = - open System.Globalization - - /// Converts a function returning bool,value to a function returning value option. - /// Useful to process TryXX style functions. - let inline private tryParseWith(func: string -> bool * 'b) = - func - >> function - | true, value -> ValueSome value - | false, _ -> ValueNone - - [] - let (|Bool|_|) = tryParseWith Boolean.TryParse - - [] - let (|Int|_|) = tryParseWith Int32.TryParse - - [] - let (|Int64|_|) = tryParseWith Int64.TryParse - - [] - let (|Float|_|) = - tryParseWith(fun x -> Double.TryParse(x, NumberStyles.Any, CultureInfo.InvariantCulture)) - - [] - let (|TimeSpan|_|) = - tryParseWith(fun x -> TimeSpan.TryParse(x, CultureInfo.InvariantCulture)) - - [] - let (|Guid|_|) = tryParseWith Guid.TryParse - - [] - let (|DateTime|_|) = - tryParseWith(fun x -> DateTime.TryParse(x, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal)) - - let (|Uri|_|)(text: string) = - [ "http"; "https"; "ftp"; "ftps"; "sftp"; "amqp"; "file"; "ssh"; "tcp" ] - |> List.tryPick(fun x -> - if text.Trim().StartsWith(x + ":", StringComparison.InvariantCultureIgnoreCase) then - match System.Uri.TryCreate(text, UriKind.Absolute) with - | true, uri -> Some uri - | _ -> None - else - None) - -let inline forall predicate (source: ReadOnlySpan<_>) = - let mutable state = true - let mutable e = source.GetEnumerator() - - while state && e.MoveNext() do - state <- predicate e.Current - - state - -/// Turns a string into a nice PascalCase identifier -let createNiceNameProvider() = - let set = HashSet() - - fun (s: string) -> - if s = s.ToUpper() then - s - else - // Starting to parse a new segment - let rec restart i = - match s.TryGetChar i with - | EOF -> Seq.empty - | LetterDigit _ & Upper _ -> upperStart i (i + 1) - | LetterDigit _ -> consume i false (i + 1) - | _ -> restart(i + 1) - - // Parsed first upper case letter, continue either all lower or all upper - and upperStart from i = - match s.TryGetChar i with - | Upper _ -> consume from true (i + 1) - | Lower _ -> consume from false (i + 1) - | _ -> restart(i + 1) - - // Consume are letters of the same kind (either all lower or all upper) - and consume from takeUpper i = - match s.TryGetChar i with - | Lower _ when not takeUpper -> consume from takeUpper (i + 1) - | Upper _ when takeUpper -> consume from takeUpper (i + 1) - | _ -> seq { - yield struct (from, i) - yield! restart i - } - - // Split string into segments and turn them to PascalCase - let mutable name = - seq { - for i1, i2 in restart 0 do - let sub = s.AsSpan(i1, i2 - i1) - - if forall Char.IsLetterOrDigit sub then - yield Char.ToUpper(sub.[0]).ToString() + sub.Slice(1).ToString().ToLower() - } - |> String.concat "" - - while set.Contains name do - let mutable lastLetterPos = String.length name - 1 - - while Char.IsDigit name.[lastLetterPos] && lastLetterPos > 0 do - lastLetterPos <- lastLetterPos - 1 - - if lastLetterPos = name.Length - 1 then - name <- name + "2" - elif lastLetterPos = 0 then - name <- (UInt64.Parse name + 1UL).ToString() - else - let number = name.Substring(lastLetterPos + 1) - - name <- - name.Substring(0, lastLetterPos + 1) - + (UInt64.Parse number + 1UL).ToString() - - set.Add name |> ignore - name - -let findConfigFile resolutionFolder (configFileName: string) = - if Path.IsPathRooted configFileName then - configFileName - else - resolutionFolder configFileName - |> Path.GetFullPath - -let erasedType<'T> assemblyName rootNamespace typeName (hideObjectMethods: bool option) = - match hideObjectMethods with - | None -> ProvidedTypeDefinition(assemblyName, rootNamespace, typeName, Some(typeof<'T>)) - | Some hideObjectMethods -> ProvidedTypeDefinition(assemblyName, rootNamespace, typeName, Some(typeof<'T>), hideObjectMethods = hideObjectMethods) - -// Get the assembly and namespace used to house the provided types -let thisAssembly = System.Reflection.Assembly.GetExecutingAssembly() -let rootNamespace = "FSharp.Configuration" - -module File = - let tryOpenFile filePath = - try - Some(new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) - with _ -> - None - - let tryReadNonEmptyTextFile filePath = - let maxAttempts = 5 - - let rec sleepAndRun attempt = task { - do! System.Threading.Tasks.Task.Delay 1000 - return! loop(attempt - 1) - } - - and loop attemptsLeft = task { - let attempt = maxAttempts - attemptsLeft + 1 - - match tryOpenFile filePath with - | Some file -> - try - use reader = new StreamReader(file) - - match attemptsLeft, reader.ReadToEnd() with - | 0, x -> return x - | _, "" -> - printfn "Attempt %d of %d: %s is empty. Sleep for 1 sec, then retry..." attempt maxAttempts filePath - return! sleepAndRun attemptsLeft - | _, content -> return content - finally - file.Dispose() - | None -> - if attemptsLeft = 0 then - return raise(FileNotFoundException(sprintf "File, %s could not be opened after %d attempts." filePath maxAttempts)) - else - printfn "Attempt %d of %d: cannot read %s. Sleep for 1 sec, then retry..." attempt maxAttempts filePath - return! sleepAndRun attemptsLeft - } - - loop maxAttempts - - type private State = { - LastFileWriteTime: DateTime - Updated: DateTime - } - - let watch changesOnly (filePath: string) onChanged = - let getLastWrite() = - File.GetLastWriteTime filePath - - let state = - ref - { - LastFileWriteTime = getLastWrite() - Updated = DateTime.Now - } - - let changed(_: FileSystemEventArgs) = - let curr = getLastWrite() - - if - curr <> (!state).LastFileWriteTime - && DateTime.Now - (!state).Updated > TimeSpan.FromMilliseconds 500. - then - onChanged() - - state - := { - LastFileWriteTime = curr - Updated = DateTime.Now - } - - let watcher = - new FileSystemWatcher(Path.GetDirectoryName filePath, Path.GetFileName filePath) - - watcher.NotifyFilter <- - NotifyFilters.CreationTime - ||| NotifyFilters.LastWrite - ||| NotifyFilters.Size - - watcher.Changed.Add changed - - if not changesOnly then - watcher.Deleted.Add changed - watcher.Renamed.Add changed - - watcher.EnableRaisingEvents <- true - watcher :> IDisposable - - let getFullPath resolutionFolder (fileName: string) = - if Path.IsPathRooted fileName then - fileName - else - resolutionFolder fileName - -type private ContextMessage = - | Watch of FilePath - | AddDisposable of IDisposable - | Cancel - -type Context(provider: TypeProviderForNamespaces, cfg: TypeProviderConfig) = - let watcher: IDisposable option ref = ref None - - let disposeWatcher() = - !watcher |> Option.iter(fun x -> x.Dispose()) - watcher := None - - let watchForChanges(fileName: string) = - disposeWatcher() - let fileName = File.getFullPath cfg.ResolutionFolder fileName - File.watch false fileName provider.Invalidate - - let agent = - MailboxProcessor.Start(fun inbox -> - let rec loop (files: Map) (disposables: IDisposable list) = async { - let unwatch file = - match files |> Map.tryFind file with - | Some disposable -> - disposable.Dispose() - files |> Map.remove file - | None -> files - - let! msg = inbox.Receive() - - match msg with - | Watch file -> return! loop (unwatch file |> Map.add file (watchForChanges file)) disposables - | AddDisposable x -> return! loop files (x :: disposables) - | Cancel -> - files |> Map.toSeq |> Seq.map snd |> Seq.iter dispose - disposables |> List.iter dispose - } - - loop Map.empty []) - - member __.ResolutionFolder = cfg.ResolutionFolder - - member __.WatchFile(file: FilePath) = - agent.Post(Watch file) - - member __.AddDisposable x = - agent.Post(AddDisposable x) - - interface IDisposable with - member __.Dispose() = - agent.Post Cancel - -// open System.Runtime.Caching - -// type MemoryCache with -// member x.GetOrAdd(key: string, value: Lazy, ?expiration: TimeSpan) = -// let policy = CacheItemPolicy() -// policy.SlidingExpiration <- defaultArg expiration <| TimeSpan.FromHours 24. - -// match x.AddOrGetExisting(key, value, policy) with -// | :? Lazy as item -> -// try item.Value -// with _ -> -// x.Remove key |> ignore -// value.Value -// | x -> -// assert(x = null) -// value.Value diff --git a/src/FSharp.Configuration.Runtime/YamlConfigProvider.Runtime.fs b/src/FSharp.Configuration.Runtime/YamlConfigProvider.Runtime.fs deleted file mode 100644 index 0a1c04b4..00000000 --- a/src/FSharp.Configuration.Runtime/YamlConfigProvider.Runtime.fs +++ /dev/null @@ -1,422 +0,0 @@ -namespace FSharp.Configuration.Yaml - -open System.Reflection -open System -open System.IO -open System.Collections.Generic - -open YamlDotNet.Core -open YamlDotNet.Serialization -open FSharp.Configuration - -type Helper() = - static member CreateResizeArray<'a>(data: 'a seq) : ResizeArray<'a> = - ResizeArray<'a>(data) - -module Parser = - type Scalar = - | Int of int - | Int64 of int64 - | String of string - | TimeSpan of TimeSpan - | Bool of bool - | Uri of Uri - | Float of double - | Guid of Guid - - static member ParseStr = - function - | ValueParser.Bool x -> Bool x - | ValueParser.Int x -> Int x - | ValueParser.Int64 x -> Int64 x - | ValueParser.Float x -> Float x - | ValueParser.TimeSpan x -> TimeSpan x - | ValueParser.Uri x -> Uri x - | ValueParser.Guid x -> Guid x - | x -> String x - - static member FromObj(inferTypesFromStrings: bool) : obj -> Scalar = - function - | null -> String "" - | :? System.Boolean as b -> Bool b - | :? System.Int32 as i -> Int i - | :? System.Int64 as i -> Int64 i - | :? System.Double as d -> Float d - | :? System.String as s -> - if inferTypesFromStrings then - Scalar.ParseStr s - else - Scalar.String s - | t -> failwithf "Unknown type %s" (string(t.GetType())) - - member x.UnderlyingType = - match x with - | Int x -> x.GetType() - | Int64 x -> x.GetType() - | String x -> x.GetType() - | Bool x -> x.GetType() - | TimeSpan x -> x.GetType() - | Uri x -> x.GetType() - | Float x -> x.GetType() - | Guid x -> x.GetType() - - member x.BoxedValue = - match x with - | Int x -> box x - | Int64 x -> box x - | String x -> box x - | TimeSpan x -> box x - | Bool x -> box x - | Uri x -> box x - | Float x -> box x - | Guid x -> box x - - type Node = - | Scalar of Scalar - | List of Node list - | Map of (string * Node) list - - let parse(inferTypesFromStrings: bool) : (string -> Node) = - let rec loop(n: obj) = - match n with - | :? List as l -> Node.List(l |> Seq.map loop |> Seq.toList) - | :? Dictionary as map -> - map - |> Seq.map(fun p -> string p.Key, loop p.Value) - |> Seq.toList - |> Map - | scalar -> Scalar(Scalar.FromObj inferTypesFromStrings scalar) - - //let settings = SerializerSettings (EmitDefaultValues = true, EmitTags = false, SortKeyForMapping = false) - let deserializer = DeserializerBuilder().Build() - - fun text -> - try - deserializer.Deserialize(text) |> loop - with - | :? YamlDotNet.Core.YamlException as e when e.InnerException <> null -> raise e.InnerException // inner exceptions are much more informative - | _ -> reraise() - - let private inferListType (targetType: Type) (nodes: Node list) = - let types = - nodes - |> List.choose (function - | Scalar x -> Some x - | _ -> None) - |> Seq.groupBy(fun n -> n.UnderlyingType) - |> Seq.map fst - |> Seq.toList - - match types with - | [] -> targetType - | [ ty ] -> typedefof>.MakeGenericType ty - | types -> failwithf "List cannot contain elements of heterohenius types (attempt to mix types: %A)." types - - let update (target: 'a) (updater: Node) = - let tryGetField x name = - x.GetType().GetField(name, BindingFlags.Instance ||| BindingFlags.NonPublic) - |> Option.ofNull - - let getChangedDelegate x = - x - .GetType() - .GetField("_changed", BindingFlags.Instance ||| BindingFlags.NonPublic) - .GetValue x - :?> MulticastDelegate - - let rec update (target: obj) name (updater: Node) = - match name, updater with - | _, Scalar x -> updateScalar target name x - | _, Map m -> updateMap target name m - | Some name, List l -> updateList target name l - | None, _ -> failwithf "Only Maps are allowed at the root level." - - and updateScalar (target: obj) name (node: Scalar) = - maybe { - let! name = name - let! field = tryGetField target ("_" + name) - - let newValue = - if Type.(<>)(field.FieldType, node.UnderlyingType) then - if - Type.(<>)(node.UnderlyingType, typeof) - && Type.(=)(field.FieldType, typeof) - then - node.BoxedValue |> string |> box - elif - Type.(=)(node.UnderlyingType, typeof) - && Type.(=)(field.FieldType, typeof) - then - node.BoxedValue :?> int32 |> int64 |> box - else - failwithf "Cannot assign value of type %s to field of %s: %s." node.UnderlyingType.Name name field.FieldType.Name - else - node.BoxedValue - - let oldValue = field.GetValue(target) - - return! - if oldValue <> newValue then - field.SetValue(target, newValue) - Some(getChangedDelegate target) - else - None - } - |> Option.toList - - and makeListItemUpdaters (itemType: Type) (itemNodes: Node list) = - itemNodes - |> List.choose (function - | Scalar x -> Some x.BoxedValue - | Map m -> - let mapItem = Activator.CreateInstance itemType - updateMap mapItem None m |> ignore - Some mapItem - | List l -> Some(fillList itemType l)) - - and makeListInstance (listType: Type) (itemType: Type) (updaters: obj list) = - let list = Activator.CreateInstance listType - let addMethod = listType.GetMethod("Add", [| itemType |]) - - for updater in updaters do - addMethod.Invoke(list, [| updater |]) |> ignore - - list - - and fillList (targetType: Type) (updaters: Node list) = - let fieldType = inferListType targetType updaters - let itemType = fieldType.GetGenericArguments().[0] - let updaters = makeListItemUpdaters itemType updaters - - if not(targetType.IsAssignableFrom fieldType) then - failwithf "Cannot assign %O to %O." fieldType.Name targetType.Name - - makeListInstance fieldType itemType updaters - - and updateList (target: obj) name (updaters: Node list) = - maybe { - let! field = tryGetField target ("_" + name) - let fieldType = inferListType field.FieldType updaters - - if field.FieldType <> fieldType then - failwithf "Cannot assign %O to %O." fieldType.Name field.FieldType.Name - - let values = field.GetValue target :?> Collections.IEnumerable |> Seq.cast - let itemType = fieldType.GetGenericArguments().[0] - // NOTE: another solution would be to make our provided type implement IComparable - // On the other side I'm not completely sure why we sort at all. - // What if the ordering of the item matters for the user? - let isSortable = - itemType.IsSubclassOf(typeof) - || typeof.IsAssignableFrom (itemType) - - let sort(xs: obj seq) = - xs - |> Seq.sortBy (function - | :? Uri as uri -> uri.OriginalString :> IComparable - | :? IComparable as x -> x - | x -> failwithf "%A is not comparable, so it cannot be included into a list." x) - |> Seq.toList - - let updaters = makeListItemUpdaters itemType updaters - - let oldValues, newValues = - if isSortable then - sort values, sort updaters - else - Seq.toList values, updaters - - return! - if not isSortable || oldValues <> newValues then - let list = makeListInstance fieldType itemType updaters - field.SetValue(target, list) - Some(getChangedDelegate target) - else - None - } - |> function - | Some dlg -> [ dlg ] - | None -> [] - - and updateMap (target: obj) name (updaters: (string * Node) list) = - let target = - maybe { - let! name = name - let ty = target.GetType() - let mapProp = Option.ofNull(ty.GetProperty name) - - return! - match mapProp with - | None -> - debug "Type %s does not contain %s property." ty.Name name - None - | Some prop -> Some(prop.GetValue(target, [||])) - } - |> Option.getOrElse target - - match - updaters - |> List.collect(fun (name, node) -> update target (Some name) node) - with - | [] -> [] - | events -> getChangedDelegate target :: events // if any child is raising the event, we also do (pull it up the hierarchy) - - update target None updater - |> Seq.filter((<>) null) - |> Seq.collect(fun x -> x.GetInvocationList()) - |> Seq.distinct - //|> fun x -> printfn "Updated. %d events to raise: %A" (Seq.length x) x; Seq.toList x - |> Seq.iter(fun h -> h.Method.Invoke(h.Target, [| box target; EventArgs.Empty |]) |> ignore) - - -type Root(inferTypesFromStrings: bool) = - let serializer = - (* - let settings = SerializerSettings(EmitDefaultValues = true, EmitTags = false, SortKeyForMapping = false, - EmitAlias = false, ComparerForKeySorting = null) - settings.RegisterSerializer ( - typeof, - { new ScalarSerializerBase() with - member __.ConvertFrom (_, scalar) = - match System.Uri.TryCreate (scalar.Value, UriKind.Absolute) with - | true, uri -> box uri - | _ -> null - member __.ConvertTo ctx = - match ctx.Instance with - | :? Uri as uri -> uri.OriginalString - | _ -> "" }) - - settings.RegisterSerializer ( - typeof, - { new ScalarSerializerBase() with - member __.ConvertFrom (_, scalar) = - match Guid.TryParse (scalar.Value) with - | true, guid -> box guid - | _ -> null - member __.ConvertTo ctx = - match ctx.Instance with - | :? Guid as guid -> guid.ToString("D") - | _ -> "" }) - Serializer settings *) - SerializerBuilder() - .WithTypeConverter( - { new IYamlTypeConverter with - member __.Accepts ty = - ty = typeof - - member __.ReadYaml(parser, ty) = - failwith "Not implemented" - - member __.WriteYaml(emitter: YamlDotNet.Core.IEmitter, value, ty) = - match value with - | :? TimeSpan as ts -> - let formattedValue = ts.ToString("G") - emitter.Emit(YamlDotNet.Core.Events.Scalar(TagName(), formattedValue)) - | _ -> failwithf "Expected TimeSpan but received %A" value - } - ) - .Build() - - let mutable lastLoadedFrom = None - - let errorEvent = new Event() - - /// Load Yaml config as text and update itself with it. - member x.LoadText(yamlText: string) = - try - Parser.parse inferTypesFromStrings yamlText |> Parser.update x - with e -> - async { errorEvent.Trigger e } |> Async.Start - reraise() - - /// Load Yaml config from a TextReader and update itself with it. - member x.Load(reader: TextReader) = - try - reader.ReadToEnd() - |> Parser.parse inferTypesFromStrings - |> Parser.update x - with e -> - async { errorEvent.Trigger e } |> Async.Start - reraise() - - /// Load Yaml config from a file and update itself with it. - member x.Load(filePath: string) = - try - filePath - |> Helper.File.tryReadNonEmptyTextFile - |> Async.AwaitTask - |> Async.RunSynchronously - |> x.LoadText - - lastLoadedFrom <- Some filePath - with e -> - async { errorEvent.Trigger e } |> Async.Start - reraise() - - /// Load Yaml config from a file and update itself with it. - member x.LoadAsync(filePath: string) = - try - task { - let! t = filePath |> Helper.File.tryReadNonEmptyTextFile - t |> x.LoadText - lastLoadedFrom <- Some filePath - return () - } - with e -> - async { errorEvent.Trigger e } |> Async.Start - reraise() - - /// Load Yaml config from a file, update itself with it, then start watching it for changes. - /// If it detects any change, it reloads the file. - member x.LoadAndWatch(filePath: string) = - x.Load filePath - - Helper.File.watch true filePath - <| fun _ -> - Diagnostics.Debug.WriteLine(sprintf "Loading %s..." filePath) - - try - x.Load filePath - with e -> - Diagnostics.Debug.WriteLine(sprintf "Cannot load file %s: %O" filePath e.Message) - - /// Saves configuration as Yaml text into a stream. - member x.Save(stream: Stream) = - use writer = new StreamWriter(stream) - x.Save writer - - /// Saves configuration as Yaml text into a TextWriter. - member x.Save(writer: TextWriter) = - serializer.Serialize(writer, x) - - /// Saves configuration as Yaml text into a file. - member x.Save(filePath: string) = - // forbid any access to the file for atomicity - use file = - new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None) - - x.Save file - - /// Saves configuration as Yaml text into the last file it was loaded (if any). - /// Throws InvalidOperationException if configuration has not been loaded at all or if it has loaded from - /// a different kind of source (string or TextReader). - member x.Save() = - match lastLoadedFrom with - | Some filePath -> x.Save filePath - | None -> invalidOp "Cannot save configuration because it was not loaded from a file." - - /// Returns content as Yaml text. - override x.ToString() = - use writer = new StringWriter() - x.Save writer - writer.ToString() - - // Error channel to announce parse errors on - [] - member __.Error = errorEvent.Publish - - - -// Put the TypeProviderAssemblyAttribute in the runtime DLL, pointing to the design-time DLL -[] -do () diff --git a/src/FSharp.Configuration.Runtime/paket.references b/src/FSharp.Configuration.Runtime/paket.references deleted file mode 100644 index 887ad553..00000000 --- a/src/FSharp.Configuration.Runtime/paket.references +++ /dev/null @@ -1,6 +0,0 @@ -File:ProvidedTypes.fsi -File:ProvidedTypes.fs - -FSharp.Core -YamlDotNet -System.Configuration.ConfigurationManager \ No newline at end of file diff --git a/src/FSharp.Configuration.Runtime/paket.template b/src/FSharp.Configuration.Runtime/paket.template deleted file mode 100644 index cb7438d8..00000000 --- a/src/FSharp.Configuration.Runtime/paket.template +++ /dev/null @@ -1,44 +0,0 @@ -type file -id FSharp.Configuration -title - FSharp.Configuration -authors - Steffen Forkmann; Sergey Tihon; Daniel Mohl; Tomas Petricek; Ryan Riley; Mauricio Scheffer; Phil Trelford; Vasily Kirichenko; Reed Copsey, Jr. -owners - Steffen Forkmann; Sergey Tihon; Daniel Mohl; Tomas Petricek; Ryan Riley; Mauricio Scheffer; Phil Trelford; Vasily Kirichenko; Reed Copsey, Jr. -projectUrl - https://fsprojects.github.io/FSharp.Configuration/ -iconUrl - https://raw.githubusercontent.com/fsprojects/FSharp.Configuration/master/docs/img/logo.png -requireLicenseAcceptance - false -licenseExpression - Apache-2.0 -licenseUrl - https://licenses.nuget.org/Apache-2.0 -copyright - Copyright 2014-2025 -tags - F# fsharp typeproviders FSharp.Configuration appsettings YAML F# ResX Ini config -summary - The FSharp.Configuration project contains type providers for the configuration of .NET projects. -description - The FSharp.Configuration project contains type providers for the configuration of .NET projects. -tags - F# fsharp typeproviders FSharp.Configuration -files - bin/Release/netstandard2.0/*.dll ==> lib/netstandard2.0 - bin/Release/netstandard2.0/FSharp.Configuration.Runtime.* ==> lib/netstandard2.0 - bin/Release/typeproviders/fsharp41/netstandard2.0/*.dll ==> typeproviders/fsharp41/netstandard2.0 - bin/Release/net8.0/*.dll ==> lib/net8.0 - bin/Release/net8.0/FSharp.Configuration.Runtime.* ==> lib/net8.0 - bin/Release/typeproviders/fsharp41/net8.0/*.dll ==> typeproviders/fsharp41/net8.0 -dependencies - framework: netstandard20 - FSharp.Core >= LOCKEDVERSION - framework: net8.0 - FSharp.Core >= LOCKEDVERSION -references - FSharp.Configuration.Runtime.dll - System.Configuration.ConfigurationManager.dll - YamlDotNet.dll diff --git a/tests/.nuget/packages.config b/tests/.nuget/packages.config deleted file mode 100644 index 22b32892..00000000 --- a/tests/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/tests/FSharp.Configuration.Tests/AppSettingsProvider.Tests.fs b/tests/FSharp.Configuration.Tests/AppSettingsProvider.Tests.fs deleted file mode 100644 index a95b4ebe..00000000 --- a/tests/FSharp.Configuration.Tests/AppSettingsProvider.Tests.fs +++ /dev/null @@ -1,43 +0,0 @@ -module FSharp.Configuration.Tests.AppSettingsTests - -open System -open FSharp.Configuration -open Expecto - -type Settings = AppSettings<"app.config"> - -[] -let tests = - testList "App Settings Provider tests" [ - testCase "Can return a string from the config file" (fun _ -> Expect.equal Settings.Test2 "Some Test Value 5" "value") - testCase "Can return an integer from the config file" (fun _ -> Expect.equal Settings.TestInt 102 "value") - testCase "Can return a double from the config file" (fun _ -> Expect.equal Settings.TestDouble 10.01 "value") - testCase "Can return a boolean from the config file" (fun _ -> Expect.isTrue Settings.TestBool "value") - testCase "Can return a TimeSpan from the config file" (fun _ -> Expect.equal Settings.TestTimeSpan (TimeSpan.Parse "2.01:02:03.444") "value") - testCase "Can return a DateTime from the config file" (fun _ -> - Expect.equal (Settings.TestDateTime.ToUniversalTime()) (DateTime(2014, 2, 1, 3, 4, 5, 777)) "value") - testCase "Can return a Uri from the config file" (fun _ -> Expect.equal Settings.TestUri (Uri "http://fsharp.org") "value") - - testCase "Can return a connection string from the config file" (fun _ -> - Expect.equal Settings.ConnectionStrings.Test1 "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;" "value") - - testCase "Can return a guid from the config file" (fun _ -> - Expect.equal Settings.TestGuid (Guid.Parse "{7B7EB384-FEBA-4409-B560-66FF63F1E8D0}") "value") - testCase "Can read multiple connection strings from the config file" (fun _ -> - Expect.notEqual Settings.ConnectionStrings.Test1 Settings.ConnectionStrings.Test2 "value") - ] - -// [] -// let fakeConfig = __SOURCE_DIRECTORY__ + @"/../../packages/build/FAKE/tools/FAKE.Deploy.exe.config" -// type FakeSettings = AppSettings - -// let [] test = -// testCase "Can read different configuration file" (fun _ -> -// [| __SOURCE_DIRECTORY__; ".."; ".."; "packages"; "build"; "FAKE"; "tools"; "FAKE.Deploy.exe" |] -// |> System.IO.Path.Combine |> System.IO.Path.GetFullPath -// |> FakeSettings.SelectExecutableFile - -// #if INTERACTIVE //Travis can't handle fakeConfig-directory -// FakeSettings.ServerName =! "localhost" -// #endif -// ) diff --git a/tests/FSharp.Configuration.Tests/FSharp.Configuration.Tests.fsproj b/tests/FSharp.Configuration.Tests/FSharp.Configuration.Tests.fsproj deleted file mode 100644 index 2c701adc..00000000 --- a/tests/FSharp.Configuration.Tests/FSharp.Configuration.Tests.fsproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - Exe - net8.0 - - - FSharp.Configuration.Tests - false - true - true - true - false - - - NET461 - - - - - - - - - - Always - - - - - Always - - - Always - - - - - - - - \ No newline at end of file diff --git a/tests/FSharp.Configuration.Tests/IniFileProvider.Tests.fs b/tests/FSharp.Configuration.Tests/IniFileProvider.Tests.fs deleted file mode 100644 index a3357160..00000000 --- a/tests/FSharp.Configuration.Tests/IniFileProvider.Tests.fs +++ /dev/null @@ -1,26 +0,0 @@ -module FSharp.Configuration.Tests.IniFile - -open FSharp.Configuration -open Expecto - -type IniFileType = IniFile<"Sample.ini"> - -[] -let tests = - testList "Ini File Provider tests" [ - testCase "Can return a string from the config file" (fun _ -> Expect.equal IniFileType.Section1.key2 "stringValue" "value") - - testCase "Can return an integer from the config file" (fun _ -> Expect.equal IniFileType.Section1.key1 2 "value") - - testCase "Can return a double from the config file" (fun _ -> Expect.equal IniFileType.Section2.key3 1.23 "value") - - testCase "Can return a boolean from the config file" (fun _ -> - Expect.isTrue IniFileType.Section2.key5 "key5" - Expect.isFalse IniFileType.Section2.key6 "key6") - - testCase "Can return a semicolon in the value" (fun _ -> - Expect.equal IniFileType.Section2.key8 @"Data Source=localhost\sqlexpress;Initial Catalog=DB with Spaces" "value") - - testCase "Trailing spaces are not significant" (fun _ -> - Expect.equal IniFileType.Section2.key9 @"Trailing spaces are not significant" "value") - ] diff --git a/tests/FSharp.Configuration.Tests/Lists.yaml b/tests/FSharp.Configuration.Tests/Lists.yaml deleted file mode 100644 index 69676906..00000000 --- a/tests/FSharp.Configuration.Tests/Lists.yaml +++ /dev/null @@ -1,52 +0,0 @@ - -items: - - part_no: A4786 - descrip: Water Bucket (Filled) - price: 147 - quantity: 4 - - - part_no: E1628 - descrip: High Heeled "Ruby" Slippers - size: 8 - price: 10027 - quantity: 1 - -Components: - - Domain: gtalk.devel-xmpp - Secret: secret_gtalk - - Domain: facebook.devel-xmpp - Secret: secret_facebook - -EmptyList: - - - Domain: gtalk.devel-xmpp - Secret: secret_gtalk - - Domain: facebook.devel-xmpp - Secret: secret_facebook - -Authentication: - - Type: ldap - MapUserId: "uid={0},ou=People" - - {Type: sql, MapUserId: "{0}"} - - -Archive: - - Type: imap - Writeonly: true - ConnectionString: "Server=imap.domain.de;Uid=user;Pwd=password;Folder=user.{0}.Chats.Xmpp;" - - Type: mysql - Writeonly: false - ConnectionString: Server=localhost;Database=message_archive;Uid=xmpp;Pwd=password - - Type: mssql - Writeonly: false - ConnectionString: Data Source=server1;Initial Catalog=message_archive;Integrated Security=SSPI; - -Fix82: - id: "myApp" - constraints: - - - - "attribute" - - "OPERATOR" - - "value" - labels: - environment: "staging" \ No newline at end of file diff --git a/tests/FSharp.Configuration.Tests/Program.fs b/tests/FSharp.Configuration.Tests/Program.fs deleted file mode 100644 index 835276ce..00000000 --- a/tests/FSharp.Configuration.Tests/Program.fs +++ /dev/null @@ -1,5 +0,0 @@ -open Expecto - -[] -let main args = - runTestsInAssembly defaultConfig args diff --git a/tests/FSharp.Configuration.Tests/ResXProvider.Tests.fs b/tests/FSharp.Configuration.Tests/ResXProvider.Tests.fs deleted file mode 100644 index a19f543f..00000000 --- a/tests/FSharp.Configuration.Tests/ResXProvider.Tests.fs +++ /dev/null @@ -1,24 +0,0 @@ -module FSharp.Configuration.Tests.ResXTests - -open FSharp.Configuration -open Expecto - -#if NET461 - -type Resource1 = ResXProvider<"Resource1.resx"> - -[] -let tests = - // https://github.com/Microsoft/msbuild/issues/2221 - ptestList "ResX Provider tests" [ - testCase "Can return a string from the resource file" (fun _ -> Expect.equal Resource1.Greetings "Hello World!" "value") - - testCase "Can return an image from the resource file" (fun _ -> - Expect.isNotNull Resource1.Flowers "Flowers" - Expect.equal typeof (Resource1.Flowers.GetType()) "value") - - testCase "Can return an int from the resource file" (fun _ -> Expect.equal Resource1.Answer 42 "value") - testCase "Can return a text file from the resource file" (fun _ -> Expect.equal Resource1.TextFile "Text" "value") - ] - -#endif diff --git a/tests/FSharp.Configuration.Tests/Resource1.resx b/tests/FSharp.Configuration.Tests/Resource1.resx deleted file mode 100644 index 5b2e3f59..00000000 --- a/tests/FSharp.Configuration.Tests/Resource1.resx +++ /dev/null @@ -1,2877 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Welcome! - - - - 42 - - - - - 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 - fSc/CR77eOjSzxcafr3W+puNpj8bOH4n9vpm+uBm9p31ySvXltrvjNStjLSu3g19dd33s/vZv76f+/tt - 059njtzzPLvrP3hnsecvIpfXwxdmkmcWDY/36380rX9ksfd7E/IfTZl+shB4fmf0jY8nD37W/8a9xIvX - w4/vhh69qvuXi/J/Ot/6j6ca/qex9v99dvLM77Zq/27g2EdzlT/bVvxFruGO88LiYO+9aeP9GfO9Rdet - rcitq5kbNwau7WaXro8sXB8bvz45eGM6C60k0lCaypDx6enB7akBYGd68NrcyM3F8dtr0/c2Z+7fWP78 - /c2ff37951/chKbQ/Y+33r+/8fGnO2CZj97durE+uzbRDzUT6v/WYAbUsAPKGEogZNquOHO3YN4tJxQe - tmqRW0+UxPNk0S8YxRTLhfpF6hEAJCIpAZhcRLMQuTCz8K0ecMpcShSKuIiRrGOk6xtxeRFJE0Qx4JfZ - VIz4JR2HdDoTR7MwuYBZUC6TqTiTSz5gCQdBK5AOhQO47AiXNWI6SNdJ4yYvObc348lv7HLgXOVL5y+/ - cPHyi2XlL1+ueKWs4iWgvOLlispXKqsgfelK1QuXK5+/VPkcUFb1/OXqFy7XPHel+rmKqueqal6orX+5 - oeHVJkpzPaGl7tXW+tfaGt5sa3i9ve6N1vo3Wurf7mo9rug6q+69oOk+r+44q+04a+g8b+66aOu+5Oi9 - 7Oq94pZV+vuqg4raqKohqWkFy5AlRWoyQQaXLOJ8X3BKTN0Z0XaENe1BdVtY2xHVdZKD62mLKaRug0K/ - ps2raQY86havqsWvbIVYJirvSMi7k33dkIKDwmpwE2kcEUFoFEhSrUyoFAm1PKbqA1AoUY0spCZE1H1x - tRycklITiH2wF9mgiumVEb0KiBrUQMJsAFImXcqsTRlVKVMfkjQrkiYVAE2nDOmXMQxZTONW84RVP+XQ - jzq14yHjQFAX96v87u5EQtfUdqal96LK0qL1dnc7267ILx1vP14uqyqvb2quU6s7A17VhL56tOedYfXh - Zc2bW5bDNw1vXdW+tuY6cSNX9aX59auugx8E3/wg8MLG6qXPRw/eSD6/3P/m+tDJ9aHy5SX9za82/+2v - 7v7Nn33yN7/9/N//xWf/119+/P/7+09//8nYf1jq/c1M3a+X2v7ifdv/udz1Rej4QuTorPKRuOK7g8rv - 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 - - - - Hello World! - Greetings - - - - TextFile.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - - \ No newline at end of file diff --git a/tests/FSharp.Configuration.Tests/Sample.ini b/tests/FSharp.Configuration.Tests/Sample.ini deleted file mode 100644 index c454c0db..00000000 --- a/tests/FSharp.Configuration.Tests/Sample.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Section1] -key1=2 - key2 = stringValue - ;comment -[ Section2 ] -key3 = 1.23 -key5 = true -key6 = False -; comment -key7 = -key8 = Data Source=localhost\sqlexpress;Initial Catalog=DB with Spaces -key9 = Trailing spaces are not significant diff --git a/tests/FSharp.Configuration.Tests/Settings.yaml b/tests/FSharp.Configuration.Tests/Settings.yaml deleted file mode 100644 index 3fd717cd..00000000 --- a/tests/FSharp.Configuration.Tests/Settings.yaml +++ /dev/null @@ -1,24 +0,0 @@ -Mail: - Smtp: - Host: smtp.sample.com - Port: 443 - User: user1 - Password: pass1 - Pop3: - Host: pop3.sample.com - Port: 331 - User: user2 - Password: pass2 - CheckPeriod: 00:01:00.0000000 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com -DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 5 - Id: 21474836470 - DefaultTimeout: 00:05:00.0000000 -JustStuff: - SomeDoubleValue: 0.5 - SomeGuid: '{7B7EB384-FEBA-4409-B560-66FF63F1E8D0}' - DifferentGuid: 9d165087-9b74-4313-ab90-89be897d3d93 diff --git a/tests/FSharp.Configuration.Tests/Settings2.yaml b/tests/FSharp.Configuration.Tests/Settings2.yaml deleted file mode 100644 index 1cb022b2..00000000 --- a/tests/FSharp.Configuration.Tests/Settings2.yaml +++ /dev/null @@ -1,24 +0,0 @@ -Mail: - Smtp: - Host: smtp.sample.com - Port: 443 - User: user1 - Password: pass1 - Pop3: - Host: pop3.sample.com - Port: 331 - User: user2 - Password: pass2 - CheckPeriod: 0:00:01:00.0000000 - ErrorNotificationRecipients: - - user1@sample.com - - user2@sample.com -DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI; - NumberOfDeadlockRepeats: 11 - Id: 21474836470 - DefaultTimeout: 0:00:06:00.0000000 -JustStuff: - SomeDoubleValue: 0.5 - SomeGuid: 7b7eb384-feba-4409-b560-66ff63f1e8d0 - DifferentGuid: 9d165087-9b74-4313-ab90-89be897d3d93 diff --git a/tests/FSharp.Configuration.Tests/TextFile.txt b/tests/FSharp.Configuration.Tests/TextFile.txt deleted file mode 100644 index 38cf071c..00000000 --- a/tests/FSharp.Configuration.Tests/TextFile.txt +++ /dev/null @@ -1 +0,0 @@ -Text \ No newline at end of file diff --git a/tests/FSharp.Configuration.Tests/YamlProvider.Tests.fs b/tests/FSharp.Configuration.Tests/YamlProvider.Tests.fs deleted file mode 100644 index 3584d33c..00000000 --- a/tests/FSharp.Configuration.Tests/YamlProvider.Tests.fs +++ /dev/null @@ -1,424 +0,0 @@ -module FSharp.Configuration.Tests.YamlTests - -open FSharp.Configuration -open System -open System.IO -open Expecto - -type Settings = YamlConfig<"Settings.yaml"> - -let private assertFilesAreEqual expected actual = - let read file = - (File.ReadAllText file).Replace("\r\n", "\n") - - Expect.equal (read expected) (read actual) "files" - -type private Listener(event: IEvent) = - let events = ref 0 - do event.Add(fun _ -> incr events) - member __.Events = !events - -let private getPath fileName = - Path.Combine(__SOURCE_DIRECTORY__, fileName) - -[] -let tests = - testList "Yaml Config Provider tests" [ - testCase "Can return a string from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.DB.ConnectionString "Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;" "value") - - testCase "Can return an int from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.DB.NumberOfDeadlockRepeats 5 "value") - - testCase "Can return an int64 from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.DB.Id 21474836470L "value") - - testCase "Can return an double from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.JustStuff.SomeDoubleValue 0.5 "value") - - testCase "Can return a TimeSpan from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.DB.DefaultTimeout (TimeSpan.FromMinutes 5.0) "value") - - testCase "Can return a guid from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.JustStuff.SomeGuid (Guid.Parse "{7B7EB384-FEBA-4409-B560-66FF63F1E8D0}") "value") - - testCase "Can return a different guid from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.JustStuff.DifferentGuid (Guid.Parse "9d165087-9b74-4313-ab90-89be897d3d93") "value") - - testCase "Can return a list from the settings file" (fun _ -> - let settings = Settings() - Expect.equal settings.Mail.ErrorNotificationRecipients.Count 2 "value" - Expect.equal settings.Mail.ErrorNotificationRecipients.[0] "user1@sample.com" "value" - Expect.equal settings.Mail.ErrorNotificationRecipients.[1] "user2@sample.com" "value") - - testCase "Can write to a string in the settings file" (fun _ -> - let settings = Settings() - settings.DB.ConnectionString <- "Data Source=server2" - Expect.equal settings.DB.ConnectionString "Data Source=server2" "value") - - testCase "Can write to an int in the settings file" (fun _ -> - let settings = Settings() - settings.DB.NumberOfDeadlockRepeats <- 6 - Expect.equal settings.DB.NumberOfDeadlockRepeats 6 "value") - - testCase "Can write to an double in the settings file" (fun _ -> - let settings = Settings() - settings.JustStuff.SomeDoubleValue <- 0.5 - Expect.equal settings.JustStuff.SomeDoubleValue 0.5 "value") - - testCase "Can write to a guid in the settings file" (fun _ -> - let settings = Settings() - let guid = Guid.NewGuid() - settings.JustStuff.SomeGuid <- guid - Expect.equal settings.JustStuff.SomeGuid guid "value") - - testCase "Can save a settings file to a specified location" (fun _ -> - let settings = Settings() - settings.DB.NumberOfDeadlockRepeats <- 11 - settings.DB.DefaultTimeout <- System.TimeSpan.FromMinutes 6. - settings.JustStuff.SomeDoubleValue <- 0.5 - let tempFile = Path.GetTempFileName() - settings.Save tempFile - assertFilesAreEqual tempFile (getPath "Settings2.yaml")) - - testCase "Can save settings to the file it was loaded from last time" (fun _ -> - let settings = Settings() - let tempFile = Path.GetTempFileName() - - try - File.Copy(getPath "Settings.yaml", tempFile, overwrite = true) - settings.Load tempFile - settings.DB.NumberOfDeadlockRepeats <- 11 - settings.DB.DefaultTimeout <- System.TimeSpan.FromMinutes 6. - settings.Save() - assertFilesAreEqual tempFile (getPath "Settings2.yaml") - finally - File.Delete tempFile) - - testCase "Throws exception during saving if it was not loaded from a file and location is not specified" (fun _ -> - let settings = Settings() - Expect.throwsT (fun () -> settings.Save()) "throws") - - testCase "Can loads full settings" (fun _ -> - let settings = Settings() - - settings.LoadText - """ - Mail: - Smtp: - Host: smtp.sample.com* - Port: 4430 - User: user1* - Password: pass1* - Pop3: - Host: pop3.sample.com* - Port: 3310 - User: user2* - Password: pass2* - CheckPeriod: 00:02:00 - ErrorNotificationRecipients: - - user1@sample.com* - - user2@sample.com* - - user3@sample.com - DB: - ConnectionString: Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;* - NumberOfDeadlockRepeats: 50 - DefaultTimeout: 00:06:00 - """ - - Expect.equal settings.Mail.Smtp.Host "smtp.sample.com*" "value" - Expect.equal settings.Mail.Smtp.Port 4430 "value" - Expect.equal settings.Mail.Smtp.User "user1*" "value" - Expect.equal settings.Mail.Smtp.Password "pass1*" "value" - - Expect.equal settings.Mail.Pop3.Host "pop3.sample.com*" "value" - Expect.equal settings.Mail.Pop3.Port 3310 "value" - Expect.equal settings.Mail.Pop3.User "user2*" "value" - Expect.equal settings.Mail.Pop3.Password "pass2*" "value" - Expect.equal settings.Mail.Pop3.CheckPeriod (TimeSpan.FromMinutes 2.0) "value" - - Expect.equal - (List.ofSeq settings.Mail.ErrorNotificationRecipients) - [ "user1@sample.com*"; "user2@sample.com*"; "user3@sample.com" ] - "value" - - Expect.equal settings.DB.ConnectionString "Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;*" "value" - Expect.equal settings.DB.NumberOfDeadlockRepeats 50 "value" - Expect.equal settings.DB.DefaultTimeout (TimeSpan.FromMinutes 6.0) "value") - - testCase "Can load partial settings" (fun _ -> - let settings = Settings() - - settings.LoadText - """ - Mail: - Smtp: - Port: 4430 - Pop3: - CheckPeriod: 00:02:00 - ErrorNotificationRecipients: - - user1@sample.com* - - user2@sample.com* - - user3@sample.com - """ - - Expect.equal settings.Mail.Smtp.Host "smtp.sample.com" "value" - Expect.equal settings.Mail.Smtp.Port 4430 "value" - Expect.equal settings.Mail.Smtp.User "user1" "value" - Expect.equal settings.Mail.Smtp.Password "pass1" "value" - - Expect.equal settings.Mail.Pop3.Host "pop3.sample.com" "value" - Expect.equal settings.Mail.Pop3.Port 331 "value" - Expect.equal settings.Mail.Pop3.User "user2" "value" - Expect.equal settings.Mail.Pop3.Password "pass2" "value" - Expect.equal settings.Mail.Pop3.CheckPeriod (TimeSpan.FromMinutes 2.0) "value" - - Expect.sequenceEqual settings.Mail.ErrorNotificationRecipients [ "user1@sample.com*"; "user2@sample.com*"; "user3@sample.com" ] "value" - - Expect.equal settings.DB.ConnectionString "Data Source=server1;Initial Catalog=Database1;Integrated Security=SSPI;" "value" - Expect.equal settings.DB.NumberOfDeadlockRepeats 5 "value" - Expect.equal settings.DB.DefaultTimeout (TimeSpan.FromMinutes 5.0) "value") - - testCase "Can load settings containing unknown nodes" (fun _ -> - let settings = Settings() - - settings.LoadText - """ - Mail: - Smtp: - Port: 4430 - NestedUnknown: value1 - TopLevelUnknown: - Value: 1 - - """ - - Expect.equal settings.Mail.Smtp.Port 4430 "value") - - testCase "Can load file and watch" (fun _ -> - let settings = Settings() - let tempFile = Path.GetTempFileName() - - try - File.Copy(getPath "Settings.yaml", tempFile, overwrite = true) - settings.LoadAndWatch tempFile |> ignore - finally - File.Delete tempFile) - - testCase "Can load file and watch and detect errors" (fun _ -> - let settings = Settings() - let tempFile = Path.GetTempFileName() - let mutable err = false - settings.Error.Add(fun _ -> err <- true) - - try - File.Copy(getPath "Settings.yaml", tempFile, overwrite = true) - use __ = settings.LoadAndWatch tempFile - System.Threading.Thread.Sleep(800) - let f = new FileStream(tempFile, FileMode.Append) - let data = ":asd:DF" |> System.Text.Encoding.ASCII.GetBytes - f.Write(data, 0, data.Length) - f.Flush() - f.Dispose() - Threading.Thread.Sleep(800) - Expect.isTrue err "error event raised" - finally - File.Delete tempFile) - - testCase "Can load empty lists" (fun _ -> - let settings = Settings() - - settings.LoadText - """ - Mail: - ErrorNotificationRecipients: [] - """ - - Expect.isEmpty settings.Mail.ErrorNotificationRecipients "value") - - testCase "Raises Changed events" (fun _ -> - let settings = Settings() - let rootListener = Listener(settings.Changed) - let mailListener = Listener(settings.Mail.Changed) - let pop3Listener = Listener(settings.Mail.Pop3.Changed) - let smtpListener = Listener(settings.Mail.Smtp.Changed) - let dbListener = Listener(settings.DB.Changed) - - settings.LoadText - """ - Mail: - Pop3: - CheckPeriod: 00:02:00 - """ - - Expect.sequenceEqual - [ - rootListener.Events - mailListener.Events - pop3Listener.Events - smtpListener.Events - dbListener.Events - ] - [ 1; 1; 1; 0; 0 ] - "value") - - testCase "Does not raise duplicates of parent Changed events even though several children changed" (fun _ -> - let settings = Settings() - let rootListener = Listener settings.Changed - let mailListener = Listener settings.Mail.Changed - let pop3Listener = Listener settings.Mail.Pop3.Changed - let smtpListener = Listener settings.Mail.Smtp.Changed - - settings.LoadText - """ - Mail: - Smtp: - Port: 4430 - Pop3: - CheckPeriod: 00:02:00 - """ - - Expect.sequenceEqual - [ - rootListener.Events - mailListener.Events - pop3Listener.Events - smtpListener.Events - ] - [ 1; 1; 1; 1 ] - "value") - ] - -type Lists = YamlConfig<"Lists.yaml"> - -[] -let listTests = - testList - "Yaml Config Provider tests - lists" - (Seq.toList - <| testFixture (fun f () -> f(Lists())) [ - "Can load sequence of maps (single item)", - fun settings -> - settings.LoadText - """ - items: - - part_no: Test - descrip: Some description - price: 347 - quantity: 14 - """ - - Expect.equal settings.items.Count 1 "value" - Expect.equal settings.items.[0].part_no "Test" "value" - Expect.equal settings.items.[0].descrip "Some description" "value" - Expect.equal settings.items.[0].quantity 14 "value" - - "Can load sequence of maps (multiple items)", - fun settings -> - settings.LoadText - """ - items: - - part_no: Test - descrip: Some description - price: 347 - quantity: 14 - - part_no: A4786 - descrip: Water Bucket (Filled) - price: 147 - quantity: 4 - - - part_no: E1628 - descrip: High Heeled "Ruby" Slippers - size: 8 - price: 10027 - quantity: 1 - """ - - Expect.equal settings.items.Count 3 "value" - Expect.equal settings.items.[0].part_no "Test" "value" - Expect.equal settings.items.[0].descrip "Some description" "value" - Expect.equal settings.items.[0].quantity 14 "value" - - Expect.equal settings.items.[2].part_no "E1628" "value" - Expect.equal settings.items.[2].descrip "High Heeled \"Ruby\" Slippers" "value" - Expect.equal settings.items.[2].quantity 1 "value" - - "Can load nested lists", - fun settings -> - settings.LoadText - """ - Fix82: - id: "myApp" - constraints: - - - - "attribute" - - "OPERATOR" - - "value" - - - - "field" - - "OP" - labels: - environment: "staging" - """ - - Expect.equal settings.Fix82.constraints.Count 2 "value" - Expect.equal settings.Fix82.constraints.[0].Count 3 "value" - Expect.equal settings.Fix82.constraints.[0].[0] "attribute" "value" - Expect.equal settings.Fix82.constraints.[0].[1] "OPERATOR" "value" - Expect.equal settings.Fix82.constraints.[0].[2] "value" "value" - Expect.equal settings.Fix82.constraints.[1].Count 2 "value" - Expect.equal settings.Fix82.constraints.[1].[0] "field" "value" - Expect.equal settings.Fix82.constraints.[1].[1] "OP" "value" - - //"Check that list defaults are OK", fun settings -> - // Expect.equal settings.items.Count 2 "value" - // Expect.equal settings.Archive.Count 3 "value" - ]) - -type NumericKeys = - YamlConfig - -type MixedTypes = - YamlConfig - -[] -let numericTests = - testList "Yaml Config Provider - numeric tests" [ - testCase "Numeric map keys are OK" (fun _ -> - let sut = NumericKeys() - Expect.equal sut.``1`` 10 "value" - Expect.equal sut.``2`` 20 "value" - Expect.equal sut.``3a`` "foo" "value") - - testCase "Mixed types are read as strings" (fun _ -> - let mt = MixedTypes() - - mt.LoadText( - """ - Items: - - Item: asdf - - Item: http://fsharp.org - - Item: 14 - """ - ) - - Expect.equal mt.Items.[0].Item "asdf" "value" - Expect.equal mt.Items.[1].Item "http://fsharp.org/" "value" - Expect.equal mt.Items.[2].Item "14" "value") - ] diff --git a/tests/FSharp.Configuration.Tests/app.config b/tests/FSharp.Configuration.Tests/app.config deleted file mode 100644 index 765277e1..00000000 --- a/tests/FSharp.Configuration.Tests/app.config +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - True - - - - - True - - - - - True - - - - - True - - - - \ No newline at end of file diff --git a/tests/FSharp.Configuration.Tests/paket.references b/tests/FSharp.Configuration.Tests/paket.references deleted file mode 100644 index 400586a4..00000000 --- a/tests/FSharp.Configuration.Tests/paket.references +++ /dev/null @@ -1,5 +0,0 @@ -group Test - FSharp.Core - Expecto - System.Configuration.ConfigurationManager - System.Resources.Extensions \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test.sln b/tests/FSharp.Configuration.Web.Test.sln deleted file mode 100644 index 2e51ddd5..00000000 --- a/tests/FSharp.Configuration.Web.Test.sln +++ /dev/null @@ -1,27 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Configuration.Web.Test", "FSharp.Configuration.Web.Test\FSharp.Configuration.Web.Test.fsproj", "{9B08B114-8CB6-4258-8FA7-840704B61046}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{A4AE81FD-F936-498F-AA49-4FAD3B2005F9}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9B08B114-8CB6-4258-8FA7-840704B61046}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9B08B114-8CB6-4258-8FA7-840704B61046}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9B08B114-8CB6-4258-8FA7-840704B61046}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B08B114-8CB6-4258-8FA7-840704B61046}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/tests/FSharp.Configuration.Web.Test/AssemblyInfo.fs b/tests/FSharp.Configuration.Web.Test/AssemblyInfo.fs deleted file mode 100644 index ebe7f181..00000000 --- a/tests/FSharp.Configuration.Web.Test/AssemblyInfo.fs +++ /dev/null @@ -1,22 +0,0 @@ -module FSharp.Configuration.Web.Test.AssemblyInfo -open System.Reflection -open System.Runtime.CompilerServices - - -[] -[] -[] -[] -[] -[] -[] - -// The assembly version has the format {Major}.{Minor}.{Build}.{Revision} - -[] - -//[] -//[] - -() - diff --git a/tests/FSharp.Configuration.Web.Test/Content/Site.css b/tests/FSharp.Configuration.Web.Test/Content/Site.css deleted file mode 100644 index ad542f37..00000000 --- a/tests/FSharp.Configuration.Web.Test/Content/Site.css +++ /dev/null @@ -1,42 +0,0 @@ -body { - padding-top: 50px; - padding-bottom: 20px; -} - -/* Set padding to keep content from hitting the edges */ -.body-content { - padding-left: 15px; - padding-right: 15px; -} - -/* Set width on the form input elements since they're 100% wide by default */ -input, -select, -textarea { - max-width: 280px; -} - -/* styles for validation helpers */ -.field-validation-error { - color: #b94a48; -} - -.field-validation-valid { - display: none; -} - -input.input-validation-error { - border: 1px solid #b94a48; -} - -input[type="checkbox"].input-validation-error { - border: 0 none; -} - -.validation-summary-errors { - color: #b94a48; -} - -.validation-summary-valid { - display: none; -} \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test/Content/bootstrap-theme.css b/tests/FSharp.Configuration.Web.Test/Content/bootstrap-theme.css deleted file mode 100644 index c9c347e4..00000000 --- a/tests/FSharp.Configuration.Web.Test/Content/bootstrap-theme.css +++ /dev/null @@ -1,459 +0,0 @@ -/*! - * Bootstrap v3.0.2 by @fat and @mdo - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.btn-default:active, -.btn-primary:active, -.btn-success:active, -.btn-info:active, -.btn-warning:active, -.btn-danger:active, -.btn-default.active, -.btn-primary.active, -.btn-success.active, -.btn-info.active, -.btn-warning.active, -.btn-danger.active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - -.btn:active, -.btn.active { - background-image: none; -} - -.btn-default { - text-shadow: 0 1px 0 #fff; - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e0e0e0)); - background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%); - background-image: -moz-linear-gradient(top, #ffffff 0%, #e0e0e0 100%); - background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%); - background-repeat: repeat-x; - border-color: #dbdbdb; - border-color: #ccc; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-default:hover, -.btn-default:focus { - background-color: #e0e0e0; - background-position: 0 -15px; -} - -.btn-default:active, -.btn-default.active { - background-color: #e0e0e0; - border-color: #dbdbdb; -} - -.btn-primary { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#2d6ca2)); - background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%); - background-image: -moz-linear-gradient(top, #428bca 0%, #2d6ca2 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%); - background-repeat: repeat-x; - border-color: #2b669a; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-primary:hover, -.btn-primary:focus { - background-color: #2d6ca2; - background-position: 0 -15px; -} - -.btn-primary:active, -.btn-primary.active { - background-color: #2d6ca2; - border-color: #2b669a; -} - -.btn-success { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#419641)); - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -moz-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); - background-repeat: repeat-x; - border-color: #3e8f3e; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-success:hover, -.btn-success:focus { - background-color: #419641; - background-position: 0 -15px; -} - -.btn-success:active, -.btn-success.active { - background-color: #419641; - border-color: #3e8f3e; -} - -.btn-warning { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#eb9316)); - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -moz-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); - background-repeat: repeat-x; - border-color: #e38d13; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-warning:hover, -.btn-warning:focus { - background-color: #eb9316; - background-position: 0 -15px; -} - -.btn-warning:active, -.btn-warning.active { - background-color: #eb9316; - border-color: #e38d13; -} - -.btn-danger { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c12e2a)); - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -moz-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); - background-repeat: repeat-x; - border-color: #b92c28; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-danger:hover, -.btn-danger:focus { - background-color: #c12e2a; - background-position: 0 -15px; -} - -.btn-danger:active, -.btn-danger.active { - background-color: #c12e2a; - border-color: #b92c28; -} - -.btn-info { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#2aabd2)); - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -moz-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); - background-repeat: repeat-x; - border-color: #28a4c9; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-info:hover, -.btn-info:focus { - background-color: #2aabd2; - background-position: 0 -15px; -} - -.btn-info:active, -.btn-info.active { - background-color: #2aabd2; - border-color: #28a4c9; -} - -.thumbnail, -.img-thumbnail { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); -} - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - background-color: #e8e8e8; - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8)); - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - background-color: #357ebd; - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); - background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); - background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); -} - -.navbar-default { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8)); - background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); - background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); - background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); - background-repeat: repeat-x; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); -} - -.navbar-default .navbar-nav > .active > a { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f3f3f3)); - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%); - background-image: -moz-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0); - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); -} - -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); -} - -.navbar-inverse { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222)); - background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%); - background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%); - background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.navbar-inverse .navbar-nav > .active > a { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#222222), to(#282828)); - background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%); - background-image: -moz-linear-gradient(top, #222222 0%, #282828 100%); - background-image: linear-gradient(to bottom, #222222 0%, #282828 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0); - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); -} - -.navbar-inverse .navbar-brand, -.navbar-inverse .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} - -.alert { - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.alert-success { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc)); - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); - background-repeat: repeat-x; - border-color: #b2dba1; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); -} - -.alert-info { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0)); - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); - background-repeat: repeat-x; - border-color: #9acfea; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); -} - -.alert-warning { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0)); - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); - background-repeat: repeat-x; - border-color: #f5e79e; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); -} - -.alert-danger { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3)); - background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); - background-repeat: repeat-x; - border-color: #dca7a7; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); -} - -.progress { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5)); - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); -} - -.progress-bar { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); - background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%); - background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); -} - -.progress-bar-success { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); -} - -.progress-bar-info { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); -} - -.progress-bar-warning { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); -} - -.progress-bar-danger { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); -} - -.list-group { - border-radius: 4px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); -} - -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 #3071a9; - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3)); - background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%); - background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); - background-repeat: repeat-x; - border-color: #3278b3; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); -} - -.panel { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.panel-default > .panel-heading { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8)); - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); -} - -.panel-primary > .panel-heading { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); - background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); - background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); -} - -.panel-success > .panel-heading { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6)); - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); -} - -.panel-info > .panel-heading { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3)); - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); -} - -.panel-warning > .panel-heading { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc)); - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); -} - -.panel-danger > .panel-heading { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc)); - background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); -} - -.well { - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5)); - background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); - background-repeat: repeat-x; - border-color: #dcdcdc; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); -} \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test/Content/bootstrap-theme.min.css b/tests/FSharp.Configuration.Web.Test/Content/bootstrap-theme.min.css deleted file mode 100644 index 91642770..00000000 --- a/tests/FSharp.Configuration.Web.Test/Content/bootstrap-theme.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v3.0.2 by @fat and @mdo - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e0e0e0));background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-moz-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#2d6ca2));background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-moz-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);background-repeat:repeat-x;border-color:#2b669a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff2d6ca2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#419641));background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff419641',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#eb9316));background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffeb9316',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c12e2a));background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);background-repeat:repeat-x;border-color:#b92c28;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc12e2a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#2aabd2));background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2aabd2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar-default{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-moz-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f3f3f3));background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff3f3f3',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-gradient(linear,left 0,left 100%,from(#3c3c3c),to(#222));background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-moz-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-gradient(linear,left 0,left 100%,from(#222),to(#282828));background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:-moz-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff282828',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#c8e5bc));background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#b9def0));background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#f8efc0));background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#e7c3c3));background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-moz-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3278b3));background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-moz-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#d0e9c6));background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#c4e3f3));background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#faf2cc));background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#ebcccc));background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-moz-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-gradient(linear,left 0,left 100%,from(#e8e8e8),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test/Content/bootstrap.css b/tests/FSharp.Configuration.Web.Test/Content/bootstrap.css deleted file mode 100644 index 6aef1f6f..00000000 --- a/tests/FSharp.Configuration.Web.Test/Content/bootstrap.css +++ /dev/null @@ -1,7098 +0,0 @@ -/*! - * Bootstrap v3.0.2 by @fat and @mdo - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -audio, -canvas, -video { - display: inline-block; -} - -audio:not([controls]) { - display: none; - height: 0; -} - -[hidden], -template { - display: none; -} - -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -a { - background: transparent; -} - -a:focus { - outline: thin dotted; -} - -a:active, -a:hover { - outline: 0; -} - -h1 { - margin: 0.67em 0; - font-size: 2em; -} - -abbr[title] { - border-bottom: 1px dotted; -} - -b, -strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -hr { - height: 0; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -mark { - color: #000; - background: #ff0; -} - -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; -} - -pre { - white-space: pre-wrap; -} - -q { - quotes: "\201C" "\201D" "\2018" "\2019"; -} - -small { - font-size: 80%; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 0; -} - -fieldset { - padding: 0.35em 0.625em 0.75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} - -legend { - padding: 0; - border: 0; -} - -button, -input, -select, -textarea { - margin: 0; - font-family: inherit; - font-size: 100%; -} - -button, -input { - line-height: normal; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -button[disabled], -html input[disabled] { - cursor: default; -} - -input[type="checkbox"], -input[type="radio"] { - padding: 0; - box-sizing: border-box; -} - -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -textarea { - overflow: auto; - vertical-align: top; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -@media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="javascript:"]:after, - a[href^="#"]: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; - } - @page { - margin: 2cm .5cm; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .table td, - .table th { - background-color: #fff !important; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} - -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.428571429; - color: #333333; - background-color: #ffffff; -} - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -a { - color: #428bca; - text-decoration: none; -} - -a:hover, -a:focus { - color: #2a6496; - text-decoration: underline; -} - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -img { - vertical-align: middle; -} - -.img-responsive { - display: block; - height: auto; - max-width: 100%; -} - -.img-rounded { - border-radius: 6px; -} - -.img-thumbnail { - display: inline-block; - height: auto; - max-width: 100%; - padding: 4px; - line-height: 1.428571429; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -.img-circle { - border-radius: 50%; -} - -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eeeeee; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} - -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} - -small, -.small { - font-size: 85%; -} - -cite { - font-style: normal; -} - -.text-muted { - color: #999999; -} - -.text-primary { - color: #428bca; -} - -.text-primary:hover { - color: #3071a9; -} - -.text-warning { - color: #c09853; -} - -.text-warning:hover { - color: #a47e3c; -} - -.text-danger { - color: #b94a48; -} - -.text-danger:hover { - color: #953b39; -} - -.text-success { - color: #468847; -} - -.text-success:hover { - color: #356635; -} - -.text-info { - color: #3a87ad; -} - -.text-info:hover { - color: #2d6987; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: 500; - 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, -h2, -h3 { - margin-top: 20px; - margin-bottom: 10px; -} - -h1 small, -h2 small, -h3 small, -h1 .small, -h2 .small, -h3 .small { - font-size: 65%; -} - -h4, -h5, -h6 { - margin-top: 10px; - margin-bottom: 10px; -} - -h4 small, -h5 small, -h6 small, -h4 .small, -h5 .small, -h6 .small { - font-size: 75%; -} - -h1, -.h1 { - font-size: 36px; -} - -h2, -.h2 { - font-size: 30px; -} - -h3, -.h3 { - font-size: 24px; -} - -h4, -.h4 { - font-size: 18px; -} - -h5, -.h5 { - font-size: 14px; -} - -h6, -.h6 { - font-size: 12px; -} - -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} - -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; -} - -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} - -.list-inline > li:first-child { - padding-left: 0; -} - -dl { - margin-bottom: 20px; -} - -dt, -dd { - line-height: 1.428571429; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 0; -} - -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } - .dl-horizontal dd:before, - .dl-horizontal dd:after { - display: table; - content: " "; - } - .dl-horizontal dd:after { - clear: both; - } - .dl-horizontal dd:before, - .dl-horizontal dd:after { - display: table; - content: " "; - } - .dl-horizontal dd:after { - clear: both; - } -} - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -abbr.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; -} - -blockquote p { - font-size: 17.5px; - font-weight: 300; - line-height: 1.25; -} - -blockquote p:last-child { - margin-bottom: 0; -} - -blockquote small { - display: block; - line-height: 1.428571429; - color: #999999; -} - -blockquote small:before { - content: '\2014 \00A0'; -} - -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; -} - -blockquote.pull-right p, -blockquote.pull-right small, -blockquote.pull-right .small { - text-align: right; -} - -blockquote.pull-right small:before, -blockquote.pull-right .small:before { - content: ''; -} - -blockquote.pull-right small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} - -blockquote:before, -blockquote:after { - content: ""; -} - -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.428571429; -} - -code, -kbd, -pre, -samp { - font-family: Monaco, Menlo, Consolas, "Courier New", monospace; -} - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - white-space: nowrap; - background-color: #f9f2f4; - border-radius: 4px; -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.428571429; - color: #333333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} - -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 { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -.container:before, -.container:after { - display: table; - content: " "; -} - -.container:after { - clear: both; -} - -.container:before, -.container:after { - display: table; - content: " "; -} - -.container:after { - clear: both; -} - -.row { - margin-right: -15px; - margin-left: -15px; -} - -.row:before, -.row:after { - display: table; - content: " "; -} - -.row:after { - clear: both; -} - -.row:before, -.row:after { - display: table; - content: " "; -} - -.row:after { - clear: both; -} - -.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-right: 15px; - padding-left: 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 { - float: left; -} - -.col-xs-12 { - width: 100%; -} - -.col-xs-11 { - width: 91.66666666666666%; -} - -.col-xs-10 { - width: 83.33333333333334%; -} - -.col-xs-9 { - width: 75%; -} - -.col-xs-8 { - width: 66.66666666666666%; -} - -.col-xs-7 { - width: 58.333333333333336%; -} - -.col-xs-6 { - width: 50%; -} - -.col-xs-5 { - width: 41.66666666666667%; -} - -.col-xs-4 { - width: 33.33333333333333%; -} - -.col-xs-3 { - width: 25%; -} - -.col-xs-2 { - width: 16.666666666666664%; -} - -.col-xs-1 { - width: 8.333333333333332%; -} - -.col-xs-pull-12 { - right: 100%; -} - -.col-xs-pull-11 { - right: 91.66666666666666%; -} - -.col-xs-pull-10 { - right: 83.33333333333334%; -} - -.col-xs-pull-9 { - right: 75%; -} - -.col-xs-pull-8 { - right: 66.66666666666666%; -} - -.col-xs-pull-7 { - right: 58.333333333333336%; -} - -.col-xs-pull-6 { - right: 50%; -} - -.col-xs-pull-5 { - right: 41.66666666666667%; -} - -.col-xs-pull-4 { - right: 33.33333333333333%; -} - -.col-xs-pull-3 { - right: 25%; -} - -.col-xs-pull-2 { - right: 16.666666666666664%; -} - -.col-xs-pull-1 { - right: 8.333333333333332%; -} - -.col-xs-pull-0 { - right: 0; -} - -.col-xs-push-12 { - left: 100%; -} - -.col-xs-push-11 { - left: 91.66666666666666%; -} - -.col-xs-push-10 { - left: 83.33333333333334%; -} - -.col-xs-push-9 { - left: 75%; -} - -.col-xs-push-8 { - left: 66.66666666666666%; -} - -.col-xs-push-7 { - left: 58.333333333333336%; -} - -.col-xs-push-6 { - left: 50%; -} - -.col-xs-push-5 { - left: 41.66666666666667%; -} - -.col-xs-push-4 { - left: 33.33333333333333%; -} - -.col-xs-push-3 { - left: 25%; -} - -.col-xs-push-2 { - left: 16.666666666666664%; -} - -.col-xs-push-1 { - left: 8.333333333333332%; -} - -.col-xs-push-0 { - left: 0; -} - -.col-xs-offset-12 { - margin-left: 100%; -} - -.col-xs-offset-11 { - margin-left: 91.66666666666666%; -} - -.col-xs-offset-10 { - margin-left: 83.33333333333334%; -} - -.col-xs-offset-9 { - margin-left: 75%; -} - -.col-xs-offset-8 { - margin-left: 66.66666666666666%; -} - -.col-xs-offset-7 { - margin-left: 58.333333333333336%; -} - -.col-xs-offset-6 { - margin-left: 50%; -} - -.col-xs-offset-5 { - margin-left: 41.66666666666667%; -} - -.col-xs-offset-4 { - margin-left: 33.33333333333333%; -} - -.col-xs-offset-3 { - margin-left: 25%; -} - -.col-xs-offset-2 { - margin-left: 16.666666666666664%; -} - -.col-xs-offset-1 { - margin-left: 8.333333333333332%; -} - -.col-xs-offset-0 { - margin-left: 0; -} - -@media (min-width: 768px) { - .container { - width: 750px; - } - .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 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666666666666%; - } - .col-sm-10 { - width: 83.33333333333334%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666666666666%; - } - .col-sm-7 { - width: 58.333333333333336%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666666666667%; - } - .col-sm-4 { - width: 33.33333333333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.666666666666664%; - } - .col-sm-1 { - width: 8.333333333333332%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666666666666%; - } - .col-sm-pull-10 { - right: 83.33333333333334%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666666666666%; - } - .col-sm-pull-7 { - right: 58.333333333333336%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666666666667%; - } - .col-sm-pull-4 { - right: 33.33333333333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.666666666666664%; - } - .col-sm-pull-1 { - right: 8.333333333333332%; - } - .col-sm-pull-0 { - right: 0; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666666666666%; - } - .col-sm-push-10 { - left: 83.33333333333334%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666666666666%; - } - .col-sm-push-7 { - left: 58.333333333333336%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666666666667%; - } - .col-sm-push-4 { - left: 33.33333333333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.666666666666664%; - } - .col-sm-push-1 { - left: 8.333333333333332%; - } - .col-sm-push-0 { - left: 0; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666666666666%; - } - .col-sm-offset-10 { - margin-left: 83.33333333333334%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666666666666%; - } - .col-sm-offset-7 { - margin-left: 58.333333333333336%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666666666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.666666666666664%; - } - .col-sm-offset-1 { - margin-left: 8.333333333333332%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} - -@media (min-width: 992px) { - .container { - width: 970px; - } - .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 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666666666666%; - } - .col-md-10 { - width: 83.33333333333334%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666666666666%; - } - .col-md-7 { - width: 58.333333333333336%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666666666667%; - } - .col-md-4 { - width: 33.33333333333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.666666666666664%; - } - .col-md-1 { - width: 8.333333333333332%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666666666666%; - } - .col-md-pull-10 { - right: 83.33333333333334%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666666666666%; - } - .col-md-pull-7 { - right: 58.333333333333336%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666666666667%; - } - .col-md-pull-4 { - right: 33.33333333333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.666666666666664%; - } - .col-md-pull-1 { - right: 8.333333333333332%; - } - .col-md-pull-0 { - right: 0; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666666666666%; - } - .col-md-push-10 { - left: 83.33333333333334%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666666666666%; - } - .col-md-push-7 { - left: 58.333333333333336%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666666666667%; - } - .col-md-push-4 { - left: 33.33333333333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.666666666666664%; - } - .col-md-push-1 { - left: 8.333333333333332%; - } - .col-md-push-0 { - left: 0; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666666666666%; - } - .col-md-offset-10 { - margin-left: 83.33333333333334%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666666666666%; - } - .col-md-offset-7 { - margin-left: 58.333333333333336%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666666666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.666666666666664%; - } - .col-md-offset-1 { - margin-left: 8.333333333333332%; - } - .col-md-offset-0 { - margin-left: 0; - } -} - -@media (min-width: 1200px) { - .container { - width: 1170px; - } - .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 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666666666666%; - } - .col-lg-10 { - width: 83.33333333333334%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666666666666%; - } - .col-lg-7 { - width: 58.333333333333336%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666666666667%; - } - .col-lg-4 { - width: 33.33333333333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.666666666666664%; - } - .col-lg-1 { - width: 8.333333333333332%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666666666666%; - } - .col-lg-pull-10 { - right: 83.33333333333334%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666666666666%; - } - .col-lg-pull-7 { - right: 58.333333333333336%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666666666667%; - } - .col-lg-pull-4 { - right: 33.33333333333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.666666666666664%; - } - .col-lg-pull-1 { - right: 8.333333333333332%; - } - .col-lg-pull-0 { - right: 0; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666666666666%; - } - .col-lg-push-10 { - left: 83.33333333333334%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666666666666%; - } - .col-lg-push-7 { - left: 58.333333333333336%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666666666667%; - } - .col-lg-push-4 { - left: 33.33333333333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.666666666666664%; - } - .col-lg-push-1 { - left: 8.333333333333332%; - } - .col-lg-push-0 { - left: 0; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666666666666%; - } - .col-lg-offset-10 { - margin-left: 83.33333333333334%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666666666666%; - } - .col-lg-offset-7 { - margin-left: 58.333333333333336%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666666666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.666666666666664%; - } - .col-lg-offset-1 { - margin-left: 8.333333333333332%; - } - .col-lg-offset-0 { - margin-left: 0; - } -} - -table { - max-width: 100%; - background-color: transparent; -} - -th { - text-align: left; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.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.428571429; - 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-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} - -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { - background-color: #f5f5f5; -} - -table col[class*="col-"] { - display: table-column; - float: none; -} - -table td[class*="col-"], -table th[class*="col-"] { - display: table-cell; - float: none; -} - -.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 > 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.success:hover > th { - background-color: #d0e9c6; -} - -.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.danger:hover > th { - background-color: #ebcccc; -} - -.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.warning:hover > th { - background-color: #faf2cc; -} - -@media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-x: scroll; - overflow-y: hidden; - border: 1px solid #dddddd; - -ms-overflow-style: -ms-autohiding-scrollbar; - -webkit-overflow-scrolling: touch; - } - .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; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -label { - display: inline-block; - 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; - /* IE8-9 */ - - line-height: normal; -} - -input[type="file"] { - display: block; -} - -select[multiple], -select[size] { - height: auto; -} - -select optgroup { - font-family: inherit; - font-size: inherit; - font-style: inherit; -} - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -input[type="number"]::-webkit-outer-spin-button, -input[type="number"]::-webkit-inner-spin-button { - height: auto; -} - -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.428571429; - color: #555555; - vertical-align: middle; -} - -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.428571429; - color: #555555; - vertical-align: middle; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - -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 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.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; -} - -.form-control::-moz-placeholder { - color: #999999; -} - -.form-control:-ms-input-placeholder { - color: #999999; -} - -.form-control::-webkit-input-placeholder { - color: #999999; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eeeeee; -} - -textarea.form-control { - height: auto; -} - -.form-group { - margin-bottom: 15px; -} - -.radio, -.checkbox { - display: block; - min-height: 20px; - padding-left: 20px; - margin-top: 10px; - margin-bottom: 10px; - vertical-align: middle; -} - -.radio label, -.checkbox label { - display: inline; - 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"] { - float: left; - margin-left: -20px; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} - -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} - -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} - -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -select.input-sm { - height: 30px; - line-height: 30px; -} - -textarea.input-sm { - height: auto; -} - -.input-lg { - height: 45px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -select.input-lg { - height: 45px; - line-height: 45px; -} - -textarea.input-lg { - height: auto; -} - -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: #c09853; -} - -.has-warning .form-control { - border-color: #c09853; - -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: #a47e3c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; -} - -.has-warning .input-group-addon { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: #b94a48; -} - -.has-error .form-control { - border-color: #b94a48; - -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: #953b39; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; -} - -.has-error .input-group-addon { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: #468847; -} - -.has-success .form-control { - border-color: #468847; - -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: #356635; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; -} - -.has-success .input-group-addon { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -.form-control-static { - margin-bottom: 0; -} - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} - -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } -} - -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} - -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} - -.form-horizontal .form-group:before, -.form-horizontal .form-group:after { - display: table; - content: " "; -} - -.form-horizontal .form-group:after { - clear: both; -} - -.form-horizontal .form-group:before, -.form-horizontal .form-group:after { - display: table; - content: " "; -} - -.form-horizontal .form-group:after { - clear: both; -} - -.form-horizontal .form-control-static { - padding-top: 7px; -} - -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } -} - -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.428571429; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; -} - -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn:hover, -.btn:focus { - color: #333333; - text-decoration: none; -} - -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -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 { - pointer-events: none; - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-default { - color: #333333; - background-color: #ffffff; - border-color: #cccccc; -} - -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: #333333; - background-color: #ebebeb; - border-color: #adadad; -} - -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} - -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #ffffff; - border-color: #cccccc; -} - -.btn-primary { - color: #ffffff; - background-color: #428bca; - border-color: #357ebd; -} - -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #3276b1; - border-color: #285e8e; -} - -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} - -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #428bca; - border-color: #357ebd; -} - -.btn-warning { - color: #ffffff; - background-color: #f0ad4e; - border-color: #eea236; -} - -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #ed9c28; - border-color: #d58512; -} - -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} - -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} - -.btn-danger { - color: #ffffff; - background-color: #d9534f; - border-color: #d43f3a; -} - -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #d2322d; - border-color: #ac2925; -} - -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} - -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} - -.btn-success { - color: #ffffff; - background-color: #5cb85c; - border-color: #4cae4c; -} - -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #47a447; - border-color: #398439; -} - -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} - -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} - -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: #46b8da; -} - -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #39b3d7; - border-color: #269abc; -} - -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} - -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} - -.btn-link { - font-weight: normal; - color: #428bca; - cursor: pointer; - border-radius: 0; -} - -.btn-link, -.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: #2a6496; - 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 { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -.btn-sm, -.btn-xs { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-xs { - padding: 1px 5px; -} - -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; -} - -.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; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - display: none; -} - -.collapse.in { - display: block; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -@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.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'; - -webkit-font-smoothing: antialiased; - font-style: normal; - font-weight: normal; - line-height: 1; - -moz-osx-font-smoothing: grayscale; -} - -.glyphicon:empty { - width: 1em; -} - -.glyphicon-asterisk:before { - content: "\2a"; -} - -.glyphicon-plus:before { - content: "\2b"; -} - -.glyphicon-euro: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"; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-bottom: 0 dotted; - border-left: 4px solid transparent; -} - -.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; - font-size: 14px; - list-style: none; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.428571429; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - background-color: #428bca; - outline: 0; -} - -.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; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.open > .dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.428571429; - color: #999999; -} - -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0 dotted; - border-bottom: 4px solid #000000; - content: ""; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } -} - -.btn-default .caret { - border-top-color: #333333; -} - -.btn-primary .caret, -.btn-success .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret { - border-top-color: #fff; -} - -.dropup .btn-default .caret { - border-bottom-color: #333333; -} - -.dropup .btn-primary .caret, -.dropup .btn-success .caret, -.dropup .btn-warning .caret, -.dropup .btn-danger .caret, -.dropup .btn-info .caret { - border-bottom-color: #fff; -} - -.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:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} - -.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:before, -.btn-toolbar:after { - display: table; - content: " "; -} - -.btn-toolbar:after { - clear: both; -} - -.btn-toolbar:before, -.btn-toolbar:after { - display: table; - content: " "; -} - -.btn-toolbar:after { - clear: both; -} - -.btn-toolbar .btn-group { - float: left; -} - -.btn-toolbar > .btn + .btn, -.btn-toolbar > .btn-group + .btn, -.btn-toolbar > .btn + .btn-group, -.btn-toolbar > .btn-group + .btn-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-top-right-radius: 0; - border-bottom-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 > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-group > .btn-group:last-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-xs > .btn { - padding: 5px 10px; - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} - -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 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 { - display: block; - float: none; - width: 100%; - max-width: 100%; -} - -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after { - display: table; - content: " "; -} - -.btn-group-vertical > .btn-group:after { - clear: both; -} - -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after { - display: table; - content: " "; -} - -.btn-group-vertical > .btn-group:after { - clear: both; -} - -.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: 4px; - 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-bottom-left-radius: 4px; - border-top-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 > .btn:last-child, -.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn-group:last-child > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.btn-group-justified { - display: table; - width: 100%; - border-collapse: separate; - table-layout: fixed; -} - -.btn-group-justified .btn { - display: table-cell; - float: none; - width: 1%; -} - -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} - -.input-group { - position: relative; - display: table; - border-collapse: separate; -} - -.input-group.col { - float: none; - padding-right: 0; - padding-left: 0; -} - -.input-group .form-control { - width: 100%; - margin-bottom: 0; -} - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 45px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 45px; - line-height: 45px; -} - -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.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: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} - -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.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: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555555; - text-align: center; - background-color: #eeeeee; - border: 1px solid #cccccc; - border-radius: 4px; -} - -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} - -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} - -.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 > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-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 > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.input-group-addon:last-child { - border-left: 0; -} - -.input-group-btn { - position: relative; - white-space: nowrap; -} - -.input-group-btn:first-child > .btn { - margin-right: -1px; -} - -.input-group-btn:last-child > .btn { - margin-left: -1px; -} - -.input-group-btn > .btn { - position: relative; -} - -.input-group-btn > .btn + .btn { - margin-left: -4px; -} - -.input-group-btn > .btn:hover, -.input-group-btn > .btn:active { - z-index: 2; -} - -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} - -.nav:before, -.nav:after { - display: table; - content: " "; -} - -.nav:after { - clear: both; -} - -.nav:before, -.nav:after { - display: table; - content: " "; -} - -.nav:after { - clear: both; -} - -.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; - cursor: not-allowed; - background-color: transparent; -} - -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eeeeee; - border-color: #428bca; -} - -.nav .open > a .caret, -.nav .open > a:hover .caret, -.nav .open > a:focus .caret { - border-top-color: #2a6496; - border-bottom-color: #2a6496; -} - -.nav .nav-divider { - height: 1px; - margin: 9px 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.428571429; - border: 1px solid transparent; - border-radius: 4px 4px 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: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; -} - -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} - -.nav-tabs.nav-justified > li { - float: none; -} - -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} - -.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: 4px; -} - -.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: 4px 4px 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: 4px; -} - -.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: #428bca; -} - -.nav-pills > li.active > a .caret, -.nav-pills > li.active > a:hover .caret, -.nav-pills > li.active > a:focus .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.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 { - margin-bottom: 5px; - text-align: center; -} - -.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: 4px; -} - -.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: 4px 4px 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 .caret { - border-top-color: #428bca; - border-bottom-color: #428bca; -} - -.nav a:hover .caret { - border-top-color: #2a6496; - border-bottom-color: #2a6496; -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} - -.navbar:before, -.navbar:after { - display: table; - content: " "; -} - -.navbar:after { - clear: both; -} - -.navbar:before, -.navbar:after { - display: table; - content: " "; -} - -.navbar:after { - clear: both; -} - -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} - -.navbar-header:before, -.navbar-header:after { - display: table; - content: " "; -} - -.navbar-header:after { - clear: both; -} - -.navbar-header:before, -.navbar-header:after { - display: table; - content: " "; -} - -.navbar-header:after { - clear: both; -} - -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} - -.navbar-collapse { - max-height: 340px; - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} - -.navbar-collapse:before, -.navbar-collapse:after { - display: table; - content: " "; -} - -.navbar-collapse:after { - clear: both; -} - -.navbar-collapse:before, -.navbar-collapse:after { - display: table; - content: " "; -} - -.navbar-collapse:after { - clear: both; -} - -.navbar-collapse.in { - overflow-y: auto; -} - -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: auto; - } - .navbar-collapse .navbar-nav.navbar-left:first-child { - margin-left: -15px; - } - .navbar-collapse .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } - .navbar-collapse .navbar-text:last-child { - margin-right: 0; - } -} - -.container > .navbar-header, -.container > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} - -@media (min-width: 768px) { - .container > .navbar-header, - .container > .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: 15px 15px; - font-size: 18px; - line-height: 20px; -} - -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} - -@media (min-width: 768px) { - .navbar > .container .navbar-brand { - margin-left: -15px; - } -} - -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - border: 1px solid transparent; - border-radius: 4px; -} - -.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: 7.5px -15px; -} - -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} - -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - 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: 20px; - } - .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: 15px; - padding-bottom: 15px; - } -} - -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - } -} - -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -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); -} - -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } -} - -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } -} - -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 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 { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.navbar-nav.pull-right > li > .dropdown-menu, -.navbar-nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} - -.navbar-text { - float: left; - margin-top: 15px; - margin-bottom: 15px; -} - -@media (min-width: 768px) { - .navbar-text { - margin-right: 15px; - margin-left: 15px; - } -} - -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} - -.navbar-default .navbar-brand { - color: #777777; -} - -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} - -.navbar-default .navbar-text { - color: #777777; -} - -.navbar-default .navbar-nav > li > a { - color: #777777; -} - -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333333; - background-color: transparent; -} - -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555555; - background-color: #e7e7e7; -} - -.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: #dddddd; -} - -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #dddddd; -} - -.navbar-default .navbar-toggle .icon-bar { - background-color: #cccccc; -} - -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} - -.navbar-default .navbar-nav > .dropdown > a:hover .caret, -.navbar-default .navbar-nav > .dropdown > a:focus .caret { - border-top-color: #333333; - border-bottom-color: #333333; -} - -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555555; - background-color: #e7e7e7; -} - -.navbar-default .navbar-nav > .open > a .caret, -.navbar-default .navbar-nav > .open > a:hover .caret, -.navbar-default .navbar-nav > .open > a:focus .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar-default .navbar-nav > .dropdown > a .caret { - border-top-color: #777777; - border-bottom-color: #777777; -} - -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333333; - background-color: transparent; - } - .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: #555555; - background-color: #e7e7e7; - } - .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: #777777; -} - -.navbar-default .navbar-link:hover { - color: #333333; -} - -.navbar-inverse { - background-color: #222222; - border-color: #080808; -} - -.navbar-inverse .navbar-brand { - color: #999999; -} - -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .navbar-text { - color: #999999; -} - -.navbar-inverse .navbar-nav > li > a { - color: #999999; -} - -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #080808; -} - -.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: #333333; -} - -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333333; -} - -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; -} - -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} - -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #ffffff; - background-color: #080808; -} - -.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .navbar-nav > .dropdown > a .caret { - border-top-color: #999999; - border-bottom-color: #999999; -} - -.navbar-inverse .navbar-nav > .open > a .caret, -.navbar-inverse .navbar-nav > .open > a:hover .caret, -.navbar-inverse .navbar-nav > .open > a:focus .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #999999; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: transparent; - } - .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: #080808; - } - .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: #999999; -} - -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} - -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} - -.breadcrumb > li { - display: inline-block; -} - -.breadcrumb > li + li:before { - padding: 0 5px; - color: #cccccc; - content: "/\00a0"; -} - -.breadcrumb > .active { - color: #999999; -} - -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} - -.pagination > li { - display: inline; -} - -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.428571429; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; -} - -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} - -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - background-color: #eeeeee; -} - -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #ffffff; - cursor: default; - background-color: #428bca; - border-color: #428bca; -} - -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #999999; - cursor: not-allowed; - background-color: #ffffff; - border-color: #dddddd; -} - -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} - -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; -} - -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} - -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} - -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} - -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} - -.pager:before, -.pager:after { - display: table; - content: " "; -} - -.pager:after { - clear: both; -} - -.pager:before, -.pager:after { - display: table; - content: " "; -} - -.pager:after { - clear: both; -} - -.pager li { - display: inline; -} - -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 15px; -} - -.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; - cursor: not-allowed; - background-color: #ffffff; -} - -.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; -} - -.label[href]:hover, -.label[href]:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label:empty { - display: none; -} - -.label-default { - background-color: #999999; -} - -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #808080; -} - -.label-primary { - background-color: #428bca; -} - -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #3071a9; -} - -.label-success { - background-color: #5cb85c; -} - -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} - -.label-info { - background-color: #5bc0de; -} - -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} - -.label-warning { - background-color: #f0ad4e; -} - -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} - -.label-danger { - background-color: #d9534f; -} - -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; - border-radius: 10px; -} - -.badge:empty { - display: none; -} - -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.btn .badge { - position: relative; - top: -1px; -} - -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #428bca; - background-color: #ffffff; -} - -.nav-pills > li > a > .badge { - margin-left: 3px; -} - -.jumbotron { - padding: 30px; - margin-bottom: 30px; - font-size: 21px; - font-weight: 200; - line-height: 2.1428571435; - color: inherit; - background-color: #eeeeee; -} - -.jumbotron h1 { - line-height: 1; - color: inherit; -} - -.jumbotron p { - line-height: 1.4; -} - -.container .jumbotron { - border-radius: 6px; -} - -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1 { - font-size: 63px; - } -} - -.thumbnail { - display: inline-block; - display: block; - height: auto; - max-width: 100%; - padding: 4px; - margin-bottom: 20px; - line-height: 1.428571429; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -.thumbnail > img { - display: block; - height: auto; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #428bca; -} - -.thumbnail .caption { - padding: 9px; - color: #333333; -} - -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} - -.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 { - padding-right: 35px; -} - -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} - -.alert-success { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.alert-success hr { - border-top-color: #c9e2b3; -} - -.alert-success .alert-link { - color: #356635; -} - -.alert-info { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-info hr { - border-top-color: #a6e1ec; -} - -.alert-info .alert-link { - color: #2d6987; -} - -.alert-warning { - color: #c09853; - background-color: #fcf8e3; - border-color: #faebcc; -} - -.alert-warning hr { - border-top-color: #f7e1b5; -} - -.alert-warning .alert-link { - color: #a47e3c; -} - -.alert-danger { - color: #b94a48; - background-color: #f2dede; - border-color: #ebccd1; -} - -.alert-danger hr { - border-top-color: #e4b9c0; -} - -.alert-danger .alert-link { - color: #953b39; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -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: 20px; - color: #ffffff; - text-align: center; - background-color: #428bca; - -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; - transition: width 0.6s ease; -} - -.progress-striped .progress-bar { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - 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: -moz-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); - background-size: 40px 40px; -} - -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-bar-success { - background-color: #5cb85c; -} - -.progress-striped .progress-bar-success { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - 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: -moz-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-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - 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: -moz-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: #f0ad4e; -} - -.progress-striped .progress-bar-warning { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - 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: -moz-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: #d9534f; -} - -.progress-striped .progress-bar-danger { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - 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: -moz-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, -.media-body { - overflow: hidden; - zoom: 1; -} - -.media, -.media .media { - margin-top: 15px; -} - -.media:first-child { - margin-top: 0; -} - -.media-object { - display: block; -} - -.media-heading { - margin: 0 0 5px; -} - -.media > .pull-left { - margin-right: 10px; -} - -.media > .pull-right { - margin-left: 10px; -} - -.media-list { - padding-left: 0; - list-style: none; -} - -.list-group { - padding-left: 0; - margin-bottom: 20px; -} - -.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: 4px; - border-top-left-radius: 4px; -} - -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -.list-group-item > .badge { - float: right; -} - -.list-group-item > .badge + .badge { - margin-right: 5px; -} - -a.list-group-item { - color: #555555; -} - -a.list-group-item .list-group-item-heading { - color: #333333; -} - -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; -} - -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #428bca; - border-color: #428bca; -} - -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:hover .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} - -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:hover .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: #e1edf7; -} - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} - -.panel { - margin-bottom: 20px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 4px; - -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-body:before, -.panel-body:after { - display: table; - content: " "; -} - -.panel-body:after { - clear: both; -} - -.panel-body:before, -.panel-body:after { - display: table; - content: " "; -} - -.panel-body:after { - clear: both; -} - -.panel > .list-group { - margin-bottom: 0; -} - -.panel > .list-group .list-group-item { - border-width: 1px 0; -} - -.panel > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.panel > .list-group .list-group-item:last-child { - border-bottom: 0; -} - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} - -.panel > .table, -.panel > .table-responsive { - margin-bottom: 0; -} - -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid #dddddd; -} - -.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:last-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:last-child > th, -.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, -.panel > .table-bordered > thead > tr:last-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:last-child > td, -.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 { - border-bottom: 0; -} - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} - -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; -} - -.panel-title > a { - color: inherit; -} - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} - -.panel-group .panel { - margin-bottom: 0; - overflow: hidden; - border-radius: 4px; -} - -.panel-group .panel + .panel { - margin-top: 5px; -} - -.panel-group .panel-heading { - border-bottom: 0; -} - -.panel-group .panel-heading + .panel-collapse .panel-body { - 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 > .dropdown .caret { - border-color: #333333 transparent; -} - -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #dddddd; -} - -.panel-primary { - border-color: #428bca; -} - -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #428bca; - border-color: #428bca; -} - -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #428bca; -} - -.panel-primary > .panel-heading > .dropdown .caret { - border-color: #ffffff transparent; -} - -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #428bca; -} - -.panel-success { - border-color: #d6e9c6; -} - -.panel-success > .panel-heading { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; -} - -.panel-success > .panel-heading > .dropdown .caret { - border-color: #468847 transparent; -} - -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; -} - -.panel-warning { - border-color: #faebcc; -} - -.panel-warning > .panel-heading { - color: #c09853; - background-color: #fcf8e3; - border-color: #faebcc; -} - -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #faebcc; -} - -.panel-warning > .panel-heading > .dropdown .caret { - border-color: #c09853 transparent; -} - -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #faebcc; -} - -.panel-danger { - border-color: #ebccd1; -} - -.panel-danger > .panel-heading { - color: #b94a48; - background-color: #f2dede; - border-color: #ebccd1; -} - -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ebccd1; -} - -.panel-danger > .panel-heading > .dropdown .caret { - border-color: #b94a48 transparent; -} - -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ebccd1; -} - -.panel-info { - border-color: #bce8f1; -} - -.panel-info > .panel-heading { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; -} - -.panel-info > .panel-heading > .dropdown .caret { - border-color: #3a87ad transparent; -} - -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -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: 6px; -} - -.well-sm { - padding: 9px; - border-radius: 3px; -} - -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:hover, -.close:focus { - color: #000000; - 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 { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - display: none; - overflow: auto; - overflow-y: scroll; -} - -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-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); - transform: translate(0, 0); -} - -.modal-dialog { - position: relative; - z-index: 1050; - width: auto; - padding: 10px; - margin-right: auto; - margin-left: auto; -} - -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} - -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} - -.modal-header { - min-height: 16.428571429px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} - -.modal-header .close { - margin-top: -2px; -} - -.modal-title { - margin: 0; - line-height: 1.428571429; -} - -.modal-body { - position: relative; - padding: 20px; -} - -.modal-footer { - padding: 19px 20px 20px; - margin-top: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} - -@media screen and (min-width: 768px) { - .modal-dialog { - width: 600px; - padding-top: 30px; - padding-bottom: 30px; - } - .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); - } -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 12px; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); - visibility: visible; -} - -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} - -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} - -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} - -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} - -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - border-radius: 4px; -} - -.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-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.top-right .tooltip-arrow { - right: 5px; - bottom: 0; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-right-color: #000000; - border-width: 5px 5px 5px 0; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-left-color: #000000; - border-width: 5px 0 5px 5px; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - background-clip: padding-box; -} - -.popover.top { - margin-top: -10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-left: -10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 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 { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; -} - -.popover.top .arrow:after { - bottom: 1px; - margin-left: -10px; - border-top-color: #ffffff; - border-bottom-width: 0; - content: " "; -} - -.popover.right .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; -} - -.popover.right .arrow:after { - bottom: -10px; - left: 1px; - border-right-color: #ffffff; - border-left-width: 0; - content: " "; -} - -.popover.bottom .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-top-width: 0; -} - -.popover.bottom .arrow:after { - top: 1px; - margin-left: -10px; - border-bottom-color: #ffffff; - border-top-width: 0; - content: " "; -} - -.popover.left .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); - border-right-width: 0; -} - -.popover.left .arrow:after { - right: 1px; - bottom: -10px; - border-left-color: #ffffff; - border-right-width: 0; - content: " "; -} - -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - height: auto; - max-width: 100%; - line-height: 1; -} - -.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; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - opacity: 0.5; - filter: alpha(opacity=50); -} - -.carousel-control.left { - background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); - 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 { - right: 0; - left: auto; - background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); - 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 { - 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%; - z-index: 5; - display: inline-block; -} - -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; -} - -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; -} - -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - 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%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} - -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #ffffff; - border-radius: 10px; -} - -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #ffffff; -} - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - 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 .glyphicons-chevron-left, - .carousel-control .glyphicons-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - margin-left: -15px; - font-size: 30px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} - -.clearfix:before, -.clearfix:after { - display: table; - content: " "; -} - -.clearfix:after { - clear: both; -} - -.center-block { - display: block; - margin-right: auto; - margin-left: 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; - visibility: hidden !important; -} - -.affix { - position: fixed; -} - -@-ms-viewport { - width: device-width; -} - -.visible-xs, -tr.visible-xs, -th.visible-xs, -td.visible-xs { - display: none !important; -} - -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-xs.visible-sm { - display: block !important; - } - tr.visible-xs.visible-sm { - display: table-row !important; - } - th.visible-xs.visible-sm, - td.visible-xs.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-xs.visible-md { - display: block !important; - } - tr.visible-xs.visible-md { - display: table-row !important; - } - th.visible-xs.visible-md, - td.visible-xs.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-xs.visible-lg { - display: block !important; - } - tr.visible-xs.visible-lg { - display: table-row !important; - } - th.visible-xs.visible-lg, - td.visible-xs.visible-lg { - display: table-cell !important; - } -} - -.visible-sm, -tr.visible-sm, -th.visible-sm, -td.visible-sm { - display: none !important; -} - -@media (max-width: 767px) { - .visible-sm.visible-xs { - display: block !important; - } - tr.visible-sm.visible-xs { - display: table-row !important; - } - th.visible-sm.visible-xs, - td.visible-sm.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-sm.visible-md { - display: block !important; - } - tr.visible-sm.visible-md { - display: table-row !important; - } - th.visible-sm.visible-md, - td.visible-sm.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-sm.visible-lg { - display: block !important; - } - tr.visible-sm.visible-lg { - display: table-row !important; - } - th.visible-sm.visible-lg, - td.visible-sm.visible-lg { - display: table-cell !important; - } -} - -.visible-md, -tr.visible-md, -th.visible-md, -td.visible-md { - display: none !important; -} - -@media (max-width: 767px) { - .visible-md.visible-xs { - display: block !important; - } - tr.visible-md.visible-xs { - display: table-row !important; - } - th.visible-md.visible-xs, - td.visible-md.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-md.visible-sm { - display: block !important; - } - tr.visible-md.visible-sm { - display: table-row !important; - } - th.visible-md.visible-sm, - td.visible-md.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-md.visible-lg { - display: block !important; - } - tr.visible-md.visible-lg { - display: table-row !important; - } - th.visible-md.visible-lg, - td.visible-md.visible-lg { - display: table-cell !important; - } -} - -.visible-lg, -tr.visible-lg, -th.visible-lg, -td.visible-lg { - display: none !important; -} - -@media (max-width: 767px) { - .visible-lg.visible-xs { - display: block !important; - } - tr.visible-lg.visible-xs { - display: table-row !important; - } - th.visible-lg.visible-xs, - td.visible-lg.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-lg.visible-sm { - display: block !important; - } - tr.visible-lg.visible-sm { - display: table-row !important; - } - th.visible-lg.visible-sm, - td.visible-lg.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-lg.visible-md { - display: block !important; - } - tr.visible-lg.visible-md { - display: table-row !important; - } - th.visible-lg.visible-md, - td.visible-lg.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} - -.hidden-xs { - display: block !important; -} - -tr.hidden-xs { - display: table-row !important; -} - -th.hidden-xs, -td.hidden-xs { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-xs, - tr.hidden-xs, - th.hidden-xs, - td.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-xs.hidden-sm, - tr.hidden-xs.hidden-sm, - th.hidden-xs.hidden-sm, - td.hidden-xs.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-xs.hidden-md, - tr.hidden-xs.hidden-md, - th.hidden-xs.hidden-md, - td.hidden-xs.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-xs.hidden-lg, - tr.hidden-xs.hidden-lg, - th.hidden-xs.hidden-lg, - td.hidden-xs.hidden-lg { - display: none !important; - } -} - -.hidden-sm { - display: block !important; -} - -tr.hidden-sm { - display: table-row !important; -} - -th.hidden-sm, -td.hidden-sm { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-sm.hidden-xs, - tr.hidden-sm.hidden-xs, - th.hidden-sm.hidden-xs, - td.hidden-sm.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm, - tr.hidden-sm, - th.hidden-sm, - td.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-sm.hidden-md, - tr.hidden-sm.hidden-md, - th.hidden-sm.hidden-md, - td.hidden-sm.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-sm.hidden-lg, - tr.hidden-sm.hidden-lg, - th.hidden-sm.hidden-lg, - td.hidden-sm.hidden-lg { - display: none !important; - } -} - -.hidden-md { - display: block !important; -} - -tr.hidden-md { - display: table-row !important; -} - -th.hidden-md, -td.hidden-md { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-md.hidden-xs, - tr.hidden-md.hidden-xs, - th.hidden-md.hidden-xs, - td.hidden-md.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-md.hidden-sm, - tr.hidden-md.hidden-sm, - th.hidden-md.hidden-sm, - td.hidden-md.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md, - tr.hidden-md, - th.hidden-md, - td.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-md.hidden-lg, - tr.hidden-md.hidden-lg, - th.hidden-md.hidden-lg, - td.hidden-md.hidden-lg { - display: none !important; - } -} - -.hidden-lg { - display: block !important; -} - -tr.hidden-lg { - display: table-row !important; -} - -th.hidden-lg, -td.hidden-lg { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-lg.hidden-xs, - tr.hidden-lg.hidden-xs, - th.hidden-lg.hidden-xs, - td.hidden-lg.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-lg.hidden-sm, - tr.hidden-lg.hidden-sm, - th.hidden-lg.hidden-sm, - td.hidden-lg.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-lg.hidden-md, - tr.hidden-lg.hidden-md, - th.hidden-lg.hidden-md, - td.hidden-lg.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-lg, - tr.hidden-lg, - th.hidden-lg, - td.hidden-lg { - display: none !important; - } -} - -.visible-print, -tr.visible-print, -th.visible-print, -td.visible-print { - display: none !important; -} - -@media print { - .visible-print { - display: block !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } - .hidden-print, - tr.hidden-print, - th.hidden-print, - td.hidden-print { - display: none !important; - } -} \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test/Content/bootstrap.min.css b/tests/FSharp.Configuration.Web.Test/Content/bootstrap.min.css deleted file mode 100644 index 3deec348..00000000 --- a/tests/FSharp.Configuration.Web.Test/Content/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v3.0.2 by @fat and @mdo - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]: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}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#c09853}.text-warning:hover{color:#a47e3c}.text-danger{color:#b94a48}.text-danger:hover{color:#953b39}.text-success{color:#468847}.text-success:hover{color:#356635}.text-info{color:#3a87ad}.text-info:hover{color:#2d6987}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;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:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}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}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.list-inline>li:first-child{padding-left:0}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}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{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.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-right:15px;padding-left: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{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media(min-width:768px){.container{width:750px}.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{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media(min-width:992px){.container{width:970px}.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{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media(min-width:1200px){.container{width:1170px}.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{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.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.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.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 #ddd}.table .table{background-color:#fff}.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 #ddd}.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 #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.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>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.success:hover>th{background-color:#d0e9c6}.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.danger:hover>th{background-color:#ebcccc}.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.warning:hover>th{background-color:#faf2cc}@media(max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.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}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;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}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-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,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:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;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"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#c09853}.has-warning .form-control{border-color:#c09853;-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:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#b94a48}.has-error .form-control{border-color:#b94a48;-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:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#468847}.has-success .form-control{border-color:#468847;-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:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-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{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.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:#2a6496;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:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.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 .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@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.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';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro: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"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent}.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;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.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:focus,.btn-group-vertical>.btn:focus{outline:0}.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:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-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-top-right-radius:0;border-bottom-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left: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{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.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:4px;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-bottom-left-radius:4px;border-top-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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.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:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-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>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.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:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .open>a .caret,.nav .open>a:hover .caret,.nav .open>a:focus .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.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:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 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:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.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:#fff;background-color:#428bca}.nav-pills>li.active>a .caret,.nav-pills>li.active>a:hover .caret,.nav-pills>li.active>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.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{margin-bottom:5px;text-align:center}.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:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:auto}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.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:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.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:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;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:20px}.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:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-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)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border: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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.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:#555;background-color:#e7e7e7}.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:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.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:#fff;background-color:#080808}.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:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.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:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.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{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-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:20px;color:#fff;text-align:center;background-color:#428bca;-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 .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-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-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.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:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.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,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.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{border-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-heading>.dropdown .caret{border-color:#333 transparent}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-heading>.dropdown .caret{border-color:#fff transparent}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading>.dropdown .caret{border-color:#468847 transparent}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading>.dropdown .caret{border-color:#c09853 transparent}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading>.dropdown .caret{border-color:#b94a48 transparent}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading>.dropdown .caret{border-color:#3a87ad transparent}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-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:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-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);transform:translate(0,0)}.modal-dialog{position:relative;z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;padding-top:30px;padding-bottom:30px}.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)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.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-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 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{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.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;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);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{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);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{color:#fff;text-decoration:none;opacity:.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%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;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 .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.center-block{display:block;margin-right:auto;margin-left: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;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,tr.hidden-xs.hidden-md,th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs,tr.hidden-md.hidden-xs,th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test/Controllers/HomeController.fs b/tests/FSharp.Configuration.Web.Test/Controllers/HomeController.fs deleted file mode 100644 index 8aed4ecb..00000000 --- a/tests/FSharp.Configuration.Web.Test/Controllers/HomeController.fs +++ /dev/null @@ -1,13 +0,0 @@ -namespace FSharp.Configuration.Web.Test.Controllers - -open System.Web.Mvc -open FSharp.Configuration - -type Settings = AppSettings<"Web.config"> - -type HomeController() = - inherit Controller() - - member this.Index() = - let _ = Settings.WebpagesEnabled - this.View() diff --git a/tests/FSharp.Configuration.Web.Test/Controllers/ValuesController.fs b/tests/FSharp.Configuration.Web.Test/Controllers/ValuesController.fs deleted file mode 100644 index f3c21d6f..00000000 --- a/tests/FSharp.Configuration.Web.Test/Controllers/ValuesController.fs +++ /dev/null @@ -1,21 +0,0 @@ -namespace FSharp.Configuration.Web.Test.Controllers - -open System.Web.Http - -/// Retrieves values. -[] -type ValuesController() = - inherit ApiController() - let values = [| "value1"; "value2" |] - - /// Gets all values. - [] - member x.Get() = values - - /// Gets the value with index id. - [] - member x.Get(id) : IHttpActionResult = - if id > values.Length - 1 then - x.BadRequest() :> _ - else - x.Ok(values.[id]) :> _ diff --git a/tests/FSharp.Configuration.Web.Test/FSharp.Configuration.Web.Test.fsproj b/tests/FSharp.Configuration.Web.Test/FSharp.Configuration.Web.Test.fsproj deleted file mode 100644 index 8a477d1e..00000000 --- a/tests/FSharp.Configuration.Web.Test/FSharp.Configuration.Web.Test.fsproj +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - Debug - AnyCPU - 10.0.0 - 2.0 - 9b08b114-8cb6-4258-8fa7-840704b61046 - {349C5851-65DF-11DA-9384-00065B846F21};{F2A71F9B-5D33-465A-A702-920D77279786} - Library - true - FSharp.Configuration.Web.Test - FSharp.Configuration.Web.Test - true - v4.5 - - ..\packages\WebGrease.1.5.2\lib - FSharp.Configuration.Web.Test - - - true - full - DEBUG;TRACE - bin\ - prompt - - - false - - - true - pdbonly - TRACE - true - bin\ - prompt - true - false - - - - - 11 - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - 4.3.1.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets - - - 4.3.0.0 - $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets - - - - - - - - - - - - - - True - True - 48213 - / - http://localhost:48213/ - False - False - - - False - - - - - - - CurrentPage - True - False - False - False - - - - - - - - - False - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Global.asax - - - - - - - ..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll - True - - - ..\..\bin\FSharp.Configuration.dll - - - $(SolutionDir)\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - True - - - $(SolutionDir)\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll - True - - - - - $(SolutionDir)\packages\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll - True - - - - - $(SolutionDir)\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.Helpers.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.Mvc.5.0.0\lib\net45\System.Web.Mvc.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.Web.Optimization.1.1.2\lib\net40\System.Web.Optimization.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.Razor.3.0.0\lib\net45\System.Web.Razor.dll - True - - - - $(SolutionDir)\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.Deployment.dll - True - - - $(SolutionDir)\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.Razor.dll - True - - - True - - - - - - - - ..\packages\WebGrease.1.5.2\lib\WebGrease.dll - True - - - - - - \ No newline at end of file diff --git a/tests/FSharp.Configuration.Web.Test/Global.asax b/tests/FSharp.Configuration.Web.Test/Global.asax deleted file mode 100644 index 33dddbd7..00000000 --- a/tests/FSharp.Configuration.Web.Test/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Inherits="FSharp.Configuration.Web.Test.Global" %> diff --git a/tests/FSharp.Configuration.Web.Test/Global.asax.fs b/tests/FSharp.Configuration.Web.Test/Global.asax.fs deleted file mode 100644 index 4782135d..00000000 --- a/tests/FSharp.Configuration.Web.Test/Global.asax.fs +++ /dev/null @@ -1,86 +0,0 @@ -namespace FSharp.Configuration.Web.Test - -open System -open System.Net.Http -open System.Web -open System.Web.Http -open System.Web.Mvc -open System.Web.Routing -open System.Web.Optimization - -type BundleConfig() = - static member RegisterBundles(bundles: BundleCollection) = - bundles.Add(ScriptBundle("~/bundles/jquery").Include([| "~/Scripts/jquery-{version}.js" |])) - - // Use the development version of Modernizr to develop with and learn from. Then, when you're - // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. - bundles.Add(ScriptBundle("~/bundles/modernizr").Include([| "~/Scripts/modernizr-*" |])) - - bundles.Add( - ScriptBundle("~/bundles/bootstrap") - .Include("~/Scripts/bootstrap.js", "~/Scripts/respond.js") - ) - - bundles.Add( - StyleBundle("~/Content/css") - .Include("~/Content/bootstrap.css", "~/Content/site.css") - ) - -/// Route for ASP.NET MVC applications -type Route = { - controller: string - action: string - id: UrlParameter -} - -type HttpRoute = { - controller: string - id: RouteParameter -} - -type Global() = - inherit System.Web.HttpApplication() - - static member RegisterWebApi(config: HttpConfiguration) = - // Configure routing - config.MapHttpAttributeRoutes() - - config.Routes.MapHttpRoute( - "DefaultApi", // Route name - "api/{controller}/{id}", // URL with parameters - { - controller = "{controller}" - id = RouteParameter.Optional - } // Parameter defaults - ) - |> ignore - - // Configure serialization - config.Formatters.XmlFormatter.UseXmlSerializer <- true - config.Formatters.JsonFormatter.SerializerSettings.ContractResolver <- Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() - - // Additional Web API settings - - static member RegisterFilters(filters: GlobalFilterCollection) = - filters.Add(new HandleErrorAttribute()) - - static member RegisterRoutes(routes: RouteCollection) = - routes.IgnoreRoute("{resource}.axd/{*pathInfo}") - - routes.MapRoute( - "Default", // Route name - "{controller}/{action}/{id}", // URL with parameters - { - controller = "Home" - action = "Index" - id = UrlParameter.Optional - } // Parameter defaults - ) - |> ignore - - member x.Application_Start() = - AreaRegistration.RegisterAllAreas() - GlobalConfiguration.Configure(Action<_> Global.RegisterWebApi) - Global.RegisterFilters(GlobalFilters.Filters) - Global.RegisterRoutes(RouteTable.Routes) - BundleConfig.RegisterBundles BundleTable.Bundles diff --git a/tests/FSharp.Configuration.Web.Test/Scripts/bootstrap.js b/tests/FSharp.Configuration.Web.Test/Scripts/bootstrap.js deleted file mode 100644 index 1c638ab4..00000000 --- a/tests/FSharp.Configuration.Web.Test/Scripts/bootstrap.js +++ /dev/null @@ -1,2002 +0,0 @@ -/*! - * Bootstrap v3.0.2 by @fat and @mdo - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") } - -/* ======================================================================== - * Bootstrap: transition.js v3.0.2 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the 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] } - } - } - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false, $el = this - $(this).one($.support.transition.end, function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.0.2 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - 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) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.hasClass('alert') ? $this : $this.parent() - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent.trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one($.support.transition.end, removeElement) - .emulateTransitionEnd(150) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - var old = $.fn.alert - - $.fn.alert = function (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) - }) - } - - $.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.0.2 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - } - - 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 = state + 'Text' - - if (!data.resetText) $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d); - }, 0) - } - - Button.prototype.toggle = function () { - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - .prop('checked', !this.$element.hasClass('active')) - .trigger('change') - if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') - } - - this.$element.toggleClass('active') - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - var old = $.fn.button - - $.fn.button = function (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) - }) - } - - $.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) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - e.preventDefault() - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.0.2 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the 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 = - this.sliding = - this.interval = - this.$active = - this.$items = null - - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.DEFAULTS = { - interval: 5000 - , pause: 'hover' - , wrap: true - } - - 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.getActiveIndex = function () { - this.$active = this.$element.find('.item.active') - this.$items = this.$active.parent().children() - - return this.$items.index(this.$active) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getActiveIndex() - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid', function () { that.to(pos) }) - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition.end) { - 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 || $active[type]() - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var fallback = type == 'next' ? 'first' : 'last' - var that = this - - if (!$next.length) { - if (!this.options.wrap) return - $next = this.$element.find('.item')[fallback]() - } - - this.sliding = true - - isCycling && this.pause() - - var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) - - if ($next.hasClass('active')) return - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - this.$element.one('slid', function () { - var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) - $nextIndicator && $nextIndicator.addClass('active') - }) - } - - if ($.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - .emulateTransitionEnd(600) - } else { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - var old = $.fn.carousel - - $.fn.carousel = function (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() - }) - } - - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { - var $this = $(this), href - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - $target.carousel(options) - - if (slideIndex = $this.attr('data-slide-to')) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - }) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - $carousel.carousel($carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.0.2 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.transitioning = null - - if (this.options.parent) this.$parent = $(this.options.parent) - if (this.options.toggle) this.toggle() - } - - 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 startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var actives = this.$parent && this.$parent.find('> .panel > .in') - - if (actives && actives.length) { - var hasData = actives.data('bs.collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing') - [dimension](0) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('in') - [dimension]('auto') - 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($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - [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') - .removeClass('in') - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .trigger('hidden.bs.collapse') - .removeClass('collapsing') - .addClass('collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - var old = $.fn.collapse - - $.fn.collapse = function (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) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.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), href - var target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - var $target = $(target) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - var parent = $this.attr('data-parent') - var $parent = parent && $(parent) - - if (!data || !data.transitioning) { - if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') - $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - } - - $target.collapse(option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.0.2 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+function ($) { "use strict"; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle=dropdown]' - var Dropdown = function (element) { - var $el = $(element).on('click.bs.dropdown', this.toggle) - } - - 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 we use a backdrop because click events don't delegate - $('