From 726c210636851e1b853ee5238079a83933b85ace Mon Sep 17 00:00:00 2001 From: psychemedia Date: Thu, 15 Aug 2013 23:30:41 +0100 Subject: [PATCH] Add Sankey demo --- examples/sankeyPlot.R | 51 + .../rCharts_d3_sankey-gh-pages/.gitattributes | 22 + .../rCharts_d3_sankey-gh-pages/.gitignore | 215 + .../util/rCharts_d3_sankey-gh-pages/.nojekyll | 0 .../PIMCO Bond Stats.xls | Bin 0 -> 2289664 bytes .../assets/fig/unnamed-chunk-3.png | Bin 0 -> 7852 bytes .../assets/fig/unnamed-chunk-5.png | Bin 0 -> 8048 bytes .../rCharts_d3_sankey-gh-pages/config.yml | 9 + .../rCharts_d3_sankey-gh-pages/css/sankey.css | 32 + .../util/rCharts_d3_sankey-gh-pages/example.R | 294 + .../example_build_network_sankey.Rmd | 165 + .../example_build_network_sankey.html | 483 + .../example_build_network_sankey.md | 431 + .../example_hirst_f1.R | 48 + .../example_hirst_horse.R | 40 + .../example_pimco.R | 33 + .../example_pimco.png | Bin 0 -> 107222 bytes .../example_random_network.R | 78 + .../rCharts_d3_sankey-gh-pages/holdings.txt | 60 + .../js/LICENSE-d3.md | 26 + .../rCharts_d3_sankey-gh-pages/js/d3.v3.js | 8580 +++++++++++++++++ .../rCharts_d3_sankey-gh-pages/js/sankey.js | 292 + .../layouts/chart.html | 122 + .../libraries/frameworks/bootstrap/404.html | 157 + .../bootstrap/css/bootstrap-responsive.css | 1058 ++ .../css/bootstrap-responsive.min.css | 9 + .../frameworks/bootstrap/css/bootstrap.css | 5774 +++++++++++ .../bootstrap/css/bootstrap.min.css | 9 + .../frameworks/bootstrap/css/main.css | 24 + .../libraries/frameworks/bootstrap/humans.txt | 15 + .../apple-touch-icon-114x114-precomposed.png | Bin 0 -> 2042 bytes .../apple-touch-icon-144x144-precomposed.png | Bin 0 -> 1795 bytes .../apple-touch-icon-57x57-precomposed.png | Bin 0 -> 1144 bytes .../apple-touch-icon-72x72-precomposed.png | Bin 0 -> 1351 bytes .../ico/apple-touch-icon-precomposed.png | Bin 0 -> 1144 bytes .../bootstrap/ico/apple-touch-icon.png | Bin 0 -> 1144 bytes .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../bootstrap/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../libraries/frameworks/bootstrap/index.html | 120 + .../libraries/frameworks/bootstrap/js/main.js | 1 + .../frameworks/bootstrap/js/plugins.js | 14 + .../bootstrap/js/vendor/bootstrap.js | 2027 ++++ .../bootstrap/js/vendor/bootstrap.min.js | 6 + .../bootstrap/js/vendor/jquery-1.8.2.min.js | 2 + .../modernizr-2.6.1-respond-1.1.0.min.js | 11 + .../frameworks/bootstrap/layouts/deck.html | 33 + .../frameworks/bootstrap/layouts/div.html | 14 + .../frameworks/bootstrap/layouts/hero.html | 5 + .../frameworks/bootstrap/layouts/hero2.html | 12 + .../frameworks/bootstrap/layouts/scripts.html | 12 + .../frameworks/bootstrap/layouts/slide.html | 2 + .../frameworks/bootstrap/layouts/special.html | 9 + .../frameworks/bootstrap/partials/footer.html | 1 + .../frameworks/bootstrap/partials/head.html | 30 + .../frameworks/bootstrap/partials/navbar.html | 26 + .../libraries/frameworks/bootstrap/robots.txt | 3 + .../highlighters/prettify/css/default.css | 52 + .../highlighters/prettify/css/desert.css | 34 + .../prettify/css/hemisu-light.css | 131 + .../prettify/css/sons-of-obsidian.css | 117 + .../highlighters/prettify/css/sunburst.css | 51 + .../prettify/css/tomorrow-night-bright.css | 130 + .../prettify/css/twitter-bootstrap.css | 30 + .../highlighters/prettify/js/lang-r.js | 55 + .../highlighters/prettify/prettify.html | 11 + .../libraries/widgets/d3_sankey/config.yml | 9 + .../widgets/d3_sankey/css/sankey.css | 32 + .../widgets/d3_sankey/js/LICENSE-d3.md | 26 + .../libraries/widgets/d3_sankey/js/d3.v3.js | 8580 +++++++++++++++++ .../libraries/widgets/d3_sankey/js/sankey.js | 292 + .../widgets/d3_sankey/layouts/chart.html | 122 + .../rCharts_d3_sankey-gh-pages/wastedfood.txt | 15 + 72 files changed, 30042 insertions(+) create mode 100644 examples/sankeyPlot.R create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/.gitattributes create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/.gitignore create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/.nojekyll create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/PIMCO Bond Stats.xls create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/assets/fig/unnamed-chunk-3.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/assets/fig/unnamed-chunk-5.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/config.yml create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/css/sankey.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example.R create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.Rmd create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.md create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_hirst_f1.R create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_hirst_horse.R create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_pimco.R create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_pimco.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/example_random_network.R create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/holdings.txt create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/js/LICENSE-d3.md create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/js/d3.v3.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/js/sankey.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/layouts/chart.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/404.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.min.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.min.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/main.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/humans.txt create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-114x114-precomposed.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-144x144-precomposed.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-57x57-precomposed.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-72x72-precomposed.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-precomposed.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/img/glyphicons-halflings-white.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/img/glyphicons-halflings.png create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/index.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/main.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/plugins.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/bootstrap.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/bootstrap.min.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/jquery-1.8.2.min.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/modernizr-2.6.1-respond-1.1.0.min.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/deck.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/div.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/hero.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/hero2.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/scripts.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/slide.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/layouts/special.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/partials/footer.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/partials/head.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/partials/navbar.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/robots.txt create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/default.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/desert.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/hemisu-light.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/sons-of-obsidian.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/sunburst.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/tomorrow-night-bright.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/css/twitter-bootstrap.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/js/lang-r.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/highlighters/prettify/prettify.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/widgets/d3_sankey/config.yml create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/widgets/d3_sankey/css/sankey.css create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/widgets/d3_sankey/js/LICENSE-d3.md create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/widgets/d3_sankey/js/d3.v3.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/widgets/d3_sankey/js/sankey.js create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/libraries/widgets/d3_sankey/layouts/chart.html create mode 100755 examples/util/rCharts_d3_sankey-gh-pages/wastedfood.txt diff --git a/examples/sankeyPlot.R b/examples/sankeyPlot.R new file mode 100644 index 0000000..eecd8ba --- /dev/null +++ b/examples/sankeyPlot.R @@ -0,0 +1,51 @@ +require(ropenspending) +require(rCharts) + +sankeyPlot=function(df){ + sankeyPlot <- rCharts$new() + + #-------- + #Sankey demo originated by @timelyportfolio + #http://timelyportfolio.github.io/rCharts_d3_sankey/example_build_network_sankey.html + + #We need to tell R where the Sankey library is. + #I put it as a subdirectory to my current working directory (.), + ##which is assumed to be the examples directory + sankeyPlot$setLib('../util/rCharts_d3_sankey-gh-pages/') + + #We also need to point to an HTML template page + sankeyPlot$setTemplate(script = "../util/rCharts_d3_sankey-gh-pages/layouts/chart.html") + #--------- + + sankeyPlot$set( + data = df, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 750, + height = 500, + labelFormat = ".1%" + ) + + sankeyPlot +} + +#This routine makes it easier to get the data for plotting as a Sankey diagram +#Select the source, target and value column names explicitly to generate a dataframe containing +#just those columns, appropriately named. +sankeyData=function(df,colsource='source',coltarget='target',colvalue='value'){ + sankey.df=subset(df,select=c(colsource,coltarget,colvalue)) + colnames(sankey.df)=c('source','target','value') + + #Try to ensure that if source and target names are the same, + ##we make them unique + sankey.df$target=paste('_',sankey.df$target,sep='') + sankey.df +} + +#For example: +data=openspending.aggregate("uk-barnet-budget",drilldown=c("level1","level2")) +df=openspending.as.data.frame(data) +data.sdf=sankeyData(df,'level1.label','level2.label','amount') + +sankeyPlot(data.sdf) \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/.gitattributes b/examples/util/rCharts_d3_sankey-gh-pages/.gitattributes new file mode 100755 index 0000000..412eeda --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln 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 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/.gitignore b/examples/util/rCharts_d3_sankey-gh-pages/.gitignore new file mode 100755 index 0000000..b9d6bd9 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## 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/ + +# 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 +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# 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 + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/examples/util/rCharts_d3_sankey-gh-pages/.nojekyll b/examples/util/rCharts_d3_sankey-gh-pages/.nojekyll new file mode 100755 index 0000000..e69de29 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/PIMCO Bond Stats.xls b/examples/util/rCharts_d3_sankey-gh-pages/PIMCO Bond Stats.xls new file mode 100755 index 0000000000000000000000000000000000000000..a7b40e2409cb9414e0142f3f29e17df1cba7db3c GIT binary patch literal 2289664 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%0D6`$@#@NLV8b zTlj#GG|2TpM}pK{6338SahFbol^{#vSJ$c1h@8Jf;Jhx~yrmF~TLW|nDYoAI#{(?r zBjB-e4E&x@i-+j$fHbBWo$6@$x>xVd(h=K93GHQ5TORm1+pMi6Hl*|*4L@;jXun(~ z`?G5|S8r*D({W%ZGl!hD;??qK zfC*SIZvzk>c7AN|c%4=-L=nsJfT}{wje7#$;BV=0IApkQ4pKcJ z;*g}mD_s>0LWHiC9rBE;yLt8)In*I0N6b$v(T^D8E}U*FwSq=%>fFc+J0MJ#+$w^p z&1Z-brxIumkQoK4U!JTbYn$|0OV}Pc!Y5 zphdd2`-q+lUx&6VGBn zam6*-#sv4Bbn7rViKI~_CwOJQ=Rqc_d^m)ad8Xjsz11hWkZBjsDR2^tRT0@A zXHw~4c#J1QuZ)RlDdCU0G8p7wc#iu2+Wjxt@l+nNDRZ3(Zb42uRJr*7H}XW8d9UJr zOc_OvPA(~_qa-;H!%7%*kvc*QZs9J&-vjCmd|F09{w25N+n87@3Qj*8cboCu3B}O- zSjuyElaK;Ayp)_fgg5A5ftY$)r?rxOz#U>HoSOfpPrJkLjx#+O+=#ir%g~f`+c4v= zWMcn+v4N2|V%RzvAtjMXn$r;iQJ!4z2RI$U_;(WFUY(Jl;|C}}WP-r+uo&`GJf#+o zb}_0|R7+Itnbr7L1g-$0&)Pf#4JV>VP6Ot15-q0B@MR1W#UcuFTs#ul<%l!xh016q z3RM&WMU>>S*7>!xFvYxYvRowM%@H}1*Z4v*~nDdXDm!^fn@25swWs@q5J5JisT97 z7)ZPppJ!YmN0PZAoszm<9qGmvvrUb7LJQtxf-+VjxXSMmqbTf+EK;)dB}Y%`?1K{L z#Cy)^*X?6CoiWxzv!HG&LY3b90!xekYh*YOYz^G9gmS+ zWZE2UZW9!$8K*~jV{|T`;WwFEEvifQK#sm_Cejnqq#xtVO$ZSZ>CaMt2V;2<7R;cT z*$s-+7?iC6g}DWLQ6HRag@%eimY7Y4DmeR$e3LV^h1z6$a-!w*W};V#9yQLdJRelO z<)-8)ReBtC=^DfVS0XBqbWB>|1}SS$Z<7(+BOSQoS|uV?#)z$Bea^h4%QY$e<{UPt zv6mTq&_eH@;=2A&XJ6gLob?hh!CW|B~!7c0$-&! z`8JM-;Ti22iOh-Q#jGV=%Y-YlN5UC}=OuIfT@V5i>f|-?pWGgV3g^E&XOLv3T_2)W0Y9#D@|r$q;Rpbpo0xx=|FNFyORnpuvD- zXCq2i#vyn=7AJ{cS}DP&?ooBfRu&@3Tm(E4uwHDOV}9qtB7u{lk~gZ@cWYbZ!+^K`(mP$FAnpqQBlU^&_=Jir03z88O_MnAJ zy`^*1Qqy#k@lyQbm~pIx(ehU^0;Xh^O_J2qmc&BBXoDo(ppYXYOX`sKu$8h&=<(7k zIhoy%re&ri0NBxFwTA7UYqo+3D|DtT%TLm%Xkm0CaCYS{?u30IzR7lkY+nXU%{nvH z3lv*UO`V9miDu}El>ZDAEd>6ZfU6izo{jhu_3>B-To7EZrnc&U;%NwIs{~FCu)K}o z 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%0A@3|U*S}l>MT?yg6NTyZZQG1(*yj^ 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
+ + + +

Fork me on GitHub

+ +

Sankey from Scratch using rCharts, d3.js, and igraph

+ +

Introduction

+ +

This example will walk through the steps of using the R package igraph to create a tree network for a sankey diagram. This is a great exercise to learn some basics of igraph, explore the construction of a sankey, and determine the conditions for a network to be drawn properly as a sankey. After all of this, we will plot our network with the rCharts implementation of the d3.js sankey plugin.

+ +

Build a Network

+ +

Let's first start by loading the igraph and rCharts packages. Then we will use graph.tree to build a tree network with 40 vertices with 4 children.

+ +
require(igraph)
+require(rCharts)
+
+g <- graph.tree(40, children = 4)
+
+ +

For fun, we will assign a weight of 1 E(g)$weight = 1 for each edge and then draw a Sankey diagram using rCharts. Going forward I will try to explain the R code through comments in the code block.

+ +

Plot Our Sankey to Find a Problem

+ +
E(g)$weight = 1
+
+edgelist <- get.data.frame(g) #this will give us a data frame with from,to,weight
+colnames(edgelist) <- c("source","target","value")
+#make character rather than numeric for proper functioning
+edgelist$source <- as.character(edgelist$source)
+edgelist$target <- as.character(edgelist$target)
+
+sankeyPlot <- rCharts$new()
+sankeyPlot$setLib('libraries/widgets/d3_sankey')
+sankeyPlot$setTemplate(script = "libraries/widgets/d3_sankey/layouts/chart.html")
+
+sankeyPlot$set(
+  data = edgelist,
+  nodeWidth = 15,
+  nodePadding = 10,
+  layout = 32,
+  width = 960,
+  height = 500
+)
+
+sankeyPlot$print(chartId = 'sankey1')
+
+ +
+ + + + + +

Interact with the sankey plot a little, and try to find the problem in our hastily constructed network. Hovering over the vertex 4 will reveal our issue. The edge from 1 to 4 is not as big as the sum of the edges going out from 4. For this to make sense, unless 4 is magically creating something, the sum of the inflow should equal the sum of the outflow. Since 4 has four children each with weight of 1 (outflow = 1 + 1 + 1 + 1 = 4), we would expect the inflow to also be 4. It is only 1 though since we made all our edges' weights = 1 E(g)$weight = 1. How then would we build our network with edge weights so that for each vertex, the sum of in equals the sum of out.

+ +

Fix Our Problem For a Beautiful Sankey

+ +

I am a network novice, so while the code below works, I am sure there are better ways of accomplishing the desired result. I heavily commented the code, but I will quickly describe the steps. The code starts at the lowest level of the heirarchy, or those vertexes where there is nothing going out (out degree = 0). In our network, these are 11 through 40. With igraph we can identify these by V(g2)[degree(g2,mode="out")==0]. For these we will assign a weight. Then we will loop through all of the edges summing all of the weights of the out until we have reached the top of the heirarchy.

+ +
g2 <- graph.tree(40, children=4)
+#to construct a sankey the weight of each vertex should be the sum
+#of its outgoing edges
+#I believe the first step in creating a network that satisfies this condition
+#is define a vertex weight for all vertexes with out degree = 0
+#but first let's define 0 for all
+V(g2)$weight = 0
+#now for all vertexes with out degree = 0
+V(g2)[degree(g2,mode="out")==0]$weight <- runif(n=length(V(g2)[degree(g2,mode="out")==0]),min=0,max=100)
+#the lowest level of the heirarchy is defined with a random weight
+#with the lowest level defined we should now be able to sum the vertex weights
+#to define the edge weight
+#E(g2)$weight = 0.1 #define all weights small to visually see as we build sankey
+E(g2)[to(V(g2)$weight>0)]$weight <- V(g2)[V(g2)$weight>0]$weight
+#and to find the neighbors to the 0 out degree vertex
+#we could do V(g2)[nei(degree(g2,mode="out")==0)]
+#we have everything we need to build the rest by summing
+#these edge weights if there are edges still undefined
+#so set up a loop to run until all edges have a defined weight
+while(max(is.na(E(g2)$weight))) {
+  #get.data.frame gives us from, to, and weight
+  #we will get this to make an easier reference later
+  df <- get.data.frame(g2)
+  #now go through each edge and find the sum of all its subedges
+  #we need to check to make sure out degree of its "to" vertex is not 0
+  #or we will get 0 since there are no edges for vertex with out degree 0
+  for (i in 1:nrow(df)) {
+    x = df[i,]
+    #sum only those with out degree > 0 or sum will be 0
+    if(max(df$from==x$to)) {
+      E(g2)[from(x$from) & to(x$to)]$weight = sum(E(g2)[from(x$to)]$weight)
+    }
+  }
+}
+
+edgelistWeight <- get.data.frame(g2)
+colnames(edgelistWeight) <- c("source","target","value")
+edgelistWeight$source <- as.character(edgelistWeight$source)
+edgelistWeight$target <- as.character(edgelistWeight$target)
+
+sankeyPlot2 <- rCharts$new()
+sankeyPlot2$setLib('libraries/widgets/d3_sankey')
+sankeyPlot2$setTemplate(script = 'libraries/widgets/d3_sankey/layouts/chart.html')
+
+sankeyPlot2$set(
+  data = edgelistWeight,
+  nodeWidth = 15,
+  nodePadding = 10,
+  layout = 32,
+  width = 960,
+  height = 500
+)
+
+sankeyPlot2
+
+ +
+ + + + + +

Another Look at Our Network

+ +

There are very good examples illustrating the use of igraph to plot a network. This is not one of these examples. For fun though, let's plot the network with igraph using just the defaults to compare it to our Sankey output from above.

+ +
plot(g2)
+
+ +

plot of chunk unnamed-chunk-5

+ +

Lots More Sankey

+ +

Believe it or not, there is an entire site devoted to sankey diagrams. For all the sankey you can handle, check out http://sankey-diagrams.com. Here are a couple more sankeys generated from rCharts: http://rcharts.io/viewer/?6001601#.UeWfuY3VCSo, http://rcharts.io/viewer/?6003605, http://rcharts.io/viewer/?6003575.

+ +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.md b/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.md new file mode 100755 index 0000000..6798c84 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.md @@ -0,0 +1,431 @@ +--- +title: Sankey from Scratch +author: Timely Portfolio +github: {user: timelyportfolio, repo: rCharts_d3_horizon, branch: "gh-pages"} +framework: bootstrap +mode: selfcontained +highlighter: prettify +hitheme: twitter-bootstrap +widgets: "d3_sankey" +assets: + css: + - "http://fonts.googleapis.com/css?family=Raleway:300" + - "http://fonts.googleapis.com/css?family=Oxygen" +--- + + + +Fork me on GitHub + + + +# Sankey from Scratch using `rCharts`, `d3.js`, and `igraph` + +## Introduction + +This example will walk through the steps of using the `R` package [`igraph`](http://igraph.sourceforge.net/) to create a tree network for a [sankey diagram](http://econ.st/JwNX8s). This is a great exercise to learn some basics of `igraph`, explore the construction of a sankey, and determine the conditions for a network to be drawn properly as a sankey. After all of this, we will plot our network with the [`rCharts`](http://rcharts.io/site) implementation of the [d3.js sankey plugin](https://github.com/d3/d3-plugins/blob/master/sankey/sankey.js). + + +## Build a Network +Let's first start by loading the `igraph` and `rCharts` packages. Then we will use `graph.tree` to build a tree network with 40 vertices with 4 children. + +```r +require(igraph) +require(rCharts) + +g <- graph.tree(40, children = 4) +``` + +For fun, we will assign a weight of 1 `E(g)$weight = 1` for each edge and then draw a Sankey diagram using `rCharts`. Going forward I will try to explain the `R` code through comments in the code block. + +## Plot Our Sankey to Find a Problem + +```r +E(g)$weight = 1 + +edgelist <- get.data.frame(g) #this will give us a data frame with from,to,weight +colnames(edgelist) <- c("source","target","value") +#make character rather than numeric for proper functioning +edgelist$source <- as.character(edgelist$source) +edgelist$target <- as.character(edgelist$target) + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('libraries/widgets/d3_sankey') +sankeyPlot$setTemplate(script = "libraries/widgets/d3_sankey/layouts/chart.html") + +sankeyPlot$set( + data = edgelist, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot$print(chartId = 'sankey1') +``` + + +
+ + + + + +Interact with the sankey plot a little, and try to find the problem in our hastily constructed network. Hovering over the vertex 4 will reveal our issue. The edge from 1 to 4 is not as big as the sum of the edges going out from 4. For this to make sense, unless 4 is magically creating something, the sum of the inflow should equal the sum of the outflow. Since 4 has four children each with weight of 1 (outflow = 1 + 1 + 1 + 1 = 4), we would expect the inflow to also be 4. It is only 1 though since we made all our edges' weights = 1 `E(g)$weight = 1`. How then would we build our network with edge weights so that for each vertex, the sum of in equals the sum of out. + + +## Fix Our Problem For a Beautiful Sankey +I am a network novice, so while the code below works, I am sure there are better ways of accomplishing the desired result. I heavily commented the code, but I will quickly describe the steps. The code starts at the lowest level of the heirarchy, or those vertexes where there is nothing going out (out degree = 0). In our network, these are 11 through 40. With `igraph` we can identify these by `V(g2)[degree(g2,mode="out")==0]`. For these we will assign a weight. Then we will loop through all of the edges summing all of the weights of the out until we have reached the top of the heirarchy. + + +```r +g2 <- graph.tree(40, children=4) +#to construct a sankey the weight of each vertex should be the sum +#of its outgoing edges +#I believe the first step in creating a network that satisfies this condition +#is define a vertex weight for all vertexes with out degree = 0 +#but first let's define 0 for all +V(g2)$weight = 0 +#now for all vertexes with out degree = 0 +V(g2)[degree(g2,mode="out")==0]$weight <- runif(n=length(V(g2)[degree(g2,mode="out")==0]),min=0,max=100) +#the lowest level of the heirarchy is defined with a random weight +#with the lowest level defined we should now be able to sum the vertex weights +#to define the edge weight +#E(g2)$weight = 0.1 #define all weights small to visually see as we build sankey +E(g2)[to(V(g2)$weight>0)]$weight <- V(g2)[V(g2)$weight>0]$weight +#and to find the neighbors to the 0 out degree vertex +#we could do V(g2)[nei(degree(g2,mode="out")==0)] +#we have everything we need to build the rest by summing +#these edge weights if there are edges still undefined +#so set up a loop to run until all edges have a defined weight +while(max(is.na(E(g2)$weight))) { + #get.data.frame gives us from, to, and weight + #we will get this to make an easier reference later + df <- get.data.frame(g2) + #now go through each edge and find the sum of all its subedges + #we need to check to make sure out degree of its "to" vertex is not 0 + #or we will get 0 since there are no edges for vertex with out degree 0 + for (i in 1:nrow(df)) { + x = df[i,] + #sum only those with out degree > 0 or sum will be 0 + if(max(df$from==x$to)) { + E(g2)[from(x$from) & to(x$to)]$weight = sum(E(g2)[from(x$to)]$weight) + } + } +} + +edgelistWeight <- get.data.frame(g2) +colnames(edgelistWeight) <- c("source","target","value") +edgelistWeight$source <- as.character(edgelistWeight$source) +edgelistWeight$target <- as.character(edgelistWeight$target) + +sankeyPlot2 <- rCharts$new() +sankeyPlot2$setLib('libraries/widgets/d3_sankey') +sankeyPlot2$setTemplate(script = 'libraries/widgets/d3_sankey/layouts/chart.html') + +sankeyPlot2$set( + data = edgelistWeight, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot2 +``` + + +
+ + + + + +## Another Look at Our Network +There are very [good examples](http://rulesofreason.wordpress.com/tag/plot-igraph/) illustrating the use of `igraph` to plot a network. This is not one of these examples. For fun though, let's plot the network with igraph using just the defaults to compare it to our Sankey output from above. + + +```r +plot(g2) +``` + +![plot of chunk unnamed-chunk-5](assets/fig/unnamed-chunk-5.png) + + +## Lots More Sankey +Believe it or not, there is an entire site devoted to sankey diagrams. For all the sankey you can handle, check out http://sankey-diagrams.com. Here are a couple more sankeys generated from `rCharts`: http://rcharts.io/viewer/?6001601#.UeWfuY3VCSo, http://rcharts.io/viewer/?6003605, http://rcharts.io/viewer/?6003575. diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_hirst_f1.R b/examples/util/rCharts_d3_sankey-gh-pages/example_hirst_f1.R new file mode 100755 index 0000000..aaaab57 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_hirst_f1.R @@ -0,0 +1,48 @@ +#another one from Tony Hirst +#post at http://blog.ouseful.info/2012/05/24/f1-championship-points-as-a-d3-js-powered-sankey-diagram/ +#data at https://views.scraperwiki.com/run/ergast_championship_nodelist/? +#get source from original example +#this is a JSON, so will need to translate + +#expect most data to come straight from R +#in form of source, target, value + +links <- matrix(unlist( + rjson::fromJSON( + file = "https://views.scraperwiki.com/run/ergast_championship_nodelist/?" + )$links +),ncol = 3, byrow = TRUE) + +nodes <- unlist( + rjson::fromJSON( + file = "https://views.scraperwiki.com/run/ergast_championship_nodelist/?" + )$nodes +) + +#nodes are 2 columns but in vector form +#just get the name and ignore id +nodes <- nodes[seq(1,length(nodes),by=2)] + +#convert to data.frame so souce and target can be character and value numeric +links <- data.frame(links) +colnames(links) <- c("source", "target", "value") +links$source <- sapply(links$source, FUN = function(x) {return(as.character(nodes[x+1]))}) #x+1 since js starts at 0 +links$target <- sapply(links$target, FUN = function(x) {return(nodes[x+1])}) #x+1 since js starts at 0 + + +#now we finally have the data in the form we need +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = links, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 700, + height = 400, + units = "points" +) + +sankeyPlot diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_hirst_horse.R b/examples/util/rCharts_d3_sankey-gh-pages/example_hirst_horse.R new file mode 100755 index 0000000..cc0b04e --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_hirst_horse.R @@ -0,0 +1,40 @@ +#http://schoolofdata.org/2013/02/20/made-to-measure-reshaping-horsemeat-importexport-data-to-fit-a-sankey-diagram/ +require(reshape) +horseexportsEU <- read.delim( + "https://dl.dropbox.com/u/1156404/horseexportsEU.txt" +) +#Get a "long" edge list from the 2d data table +x=melt(horseexportsEU,id='COUNTRY') + +# When is what looks like a number to us not a number? +#Turn the numbers into numbers by removing the comma, then casting to an integer +x$value2=as.integer(as.character(gsub(",", "", x$value, fixed = TRUE) )) + +#More tidying... +#1) If we have an NA (null/empty) value, make it -1 +x$value2[ is.na(x$value2) ] = -1 +#2) Column names with countries that originally contained spaces uses dots in place of spaces. Undo that. +x$variable=gsub(".", " ", x$variable, fixed = TRUE) + +#I want to export a subset of the data +xt=subset(x,value2>0,select=c('COUNTRY','variable','value2')) +#name columns as what is expected by plugin +colnames(xt) <- c("target","source","value") +#need to make names in source and target different to prevent infinite loop +xt$source <- paste0(xt$source,"[export]") + + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = xt, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 700, + height = 400 +) + +sankeyPlot diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_pimco.R b/examples/util/rCharts_d3_sankey-gh-pages/example_pimco.R new file mode 100755 index 0000000..034e4e0 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_pimco.R @@ -0,0 +1,33 @@ +#sankey of PIMCO All Asset All Authority holdings +#data source http://investments.pimco.com/ShareholderCommunications/External%20Documents/PIMCO%20Bond%20Stats.xls + + +require(rCharts) + +#originally read the data from clipboard of Excel copy +#for those interested here is how to do it +#read.delim(file = "clipboard") + +holdings = read.delim("holdings.txt", skip = 3, header = FALSE, stringsAsFactors = FALSE) +colnames(holdings) <- c("source","target","value") + +#get rid of holdings with 0 weight or since copy/paste from Excel - +holdings <- holdings[-which(holdings$value == "-"),] +holdings$value <- as.numeric(holdings$value) + +#now we finally have the data in the form we need +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = holdings, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 750, + height = 500, + labelFormat = ".1%" +) + +sankeyPlot diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_pimco.png b/examples/util/rCharts_d3_sankey-gh-pages/example_pimco.png new file mode 100755 index 0000000000000000000000000000000000000000..1c100f9080b8deda1fbbd156c2838a291cb5bede GIT binary patch literal 107222 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 %dnjZ?XpV2mK{Gf}s*`!IqG|LqEkE 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 XoEe0Pb)CWX00000NkvXXu0mjf$f8_H literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_random_network.R b/examples/util/rCharts_d3_sankey-gh-pages/example_random_network.R new file mode 100755 index 0000000..1bc971f --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_random_network.R @@ -0,0 +1,78 @@ +#walk through the steps of creating a tree network for a sankey +#and assigning random weights to the base vertices(out degree = 1) +#and then summing so each edge weight is properly defined +#great exercise to learn the construction of a sankey +#and the conditions for a network to be drawn properly by sankey + +#then plot our network with the rCharts implementation of d3.js sankey plugin + +require(igraph) +require(rCharts) + + +g2 <- graph.tree(40,children=4) +#to construct a sankey the weight of each vertex should be the sum +#of its outgoing edges +#I believe the first step in creating a network that satisfies this condition +#is define a vertex weight for all vertexes with out degree = 0 +#but first let's define 0 for all +V(g2)$weight = 0 +#now for all vertexes with out degree = 0 +V(g2)[degree(g2,mode="out")==0]$weight <- runif(n=length(V(g2)[degree(g2,mode="out")==0]),min=0,max=100) +#the lowest level of the heirarchy is defined with a random weight +#with the lowest level defined we should now be able to sum the vertex weights +#to define the edge weight +#E(g2)$weight = 0.1 #define all weights small to visually see as we build sankey +E(g2)[to(V(g2)$weight>0)]$weight <- V(g2)[V(g2)$weight>0]$weight +#and to find the neighbors to the 0 out degree vertex +#we could do V(g2)[nei(degree(g2,mode="out")==0)] +#we have everything we need to build the rest by summing +#these edge weights if there are edges still undefined +#so set up a loop to run until all edges have a defined weight +while(max(is.na(E(g2)$weight))) { + #get.data.frame gives us from, to, and weight + #we will get this to make an easier reference later + df <- get.data.frame(g2) + #now go through each edge and find the sum of all its subedges + #we need to check to make sure out degree of its "to" vertex is not 0 + #or we will get 0 since there are no edges for vertex with out degree 0 + for (i in 1:nrow(df)) { + x = df[i,] + #sum only those with out degree > 0 or sum will be 0 + if(max(df$from==x$to)) { + E(g2)[from(x$from) & to(x$to)]$weight = sum(E(g2)[from(x$to)]$weight) + } + } +} + + +#just a quick check on the adjacency +get.adjacency(g2,sparse = FALSE,attr="weight") + + + + +#E(g2)$weight <- runif(length(E(g2))) +edgelistWeight <- get.data.frame(g2) +colnames(edgelistWeight) <- c("source","target","value") +edgelistWeight$source <- as.character(edgelistWeight$source) +edgelistWeight$target <- as.character(edgelistWeight$target) + +sankeyPlot2 <- rCharts$new() +sankeyPlot2$setLib('.') +sankeyPlot2$setTemplate(script = "layouts/chart.html") + +sankeyPlot2$set( + data = edgelistWeight, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot2 + + +#now for fun, let's plot the network with igraph +plot(g2) \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/holdings.txt b/examples/util/rCharts_d3_sankey-gh-pages/holdings.txt new file mode 100755 index 0000000..c886ed4 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/holdings.txt @@ -0,0 +1,60 @@ +data as of 3/31/2013 +original source http://investments.pimco.com/ShareholderCommunications/External%20Documents/PIMCO%20Bond%20Stats.xls + +All Asset All Authority Short-Term Strategies: 0.017024315 +Short-Term Strategies: Low Duration Fund 0.002667364 +Short-Term Strategies: Short Term Fund 0.000123689 +Short-Term Strategies: Net Cash Equivalents 0.014233262 +All Asset All Authority US Core and Long Maturity Bond Strategies: 0.14678805 +US Core and Long Maturity Bond Strategies: GNMA Fund - +US Core and Long Maturity Bond Strategies: Investment Grade Corporate Bond Fund 0.030653125 +US Core and Long Maturity Bond Strategies: Long Duration Total Return Fund 0.022530084 +US Core and Long Maturity Bond Strategies: Long Term Credit Fund 0.011865129 +US Core and Long Maturity Bond Strategies: Long-Term US Government Fund 0.018619715 +US Core and Long Maturity Bond Strategies: Mortgage-Backed Securities Fund - +US Core and Long Maturity Bond Strategies: Total Return Fund 0.063119997 +All Asset All Authority EM and Global Bond Strategies: 0.2315939 +EM and Global Bond Strategies: Diversified Income Fund 0.043637491 +EM and Global Bond Strategies: Emerging Local Bond Fund 0.054611227 +EM and Global Bond Strategies: Emerging Markets Bond Fund 0.036499185 +EM and Global Bond Strategies: Emerging Markets Corporate Bond Fund 0.009715273 +EM and Global Bond Strategies: Emerging Markets Currency 0.060991852 +EM and Global Bond Strategies: Foreign Bond Fund (Unhedged) 0.010786367 +EM and Global Bond Strategies: Global Advantage Strategy Bond Fund 0.015352505 +EM and Global Bond Strategies: Global Bond Fund (Unhedged) - +All Asset All Authority Credit Strategies: 0.206718951 +Credit Strategies: Convertible Fund 0.004837853 +Credit Strategies: Floating Income Fund 0.030493942 +Credit Strategies: High Yield Fund 0.061942223 +Credit Strategies: High Yield Spectrum Fund 0.031239747 +Credit Strategies: Income Fund 0.053139586 +Credit Strategies: Senior Floating Rate Fund 0.0250656 +All Asset All Authority Inflation Related Strategies: 0.041657142 +Inflation Related Strategies: CommoditiesPLUS Strategy Fund 0.031861061 +Inflation Related Strategies: CommodityRealReturn Strategy Fund 0.003851854 +Inflation Related Strategies: Global Advantage Inflation-Linked Bond Exchange-Traded Fund 0.000508793 +Inflation Related Strategies: Real Return Asset Fund 0.002100268 +Inflation Related Strategies: Real Return Fund 0.000333722 +Inflation Related Strategies: RealEstateRealReturn Strategy Fund 0.003001445 +All Asset All Authority US Equity Strategies: 0.010193669 +US Equity Strategies: Fundamental IndexPLUS - +US Equity Strategies: Fundamental IndexPLUS AR Fund 0.001181132 +US Equity Strategies: Small Cap StocksPLUS AR Strategy Fund 0.002120058 +US Equity Strategies: Small Company Fundamental IndexPLUS AR Strategy Fund 0.006217948 +US Equity Strategies: StocksPLUS Fund 0.000261064 +US Equity Strategies: StocksPLUS Absolute Return Fund 0.000413467 +All Asset All Authority Global Equity Strategies: 0.094209758 +Global Equity Strategies: EM Fundamental IndexPLUS AR Strategy Fund 0.045524887 +Global Equity Strategies: EqS Dividend Fund 0.000529895 +Global Equity Strategies: EqS Emerging Markets Fund 0.000728631 +Global Equity Strategies: EqS Pathfinder Fund 0.01146288 +Global Equity Strategies: International Fundamental IndexPLUS AR Strategy Fund 0.034337688 +Global Equity Strategies: International StocksPLUS AR Strategy Fund (U.S. Dollar Hedged) 0.000941727 +Global Equity Strategies: International StocksPLUS AR Strategy Fund (Unhedged) 0.000684049 +All Asset All Authority Alternative Strategies: 0.251814214 +Alternative Strategies: Credit Absolute Return Fund 0.008769096 +Alternative Strategies: EqS Long/Short Fund 0.00295214 +Alternative Strategies: Fundamental Advantage Absolute Return Strategy Fund 0.03942724 +Alternative Strategies: StocksPLUS Short Strategy Fund 0.124449409 +Alternative Strategies: Unconstrained Bond Fund 0.05124258 +Alternative Strategies: Worldwide Fundamental Advantage AR Strategy Fund 0.024973748 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/js/LICENSE-d3.md b/examples/util/rCharts_d3_sankey-gh-pages/js/LICENSE-d3.md new file mode 100755 index 0000000..0bc47f3 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/js/LICENSE-d3.md @@ -0,0 +1,26 @@ +Copyright (c) 2013, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/examples/util/rCharts_d3_sankey-gh-pages/js/d3.v3.js b/examples/util/rCharts_d3_sankey-gh-pages/js/d3.v3.js new file mode 100755 index 0000000..dd90012 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/js/d3.v3.js @@ -0,0 +1,8580 @@ +d3 = function() { + var d3 = { + version: "3.1.9" + }; + if (!Date.now) Date.now = function() { + return +new Date(); + }; + var d3_document = document, d3_window = window; + try { + d3_document.createElement("div").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; + } + d3.ascending = function(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + }; + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; + }; + d3.max = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; + }; + d3.extent = function(array, f) { + var i = -1, n = array.length, a, b, c; + if (arguments.length === 1) { + while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined; + while (++i < n) if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [ a, c ]; + }; + d3.sum = function(array, f) { + var s = 0, n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + return s; + }; + function d3_number(x) { + return x != null && !isNaN(x); + } + d3.mean = function(array, f) { + var n = array.length, a, m = 0, i = -1, j = 0; + if (arguments.length === 1) { + while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j; + } else { + while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j; + } + return j ? m : undefined; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + if (arguments.length > 1) array = array.map(f); + array = array.filter(d3_number); + return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined; + }; + d3.bisector = function(f) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1; + } + return lo; + } + }; + }; + var d3_bisector = d3.bisector(function(d) { + return d; + }); + d3.bisectLeft = d3_bisector.left; + d3.bisect = d3.bisectRight = d3_bisector.right; + d3.shuffle = function(array) { + var m = array.length, t, i; + while (m) { + i = Math.random() * m-- | 0; + t = array[m], array[m] = array[i], array[i] = t; + } + return array; + }; + d3.permute = function(array, indexes) { + var permutes = [], i = -1, n = indexes.length; + while (++i < n) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { + zip[j] = arguments[j][i]; + } + } + return zips; + }; + function d3_zipLength(d) { + return d.length; + } + d3.transpose = function(matrix) { + return d3.zip.apply(d3, matrix); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + return Array.prototype.concat.apply([], arrays); + }; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error("infinite range"); + var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j; + start *= k, stop *= k, step *= k; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while (x * k % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + try { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } catch (e) { + ctor.prototype = properties; + } + } + d3.map = function(object) { + var map = new d3_Map(); + for (var key in object) map.set(key, object[key]); + return map; + }; + function d3_Map() {} + d3_class(d3_Map, { + has: function(key) { + return d3_map_prefix + key in this; + }, + get: function(key) { + return this[d3_map_prefix + key]; + }, + set: function(key, value) { + return this[d3_map_prefix + key] = value; + }, + remove: function(key) { + key = d3_map_prefix + key; + return key in this && delete this[key]; + }, + keys: function() { + var keys = []; + this.forEach(function(key) { + keys.push(key); + }); + return keys; + }, + values: function() { + var values = []; + this.forEach(function(key, value) { + values.push(value); + }); + return values; + }, + entries: function() { + var entries = []; + this.forEach(function(key, value) { + entries.push({ + key: key, + value: value + }); + }); + return entries; + }, + forEach: function(f) { + for (var key in this) { + if (key.charCodeAt(0) === d3_map_prefixCode) { + f.call(this, key.substring(1), this[key]); + } + } + } + }); + var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); + d3.nest = function() { + var nest = {}, keys = [], sortKeys = [], sortValues, rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; + var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(object = array[i]))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [ object ]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + nest.key = function(d) { + keys.push(d); + return nest; + }; + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0; i < array.length; i++) set.add(array[i]); + return set; + }; + function d3_Set() {} + d3_class(d3_Set, { + has: function(value) { + return d3_map_prefix + value in this; + }, + add: function(value) { + this[d3_map_prefix + value] = true; + return value; + }, + remove: function(value) { + value = d3_map_prefix + value; + return value in this && delete this[value]; + }, + values: function() { + var values = []; + this.forEach(function(value) { + values.push(value); + }); + return values; + }, + forEach: function(f) { + for (var value in this) { + if (value.charCodeAt(0) === d3_map_prefixCode) { + f.call(this, value.substring(1)); + } + } + } + }); + d3.behavior = {}; + d3.rebind = function(target, source) { + var i = 1, n = arguments.length, method; + while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + d3.dispatch = function() { + var dispatch = new d3_dispatch(), i = -1, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), name = ""; + if (i >= 0) { + name = type.substring(i + 1); + type = type.substring(0, i); + } + if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } + }; + function d3_dispatch_event(dispatch) { + var listeners = [], listenerByName = new d3_Map(); + function event() { + var z = listeners, i = -1, n = z.length, l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; + } + event.on = function(name, listener) { + var l = listenerByName.get(name), i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) listeners.push(listenerByName.set(name, { + on: listener + })); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventCancel() { + d3.event.stopPropagation(); + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; + } + function d3_eventSuppress(target, type) { + function off() { + target.on(type, null); + } + target.on(type, function() { + d3_eventCancel(); + off(); + }, true); + setTimeout(off, 0); + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), i = 0, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) { + svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) { + point.x = e.pageX; + point.y = e.pageY; + } else { + point.x = e.clientX; + point.y = e.clientY; + } + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [ point.x, point.y ]; + } + var rect = container.getBoundingClientRect(); + return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; + } + var d3_array = d3_arraySlice; + function d3_arrayCopy(pseudoarray) { + var i = -1, n = pseudoarray.length, array = []; + while (++i < n) array.push(pseudoarray[i]); + return array; + } + function d3_arraySlice(pseudoarray) { + return Array.prototype.slice.call(pseudoarray); + } + try { + d3_array(d3_document.documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = d3_arrayCopy; + } + var d3_arraySubclass = [].__proto__ ? function(array, prototype) { + array.__proto__ = prototype; + } : function(array, prototype) { + for (var property in prototype) array[property] = prototype[property]; + }; + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null; + function drag() { + this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown); + } + function mousedown() { + var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0; + var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true); + if (origin) { + offset = origin.apply(target, arguments); + offset = [ offset.x - origin_[0], offset.y - origin_[1] ]; + } else { + offset = [ 0, 0 ]; + } + if (touchId == null) d3_eventCancel(); + event_({ + type: "dragstart" + }); + function point() { + var p = target.parentNode; + return touchId != null ? d3.touches(p).filter(function(p) { + return p.identifier === touchId; + })[0] : d3.mouse(p); + } + function dragmove() { + if (!target.parentNode) return dragend(); + var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1]; + moved |= dx | dy; + origin_ = p; + d3_eventCancel(); + event_({ + type: "drag", + x: p[0] + offset[0], + y: p[1] + offset[1], + dx: dx, + dy: dy + }); + } + function dragend() { + event_({ + type: "dragend" + }); + if (moved) { + d3_eventCancel(); + if (d3.event.target === eventTarget) d3_eventSuppress(w, "click"); + } + w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null); + } + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, "on"); + }; + function d3_selection(groups) { + d3_arraySubclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + if (typeof Sizzle === "function") { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = function(s, n) { + return Sizzle.uniqueSort(Sizzle(s, n)); + }; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3_selectionRoot; + }; + var d3_selectionPrototype = d3.selection.prototype = []; + d3_selectionPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, group, node; + if (typeof selector !== "function") selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], subgroup, node; + if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i))); + subgroup.parentNode = node; + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsPrefix = { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(":"), prefix = name; + if (i >= 0) { + prefix = name.substring(0, i); + name = name.substring(i + 1); + } + return d3_nsPrefix.hasOwnProperty(prefix) ? { + space: d3_nsPrefix[prefix], + local: name + } : name; + } + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); + } + return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); + } + d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); + } + function d3_selection_classed(name, value) { + name = name.trim().split(/\s+/).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + return typeof value === "function" ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); + priority = ""; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); + } + return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; else this[name] = x; + } + return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + } : value == null ? function() { + this.textContent = ""; + } : function() { + this.textContent = value; + }) : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + } : value == null ? function() { + this.innerHTML = ""; + } : function() { + this.innerHTML = value; + }) : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3.ns.qualify(name); + function append() { + return this.appendChild(d3_document.createElementNS(this.namespaceURI, name)); + } + function appendNS() { + return this.appendChild(d3_document.createElementNS(name.space, name.local)); + } + return this.select(name.local ? appendNS : append); + }; + d3_selectionPrototype.insert = function(name, before) { + name = d3.ns.qualify(name); + if (typeof before !== "function") before = d3_selection_selector(before); + function insert(d, i) { + return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), before.call(this, d, i)); + } + function insertNS(d, i) { + return this.insertBefore(d3_document.createElementNS(name.space, name.local), before.call(this, d, i)); + } + return this.select(name.local ? insertNS : insert); + }; + d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); + }; + d3_selectionPrototype.data = function(value, key) { + var i = -1, n = this.length, group, node; + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; + } + } + return value; + } + function bind(group, groupData) { + var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; + for (i = -1; ++i < n; ) { + keyValue = key.call(node = group[i], node.__data__, i); + if (nodeByKeyValue.has(keyValue)) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues.push(keyValue); + } + for (i = -1; ++i < m; ) { + keyValue = key.call(groupData, nodeData = groupData[i], i); + if (node = nodeByKeyValue.get(keyValue)) { + updateNodes[i] = node; + node.__data__ = nodeData; + } else if (!dataByKeyValue.has(keyValue)) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + dataByKeyValue.set(keyValue, nodeData); + nodeByKeyValue.remove(keyValue); + } + for (i = -1; ++i < n; ) { + if (nodeByKeyValue.has(keyValues[i])) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (;i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (;i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length ? this.property("__data__", value) : this.property("__data__"); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3.ascending; + return function(a, b) { + return !a - !b || comparator(a.__data__, b.__data__); + }; + } + function d3_noop() {} + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + if (n < 2) return (n = this.node()["__on" + type]) && n._; + capture = false; + } + return this.each(d3_selection_on(type, listener, capture)); + }; + function d3_selection_on(type, listener, capture) { + var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; + if (i > 0) type = type.substring(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; + } + var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }); + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; + } + function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, related = e.relatedTarget; + if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) { + l.call(target, e); + } + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + function d3_selection_enter(selection) { + d3_arraySubclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.insert = d3_selectionPrototype.insert; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, upgroup, group, node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + d3_selectionPrototype.transition = function() { + var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit); + transition.time = Date.now(); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) d3_transitionNode(node, i, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, id); + }; + d3.select = function(node) { + var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ]; + group.parentNode = d3_selectRoot; + return d3_selection([ group ]); + }; + d3.selectAll = function(nodes) { + var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); + group.parentNode = d3_selectRoot; + return d3_selection([ group ]); + }; + var d3_selectionRoot = d3.select(d3_selectRoot); + d3.behavior.zoom = function() { + var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime; + function zoom() { + this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart); + } + zoom.translate = function(x) { + if (!arguments.length) return translate; + translate = x.map(Number); + rescale(); + return zoom; + }; + zoom.scale = function(x) { + if (!arguments.length) return scale; + scale = +x; + rescale(); + return zoom; + }; + zoom.scaleExtent = function(x) { + if (!arguments.length) return scaleExtent; + scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number); + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + translate = [ 0, 0 ]; + scale = 1; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + translate = [ 0, 0 ]; + scale = 1; + return zoom; + }; + function location(p) { + return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ]; + } + function point(l) { + return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ]; + } + function scaleTo(s) { + scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + translate[0] += p[0] - l[0]; + translate[1] += p[1] - l[1]; + } + function rescale() { + if (x1) x1.domain(x0.range().map(function(x) { + return (x - translate[0]) / scale; + }).map(x0.invert)); + if (y1) y1.domain(y0.range().map(function(y) { + return (y - translate[1]) / scale; + }).map(y0.invert)); + } + function dispatch(event) { + rescale(); + d3.event.preventDefault(); + event({ + type: "zoom", + scale: scale, + translate: translate + }); + } + function mousedown() { + var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target)); + d3_window.focus(); + d3_eventCancel(); + function mousemove() { + moved = 1; + translateTo(d3.mouse(target), l); + dispatch(event_); + } + function mouseup() { + if (moved) d3_eventCancel(); + w.on("mousemove.zoom", null).on("mouseup.zoom", null); + if (moved && d3.event.target === eventTarget) d3_eventSuppress(w, "click.zoom"); + } + } + function mousewheel() { + if (!translate0) translate0 = location(d3.mouse(this)); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale); + translateTo(d3.mouse(this), translate0); + dispatch(event.of(this, arguments)); + } + function mousemove() { + translate0 = null; + } + function dblclick() { + var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2; + scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); + translateTo(p, l); + dispatch(event.of(this, arguments)); + } + function touchstart() { + var touches = d3.touches(this), now = Date.now(); + scale0 = scale; + translate0 = {}; + touches.forEach(function(t) { + translate0[t.identifier] = location(t); + }); + d3_eventCancel(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0], l = location(touches[0]); + scaleTo(scale * 2); + translateTo(p, l); + dispatch(event.of(this, arguments)); + } + touchtime = now; + } + } + function touchmove() { + var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier]; + if (p1 = touches[1]) { + var p1, l1 = translate0[p1.identifier]; + p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; + l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; + scaleTo(d3.event.scale * scale0); + } + translateTo(p0, l0); + touchtime = null; + dispatch(event.of(this, arguments)); + } + return d3.rebind(zoom, event, "on"); + }; + var d3_behavior_zoomInfinity = [ 0, Infinity ]; + var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + function d3_Color() {} + d3_Color.prototype.toString = function() { + return this.rgb() + ""; + }; + d3.hsl = function(h, s, l) { + return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l); + }; + function d3_hsl(h, s, l) { + return new d3_Hsl(h, s, l); + } + function d3_Hsl(h, s, l) { + this.h = h; + this.s = s; + this.l = l; + } + var d3_hslPrototype = d3_Hsl.prototype = new d3_Color(); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + } + var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + function d3_acos(x) { + return Math.acos(Math.max(-1, Math.min(1, x))); + } + function d3_asin(x) { + return x > 1 ? π / 2 : x < -1 ? -π / 2 : Math.asin(x); + } + function d3_sinh(x) { + return (Math.exp(x) - Math.exp(-x)) / 2; + } + function d3_cosh(x) { + return (Math.exp(x) + Math.exp(-x)) / 2; + } + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; + } + d3.hcl = function(h, c, l) { + return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l); + }; + function d3_hcl(h, c, l) { + return new d3_Hcl(h, c, l); + } + function d3_Hcl(h, c, l) { + this.h = h; + this.c = c; + this.l = l; + } + var d3_hclPrototype = d3_Hcl.prototype = new d3_Color(); + d3_hclPrototype.brighter = function(k) { + return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.darker = function(k) { + return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); + } + d3.lab = function(l, a, b) { + return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b); + }; + function d3_lab(l, a, b) { + return new d3_Lab(l, a, b); + } + function d3_Lab(l, a, b) { + this.l = l; + this.a = a; + this.b = b; + } + var d3_lab_K = 18; + var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; + var d3_labPrototype = d3_Lab.prototype = new d3_Color(); + d3_labPrototype.brighter = function(k) { + return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.darker = function(k) { + return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); + } + function d3_lab_hcl(l, a, b) { + return l > 0 ? d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : d3_hcl(NaN, NaN, l); + } + function d3_lab_xyz(x) { + return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; + } + function d3_xyz_lab(x) { + return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; + } + function d3_xyz_rgb(r) { + return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); + } + d3.rgb = function(r, g, b) { + return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b); + }; + function d3_rgb(r, g, b) { + return new d3_Rgb(r, g, b); + } + function d3_Rgb(r, g, b) { + this.r = r; + this.g = g; + this.b = b; + } + var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color(); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + var r = this.r, g = this.g, b = this.b, i = 30; + if (!r && !g && !b) return d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k))); + }; + d3_rgbPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b)); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); + } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, g = 0, b = 0, m1, m2, name; + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": + { + return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); + } + + case "rgb": + { + return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); + } + } + } + if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b); + if (format != null && format.charAt(0) === "#") { + if (format.length === 4) { + r = format.charAt(1); + r += r; + g = format.charAt(2); + g += g; + b = format.charAt(3); + b += b; + } else if (format.length === 7) { + r = format.substring(1, 3); + g = format.substring(3, 5); + b = format.substring(5, 7); + } + r = parseInt(r, 16); + g = parseInt(g, 16); + b = parseInt(b, 16); + } + return rgb(r, g, b); + } + function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return d3_hsl(h, s, l); + } + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); + } + function d3_rgb_xyz(r) { + return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); + } + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; + } + var d3_rgb_names = d3.map({ + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb)); + }); + function d3_functor(v) { + return typeof v === "function" ? v : function() { + return v; + }; + } + d3.functor = d3_functor; + function d3_identity(d) { + return d; + } + d3.xhr = function(url, mimeType, callback) { + var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)(); + "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }; + function respond() { + var s = request.status; + !s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request); + } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; else headers[name] = value + ""; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + [ "get", "post" ].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (callback != null) xhr.on("error", callback).on("load", function(request) { + callback(null, request); + }); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, "on"); + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, + mimeType = null; + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); + }; + function d3_xhr_fixCallback(callback) { + return callback.length === 1 ? function(error, request) { + callback(error == null ? request : null); + } : callback; + } + function d3_dsv(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) callback = row, row = null; + var xhr = d3.xhr(url, mimeType, callback); + xhr.row = function(_) { + return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; + }; + return xhr.row(row); + } + function response(request) { + return dsv.parse(request.responseText); + } + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function("d", "return {" + row.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "]"; + }).join(",") + "}"); + o = f ? function(row, i) { + return f(a(row), i); + } : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; + function token() { + if (I >= N) return EOF; + if (eol) return eol = false, EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), k = 1; + if (c === 10) eol = true; else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.substring(j, I - k); + } + return text.substring(j); + } + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && !(a = f(a, n++))) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { + return fields.map(function(field) { + return formatValue(row[field]); + }).join(delimiter); + })).join("\n"); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join("\n"); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + } + d3.csv = d3_dsv(",", "text/csv"); + d3.tsv = d3_dsv(" ", "text/tab-separated-values"); + var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout; + d3.timer = function(callback, delay, then) { + if (arguments.length < 3) { + if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return; + then = Date.now(); + } + var timer = d3_timer_byId[callback.id]; + if (timer && timer.callback === callback) { + timer.then = then; + timer.delay = delay; + } else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = { + callback: callback, + then: then, + delay: delay, + next: d3_timer_queue + }; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + }; + function d3_timer_step() { + var elapsed, now = Date.now(), t1 = d3_timer_queue; + while (t1) { + elapsed = now - t1.then; + if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed); + t1 = t1.next; + } + var delay = d3_timer_flush() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + } + d3.timer.flush = function() { + var elapsed, now = Date.now(), t1 = d3_timer_queue; + while (t1) { + elapsed = now - t1.then; + if (!t1.delay) t1.flush = t1.callback(elapsed); + t1 = t1.next; + } + d3_timer_flush(); + }; + function d3_timer_flush() { + var t0 = null, t1 = d3_timer_queue, then = Infinity; + while (t1) { + if (t1.flush) { + delete d3_timer_byId[t1.callback.id]; + t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next; + } else { + then = Math.min(then, t1.then + t1.delay); + t1 = (t0 = t1).next; + } + } + return then; + } + var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) { + setTimeout(callback, 17); + }; + var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ]; + var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if (value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, Math.abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { + return d / k; + } : function(d) { + return d * k; + }, + symbol: d + }; + } + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + d3.format = function(specifier) { + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false; + if (precision) precision = +precision.substring(1); + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + switch (type) { + case "n": + comma = true; + type = "g"; + break; + + case "%": + scale = 100; + suffix = "%"; + type = "f"; + break; + + case "p": + scale = 100; + suffix = "%"; + type = "r"; + break; + + case "b": + case "o": + case "x": + case "X": + if (basePrefix) basePrefix = "0" + type.toLowerCase(); + + case "c": + case "d": + integer = true; + precision = 0; + break; + + case "s": + scale = -1; + type = "r"; + break; + } + if (basePrefix === "#") basePrefix = ""; + if (type == "r" && !precision) type = "g"; + if (precision != null) { + if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); + } + type = d3_format_types.get(type) || d3_format_typeDefault; + var zcomma = zfill && comma; + return function(value) { + if (integer && value % 1) return ""; + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; + if (scale < 0) { + var prefix = d3.formatPrefix(value, precision); + value = prefix.scale(value); + suffix = prefix.symbol; + } else { + value *= scale; + } + value = type(value, precision); + if (!zfill && comma) value = d3_format_group(value); + var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; + if (zcomma) value = d3_format_group(padding + value); + if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint); + negative += basePrefix; + return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix; + }; + }; + var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); + } + }); + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); + } + function d3_format_typeDefault(x) { + return x + ""; + } + var d3_format_group = d3_identity; + if (d3_format_grouping) { + var d3_format_groupingLength = d3_format_grouping.length; + d3_format_group = function(value) { + var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length, + ""), t = [], j = 0, g = d3_format_grouping[0]; + while (i > 0 && g > 0) { + t.push(value.substring(i -= g, i + g)); + g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength]; + } + return t.reverse().join(d3_format_thousandsSeparator || "") + f; + }; + } + d3.geo = {}; + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } + } + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + var coordinate = object.coordinates; + listener.point(coordinate[0], coordinate[1]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate; + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]); + listener.lineEnd(); + } + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); + } + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, d3_geo_areaRingSum; + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum = 0; + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), + sinφ0 = Math.sin(φ); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; + var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ); + d3_geo_areaRingSum += Math.atan2(v, u); + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; + } + function d3_geo_cartesian(spherical) { + var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); + return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; + } + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + function d3_geo_cartesianCross(a, b) { + return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; + } + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + } + function d3_geo_cartesianScale(vector, k) { + return [ vector[0] * k, vector[1] * k, vector[2] * k ]; + } + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ]; + } + function d3_geo_sphericalEqual(a, b) { + return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + function point(λ, φ) { + ranges.push(range = [ λ0 = λ, λ1 = λ ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + function linePoint(λ, φ) { + var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = Math.abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; + } + function lineStart() { + bound.point = linePoint; + } + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; + } + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += Math.abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + function ringStart() { + d3_geo_area.lineStart(); + } + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (Math.abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; + } + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; + } + function compareRanges(a, b) { + return a[0] - b[0]; + } + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; + } + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + ranges.sort(compareRanges); + for (var i = 1, n = ranges.length, a = ranges[0], b, merged = [ a ]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; + } + ranges = range = null; + return [ [ λ0, φ0 ], [ λ1, φ1 ] ]; + }; + }(); + d3.geo.centroid = function(object) { + d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + d3.geo.stream(object, d3_geo_centroid); + var m; + if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) { + return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ]; + } + }; + var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ; + var d3_geo_centroid = { + sphere: function() { + if (d3_geo_centroidDimension < 2) { + d3_geo_centroidDimension = 2; + d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + } + }, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + if (d3_geo_centroidDimension < 2) { + d3_geo_centroidDimension = 2; + d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + } + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } + }; + function d3_geo_centroidPoint(λ, φ) { + if (d3_geo_centroidDimension) return; + ++d3_geo_centroidW; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW; + d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW; + d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW; + } + function d3_geo_centroidRingStart() { + var λ00, φ00; + d3_geo_centroidDimension = 1; + d3_geo_centroidLineStart(); + d3_geo_centroidDimension = 2; + var linePoint = d3_geo_centroid.point; + d3_geo_centroid.point = function(λ, φ) { + linePoint(λ00 = λ, φ00 = φ); + }; + d3_geo_centroid.lineEnd = function() { + d3_geo_centroid.point(λ00, φ00); + d3_geo_centroidLineEnd(); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + }; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + if (d3_geo_centroidDimension > 1) return; + if (d3_geo_centroidDimension < 1) { + d3_geo_centroidDimension = 1; + d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + } + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); + d3_geo_centroidW += w; + d3_geo_centroidX += w * (x0 + (x0 = x)); + d3_geo_centroidY += w * (y0 + (y0 = y)); + d3_geo_centroidZ += w * (z0 + (z0 = z)); + } + } + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon(segments, compare, inside, interpolate, listener) { + var subject = [], clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + var a = { + point: p0, + points: segment, + other: null, + visited: false, + entry: true, + subject: true + }, b = { + point: p0, + points: [ p0 ], + other: a, + visited: false, + entry: false, + subject: false + }; + a.other = b; + subject.push(a); + clip.push(b); + a = { + point: p1, + points: [ p1 ], + other: null, + visited: false, + entry: false, + subject: true + }; + b = { + point: p1, + points: [ p1 ], + other: a, + visited: false, + entry: true, + subject: false + }; + a.other = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + if (inside) for (var i = 1, e = !inside(clip[0].point), n = clip.length; i < n; ++i) { + clip[i].entry = e = !e; + } + var start = subject[0], current, points, point; + while (1) { + current = start; + while (current.visited) if ((current = current.next) === start) return; + points = current.points; + listener.lineStart(); + do { + current.visited = current.other.visited = true; + if (current.entry) { + if (current.subject) { + for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.point, current.next.point, 1, listener); + } + current = current.next; + } else { + if (current.subject) { + points = current.prev.points; + for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.point, current.prev.point, -1, listener); + } + current = current.prev; + } + current = current.other; + points = current.points; + } while (!current.visited); + listener.lineEnd(); + } + } + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, i = 0, a = array[0], b; + while (++i < n) { + a.next = b = array[i]; + b.prev = a; + a = b; + } + a.next = b = array[0]; + b.prev = a; + } + function d3_geo_clip(pointVisible, clipLine, interpolate) { + return function(listener) { + var line = clipLine(listener); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + invisible = false; + invisibleArea = visibleArea = 0; + segments = []; + listener.polygonStart(); + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + if (segments.length) { + d3_geo_clipPolygon(segments, d3_geo_clipSort, null, interpolate, listener); + } else if (visibleArea < -ε || invisible && invisibleArea < -ε) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + listener.polygonEnd(); + segments = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + function point(λ, φ) { + if (pointVisible(λ, φ)) listener.point(λ, φ); + } + function pointLine(λ, φ) { + line.point(λ, φ); + } + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + var segments, visibleArea, invisibleArea, invisible; + var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring; + function pointRing(λ, φ) { + ringListener.point(λ, φ); + ring.push([ λ, φ ]); + } + function ringStart() { + ringListener.lineStart(); + ring = []; + } + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; + if (!n) { + invisible = true; + invisibleArea += d3_geo_clipAreaRing(ring, -1); + ring = null; + return; + } + ring = null; + if (clean & 1) { + segment = ringSegments[0]; + visibleArea += d3_geo_clipAreaRing(segment, 1); + var n = segment.length - 1, i = -1, point; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + return; + } + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], line; + return { + lineStart: function() { + lines.push(line = []); + }, + point: function(λ, φ) { + line.push([ λ, φ ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; + } + function d3_geo_clipAreaRing(ring, invisible) { + if (!(n = ring.length)) return 0; + var n, i = 0, area = 0, p = ring[0], λ = p[0], φ = p[1], cosφ = Math.cos(φ), x0 = Math.atan2(invisible * Math.sin(λ) * cosφ, Math.sin(φ)), y0 = 1 - invisible * Math.cos(λ) * cosφ, x1 = x0, x, y; + while (++i < n) { + p = ring[i]; + cosφ = Math.cos(φ = p[1]); + x = Math.atan2(invisible * Math.sin(λ = p[0]) * cosφ, Math.sin(φ)); + y = 1 - invisible * Math.cos(λ) * cosφ; + if (Math.abs(y0 - 2) < ε && Math.abs(y - 2) < ε) continue; + if (Math.abs(y) < ε || Math.abs(y0) < ε) {} else if (Math.abs(Math.abs(x - x0) - π) < ε) { + if (y + y0 > 2) area += 4 * (x - x0); + } else if (Math.abs(y0 - 2) < ε) area += 4 * (x - x1); else area += ((3 * π + x - x0) % (2 * π) - π) * (y0 + y); + x1 = x0, x0 = x, y0 = y; + } + return area; + } + function d3_geo_clipSort(a, b) { + return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]); + } + var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, dλ = Math.abs(λ1 - λ0); + if (Math.abs(dλ - π) < ε) { + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); + return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * π / 2; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (Math.abs(from[0] - to[0]) > ε) { + var s = (from[0] < to[0] ? 1 : -1) * π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); + } + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = Math.abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip(visible, clipLine, interpolate); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | (v00 && v0) << 1; + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); + var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, polar = Math.abs(δλ - π) < ε, meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (Math.abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [ q, d3_geo_spherical(q1) ]; + } + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, code = 0; + if (λ < -r) code |= 1; else if (λ > r) code |= 2; + if (φ < -r) code |= 4; else if (φ > r) code |= 8; + return code; + } + } + var d3_geo_clipViewMAX = 1e9; + function d3_geo_clipView(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), segments, polygon, ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + }, + polygonEnd: function() { + listener = listener_; + if ((segments = d3.merge(segments)).length) { + listener.polygonStart(); + d3_geo_clipPolygon(segments, compare, inside, interpolate, listener); + listener.polygonEnd(); + } else if (insidePolygon([ x0, y0 ])) { + listener.polygonStart(), listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(), listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function inside(point) { + var a = corner(point, -1), i = insidePolygon([ a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0 ]); + return i; + } + function insidePolygon(p) { + var wn = 0, n = polygon.length, y = p[1]; + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0]; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && isLeft(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && isLeft(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + function isLeft(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (c[0] - a[0]) * (b[1] - a[1]); + } + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + function visible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + function point(x, y) { + if (visible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, x)); + y = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, y)); + var v = visible(x, y); + if (polygon) ring.push([ x, y ]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); else { + var a = [ x_, y_ ], b = [ x, y ]; + if (clipLine(a, b)) { + if (!v_) { + listener.lineStart(); + listener.point(a[0], a[1]); + } + listener.point(b[0], b[1]); + if (!v) listener.lineEnd(); + } else if (v) { + listener.lineStart(); + listener.point(x, y); + } + } + } + x_ = x, y_ = y, v_ = v; + } + return clip; + }; + function corner(p, direction) { + return Math.abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : Math.abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : Math.abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; + } + function compare(a, b) { + return comparePoints(a.point, b.point); + } + function comparePoints(a, b) { + var ca = corner(a, 1), cb = corner(b, 1); + return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; + } + function clipLine(a, b) { + var dx = b[0] - a[0], dy = b[1] - a[1], t = [ 0, 1 ]; + if (Math.abs(dx) < ε && Math.abs(dy) < ε) return x0 <= a[0] && a[0] <= x1 && y0 <= a[1] && a[1] <= y1; + if (d3_geo_clipViewT(x0 - a[0], dx, t) && d3_geo_clipViewT(a[0] - x1, -dx, t) && d3_geo_clipViewT(y0 - a[1], dy, t) && d3_geo_clipViewT(a[1] - y1, -dy, t)) { + if (t[1] < 1) { + b[0] = a[0] + t[1] * dx; + b[1] = a[1] + t[1] * dy; + } + if (t[0] > 0) { + a[0] += t[0] * dx; + a[1] += t[0] * dy; + } + return true; + } + return false; + } + } + function d3_geo_clipViewT(num, denominator, t) { + if (Math.abs(denominator) < ε) return num <= 0; + var u = num / denominator; + if (denominator > 0) { + if (u > t[1]) return false; + if (u > t[0]) t[0] = u; + } else { + if (u < t[0]) return false; + if (u < t[1]) t[1] = u; + } + return true; + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_geo_resample(project) { + var δ2 = .5, maxDepth = 16; + function resample(stream) { + var λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = polygonLineStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function polygonLineStart() { + var λ00, φ00, x00, y00, a00, b00, c00; + lineStart(); + resample.point = function(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + }; + resample.lineEnd = function() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); + }; + } + return resample; + } + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [ x[0] * k + δx, δy - x[1] * k ]; + }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [ point[0] * k + δx, δy - point[1] * k ]; + } + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; + } + projection.stream = function(stream) { + return d3_geo_projectionRadiansRotate(rotate, preclip(projectResample(postclip(stream)))); + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return projection; + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ == null ? d3_identity : d3_geo_clipView(_[0][0], _[0][1], _[1][0], _[1][1]); + return projection; + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [ x, y ]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, "precision"); + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return projection; + } + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadiansRotate(rotate, stream) { + return { + point: function(x, y) { + y = rotate(x * d3_radians, y * d3_radians), x = y[0]; + stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]); + }, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + function d3_geo_equirectangular(λ, φ) { + return [ λ, φ ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + } + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + return forward; + }; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; + return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; + return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [ 0, 0 ], angle, precision = 6, interpolate; + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + return { + type: "Polygon", + coordinates: [ ring ] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), sr = Math.sin(radius); + return function(from, to, direction, listener) { + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * 2 * π; + } else { + from = radius + direction * 2 * π; + to = radius; + } + var point; + for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); + }; + d3.geo.graticule = function() { + var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; + function graticule() { + return { + type: "MultiLineString", + coordinates: lines() + }; + } + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { + return Math.abs(x % DX) > ε; + }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { + return Math.abs(y % DY) > ε; + }).map(y)); + } + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: "LineString", + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [ DX, DY ]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [ dx, dy ]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); + }; + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [ x, y ]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [ x, y ]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, source_, target = d3_target, target_; + function greatArc() { + return { + type: "LineString", + coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ] + }; + } + greatArc.distance = function() { + return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments)); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; + }; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d); + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; + return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ]; + } : function() { + return [ x0 * d3_degrees, y0 * d3_degrees ]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = Math.abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } + } + function d3_geo_conic(projectAt) { + var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); + }; + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); + var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); + var point, pointStream = { + point: function(x, y) { + point = [ x, y ]; + } + }, lower48Point, alaskaPoint, hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); + return point; + } + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; + return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * .35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point; + alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); + }; + var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2); + } + }; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; + } + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); + } + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; + } + function pointLine(x, y) { + buffer.push("L", x, ",", y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + buffer.push("Z"); + } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } + }; + function d3_geo_pathCentroidPoint(x, y) { + if (d3_geo_centroidDimension) return; + d3_geo_centroidX += x; + d3_geo_centroidY += y; + ++d3_geo_centroidZ; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + if (d3_geo_centroidDimension !== 1) { + if (d3_geo_centroidDimension < 1) { + d3_geo_centroidDimension = 1; + d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + } else return; + } + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + x0 = x, y0 = y; + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX += z * (x0 + x) / 2; + d3_geo_centroidY += z * (y0 + y) / 2; + d3_geo_centroidZ += z; + x0 = x, y0 = y; + } + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + if (d3_geo_centroidDimension < 2) { + d3_geo_centroidDimension = 2; + d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + } + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + var z = y0 * x - x0 * y; + d3_geo_centroidX += z * (x0 + x); + d3_geo_centroidY += z * (y0 + y); + d3_geo_centroidZ += z * 3; + x0 = x, y0 = y; + } + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x, y); + context.arc(x, y, pointRadius, 0, 2 * π); + } + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + function pointLine(x, y) { + context.lineTo(x, y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + context.closePath(); + } + return stream; + } + d3.geo.path = function() { + var pointRadius = 4.5, projection, context, projectStream, contextStream; + function path(object) { + if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius))); + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return path; + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); + return path; + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : +_; + return path; + }; + return path.projection(d3.geo.albersUsa()).context(null); + }; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(λ, φ) { + return project([ λ * d3_degrees, φ * d3_degrees ]); + }); + return function(stream) { + stream = resample(stream); + return { + point: function(λ, φ) { + stream.point(λ * d3_radians, φ * d3_radians); + }, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + }; + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); + return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); + return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, function(ρ) { + return 2 * Math.asin(ρ / 2); + }); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + var ρ = Math.abs(Math.abs(φ) - π / 2) < ε ? 0 : F / Math.pow(t(φ), n); + return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - π / 2 ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; + if (Math.abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; + }; + return forward; + } + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; + } + d3_geo_mercator.invert = function(x, y) { + return [ x, 2 * Math.atan(Math.exp(y)) - π / 2 ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + return m.clipExtent(null); + } + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, function(ρ) { + return 2 * Math.atan(ρ); + }); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + var B = Math.cos(φ) * Math.sin(λ); + return [ Math.log((1 + B) / (1 - B)) / 2, Math.atan2(Math.tan(φ), Math.cos(λ)) ]; + } + d3_geo_transverseMercator.invert = function(x, y) { + return [ Math.atan2(d3_sinh(x), Math.cos(y)), d3_asin(Math.sin(y) / d3_cosh(x)) ]; + }; + (d3.geo.transverseMercator = function() { + return d3_geo_mercatorProjection(d3_geo_transverseMercator); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + d3.svg = {}; + function d3_svg_line(projection) { + var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; + function line(data) { + var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); + function segment() { + segments.push("M", interpolate(projection(points), tension)); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join("") : null; + } + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; + } + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + function d3_svg_lineX(d) { + return d[0]; + } + function d3_svg_lineY(d) { + return d[1]; + } + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.join("L"); + } + function d3_svg_lineLinearClosed(points) { + return d3_svg_lineLinear(points) + "Z"; + } + function d3_svg_lineStepBefore(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); + } + function d3_svg_lineStepAfter(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); + } + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); + } + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + } + } + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + } + return path; + } + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); + } + return tangents; + } + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ]; + d3_svg_lineBasisBezier(path, px, py); + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + i = -1; + while (++i < 2) { + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBasisClosed(points) { + var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); + } + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + } + var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); + } + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); + } + function d3_svg_lineFiniteDifferences(points) { + var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; + } + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (Math.abs(d) < 1e-6) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([ s || 0, m[i] * s || 0 ]); + } + return tangents; + } + function d3_svg_lineMonotone(points) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); + } + d3.geom.hull = function(vertices) { + var x = d3_svg_lineX, y = d3_svg_lineY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), fy = d3_functor(y), n = data.length, vertices, plen = n - 1, points = [], stack = [], d, i, j, h = 0, x1, y1, x2, y2, u, v, a, sp; + if (fx === d3_svg_lineX && y === d3_svg_lineY) vertices = data; else for (i = 0, + vertices = []; i < n; ++i) { + vertices.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]); + } + for (i = 1; i < n; ++i) { + if (vertices[i][1] < vertices[h][1] || vertices[i][1] == vertices[h][1] && vertices[i][0] < vertices[h][0]) h = i; + } + for (i = 0; i < n; ++i) { + if (i === h) continue; + y1 = vertices[i][1] - vertices[h][1]; + x1 = vertices[i][0] - vertices[h][0]; + points.push({ + angle: Math.atan2(y1, x1), + index: i + }); + } + points.sort(function(a, b) { + return a.angle - b.angle; + }); + a = points[0].angle; + v = points[0].index; + u = 0; + for (i = 1; i < plen; ++i) { + j = points[i].index; + if (a == points[i].angle) { + x1 = vertices[v][0] - vertices[h][0]; + y1 = vertices[v][1] - vertices[h][1]; + x2 = vertices[j][0] - vertices[h][0]; + y2 = vertices[j][1] - vertices[h][1]; + if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) { + points[i].index = -1; + continue; + } else { + points[u].index = -1; + } + } + a = points[i].angle; + u = i; + v = j; + } + stack.push(h); + for (i = 0, j = 0; i < 2; ++j) { + if (points[j].index > -1) { + stack.push(points[j].index); + i++; + } + } + sp = stack.length; + for (;j < plen; ++j) { + if (points[j].index < 0) continue; + while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) { + --sp; + } + stack[sp++] = points[j].index; + } + var poly = []; + for (i = sp - 1; i >= 0; --i) poly.push(data[stack[i]]); + return poly; + } + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + return hull; + }; + function d3_geom_hullCCW(i1, i2, i3, v) { + var t, a, b, c, d, e, f; + t = v[i1]; + a = t[0]; + b = t[1]; + t = v[i2]; + c = t[0]; + d = t[1]; + t = v[i3]; + e = t[0]; + f = t[1]; + return (f - b) * (c - a) - (d - b) * (e - a) > 0; + } + d3.geom.polygon = function(coordinates) { + coordinates.area = function() { + var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1]; + while (++i < n) { + area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1]; + } + return area * .5; + }; + coordinates.centroid = function(k) { + var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c; + if (!arguments.length) k = -1 / (6 * coordinates.area()); + while (++i < n) { + a = b; + b = coordinates[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [ x * k, y * k ]; + }; + coordinates.clip = function(subject) { + var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = coordinates[i]; + c = input[(m = input.length) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + a = b; + } + return subject; + }; + return coordinates; + }; + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [ x1 + ua * x21, y1 + ua * y21 ]; + } + d3.geom.delaunay = function(vertices) { + var edges = vertices.map(function() { + return []; + }), triangles = []; + d3_geom_voronoiTessellate(vertices, function(e) { + edges[e.region.l.index].push(vertices[e.region.r.index]); + }); + edges.forEach(function(edge, i) { + var v = vertices[i], cx = v[0], cy = v[1]; + edge.forEach(function(v) { + v.angle = Math.atan2(v[0] - cx, v[1] - cy); + }); + edge.sort(function(a, b) { + return a.angle - b.angle; + }); + for (var j = 0, m = edge.length - 1; j < m; j++) { + triangles.push([ v, edge[j], edge[j + 1] ]); + } + }); + return triangles; + }; + d3.geom.voronoi = function(points) { + var size = null, x = d3_svg_lineX, y = d3_svg_lineY, clip; + if (arguments.length) return voronoi(points); + function voronoi(data) { + var points, polygons = data.map(function() { + return []; + }), fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length, Z = 1e6; + if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (points = [], + i = 0; i < n; ++i) { + points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]); + } + d3_geom_voronoiTessellate(points, function(e) { + var s1, s2, x1, x2, y1, y2; + if (e.a === 1 && e.b >= 0) { + s1 = e.ep.r; + s2 = e.ep.l; + } else { + s1 = e.ep.l; + s2 = e.ep.r; + } + if (e.a === 1) { + y1 = s1 ? s1.y : -Z; + x1 = e.c - e.b * y1; + y2 = s2 ? s2.y : Z; + x2 = e.c - e.b * y2; + } else { + x1 = s1 ? s1.x : -Z; + y1 = e.c - e.a * x1; + x2 = s2 ? s2.x : Z; + y2 = e.c - e.a * x2; + } + var v1 = [ x1, y1 ], v2 = [ x2, y2 ]; + polygons[e.region.l.index].push(v1, v2); + polygons[e.region.r.index].push(v1, v2); + }); + polygons = polygons.map(function(polygon, i) { + var cx = points[i][0], cy = points[i][1], angle = polygon.map(function(v) { + return Math.atan2(v[0] - cx, v[1] - cy); + }), order = d3.range(polygon.length).sort(function(a, b) { + return angle[a] - angle[b]; + }); + return order.filter(function(d, i) { + return !i || angle[d] - angle[order[i - 1]] > ε; + }).map(function(d) { + return polygon[d]; + }); + }); + polygons.forEach(function(polygon, i) { + var n = polygon.length; + if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]); + if (n > 2) return; + var p0 = points[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1; + if (Math.abs(dy) < ε) { + var y = y0 < y1 ? -Z : Z; + polygon.push([ -Z, y ], [ Z, y ]); + } else if (dx < ε) { + var x = x0 < x1 ? -Z : Z; + polygon.push([ x, -Z ], [ x, Z ]); + } else { + var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx; + if (Math.abs(z) < ε) { + polygon.push([ dy < 0 ? y : -y, y ]); + } else { + if (z > 0) y *= -1; + polygon.push([ -Z, y ], [ Z, y ]); + } + } + }); + if (clip) for (i = 0; i < n; ++i) clip(polygons[i]); + for (i = 0; i < n; ++i) polygons[i].point = data[i]; + return polygons; + } + voronoi.x = function(_) { + return arguments.length ? (x = _, voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? (y = _, voronoi) : y; + }; + voronoi.size = function(_) { + if (!arguments.length) return size; + if (_ == null) { + clip = null; + } else { + size = [ +_[0], +_[1] ]; + clip = d3.geom.polygon([ [ 0, 0 ], [ 0, size[1] ], size, [ size[0], 0 ] ]).clip; + } + return voronoi; + }; + voronoi.links = function(data) { + var points, graph = data.map(function() { + return []; + }), links = [], fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length; + if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (i = 0; i < n; ++i) { + points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]); + } + d3_geom_voronoiTessellate(points, function(e) { + var l = e.region.l.index, r = e.region.r.index; + if (graph[l][r]) return; + graph[l][r] = graph[r][l] = true; + links.push({ + source: data[l], + target: data[r] + }); + }); + return links; + }; + voronoi.triangles = function(data) { + if (x === d3_svg_lineX && y === d3_svg_lineY) return d3.geom.delaunay(data); + var points, point, fx = d3_functor(x), fy = d3_functor(y), d, i, n; + for (i = 0, points = [], n = data.length; i < n; ++i) { + point = [ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]; + point.data = d; + points.push(point); + } + return d3.geom.delaunay(points).map(function(triangle) { + return triangle.map(function(point) { + return point.data; + }); + }); + }; + return voronoi; + }; + var d3_geom_voronoiOpposite = { + l: "r", + r: "l" + }; + function d3_geom_voronoiTessellate(points, callback) { + var Sites = { + list: points.map(function(v, i) { + return { + index: i, + x: v[0], + y: v[1] + }; + }).sort(function(a, b) { + return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0; + }), + bottomSite: null + }; + var EdgeList = { + list: [], + leftEnd: null, + rightEnd: null, + init: function() { + EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l"); + EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l"); + EdgeList.leftEnd.r = EdgeList.rightEnd; + EdgeList.rightEnd.l = EdgeList.leftEnd; + EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd); + }, + createHalfEdge: function(edge, side) { + return { + edge: edge, + side: side, + vertex: null, + l: null, + r: null + }; + }, + insert: function(lb, he) { + he.l = lb; + he.r = lb.r; + lb.r.l = he; + lb.r = he; + }, + leftBound: function(p) { + var he = EdgeList.leftEnd; + do { + he = he.r; + } while (he != EdgeList.rightEnd && Geom.rightOf(he, p)); + he = he.l; + return he; + }, + del: function(he) { + he.l.r = he.r; + he.r.l = he.l; + he.edge = null; + }, + right: function(he) { + return he.r; + }, + left: function(he) { + return he.l; + }, + leftRegion: function(he) { + return he.edge == null ? Sites.bottomSite : he.edge.region[he.side]; + }, + rightRegion: function(he) { + return he.edge == null ? Sites.bottomSite : he.edge.region[d3_geom_voronoiOpposite[he.side]]; + } + }; + var Geom = { + bisect: function(s1, s2) { + var newEdge = { + region: { + l: s1, + r: s2 + }, + ep: { + l: null, + r: null + } + }; + var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy; + newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5; + if (adx > ady) { + newEdge.a = 1; + newEdge.b = dy / dx; + newEdge.c /= dx; + } else { + newEdge.b = 1; + newEdge.a = dx / dy; + newEdge.c /= dy; + } + return newEdge; + }, + intersect: function(el1, el2) { + var e1 = el1.edge, e2 = el2.edge; + if (!e1 || !e2 || e1.region.r == e2.region.r) { + return null; + } + var d = e1.a * e2.b - e1.b * e2.a; + if (Math.abs(d) < 1e-10) { + return null; + } + var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e; + if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) { + el = el1; + e = e1; + } else { + el = el2; + e = e2; + } + var rightOfSite = xint >= e.region.r.x; + if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") { + return null; + } + return { + x: xint, + y: yint + }; + }, + rightOf: function(he, p) { + var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x; + if (rightOfSite && he.side === "l") { + return 1; + } + if (!rightOfSite && he.side === "r") { + return 0; + } + if (e.a === 1) { + var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0; + if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) { + above = fast = dyp >= e.b * dxp; + } else { + above = p.x + p.y * e.b > e.c; + if (e.b < 0) { + above = !above; + } + if (!above) { + fast = 1; + } + } + if (!fast) { + var dxs = topsite.x - e.region.l.x; + above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b); + if (e.b < 0) { + above = !above; + } + } + } else { + var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y; + above = t1 * t1 > t2 * t2 + t3 * t3; + } + return he.side === "l" ? above : !above; + }, + endPoint: function(edge, side, site) { + edge.ep[side] = site; + if (!edge.ep[d3_geom_voronoiOpposite[side]]) return; + callback(edge); + }, + distance: function(s, t) { + var dx = s.x - t.x, dy = s.y - t.y; + return Math.sqrt(dx * dx + dy * dy); + } + }; + var EventQueue = { + list: [], + insert: function(he, site, offset) { + he.vertex = site; + he.ystar = site.y + offset; + for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) { + var next = list[i]; + if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) { + continue; + } else { + break; + } + } + list.splice(i, 0, he); + }, + del: function(he) { + for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {} + ls.splice(i, 1); + }, + empty: function() { + return EventQueue.list.length === 0; + }, + nextEvent: function(he) { + for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) { + if (ls[i] == he) return ls[i + 1]; + } + return null; + }, + min: function() { + var elem = EventQueue.list[0]; + return { + x: elem.vertex.x, + y: elem.ystar + }; + }, + extractMin: function() { + return EventQueue.list.shift(); + } + }; + EdgeList.init(); + Sites.bottomSite = Sites.list.shift(); + var newSite = Sites.list.shift(), newIntStar; + var lbnd, rbnd, llbnd, rrbnd, bisector; + var bot, top, temp, p, v; + var e, pm; + while (true) { + if (!EventQueue.empty()) { + newIntStar = EventQueue.min(); + } + if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) { + lbnd = EdgeList.leftBound(newSite); + rbnd = EdgeList.right(lbnd); + bot = EdgeList.rightRegion(lbnd); + e = Geom.bisect(bot, newSite); + bisector = EdgeList.createHalfEdge(e, "l"); + EdgeList.insert(lbnd, bisector); + p = Geom.intersect(lbnd, bisector); + if (p) { + EventQueue.del(lbnd); + EventQueue.insert(lbnd, p, Geom.distance(p, newSite)); + } + lbnd = bisector; + bisector = EdgeList.createHalfEdge(e, "r"); + EdgeList.insert(lbnd, bisector); + p = Geom.intersect(bisector, rbnd); + if (p) { + EventQueue.insert(bisector, p, Geom.distance(p, newSite)); + } + newSite = Sites.list.shift(); + } else if (!EventQueue.empty()) { + lbnd = EventQueue.extractMin(); + llbnd = EdgeList.left(lbnd); + rbnd = EdgeList.right(lbnd); + rrbnd = EdgeList.right(rbnd); + bot = EdgeList.leftRegion(lbnd); + top = EdgeList.rightRegion(rbnd); + v = lbnd.vertex; + Geom.endPoint(lbnd.edge, lbnd.side, v); + Geom.endPoint(rbnd.edge, rbnd.side, v); + EdgeList.del(lbnd); + EventQueue.del(rbnd); + EdgeList.del(rbnd); + pm = "l"; + if (bot.y > top.y) { + temp = bot; + bot = top; + top = temp; + pm = "r"; + } + e = Geom.bisect(bot, top); + bisector = EdgeList.createHalfEdge(e, pm); + EdgeList.insert(llbnd, bisector); + Geom.endPoint(e, d3_geom_voronoiOpposite[pm], v); + p = Geom.intersect(llbnd, bisector); + if (p) { + EventQueue.del(llbnd); + EventQueue.insert(llbnd, p, Geom.distance(p, bot)); + } + p = Geom.intersect(bisector, rrbnd); + if (p) { + EventQueue.insert(bisector, p, Geom.distance(p, bot)); + } + } else { + break; + } + } + for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) { + callback(lbnd.edge); + } + } + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_svg_lineX, y = d3_svg_lineY, compat; + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + function quadtree(data) { + var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + var dx = x2_ - x1_, dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, ny = n.y; + if (nx != null) { + if (Math.abs(nx - x) + Math.abs(ny - y) < .01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = sx; else x2 = sx; + if (bottom) y1 = sy; else y2 = sy; + insert(n, d, x, y, x1, y1, x2, y2); + } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; + } + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [ x2, y2 ]; + if (_ == null) { + x1 = y1 = x2 = y2 = null; + } else { + x1 = y1 = 0; + x2 = +_[0], y2 = +_[1]; + } + return quadtree; + }; + return quadtree; + }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; + return function(t) { + return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); + }; + function d3_transform(m) { + var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [ m.e, m.f ]; + this.scale = [ kx, ky ]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + b -= a = +a; + return function(t) { + return a + b * t; + }; + } + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransform(a, b) { + var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; + if (ta[0] != tb[0] || ta[1] != tb[1]) { + s.push("translate(", null, ",", null, ")"); + q.push({ + i: 1, + x: d3_interpolateNumber(ta[0], tb[0]) + }, { + i: 3, + x: d3_interpolateNumber(ta[1], tb[1]) + }); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } else { + s.push(""); + } + if (ra != rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(s.pop() + "rotate(", null, ")") - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(s.pop() + "rotate(" + rb + ")"); + } + if (wa != wb) { + q.push({ + i: s.push(s.pop() + "skewX(", null, ")") - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(s.pop() + "skewX(" + wb + ")"); + } + if (ka[0] != kb[0] || ka[1] != kb[1]) { + n = s.push(s.pop() + "scale(", null, ",", null, ")"); + q.push({ + i: n - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, { + i: n - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + }); + } else if (kb[0] != 1 || kb[1] != 1) { + s.push(s.pop() + "scale(" + kb + ")"); + } + n = q.length; + return function(t) { + var i = -1, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, c = {}, k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolateByName(k)(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o; + a = a + "", b = b + ""; + d3_interpolate_number.lastIndex = 0; + for (i = 0; m = d3_interpolate_number.exec(b); ++i) { + if (m.index) s.push(b.substring(s0, s1 = m.index)); + q.push({ + i: s.length, + x: m[0] + }); + s.push(null); + s0 = d3_interpolate_number.lastIndex; + } + if (s0 < b.length) s.push(b.substring(s0)); + for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) { + o = q[i]; + if (o.x == m[0]) { + if (o.i) { + if (s[o.i + 1] == null) { + s[o.i - 1] += o.x; + s.splice(o.i, 1); + for (j = i + 1; j < n; ++j) q[j].i--; + } else { + s[o.i - 1] += o.x + s[o.i + 1]; + s.splice(o.i, 2); + for (j = i + 1; j < n; ++j) q[j].i -= 2; + } + } else { + if (s[o.i + 1] == null) { + s[o.i] = o.x; + } else { + s[o.i] = o.x + s[o.i + 1]; + s.splice(o.i + 1, 1); + for (j = i + 1; j < n; ++j) q[j].i--; + } + } + q.splice(i, 1); + n--; + i--; + } else { + o.x = d3_interpolateNumber(parseFloat(m[0]), parseFloat(o.x)); + } + } + while (i < n) { + o = q.pop(); + if (s[o.i + 1] == null) { + s[o.i] = o.x; + } else { + s[o.i] = o.x + s[o.i + 1]; + s.splice(o.i + 1, 1); + } + n--; + } + if (s.length === 1) { + return s[0] == null ? (o = q[0].x, function(t) { + return o(t) + ""; + }) : function() { + return b; + }; + } + return function(t) { + for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g; + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; + return f; + } + function d3_interpolateByName(name) { + return name == "transform" ? d3_interpolateTransform : d3_interpolate; + } + d3.interpolators = [ function(a, b) { + var t = typeof b; + return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : t === "object" ? Array.isArray(b) ? d3_interpolateArray : d3_interpolateObject : d3_interpolateNumber)(a, b); + } ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (;i < na; ++i) c[i] = a[i]; + for (;i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; + } + }); + var d3_ease_mode = d3.map({ + "in": d3_identity, + out: d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1)))); + }; + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * π / 2); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = .45; + if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return (x - a) * b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return Math.max(0, Math.min(1, (x - a) * b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], i = -1, n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; + function relayout() { + var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; + chords = []; + groups = []; + k = 0, i = -1; + while (++i < n) { + x = 0, j = -1; + while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (2 * π - padding * n) / k; + x = 0, i = -1; + while (++i < n) { + x0 = x, j = -1; + while (++j < n) { + var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }; + x += padding; + } + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value ? { + source: target, + target: source + } : { + source: source, + target: target + }); + } + } + } + if (sortChords) resort(); + } + function resort() { + chords.sort(function(a, b) { + return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + return chord; + }; + d3.layout.force = function() { + var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy); + if ((x2 - x1) * dn < theta) { + var k = quad.charge * dn * dn; + node.px -= dx * k; + node.py -= dy * k; + return true; + } + if (quad.point && isFinite(dn)) { + var k = quad.pointCharge * dn * dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + force.tick = function() { + if ((alpha *= .99) < .005) { + event.end({ + type: "end", + alpha: alpha = 0 + }); + return true; + } + var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = x * x + y * y) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: "tick", + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return theta; + theta = +x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) alpha = x; else alpha = 0; + } else if (x > 0) { + event.start({ + type: "start", + alpha: alpha = x + }); + d3.timer(force.tick); + } + return force; + }; + force.start = function() { + var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + var neighbors = neighbor(i), j = -1, m = neighbors.length, x; + while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x; + return Math.random() * size; + } + function neighbor() { + if (!neighbors) { + neighbors = []; + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + return neighbors[i]; + } + return force.resume(); + }; + force.resume = function() { + return force.alpha(.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); + }; + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); + } + return d3.rebind(force, event, "on"); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + d.px = d.x, d.py = d.y; + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, n = nodes.length, i = -1, c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; + function recurse(node, depth, nodes) { + var childs = children.call(hierarchy, node, depth); + node.depth = depth; + nodes.push(node); + if (childs && (n = childs.length)) { + var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d; + while (++i < n) { + d = recurse(childs[i], j, nodes); + d.parent = node; + c.push(d); + v += d.value; + } + if (sort) c.sort(sort); + if (value) node.value = v; + } else if (value) { + node.value = +value.call(hierarchy, node, depth) || 0; + } + return node; + } + function revalue(node, depth) { + var children = node.children, v = 0; + if (children && (n = children.length)) { + var i = -1, n, j = depth + 1; + while (++i < n) v += revalue(children[i], j); + } else if (value) { + v = +value.call(hierarchy, node, depth) || 0; + } + if (value) node.value = v; + return v; + } + function hierarchy(d) { + var nodes = []; + recurse(d, 0, nodes); + return nodes; + } + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + revalue(root, 0); + return root; + }; + return hierarchy; + }; + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + })); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, n, c, d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + function depth(node) { + var children = node.children, d = 0; + if (children && (n = children.length)) { + var i = -1, n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); + }; + d3.layout.pie = function() { + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π; + function pie(data) { + var values = data.map(function(d, i) { + return +value.call(pie, d, i); + }); + var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); + var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values); + var index = d3.range(data.length); + if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { + return values[j] - values[i]; + } : function(i, j) { + return sort(data[i], data[j]); + }); + var arcs = []; + index.forEach(function(i) { + var d; + arcs[i] = { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + return arcs; + } + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + return pie; + }; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; + function stack(data, index) { + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [ x.call(stack, v, i), y.call(stack, v, i) ]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var n = series.length, m = series[0].length, i, j, o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + return data; + } + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; + }; + function d3_layout_stackX(d) { + return d.x; + } + function d3_layout_stackY(d) { + return d.y; + } + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + "inside-out": function(data) { + var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), top = 0, bottom = 0, tops = [], bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + "default": d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, m = data[0].length, y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, j = 0, v = array[0][1], k, n = array.length; + for (;i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; + } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; + }; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [ d3.min(values), d3.max(values) ]; + } + d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ]; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0]; + function firstWalk(node, previousSibling) { + var children = node.children, layout = node._tree; + if (children && (n = children.length)) { + var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1; + while (++i < n) { + child = children[i]; + firstWalk(child, previousChild); + ancestor = apportion(child, previousChild, ancestor); + previousChild = child; + } + d3_layout_treeShift(node); + var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim); + if (previousSibling) { + layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); + layout.mod = layout.prelim - midpoint; + } else { + layout.prelim = midpoint; + } + } else { + if (previousSibling) { + layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); + } + } + } + function secondWalk(node, x) { + node.x = node._tree.prelim + x; + var children = node.children; + if (children && (n = children.length)) { + var i = -1, n; + x += node._tree.mod; + while (++i < n) { + secondWalk(children[i], x); + } + } + } + function apportion(node, previousSibling, ancestor) { + if (previousSibling) { + var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop._tree.ancestor = node; + shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift); + sip += shift; + sop += shift; + } + sim += vim._tree.mod; + sip += vip._tree.mod; + som += vom._tree.mod; + sop += vop._tree.mod; + } + if (vim && !d3_layout_treeRight(vop)) { + vop._tree.thread = vim; + vop._tree.mod += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom._tree.thread = vip; + vom._tree.mod += sip - som; + ancestor = node; + } + } + return ancestor; + } + d3_layout_treeVisitAfter(root, function(node, previousSibling) { + node._tree = { + ancestor: node, + prelim: 0, + mod: 0, + change: 0, + shift: 0, + number: previousSibling ? previousSibling._tree.number + 1 : 0 + }; + }); + firstWalk(root); + secondWalk(root, -root._tree.prelim); + var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1; + d3_layout_treeVisitAfter(root, function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = node.depth / y1 * size[1]; + delete node._tree; + }); + return nodes; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return size; + size = x; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); + }; + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(node) { + var children = node.children; + return children && children.length ? children[0] : node._tree.thread; + } + function d3_layout_treeRight(node) { + var children = node.children, n; + return children && (n = children.length) ? children[n - 1] : node._tree.thread; + } + function d3_layout_treeSearch(node, compare) { + var children = node.children; + if (children && (n = children.length)) { + var child, n, i = -1; + while (++i < n) { + if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) { + node = child; + } + } + } + return node; + } + function d3_layout_treeRightmost(a, b) { + return a.x - b.x; + } + function d3_layout_treeLeftmost(a, b) { + return b.x - a.x; + } + function d3_layout_treeDeepest(a, b) { + return a.depth - b.depth; + } + function d3_layout_treeVisitAfter(node, callback) { + function visit(node, previousSibling) { + var children = node.children; + if (children && (n = children.length)) { + var child, previousChild = null, i = -1, n; + while (++i < n) { + child = children[i]; + visit(child, previousChild); + previousChild = child; + } + } + callback(node, previousSibling); + } + visit(node, null); + } + function d3_layout_treeShift(node) { + var shift = 0, change = 0, children = node.children, i = children.length, child; + while (--i >= 0) { + child = children[i]._tree; + child.prelim += shift; + child.mod += shift; + shift += child.shift + (change += child.change); + } + } + function d3_layout_treeMove(ancestor, node, shift) { + ancestor = ancestor._tree; + node = node._tree; + var change = shift / (node.number - ancestor.number); + ancestor.change += change; + node.change -= change; + node.shift += shift; + node.prelim += shift; + node.mod += shift; + } + function d3_layout_treeAncestor(vim, node, ancestor) { + return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ]; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0]; + root.x = 0; + root.y = 0; + d3_layout_treeVisitAfter(root, function(d) { + d.r = Math.sqrt(d.value); + }); + d3_layout_treeVisitAfter(root, d3_layout_packSiblings); + var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h); + if (padding > 0) { + var dr = padding * k / 2; + d3_layout_treeVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_treeVisitAfter(root, d3_layout_packSiblings); + d3_layout_treeVisitAfter(root, function(d) { + d.r -= dr; + }); + k = Math.max(2 * root.r / w, 2 * root.r / h); + } + d3_layout_packTransform(root, w / 2, h / 2, 1 / k); + return nodes; + } + pack.size = function(x) { + if (!arguments.length) return size; + size = x; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); + }; + function d3_layout_packSort(a, b) { + return a.value - b.value; + } + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; + } + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; + } + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; + return dr * dr - dx * dx - dy * dy > .001; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } + } + d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ]; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; + d3_layout_treeVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; + d3_layout_treeVisitAfter(root, function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + return nodes; + } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return size; + size = x; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); + }; + function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); + } + function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, n = children.length, child, area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), remaining = children.slice(), child, row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + function worst(row, u) { + var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; + } + function position(row, u, rect, flush) { + var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } + } + function treemap(d) { + var nodes = stickies || hierarchy(d), root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([ root ], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); + } + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], + padConstant) : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; + } + function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { + x += dx / 2; + dx = 0; + } + if (dy < 0) { + y += dy / 2; + dy = 0; + } + return { + x: x, + y: y, + dx: dx, + dy: dy + }; + } + d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s / m; + }; + } + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [ start, stop ] : [ stop, start ]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); + } + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; + } + function d3_scale_nice(domain, nice) { + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; + } + if (nice = nice(x1 - x0)) { + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + } + return domain; + } + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; + } + d3.scale.linear = function() { + return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); + }; + function d3_scale_linear(domain, range, interpolate, clamp) { + var output, input; + function rescale() { + var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function() { + d3_scale_nice(domain, d3_scale_linearNice); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); + } + function d3_scale_linearRebind(scale, linear) { + return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); + } + function d3_scale_linearNice(dx) { + dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1); + return dx && { + floor: function(x) { + return Math.floor(x / dx) * dx; + }, + ceil: function(x) { + return Math.ceil(x / dx) * dx; + } + }; + } + function d3_scale_linearTickRange(domain, m) { + var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; + if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; + extent[2] = step; + return extent; + } + function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + } + function d3_scale_linearTickFormat(domain, m, format) { + var precision = -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01); + return d3.format(format ? format.replace(d3_format_re, function(a, b, c, d, e, f, g, h, i, j) { + return [ b, c, d, e, f, g, h, i || "." + (precision - (j === "%") * 2), j ].join(""); + }) : ",." + precision + "f"); + } + d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([ 0, Math.LN10 ]), 10, d3_scale_logp, d3_scale_powp, [ 1, 10 ]); + }; + function d3_scale_log(linear, base, log, pow, domain) { + function scale(x) { + return linear(log(x)); + } + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + if (x[0] < 0) log = d3_scale_logn, pow = d3_scale_pown; else log = d3_scale_logp, + pow = d3_scale_powp; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + return scale; + }; + scale.nice = function() { + linear.domain(d3_scale_nice(domain, nice).map(log)); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(linear.domain()), ticks = []; + if (extent.every(isFinite)) { + var b = Math.log(base), i = Math.floor(extent[0] / b), j = Math.ceil(extent[1] / b), u = pow(extent[0]), v = pow(extent[1]), n = base % 1 ? 2 : base; + if (log === d3_scale_logn) { + ticks.push(-Math.pow(base, -i)); + for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(-Math.pow(base, -i) * k); + } else { + for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(Math.pow(base, i) * k); + ticks.push(Math.pow(base, i)); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (arguments.length < 2) format = d3_scale_logFormat; + if (!arguments.length) return format; + var b = Math.log(base), k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12, + Math.floor) : (e = 1e-12, Math.ceil), e; + return function(d) { + return d / pow(b * f(log(d) / b + e)) <= k ? format(d) : ""; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, log, pow, domain); + }; + function nice() { + return log === d3_scale_logp ? { + floor: floor, + ceil: ceil + } : { + floor: function(x) { + return -ceil(-x); + }, + ceil: function(x) { + return -floor(-x); + } + }; + } + function floor(x) { + return Math.pow(base, Math.floor(Math.log(x) / Math.log(base))); + } + function ceil(x) { + return Math.pow(base, Math.ceil(Math.log(x) / Math.log(base))); + } + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format(".0e"); + function d3_scale_logp(x) { + return Math.log(x < 0 ? 0 : x); + } + function d3_scale_powp(x) { + return Math.exp(x); + } + function d3_scale_logn(x) { + return -Math.log(x > 0 ? 0 : -x); + } + function d3_scale_pown(x) { + return -Math.exp(-x); + } + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); + } + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function() { + return scale.domain(d3_scale_nice(domain, d3_scale_linearNice)); + }; + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; + } + d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); + }; + d3.scale.ordinal = function() { + return d3_scale_ordinal([], { + t: "range", + a: [ [] ] + }); + }; + function d3_scale_ordinal(domain, ranger) { + var index, range, rangeBand; + function scale(x) { + return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length]; + } + function steps(start, step) { + return d3.range(domain.length).map(function(i) { + return start + step * i; + }); + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map(); + var i = -1, n = x.length, xi; + while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = { + t: "range", + a: arguments + }; + return scale; + }; + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); + range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); + rangeBand = 0; + ranger = { + t: "rangePoints", + a: arguments + }; + return scale; + }; + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = { + t: "rangeBands", + a: arguments + }; + return scale; + }; + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; + range = steps(start + Math.round(error / 2), step); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = { + t: "rangeRoundBands", + a: arguments + }; + return scale; + }; + scale.rangeBand = function() { + return rangeBand; + }; + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + return scale.domain(domain); + } + d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); + }; + d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); + }; + d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); + }; + d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); + }; + var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ]; + var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ]; + var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ]; + var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ]; + d3.scale.quantile = function() { + return d3_scale_quantile([], []); + }; + function d3_scale_quantile(domain, range) { + var thresholds; + function rescale() { + var k = 0, q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + function scale(x) { + if (isNaN(x = +x)) return NaN; + return range[d3.bisect(thresholds, x)]; + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(function(d) { + return !isNaN(d); + }).sort(d3.ascending); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.quantiles = function() { + return thresholds; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); + } + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [ 0, 1 ]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + scale.domain = function(x) { + if (!arguments.length) return [ x0, x1 ]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([ .5 ], [ 0, 1 ]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + return range[d3.bisect(domain, x)]; + } + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([ 0, 1 ]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function arc() { + var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, + a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); + return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; + } + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [ Math.cos(a) * r, Math.sin(a) * r ]; + }; + return arc; + }; + var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6; + function d3_svg_arcInnerRadius(d) { + return d.innerRadius; + } + function d3_svg_arcOuterRadius(d) { + return d.outerRadius; + } + function d3_svg_arcStartAngle(d) { + return d.startAngle; + } + function d3_svg_arcEndAngle(d) { + return d.endAngle; + } + d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; + }; + function d3_svg_lineRadial(points) { + var point, i = -1, n = points.length, r, a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; + } + function d3_svg_area(projection) { + var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; + function area(data) { + var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { + return x; + } : d3_functor(x1), fy1 = y0 === y1 ? function() { + return y; + } : d3_functor(y1), x, y; + function segment() { + segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); + points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + if (points0.length) segment(); + return segments.length ? segments.join("") : null; + } + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? "M" : "L"; + return area; + }; + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + return area; + } + d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; + d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + d3.svg.area = function() { + return d3_svg_area(d3_identity); + }; + d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; + }; + d3.svg.chord = function() { + var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function chord(d, i) { + var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); + return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; + } + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [ r * Math.cos(a0), r * Math.sin(a0) ], + p1: [ r * Math.cos(a1), r * Math.sin(a1) ] + }; + } + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + function arc(r, p, a) { + return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + } + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; + } + d3.svg.diagonal = function() { + var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; + function diagonal(d, i) { + var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { + x: p0.x, + y: m + }, { + x: p3.x, + y: m + }, p3 ]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + return diagonal; + }; + function d3_svg_diagonalProjection(d) { + return [ d.x, d.y ]; + } + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; + return [ r * Math.cos(a), r * Math.sin(a) ]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); + } + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + return symbol; + }; + function d3_svg_symbolSize() { + return 64; + } + function d3_svg_symbolType() { + return "circle"; + } + function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; + } + var d3_svg_symbols = d3.map({ + circle: d3_svg_symbolCircle, + cross: function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; + }, + diamond: function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; + }, + square: function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; + } + }); + d3.svg.symbolTypes = d3_svg_symbols.keys(); + var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); + function d3_transition(groups, id) { + d3_arraySubclass(groups, d3_transitionPrototype); + groups.id = id; + return groups; + } + var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = { + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + d3_transitionPrototype.call = d3_selectionPrototype.call; + d3_transitionPrototype.empty = d3_selectionPrototype.empty; + d3_transitionPrototype.node = d3_selectionPrototype.node; + d3.transition = function(selection) { + return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); + }; + d3.transition.prototype = d3_transitionPrototype; + d3_transitionPrototype.select = function(selector) { + var id = this.id, subgroups = [], subgroup, subnode, node; + if (typeof selector !== "function") selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, id, node.__transition__[id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; + if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + transition = node.__transition__[id]; + subnodes = selector.call(node, node.__data__, i); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o; ) { + d3_transitionNode(subnode = subnodes[k], k, id, transition); + subgroup.push(subnode); + } + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i)) { + subgroup.push(node); + } + } + } + return d3_transition(subgroups, this.id, this.time).ease(this.ease()); + }; + d3_transitionPrototype.tween = function(name, tween) { + var id = this.id; + if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); + return d3_selection_each(this, tween == null ? function(node) { + node.__transition__[id].tween.remove(name); + } : function(node) { + node.__transition__[id].tween.set(name, tween); + }); + }; + function d3_transition_tween(groups, name, value, tween) { + var id = groups.id; + return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); + } : (value = tween(value), function(node) { + node.__transition__[id].tween.set(name, value); + })); + } + d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrTween(b) { + return b == null ? attrNull : (b += "", function() { + var a = this.getAttribute(name), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttribute(name, i(t)); + }); + }); + } + function attrTweenNS(b) { + return b == null ? attrNullNS : (b += "", function() { + var a = this.getAttributeNS(name.space, name.local), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttributeNS(name.space, name.local, i(t)); + }); + }); + } + return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { + this.setAttribute(name, f(t)); + }; + } + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + }; + } + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + priority = ""; + } + var interpolate = d3_interpolateByName(name); + function styleNull() { + this.style.removeProperty(name); + } + function styleString(b) { + return b == null ? styleNull : (b += "", function() { + var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.style.setProperty(name, i(t), priority); + }); + }); + } + return d3_transition_tween(this, "style." + name, value, styleString); + }; + d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + function styleTween(d, i) { + var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { + this.style.setProperty(name, f(t), priority); + }; + } + return this.tween("style." + name, styleTween); + }; + d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, "text", value, d3_transition_text); + }; + function d3_transition_text(b) { + if (b == null) b = ""; + return function() { + this.textContent = b; + }; + } + d3_transitionPrototype.remove = function() { + return this.each("end.transition", function() { + var p; + if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this); + }); + }; + d3_transitionPrototype.ease = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].ease; + if (typeof value !== "function") value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { + node.__transition__[id].ease = value; + }); + }; + d3_transitionPrototype.delay = function(value) { + var id = this.id; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0; + } : (value |= 0, function(node) { + node.__transition__[id].delay = value; + })); + }; + d3_transitionPrototype.duration = function(value) { + var id = this.id; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0); + } : (value = Math.max(1, value | 0), function(node) { + node.__transition__[id].duration = value; + })); + }; + d3_transitionPrototype.each = function(type, listener) { + var id = this.id; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node.__transition__[id]; + type.call(node, node.__data__, i, j); + }); + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } else { + d3_selection_each(this, function(node) { + node.__transition__[id].event.on(type, listener); + }); + } + return this; + }; + d3_transitionPrototype.transition = function() { + var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if (node = group[i]) { + transition = Object.create(node.__transition__[id0]); + transition.delay += transition.duration; + d3_transitionNode(node, i, id1, transition); + } + subgroup.push(node); + } + } + return d3_transition(subgroups, id1); + }; + function d3_transitionNode(node, i, id, inherit) { + var lock = node.__transition__ || (node.__transition__ = { + active: 0, + count: 0 + }), transition = lock[id]; + if (!transition) { + var time = inherit.time; + transition = lock[id] = { + tween: new d3_Map(), + event: d3.dispatch("start", "end"), + time: time, + ease: inherit.ease, + delay: inherit.delay, + duration: inherit.duration + }; + ++lock.count; + d3.timer(function(elapsed) { + var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = []; + return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1; + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + event.start.call(node, d, i); + transition.tween.forEach(function(key, value) { + if (value = value.call(node, d, i)) { + tweened.push(value); + } + }); + if (!tick(elapsed)) d3.timer(tick, 0, time); + return 1; + } + function tick(elapsed) { + if (lock.active !== id) return stop(); + var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length; + while (n > 0) { + tweened[--n].call(node, e); + } + if (t >= 1) { + stop(); + event.end.call(node, d, i); + return 1; + } + } + function stop() { + if (--lock.count) delete lock[id]; else delete node.__transition__; + return 1; + } + }, 0, time); + return transition; + } + } + d3.svg.axis = function() { + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_; + var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1); + var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform; + var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), + d3.transition(path)); + var scale1 = scale.copy(), scale0 = this.__chart__ || scale1; + this.__chart__ = scale1; + tickEnter.append("line"); + tickEnter.append("text"); + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); + switch (orient) { + case "bottom": + { + tickTransform = d3_svg_axisX; + subtickEnter.attr("y2", tickMinorSize); + subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize); + lineEnter.attr("y2", tickMajorSize); + textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding); + lineUpdate.attr("x2", 0).attr("y2", tickMajorSize); + textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding); + text.attr("dy", ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize); + break; + } + + case "top": + { + tickTransform = d3_svg_axisX; + subtickEnter.attr("y2", -tickMinorSize); + subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize); + lineEnter.attr("y2", -tickMajorSize); + textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)); + lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize); + textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)); + text.attr("dy", "0em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize); + break; + } + + case "left": + { + tickTransform = d3_svg_axisY; + subtickEnter.attr("x2", -tickMinorSize); + subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0); + lineEnter.attr("x2", -tickMajorSize); + textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)); + lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0); + textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "end"); + pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize); + break; + } + + case "right": + { + tickTransform = d3_svg_axisY; + subtickEnter.attr("x2", tickMinorSize); + subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0); + lineEnter.attr("x2", tickMajorSize); + textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding); + lineUpdate.attr("x2", tickMajorSize).attr("y2", 0); + textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "start"); + pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize); + break; + } + } + if (scale.ticks) { + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale1); + tickExit.call(tickTransform, scale1); + subtickEnter.call(tickTransform, scale0); + subtickUpdate.call(tickTransform, scale1); + subtickExit.call(tickTransform, scale1); + } else { + var dx = scale1.rangeBand() / 2, x = function(d) { + return scale1(d) + dx; + }; + tickEnter.call(tickTransform, x); + tickUpdate.call(tickTransform, x); + } + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x, y) { + if (!arguments.length) return tickMajorSize; + var n = arguments.length - 1; + tickMajorSize = +x; + tickMinorSize = n > 1 ? +y : tickMajorSize; + tickEndSize = n > 0 ? +arguments[n] : tickMajorSize; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function(x) { + if (!arguments.length) return tickSubdivide; + tickSubdivide = +x; + return axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { + return "translate(" + x(d) + ",0)"; + }); + } + function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { + return "translate(0," + y(d) + ")"; + }); + } + function d3_svg_axisSubdivide(scale, ticks, m) { + subticks = []; + if (m && ticks.length > 1) { + var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v; + while (++i < n) { + for (j = m; --j > 0; ) { + if ((v = +ticks[i] - j * d) >= extent[0]) { + subticks.push(v); + } + } + } + for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) { + subticks.push(v); + } + } + return subticks; + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain; + function brush(g) { + g.each(function() { + var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e; + g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); + bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); + fg.enter().append("rect").attr("class", "extent").style("cursor", "move"); + tz.enter().append("g").attr("class", function(d) { + return "resize " + d; + }).style("cursor", function(d) { + return d3_svg_brushCursor[d]; + }).append("rect").attr("x", function(d) { + return /[ew]$/.test(d) ? -3 : null; + }).attr("y", function(d) { + return /^[ns]/.test(d) ? -3 : null; + }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); + tz.style("display", brush.empty() ? "none" : null); + tz.exit().remove(); + if (x) { + e = d3_scaleRange(x); + bg.attr("x", e[0]).attr("width", e[1] - e[0]); + redrawX(g); + } + if (y) { + e = d3_scaleRange(y); + bg.attr("y", e[0]).attr("height", e[1] - e[0]); + redrawY(g); + } + redraw(g); + }); + } + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")"; + }); + } + function redrawX(g) { + g.select(".extent").attr("x", extent[0][0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]); + } + function redrawY(g) { + g.select(".extent").attr("y", extent[0][1]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]); + } + function brushstart() { + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset; + var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup); + if (dragging) { + origin[0] = extent[0][0] - origin[0]; + origin[1] = extent[0][1] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); + offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ]; + origin[0] = extent[ex][0]; + origin[1] = extent[ey][1]; + } else if (d3.event.altKey) center = origin.slice(); + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + event_({ + type: "brushstart" + }); + brushmove(); + d3_eventCancel(); + function mouse() { + var touches = d3.event.changedTouches; + return touches ? d3.touches(target, touches)[0] : d3.mouse(target); + } + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= extent[1][0]; + origin[1] -= extent[1][1]; + dragging = 2; + } + d3_eventCancel(); + } + } + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += extent[1][0]; + origin[1] += extent[1][1]; + dragging = 0; + d3_eventCancel(); + } + } + function brushmove() { + var point = mouse(), moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ]; + origin[0] = extent[+(point[0] < center[0])][0]; + origin[1] = extent[+(point[1] < center[1])][1]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: "brush", + mode: dragging ? "move" : "resize" + }); + } + } + function move1(point, scale, i) { + var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = Math.max(r0, Math.min(r1, point[i])); + if (dragging) { + max = (min += position) + size; + } else { + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0][i] !== min || extent[1][i] !== max) { + extentDomain = null; + extent[0][i] = min; + extent[1][i] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); + event_({ + type: "brushend" + }); + d3_eventCancel(); + } + } + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + z = extentDomain || extent; + if (x) { + x0 = z[0][0], x1 = z[1][0]; + if (!extentDomain) { + x0 = extent[0][0], x1 = extent[1][0]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + y0 = z[0][1], y1 = z[1][1]; + if (!extentDomain) { + y0 = extent[0][1], y1 = extent[1][1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; + } + extentDomain = [ [ 0, 0 ], [ 0, 0 ] ]; + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + extentDomain[0][0] = x0, extentDomain[1][0] = x1; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + extent[0][0] = x0 | 0, extent[1][0] = x1 | 0; + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + extentDomain[0][1] = y0, extentDomain[1][1] = y1; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + extent[0][1] = y0 | 0, extent[1][1] = y1 | 0; + } + return brush; + }; + brush.clear = function() { + extentDomain = null; + extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0; + return brush; + }; + brush.empty = function() { + return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1]; + }; + return d3.rebind(brush, event, "on"); + }; + var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" + }; + var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; + d3.time = {}; + var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; + function d3_time_utc() { + this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); + } + d3_time_utc.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S"; + var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step(date = local(new d3_time(date - 1)), 1); + return date; + } + function offset(date, k) { + step(date = new d3_time(+date), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_time = d3_time_utc; + var utc = new d3_time_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_time = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; + } + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_time = d3_time_utc; + var utc = new d3_time_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_time = Date; + } + }; + } + d3.time.year = d3_time_interval(function(date) { + date = d3.time.day(date); + date.setMonth(0, 1); + return date; + }, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, function(date) { + return date.getFullYear(); + }); + d3.time.years = d3.time.year.range; + d3.time.years.utc = d3.time.year.utc.range; + d3.time.day = d3_time_interval(function(date) { + var day = new d3_time(1970, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, function(date, offset) { + date.setDate(date.getDate() + offset); + }, function(date) { + return date.getDate() - 1; + }); + d3.time.days = d3.time.day.range; + d3.time.days.utc = d3.time.day.utc.range; + d3.time.dayOfYear = function(date) { + var year = d3.time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); + }; + d3_time_daySymbols.forEach(function(day, i) { + day = day.toLowerCase(); + i = 7 - i; + var interval = d3.time[day] = d3_time_interval(function(date) { + (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3.time.year(date).getDay(); + return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + d3.time[day + "s"] = interval.range; + d3.time[day + "s"].utc = interval.utc.range; + d3.time[day + "OfYear"] = function(date) { + var day = d3.time.year(date).getDay(); + return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7); + }; + }); + d3.time.week = d3.time.sunday; + d3.time.weeks = d3.time.sunday.range; + d3.time.weeks.utc = d3.time.sunday.utc.range; + d3.time.weekOfYear = d3.time.sundayOfYear; + d3.time.format = function(template) { + var n = template.length; + function format(date) { + var string = [], i = -1, j = 0, c, p, f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.substring(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); + string.push(c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0 + }, i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ("p" in d) d.H = d.H % 12 + d.p * 12; + var date = new d3_time(); + date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H, d.M, d.S, d.L); + return date; + }; + format.toString = function() { + return template; + }; + return format; + }; + function d3_time_parse(date, template, string, j) { + var c, p, i = 0, n = template.length, m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + p = d3_time_parsers[template.charAt(i++)]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); + } + function d3_time_formatLookup(names) { + var map = new d3_Map(), i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; + } + function d3_time_formatPad(value, fill, width) { + value += ""; + var length = value.length; + return length < width ? new Array(width - length + 1).join(fill) + value : value; + } + var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations); + var d3_time_formatPads = { + "-": "", + _: " ", + "0": "0" + }; + var d3_time_formats = { + a: function(d) { + return d3_time_dayAbbreviations[d.getDay()]; + }, + A: function(d) { + return d3_time_days[d.getDay()]; + }, + b: function(d) { + return d3_time_monthAbbreviations[d.getMonth()]; + }, + B: function(d) { + return d3_time_months[d.getMonth()]; + }, + c: d3.time.format(d3_time_formatDateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return d.getHours() >= 12 ? "PM" : "AM"; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2); + }, + x: d3.time.format(d3_time_formatDate), + X: d3.time.format(d3_time_formatTime), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + "%": function() { + return "%"; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.substring(i)); + return n ? i += n[0].length : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.substring(i)); + return n ? i += n[0].length : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.y = +n[0], i += n[0].length) : -1; + } + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1; + } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); + } + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.m = n[0] - 1, i += n[0].length) : -1; + } + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.d = +n[0], i += n[0].length) : -1; + } + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.H = +n[0], i += n[0].length) : -1; + } + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.M = +n[0], i += n[0].length) : -1; + } + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.S = +n[0], i += n[0].length) : -1; + } + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.L = +n[0], i += n[0].length) : -1; + } + var d3_time_numberRe = /^\s*\d+/; + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + var d3_time_amPmLookup = d3.map({ + am: 0, + pm: 1 + }); + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); + } + d3.time.format.utc = function(template) { + var local = d3.time.format(template); + function format(date) { + try { + d3_time = d3_time_utc; + var utc = new d3_time(); + utc._ = date; + return local(utc); + } finally { + d3_time = Date; + } + } + format.parse = function(string) { + try { + d3_time = d3_time_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_time = Date; + } + }; + format.toString = local.toString; + return format; + }; + var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ"); + d3.time.format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3.time.second = d3_time_interval(function(date) { + return new d3_time(Math.floor(date / 1e3) * 1e3); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, function(date) { + return date.getSeconds(); + }); + d3.time.seconds = d3.time.second.range; + d3.time.seconds.utc = d3.time.second.utc.range; + d3.time.minute = d3_time_interval(function(date) { + return new d3_time(Math.floor(date / 6e4) * 6e4); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, function(date) { + return date.getMinutes(); + }); + d3.time.minutes = d3.time.minute.range; + d3.time.minutes.utc = d3.time.minute.utc.range; + d3.time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, function(date) { + return date.getHours(); + }); + d3.time.hours = d3.time.hour.range; + d3.time.hours.utc = d3.time.hour.utc.range; + d3.time.month = d3_time_interval(function(date) { + date = d3.time.day(date); + date.setDate(1); + return date; + }, function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, function(date) { + return date.getMonth(); + }); + d3.time.months = d3.time.month.range; + d3.time.months.utc = d3.time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); + } + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + scale.nice = function(m) { + return scale.domain(d3_scale_nice(scale.domain(), function() { + return m; + })); + }; + scale.ticks = function(m, k) { + var extent = d3_scaleExtent(scale.domain()); + if (typeof m !== "function") { + var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target); + if (i == d3_time_scaleSteps.length) return methods.year(extent, m); + if (!i) return linear.ticks(m).map(d3_time_scaleDate); + if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i; + m = methods[i]; + k = m[1]; + m = m[0].range; + } + return m(extent[0], new Date(+extent[1] + 1), k); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + function d3_time_scaleFormat(formats) { + return function(date) { + var i = formats.length - 1, f = formats[i]; + while (!f[1](date)) f = formats[--i]; + return f[0](date); + }; + } + function d3_time_scaleSetYear(y) { + var d = new Date(y, 0, 1); + d.setFullYear(y); + return d; + } + function d3_time_scaleGetYear(d) { + var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1); + return y + (d - d0) / (d1 - d0); + } + var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; + var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ]; + var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) { + return d.getMonth(); + } ], [ d3.time.format("%b %d"), function(d) { + return d.getDate() != 1; + } ], [ d3.time.format("%a %d"), function(d) { + return d.getDay() && d.getDate() != 1; + } ], [ d3.time.format("%I %p"), function(d) { + return d.getHours(); + } ], [ d3.time.format("%I:%M"), function(d) { + return d.getMinutes(); + } ], [ d3.time.format(":%S"), function(d) { + return d.getSeconds(); + } ], [ d3.time.format(".%L"), function(d) { + return d.getMilliseconds(); + } ] ]; + var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats); + d3_time_scaleLocalMethods.year = function(extent, m) { + return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear); + }; + d3.time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); + }; + var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) { + return [ m[0].utc, m[1] ]; + }); + var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) { + return d.getUTCMonth(); + } ], [ d3.time.format.utc("%b %d"), function(d) { + return d.getUTCDate() != 1; + } ], [ d3.time.format.utc("%a %d"), function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } ], [ d3.time.format.utc("%I %p"), function(d) { + return d.getUTCHours(); + } ], [ d3.time.format.utc("%I:%M"), function(d) { + return d.getUTCMinutes(); + } ], [ d3.time.format.utc(":%S"), function(d) { + return d.getUTCSeconds(); + } ], [ d3.time.format.utc(".%L"), function(d) { + return d.getUTCMilliseconds(); + } ] ]; + var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats); + function d3_time_scaleUTCSetYear(y) { + var d = new Date(Date.UTC(y, 0, 1)); + d.setUTCFullYear(y); + return d; + } + function d3_time_scaleUTCGetYear(d) { + var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1); + return y + (d - d0) / (d1 - d0); + } + d3_time_scaleUTCMethods.year = function(extent, m) { + return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear); + }; + d3.time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat); + }; + d3.text = function() { + return d3.xhr.apply(d3, arguments).response(d3_text); + }; + function d3_text(request) { + return request.responseText; + } + d3.json = function(url, callback) { + return d3.xhr(url, "application/json", callback).response(d3_json); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3.xhr(url, "text/html", callback).response(d3_html); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = function() { + return d3.xhr.apply(d3, arguments).response(d3_xml); + }; + function d3_xml(request) { + return request.responseXML; + } + return d3; +}(); \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/js/sankey.js b/examples/util/rCharts_d3_sankey-gh-pages/js/sankey.js new file mode 100755 index 0000000..c3bc59f --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/js/sankey.js @@ -0,0 +1,292 @@ +d3.sankey = function() { + var sankey = {}, + nodeWidth = 24, + nodePadding = 8, + size = [1, 1], + nodes = [], + links = []; + + sankey.nodeWidth = function(_) { + if (!arguments.length) return nodeWidth; + nodeWidth = +_; + return sankey; + }; + + sankey.nodePadding = function(_) { + if (!arguments.length) return nodePadding; + nodePadding = +_; + return sankey; + }; + + sankey.nodes = function(_) { + if (!arguments.length) return nodes; + nodes = _; + return sankey; + }; + + sankey.links = function(_) { + if (!arguments.length) return links; + links = _; + return sankey; + }; + + sankey.size = function(_) { + if (!arguments.length) return size; + size = _; + return sankey; + }; + + sankey.layout = function(iterations) { + computeNodeLinks(); + computeNodeValues(); + computeNodeBreadths(); + computeNodeDepths(iterations); + computeLinkDepths(); + return sankey; + }; + + sankey.relayout = function() { + computeLinkDepths(); + return sankey; + }; + + sankey.link = function() { + var curvature = .5; + + function link(d) { + var x0 = d.source.x + d.source.dx, + x1 = d.target.x, + xi = d3.interpolateNumber(x0, x1), + x2 = xi(curvature), + x3 = xi(1 - curvature), + y0 = d.source.y + d.sy + d.dy / 2, + y1 = d.target.y + d.ty + d.dy / 2; + return "M" + x0 + "," + y0 + + "C" + x2 + "," + y0 + + " " + x3 + "," + y1 + + " " + x1 + "," + y1; + } + + link.curvature = function(_) { + if (!arguments.length) return curvature; + curvature = +_; + return link; + }; + + return link; + }; + + // Populate the sourceLinks and targetLinks for each node. + // Also, if the source and target are not objects, assume they are indices. + function computeNodeLinks() { + nodes.forEach(function(node) { + node.sourceLinks = []; + node.targetLinks = []; + }); + links.forEach(function(link) { + var source = link.source, + target = link.target; + if (typeof source === "number") source = link.source = nodes[link.source]; + if (typeof target === "number") target = link.target = nodes[link.target]; + source.sourceLinks.push(link); + target.targetLinks.push(link); + }); + } + + // Compute the value (size) of each node by summing the associated links. + function computeNodeValues() { + nodes.forEach(function(node) { + node.value = Math.max( + d3.sum(node.sourceLinks, value), + d3.sum(node.targetLinks, value) + ); + }); + } + + // Iteratively assign the breadth (x-position) for each node. + // Nodes are assigned the maximum breadth of incoming neighbors plus one; + // nodes with no incoming links are assigned breadth zero, while + // nodes with no outgoing links are assigned the maximum breadth. + function computeNodeBreadths() { + var remainingNodes = nodes, + nextNodes, + x = 0; + + while (remainingNodes.length) { + nextNodes = []; + remainingNodes.forEach(function(node) { + node.x = x; + node.dx = nodeWidth; + node.sourceLinks.forEach(function(link) { + nextNodes.push(link.target); + }); + }); + remainingNodes = nextNodes; + ++x; + } + + // + moveSinksRight(x); + scaleNodeBreadths((size[0] - nodeWidth) / (x - 1)); + } + + function moveSourcesRight() { + nodes.forEach(function(node) { + if (!node.targetLinks.length) { + node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1; + } + }); + } + + function moveSinksRight(x) { + nodes.forEach(function(node) { + if (!node.sourceLinks.length) { + node.x = x - 1; + } + }); + } + + function scaleNodeBreadths(kx) { + nodes.forEach(function(node) { + node.x *= kx; + }); + } + + function computeNodeDepths(iterations) { + var nodesByBreadth = d3.nest() + .key(function(d) { return d.x; }) + .sortKeys(d3.ascending) + .entries(nodes) + .map(function(d) { return d.values; }); + + // + initializeNodeDepth(); + resolveCollisions(); + for (var alpha = 1; iterations > 0; --iterations) { + relaxRightToLeft(alpha *= .99); + resolveCollisions(); + relaxLeftToRight(alpha); + resolveCollisions(); + } + + function initializeNodeDepth() { + var ky = d3.min(nodesByBreadth, function(nodes) { + return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value); + }); + + nodesByBreadth.forEach(function(nodes) { + nodes.forEach(function(node, i) { + node.y = i; + node.dy = node.value * ky; + }); + }); + + links.forEach(function(link) { + link.dy = link.value * ky; + }); + } + + function relaxLeftToRight(alpha) { + nodesByBreadth.forEach(function(nodes, breadth) { + nodes.forEach(function(node) { + if (node.targetLinks.length) { + var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value); + node.y += (y - center(node)) * alpha; + } + }); + }); + + function weightedSource(link) { + return center(link.source) * link.value; + } + } + + function relaxRightToLeft(alpha) { + nodesByBreadth.slice().reverse().forEach(function(nodes) { + nodes.forEach(function(node) { + if (node.sourceLinks.length) { + var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value); + node.y += (y - center(node)) * alpha; + } + }); + }); + + function weightedTarget(link) { + return center(link.target) * link.value; + } + } + + function resolveCollisions() { + nodesByBreadth.forEach(function(nodes) { + var node, + dy, + y0 = 0, + n = nodes.length, + i; + + // Push any overlapping nodes down. + nodes.sort(ascendingDepth); + for (i = 0; i < n; ++i) { + node = nodes[i]; + dy = y0 - node.y; + if (dy > 0) node.y += dy; + y0 = node.y + node.dy + nodePadding; + } + + // If the bottommost node goes outside the bounds, push it back up. + dy = y0 - nodePadding - size[1]; + if (dy > 0) { + y0 = node.y -= dy; + + // Push any overlapping nodes back up. + for (i = n - 2; i >= 0; --i) { + node = nodes[i]; + dy = node.y + node.dy + nodePadding - y0; + if (dy > 0) node.y -= dy; + y0 = node.y; + } + } + }); + } + + function ascendingDepth(a, b) { + return a.y - b.y; + } + } + + function computeLinkDepths() { + nodes.forEach(function(node) { + node.sourceLinks.sort(ascendingTargetDepth); + node.targetLinks.sort(ascendingSourceDepth); + }); + nodes.forEach(function(node) { + var sy = 0, ty = 0; + node.sourceLinks.forEach(function(link) { + link.sy = sy; + sy += link.dy; + }); + node.targetLinks.forEach(function(link) { + link.ty = ty; + ty += link.dy; + }); + }); + + function ascendingSourceDepth(a, b) { + return a.source.y - b.source.y; + } + + function ascendingTargetDepth(a, b) { + return a.target.y - b.target.y; + } + } + + function center(node) { + return node.y + node.dy / 2; + } + + function value(link) { + return link.value; + } + + return sankey; +}; diff --git a/examples/util/rCharts_d3_sankey-gh-pages/layouts/chart.html b/examples/util/rCharts_d3_sankey-gh-pages/layouts/chart.html new file mode 100755 index 0000000..df57f55 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/layouts/chart.html @@ -0,0 +1,122 @@ + + + diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/404.html b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/404.html new file mode 100755 index 0000000..0446544 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/404.html @@ -0,0 +1,157 @@ + + + + + Page Not Found :( + + + +
+

Not found :(

+

Sorry, but the page you were trying to view does not exist.

+

It looks like this was the result of either:

+
    +
  • a mistyped address
  • +
  • an out-of-date link
  • +
+ + +
+ + diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.css b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.css new file mode 100755 index 0000000..9259d26 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.css @@ -0,0 +1,1058 @@ +/*! + * Bootstrap Responsive v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .dropdown-menu a:hover { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:hover { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: block; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-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); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.min.css b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.min.css new file mode 100755 index 0000000..7b0158d --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade.in{top:auto}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-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)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.css b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.css new file mode 100755 index 0000000..9fa6f76 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.css @@ -0,0 +1,5774 @@ +/*! + * Bootstrap v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +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-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +.text-warning { + color: #c09853; +} + +.text-error { + color: #b94a48; +} + +.text-info { + color: #3a87ad; +} + +.text-success { + color: #468847; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 1; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1 { + font-size: 36px; + line-height: 40px; +} + +h2 { + font-size: 30px; + line-height: 40px; +} + +h3 { + font-size: 24px; + line-height: 40px; +} + +h4 { + font-size: 18px; + line-height: 20px; +} + +h5 { + font-size: 14px; + line-height: 20px; +} + +h6 { + font-size: 12px; + line-height: 20px; +} + +h1 small { + font-size: 24px; +} + +h2 small { + font-size: 18px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.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; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 25px; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 9px; + font-size: 14px; + line-height: 20px; + color: #555555; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-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 linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; + cursor: pointer; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +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; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 18px; + padding-left: 18px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"] { + float: left; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-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; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-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; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-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; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info > label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + margin-bottom: 5px; + font-size: 0; + white-space: nowrap; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + font-size: 14px; + vertical-align: top; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append .add-on, +.input-append .btn { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child, +.table-bordered tfoot:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child, +.table-bordered tfoot:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.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 [class*=span], +.row-fluid table [class*=span] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table .span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table .span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table .span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table .span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table .span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table .span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table .span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table .span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table .span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table .span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table .span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table .span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table .span13 { + float: none; + width: 1004px; + margin-left: 0; +} + +.table .span14 { + float: none; + width: 1084px; + margin-left: 0; +} + +.table .span15 { + float: none; + width: 1164px; + margin-left: 0; +} + +.table .span16 { + float: none; + width: 1244px; + margin-left: 0; +} + +.table .span17 { + float: none; + width: 1324px; + margin-left: 0; +} + +.table .span18 { + float: none; + width: 1404px; + margin-left: 0; +} + +.table .span19 { + float: none; + width: 1484px; + margin-left: 0; +} + +.table .span20 { + float: none; + width: 1564px; + margin-left: 0; +} + +.table .span21 { + float: none; + width: 1644px; + margin-left: 0; +} + +.table .span22 { + float: none; + width: 1724px; + margin-left: 0; +} + +.table .span23 { + float: none; + width: 1804px; + margin-left: 0; +} + +.table .span24 { + float: none; + width: 1884px; + margin-left: 0; +} + +.table tbody tr.success td { + background-color: #dff0d8; +} + +.table tbody tr.error td { + background-color: #f2dede; +} + +.table tbody tr.warning td { + background-color: #fcf8e3; +} + +.table tbody tr.info td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/active states of certain elements */ + +.icon-white, +.nav-tabs > .active > a > [class^="icon-"], +.nav-tabs > .active > a > [class*=" icon-"], +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu li > a:focus, +.dropdown-submenu:hover > a { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; + background-color: #0081c2; + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu .disabled > a, +.dropdown-menu .disabled > a:hover { + color: #999999; +} + +.dropdown-menu .disabled > a:hover { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-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-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 14px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + *line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #bbbbbb; + *border: 0; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-bottom-color: #a2a2a2; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + *background-color: #d9d9d9; + /* Buttons in IE7 don't get borders, so darken on hover */ + + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-color: #e6e6e6; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 9px 14px; + font-size: 16px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.btn-large [class^="icon-"] { + margin-top: 2px; +} + +.btn-small { + padding: 3px 9px; + font-size: 12px; + line-height: 18px; +} + +.btn-small [class^="icon-"] { + margin-top: 0; +} + +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 17px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn { + border-color: #c5c5c5; + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-image: -moz-linear-gradient(top, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-toolbar .btn + .btn, +.btn-toolbar .btn-group + .btn, +.btn-toolbar .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 11px; +} + +.btn-group > .btn-small { + font-size: 12px; +} + +.btn-group > .btn-large { + font-size: 16px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-mini .caret, +.btn-small .caret, +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.dropup .btn-large .caret { + border-top: 0; + border-bottom: 5px solid #000000; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical .btn { + display: block; + float: none; + width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + color: #c09853; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; + color: #777777; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + width: 100%; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse { + color: #999999; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-image: -moz-linear-gradient(top, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb .active { + color: #999999; +} + +.pagination { + height: 40px; + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 0 14px; + line-height: 38px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager a, +.pager span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next a, +.pager .next span { + float: right; +} + +.pager .previous a { + float: left; +} + +.pager .disabled a, +.pager .disabled a:hover, +.pager .disabled span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-open .modal .dropdown-menu { + z-index: 2050; +} + +.modal-open .modal .dropdown.open { + *z-index: 2050; +} + +.modal-open .modal .popover { + z-index: 2060; +} + +.modal-open .modal .tooltip { + z-index: 2080; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + width: 560px; + margin: -250px 0 0 -280px; + overflow: auto; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + 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; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + margin-top: -3px; +} + +.tooltip.right { + margin-left: 3px; +} + +.tooltip.bottom { + margin-top: 3px; +} + +.tooltip.left { + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + 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.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; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + width: 236px; + padding: 1px; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-bottom: 10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-right: 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; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: inline-block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow:after { + z-index: -1; + content: ""; +} + +.popover.top .arrow { + bottom: -10px; + left: 50%; + margin-left: -10px; + border-top-color: #ffffff; + border-width: 10px 10px 0; +} + +.popover.top .arrow:after { + bottom: -1px; + left: -11px; + border-top-color: rgba(0, 0, 0, 0.25); + border-width: 11px 11px 0; +} + +.popover.right .arrow { + top: 50%; + left: -10px; + margin-top: -10px; + border-right-color: #ffffff; + border-width: 10px 10px 10px 0; +} + +.popover.right .arrow:after { + bottom: -11px; + left: -1px; + border-right-color: rgba(0, 0, 0, 0.25); + border-width: 11px 11px 11px 0; +} + +.popover.bottom .arrow { + top: -10px; + left: 50%; + margin-left: -10px; + border-bottom-color: #ffffff; + border-width: 0 10px 10px; +} + +.popover.bottom .arrow:after { + top: -1px; + left: -11px; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-width: 0 11px 11px; +} + +.popover.left .arrow { + top: 50%; + right: -10px; + margin-top: -10px; + border-left-color: #ffffff; + border-width: 10px 0 10px 10px; +} + +.popover.left .arrow:after { + right: -1px; + bottom: -11px; + border-left-color: rgba(0, 0, 0, 0.25); + border-width: 11px 0 11px 11px; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.label, +.badge { + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + padding: 1px 4px 2px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding: 1px 9px 2px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +a.label:hover, +a.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-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; + } +} + +@-ms-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: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-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; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-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-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + 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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + 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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + 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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + 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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + 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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel .item > img { + display: block; + line-height: 1; +} + +.carousel .active, +.carousel .next, +.carousel .prev { + display: block; +} + +.carousel .active { + left: 0; +} + +.carousel .next, +.carousel .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel .next { + left: 100%; +} + +.carousel .prev { + left: -100%; +} + +.carousel .next.left, +.carousel .prev.right { + left: 0; +} + +.carousel .active.left { + left: -100%; +} + +.carousel .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.min.css b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.min.css new file mode 100755 index 0000000..31d8b96 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}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-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}.text-warning{color:#c09853}.text-error{color:#b94a48}.text-info{color:#3a87ad}.text-success{color:#468847}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.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}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-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 linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal;cursor:pointer}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,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}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"]{float:left}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-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}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-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}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-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}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;font-size:14px;vertical-align:top;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on,.input-append .btn{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topleft:4px}.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 [class*=span],.row-fluid table [class*=span]{display:table-cell;float:none;margin-left:0}.table .span1{float:none;width:44px;margin-left:0}.table .span2{float:none;width:124px;margin-left:0}.table .span3{float:none;width:204px;margin-left:0}.table .span4{float:none;width:284px;margin-left:0}.table .span5{float:none;width:364px;margin-left:0}.table .span6{float:none;width:444px;margin-left:0}.table .span7{float:none;width:524px;margin-left:0}.table .span8{float:none;width:604px;margin-left:0}.table .span9{float:none;width:684px;margin-left:0}.table .span10{float:none;width:764px;margin-left:0}.table .span11{float:none;width:844px;margin-left:0}.table .span12{float:none;width:924px;margin-left:0}.table .span13{float:none;width:1004px;margin-left:0}.table .span14{float:none;width:1084px;margin-left:0}.table .span15{float:none;width:1164px;margin-left:0}.table .span16{float:none;width:1244px;margin-left:0}.table .span17{float:none;width:1324px;margin-left:0}.table .span18{float:none;width:1404px;margin-left:0}.table .span19{float:none;width:1484px;margin-left:0}.table .span20{float:none;width:1564px;margin-left:0}.table .span21{float:none;width:1644px;margin-left:0}.table .span22{float:none;width:1724px;margin-left:0}.table .span23{float:none;width:1804px;margin-left:0}.table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-tabs>.active>a>[class^="icon-"],.nav-tabs>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:linear-gradient(to bottom,#08c,#0077b3);background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-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-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 14px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^="icon-"]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:17px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-image:-moz-linear-gradient(top,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-image:-moz-linear-gradient(top,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible;color:#777}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;width:100%;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse{color:#999}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-image:-moz-linear-gradient(top,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#ccc}.breadcrumb .active{color:#999}.pagination{height:40px;margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:0 14px;line-height:38px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a,.pager span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a,.pager .next span{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover,.pager .disabled span{color:#999;cursor:default;background-color:#fff}.modal-open .modal .dropdown-menu{z-index:2050}.modal-open .modal .dropdown.open{*z-index:2050}.modal-open .modal .popover{z-index:2060}.modal-open .modal .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;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}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;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.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}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right: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;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{z-index:-1;content:""}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-top-color:#fff;border-width:10px 10px 0}.popover.top .arrow:after{bottom:-1px;left:-11px;border-top-color:rgba(0,0,0,0.25);border-width:11px 11px 0}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-right-color:#fff;border-width:10px 10px 10px 0}.popover.right .arrow:after{bottom:-11px;left:-1px;border-right-color:rgba(0,0,0,0.25);border-width:11px 11px 11px 0}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-bottom-color:#fff;border-width:0 10px 10px}.popover.bottom .arrow:after{top:-1px;left:-11px;border-bottom-color:rgba(0,0,0,0.25);border-width:0 11px 11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-left-color:#fff;border-width:10px 0 10px 10px}.popover.left .arrow:after{right:-1px;bottom:-11px;border-left-color:rgba(0,0,0,0.25);border-width:11px 0 11px 11px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-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}}@-ms-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:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-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;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-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-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:30px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/main.css b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/main.css new file mode 100755 index 0000000..c13ae33 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/css/main.css @@ -0,0 +1,24 @@ + + +/* ========================================================================== + Author's custom styles + ========================================================================== */ + +/*.container { + width: 940px; +}*/ + + + + + + + + + + + + + + + diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/humans.txt b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/humans.txt new file mode 100755 index 0000000..5b037cf --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/humans.txt @@ -0,0 +1,15 @@ +# humanstxt.org/ +# The humans responsible & technology colophon + +# TEAM + + -- -- + +# THANKS + + + +# TECHNOLOGY COLOPHON + + HTML5, CSS3 + jQuery, Modernizr diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-114x114-precomposed.png b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-114x114-precomposed.png new file mode 100755 index 0000000000000000000000000000000000000000..11477d52e5b8add17752353ab84e34da46a21fc1 GIT binary patch literal 2042 zcmVqSzyRm zDacnT*u&|EChT`kUAE7V^u z)Lt&jSt`z2DbQUl)?Y2uT`bI8E!JHt%vveVSt=zXBGFzgAt52+WilWjAKqj!M`&{A zXEGusBuHy?>}oXJV=)&VAyzggL}P0=DNKY_JQrTiKDkdVzWjr-c zRvRWLB{ewRVJ;vjDaBbWhR#D8000IxNkl7$G1cLoU=nzQw{P;zs)38el17_x zlJ$+O+$>f7J)tD97f7#SmnVK$jv0^EP$X%1h;Wh|Y_CB{(qN7Sk`Q#6ewXGLSxJWK ztw?f`U$yQ@)V2o|Nrz*RWTfd2A@iM8nbsi`Mna|AN*`k0{WTbfn-bUu>F@N#Ctu~8 z#o|b_mF|S{-rb))6hK6+Kx(ezO_)6eyf zuTS%f)%%`;pO`YS-+XVSbxr>&t*dqOdXwC~`0(Z2UE?~E2a@O~nLa!6i`DXJO&A8_ za44-{9Cd^0Weg`3+-ki?J_s|PDrmT9nvzsf;NY{ zM3I$yCiw*>I3`NS&7((xkW)AG?zqWl-%he$<5>& z(4$!#4|K;%X*70jRWuwce8dNhDg>Pks-5V3>o!!8wRMT@1B)=i2%Y&AfaFq<*u7Zb zG-W)W#eaB2kk_xNcx?}#u2R0Wi2vF(qt~>dD2!htnWj}*O)=`avdS#9uHz8If;J_Y zspuXo*%B<66bc0!SOnb^p)mjTCB4xkWlKwL9`ij$@y9*M`EtK=L*qJ=yUL-|o^4Z5QC3OsN~4uK`m4V zRJ(w4pA`=h33NUcs>XaJ;dDDzAr53){+S9_=2z!;w~GT&97s^9M(PzEh`m0pEE5M3 z3F}M{VE4s~D_PobM|wZ>IFOx2-LDKsk2*On6S(+k8#UD!km}I?>uD}at&r`y`Aph} zHK z_Xjs$u^T)BF>>y$hRccilQMO@bWzfbSuL|=)~?!ah*$0ikw`Gli&%Az9-!L^eiJXJ z(jQ*V?G{~SXX`YS+KluVo(QQ8%!)%i`8*R)X}mY}v|KPP9rZf7EUxU_P+XtY$&hlx zA#ynxsS3_EUR?p7D9kx$q2;rY=d%PzSPiQz%O1`~S_vmqZzsMv20{;Fz2bbyc7x_K zlp$Fq8hl{cN>O~!tf`+E$WsV)=yR4W(<|3!zXJ(UK4-IZAWh*0xd-s)2xC^Qur<$T zAv#i}t3}E{rA6Q_E|`~L1A1bvTHgAs!be7ekTzv|iPHd4`j@3?qxqo;-bgPhQlsVq zx)}$ao4~FyP+V$%bi46cK5}7KUwR5&qL;&U_;2hMog-@OvyqX|3bw{l3F|q8!0IPtM+?^xDRl*Oh*=iH}YqB0=AVxaCs9wn+a literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-144x144-precomposed.png b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-144x144-precomposed.png new file mode 100755 index 0000000000000000000000000000000000000000..33051de0a63dc4674fe32249f378e467843a54d8 GIT binary patch literal 1795 zcmV+e2mJVnP)FwA|xX%L`t<(DCN3^?MKIuHGu3TF zLoXyKFfb)5D$iXmSvo8vC?_f>BrP~OWI88CW^dAEIo4n=)n6{uUoO#IEy`Ic%vvkc zUM!Wi2{9 zCMzp0JU-xOH7Yka!B#0JF*1xsCoo7(HBVMDN>D99M#Wt*+GI4uSS#LUHD5R;&0H-r zO;t8cQqf*6XgnyoR4LkNI<8PCJ}@YNNib12E5KklbUr4SQZ%bsHjhv_?9B=eXiNzR7h70tez48P9nq3P5IkLI zB}O(=1Dbb0WHU9O;~fXImcY#{1t47PLF*$1A>2$EX#T-zh9TvE#+8Ah3kcegw3%_P z#oluz29pjb1d2d?ZqQ$HHZ#t(m>bmGYz#M30fH&!z|6TfQv&L{-xl{~N?Fynv*6@Y^GJ3-rd+|0ai5Jc{f%)tn5cHyAszmU8n zn_VC%xcwu^zj;{3%`O-eK?mj;Zngp!3xeTCoJiQr@V(g2oHRGXNCSaLVn6ZnC;%d{ zPazJ9d@YcpTihH8eCf5h#>(dA5`b_+!GT*{Om6}pRIek6fT$?>=aUb*l*}stD^zFM zKR^-z(UQ93VfCyt4IvQ_E$MUV$;1I>Lv>evKbYl$_$7TPIarTNR1^SVNisQmte&k7 z&mWf1WLVNi(lV3<$dP&gJru+*Ne(A0P!9$1OZrAagzBLneo5Ce-<~t!fM`7w#4qX7 zbER32N$MHJdMHSsB>x<{o_>*f5F}F4cRsU`7p@0EA|>taeeWX`ZapS)e1Nc|k3EOg zGb&sUf`m)*#;HsL6a?#`Ao(So@ao9{Nc@``VE58zf+_LpDPui;L9`?>&q?0o)g%8^ z2S7!{GXRj==hPz&go$Qu3*-rVyJ~rp)+4{6$Zes-V3obeuu1BX4jR5El%CdGA7lG= zJu}FW1j5C{KpD1~L&AEbgJ9~OVC>E8+?Yg;e9+@B1j9CKWxR`^<2_LjZicsH<%3}A z2jSpmwGea*lzeHpyzy@ zv~PzMO~?+B2g77DxgfaOdB(#iK&sBtKMSyXx$|+dnOso5bFqy)SQGVDQUK9Ifz2d> z0uS3_1ls?KpRgdm(SC@p%?$Cy+D_J+=)A#FE&#+UZ3mIfWPOE6H^n*-Rn`{=xH{*jF=2e*xHm(Ah^=}=7(oo%`_0K`r6D8 zUTh-^W|4BrDQNJMKk>7fA-Gs6&cB*NXAA*>64^`=sHbW_bHP)nKQ}SHSS>b5O*KtZ>5~p10008BNkl_yS(Xj~suE*HxF4$B{@Ryhn0fZF2oWloy|rx+)SY>-YNum(ssG z%xaL7$Lkl9@Jn@n2HQ%Ag?i%fOL0t2EG|V$05J(o%GkN|?CJfS3zt2Of%#zs5hj(f z>qC+7U3eC;D+5`46Y#OeVLZnz0|CM%KDKzefyIu$Aue&641c{%cy4NUH=h>=LV#4H zC34l8$ntI``aym}70I~Dm@F3wb7n?_YLYP>Ug_lg`PmqMH^ZCbK~+gv%1K$!Nm`c4 zvRF6M1ym(;(FHMAwB2N_4%)=Ws+CycXZnGPWK26co6S}gw{&mSvO|l{gHqj0Jg6cm zOEsH)U43q}|^D=I{8nt#Z6ld^ zt6p4h2|7cdc@wFg%6EAg+O>TZayFXgVxaXB=znEyy4ZFS^b>s~N9NrC?*h=u%j;0v zTLz)qNfOThx*Hbe+$#4I#M}s?`++P(?InWXfBo)zlt5QP9p*P$e#&n*T+N990000< KMNUMnLSTYR$luEV literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-72x72-precomposed.png b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon-72x72-precomposed.png new file mode 100755 index 0000000000000000000000000000000000000000..f72c966fef9a7705a2ffca568b9e02b14140266f GIT binary patch literal 1351 zcmV-N1-SZ&P)=B``};7#|`>XmUnpa3LTcA|oP5Yjrg%B```+MP_j2W-**h zDm_|aEk#QuDk|P>C4*hDIwUGBhbOG~8h?dqF7DTq@OED$ZIe*ugTP!3dB`{1=$XF@gVlT;9Dy&f}FGo(wSt?2~CDC0iM{0A+St>J6R@-ASA0HoA zH76`OJt86^Ej>XTDlXSxFC{uazFjoKSuB)GE8t`?FG*0{VlFE-IMiM&$XYC7HznL+ zFdZf*<76<_UoO*LF0xW8(OfKRJ0;RxE$3%4q)sUy9v(wuYd~CN)nYQwUoa#jBV#-& zX*?+DX*1bgDX zH8V<2$X6*PBO)p-EXZLtw>Psv000AmNkl@YJk!!R@BVP@uK zdi8a0viqOdGwLYG)oSW0Qk2qHj@ni-)tV4fs5=qlNr?!Hu0_`(Bu_@vN(N+kd=ZuK z1#DlEpc+*qw14HCs-Z&TihR!xTrWlSj6q|GP-gyl(Qgw)akVv;NT_)1=bE!7slSaW z^4<2_K5(g$2yLT?(2aS!=jhlkiK1k*jUa+Dk7udZ_JJfKlo_U@TSi+A+Q=en*?YUk z(>!wcB}tS5t&v3(*Yq@-&7}*?DMH%_A|Z6t#MnPV+bAN$yx-n5h}ofSBoW2MHe;Cl zg?0vQWRbPZ9_z8RQGzz22$`UiZ%cjA_M+b=Nwz=>0auC=8D%>vKn4L$=eerP94tBj1SX;dX{&j-IJHVXs?$Zr?9q$^98 z0*qDE6>fyy1b2oZpFY@{<9S`@8zncg9uZ2Y?B!?QknpY?YY$wsZeUDO%xN%+;8|Jk z&(ZnpbVfF%!6>e{va@?N-k<~K_z~(_MKJ1T?-iC`c7qEat#d$R85LZs9$KmHcz-m_ zF^R0Bs@|#<@4`lZPL_u`CXr>-+I+27Wwbvk@UZ&*G8Kpp1KiP1ZB~OJtA>mE?n=uW^tSJa{7cQg0lTO zru;VI(0;1yMe5}`W(wMdT(lT2W7zVi%-r(b#5*=x#zdfvDC(CzG&J={u`=VLd3tVZ z;~tAeQD_@VB-~;Pg+esyOWf7ze@?^$?l@d86zXMY8)}h*%@x>qdn-lrI;N4L{s=vN zo6CivjV!`t<;SdXLQAxc;rR}OD4`u^b5D!VMik+)ulEiZe8a#PXG=ynSaYzC3(!Us zA;od$n459+=fI7SLZ5zz?~N>?xb;v5U*-N|0**QoDtmFHP)nKQ}SHSS>b5O*KtZ>5~p10008BNkl_yS(Xj~suE*HxF4$B{@Ryhn0fZF2oWloy|rx+)SY>-YNum(ssG z%xaL7$Lkl9@Jn@n2HQ%Ag?i%fOL0t2EG|V$05J(o%GkN|?CJfS3zt2Of%#zs5hj(f z>qC+7U3eC;D+5`46Y#OeVLZnz0|CM%KDKzefyIu$Aue&641c{%cy4NUH=h>=LV#4H zC34l8$ntI``aym}70I~Dm@F3wb7n?_YLYP>Ug_lg`PmqMH^ZCbK~+gv%1K$!Nm`c4 zvRF6M1ym(;(FHMAwB2N_4%)=Ws+CycXZnGPWK26co6S}gw{&mSvO|l{gHqj0Jg6cm zOEsH)U43q}|^D=I{8nt#Z6ld^ zt6p4h2|7cdc@wFg%6EAg+O>TZayFXgVxaXB=znEyy4ZFS^b>s~N9NrC?*h=u%j;0v zTLz)qNfOThx*Hbe+$#4I#M}s?`++P(?InWXfBo)zlt5QP9p*P$e#&n*T+N990000< KMNUMnLSTYR$luEV literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon.png b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/ico/apple-touch-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..214e44541ed3374cbedcf773b766d847b99dac6f GIT binary patch literal 1144 zcmV-;1c&>HP)nKQ}SHSS>b5O*KtZ>5~p10008BNkl_yS(Xj~suE*HxF4$B{@Ryhn0fZF2oWloy|rx+)SY>-YNum(ssG z%xaL7$Lkl9@Jn@n2HQ%Ag?i%fOL0t2EG|V$05J(o%GkN|?CJfS3zt2Of%#zs5hj(f z>qC+7U3eC;D+5`46Y#OeVLZnz0|CM%KDKzefyIu$Aue&641c{%cy4NUH=h>=LV#4H zC34l8$ntI``aym}70I~Dm@F3wb7n?_YLYP>Ug_lg`PmqMH^ZCbK~+gv%1K$!Nm`c4 zvRF6M1ym(;(FHMAwB2N_4%)=Ws+CycXZnGPWK26co6S}gw{&mSvO|l{gHqj0Jg6cm zOEsH)U43q}|^D=I{8nt#Z6ld^ zt6p4h2|7cdc@wFg%6EAg+O>TZayFXgVxaXB=znEyy4ZFS^b>s~N9NrC?*h=u%j;0v zTLz)qNfOThx*Hbe+$#4I#M}s?`++P(?InWXfBo)zlt5QP9p*P$e#&n*T+N990000< KMNUMnLSTYR$luEV literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/img/glyphicons-halflings-white.png b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/img/glyphicons-halflings-white.png new file mode 100755 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/img/glyphicons-halflings.png b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/img/glyphicons-halflings.png new file mode 100755 index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 GIT binary patch literal 12799 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 literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/index.html b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/index.html new file mode 100755 index 0000000..2476fa5 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/index.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

Hello, world!

+

This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.

+

Learn more »

+
+ + +
+
+

Heading

+

Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.

+

View details »

+
+
+

Heading

+

Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.

+

View details »

+
+
+

Heading

+

Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

+

View details »

+
+
+ +
+ +
+

© Company 2012

+
+ +
+ + + + + + + + + + + + diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/main.js b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/main.js new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/main.js @@ -0,0 +1 @@ + diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/plugins.js b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/plugins.js new file mode 100755 index 0000000..c6df4b2 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/plugins.js @@ -0,0 +1,14 @@ +// Avoid `console` errors in browsers that lack a console. +if (!(window.console && console.log)) { + (function() { + var noop = function() {}; + var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'markTimeline', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn']; + var length = methods.length; + var console = window.console = {}; + while (length--) { + console[methods[length]] = noop; + } + }()); +} + +// Place any jQuery/helper plugins in here. diff --git a/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/bootstrap.js b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/bootstrap.js new file mode 100755 index 0000000..f73fcb8 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/libraries/frameworks/bootstrap/js/vendor/bootstrap.js @@ -0,0 +1,2027 @@ +/* =================================================== + * bootstrap-transition.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 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 ($) { + + $(function () { + + "use strict"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-alert.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 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"; // jshint ;_; + + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.trigger(e = $.Event('close')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-button.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 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"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + 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-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-carousel.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 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"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = options + this.options.slide && this.slide(this.options.slide) + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function (e) { + if (!e) this.paused = false + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.item.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle() + } + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.item.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e = $.Event('slide', { + relatedTarget: $next[0] + }) + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if ($next.hasClass('active')) return + + 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) + this.$element.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) + }) + } 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 + * ========================== */ + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + , action = typeof option == 'string' ? option : options.slide + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}(window.jQuery);/* ============================================================= + * bootstrap-collapse.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 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"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + $.support.transition && this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent.type == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + $(target).collapse(option) + }) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-dropdown.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 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"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle=dropdown]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , isActive + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + $parent.toggleClass('open') + $this.focus() + } + + return false + } + + , keydown: function (e) { + var $this + , $items + , $active + , $parent + , isActive + , index + + if (!/(38|40|27)/.test(e.keyCode)) return + + $this = $(this) + + e.preventDefault() + e.stopPropagation() + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + if (!isActive || (isActive && e.keyCode == 27)) return $this.click() + + $items = $('[role=menu] li:not(.divider) a', $parent) + + if (!$items.length) return + + index = $items.index($items.filter(':focus')) + + if (e.keyCode == 38 && index > 0) index-- // up + if (e.keyCode == 40 && index < $items.length - 1) index++ // down + if (!~index) index = 0 + + $items + .eq(index) + .focus() + } + + } + + function clearMenus() { + getParent($(toggle)) + .removeClass('open') + } + + function getParent($this) { + var selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + return $parent + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html') + .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) + $('body') + .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle) + .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) + }) + +}(window.jQuery);/* ========================================================= + * bootstrap-modal.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 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"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (element, options) { + this.options = options + this.$element = $(element) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + this.options.remote && this.$element.find('.modal-body').load(this.options.remote) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + $('body').addClass('modal-open') + + this.isShown = true + + this.escape() + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element + .addClass('in') + .attr('aria-hidden', false) + .focus() + + that.enforceFocus() + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + $('body').removeClass('modal-open') + + this.escape() + + $(document).off('focusin.modal') + + this.$element + .removeClass('in') + .attr('aria-hidden', true) + + $.support.transition && this.$element.hasClass('fade') ? + this.hideWithTransition() : + this.hideModal() + } + + , enforceFocus: function () { + var that = this + $(document).on('focusin.modal', function (e) { + if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { + that.$element.focus() + } + }) + } + + , escape: function () { + var that = this + if (this.isShown && this.options.keyboard) { + this.$element.on('keyup.dismiss.modal', function ( e ) { + e.which == 27 && that.hide() + }) + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.modal') + } + } + + , hideWithTransition: function () { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + that.hideModal() + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + that.hideModal() + }) + } + + , hideModal: function (that) { + this.$element + .hide() + .trigger('hidden') + + this.backdrop() + } + + , removeBackdrop: function () { + this.$backdrop.remove() + this.$backdrop = null + } + + , backdrop: function (callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('

uBSS^nOLbD`&! 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 z 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�hwDVS&ME#BH;5`b+99NGHN3HhWPE8q|z+U#x$A?&caJ!kJ5UXRvnf z0r(9{!Z+*q&0pvp8+7d;riq#Hf(GFw31Xni01Ys$^^l(FzTse$tof{I!TgVH0;AZ? zwMi$2iOENoQvT^lz>T(DhC*IIvEwD?U^j5p&OmQN8&8}uHv4Hd`Gw;6eJJ1i#>;={ z@-lD?`hJ^l7wB=lAuLwxSAgh2?Xt-Ix3F3sV$q}vDbuR8(e1v6B3?@HY4fpj^o(?> zeL_4B8O>4B53_nx%O8kgM7YkgUxtE^K}nfZ;%T&?WJOeo-<|5-x${^Dvy%C3)}rw% ze;F}zjOQgQNPR1lB_ffDgAJ`U*SAX7>bjNw(P^QJA(7L`6fkj$8!Lh$FW5EAC-u@r z@|RQcc4e%$&MOo1^DWPUiQMAgpnIR(_h4@Rt~t>~(amjK9KY*(F=h^_R9DG3kX4gs z7_MMgv{Kzs$%v^~5%4`?K)OEX3y%y|J0)DN&`I@do5N;tH$;^OnEjhXp11+?oiZy< zn>IX&-cIc78qGFeTWfO6zn=MS&<3ALe>Jw0za@EDw;9#qZ~-+L~SU*|kbH z4ICe(eM$yN2kci%{@N0~IGsL>J$tT~n z?C1ZbCWa5kOTEaNqdg-7g(aqL4&!gI$YKksT2B_nGQYW`Gqka3K#MH`Xsh!dqcT(< zopaso`6ZCu_ECxUiu#1~hyye7u0~lY=ofW^)X|%$Nw&=tclU?tCSn3IT2b2dc^AXn zxvln|i=8&YS;*4LW50j(_#IVs(|Bco3y4RRNfyjXwDoWWOIb$rf4j)h=^tj;#=MJu z?%Y3Cv^&aIha5zP@skYZ!T$x2a0JBwJAKv0W1|_}foxfG*`dRLRW)RtM<@Rr2?d#D z|2SKGSKl@Nz5O}i#zY4d&$FCXUXleOoAxxB*8F|8tG7o;gOFeiJ^dOkj+abxcYlXl zS=bIyejda}Y$}h(eB>fF`Tkdd?azlBh~ZskBldXGQ82%aQAayET#3JtoAv+C;^6@~ literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/assets/fig/unnamed-chunk-5.png b/examples/util/rCharts_d3_sankey-gh-pages/assets/fig/unnamed-chunk-5.png new file mode 100755 index 0000000000000000000000000000000000000000..e244e8bd3d53ded7e38e3620e53b21043a1dd106 GIT binary patch literal 8048 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 literal 0 HcmV?d00001 diff --git a/examples/util/rCharts_d3_sankey-gh-pages/config.yml b/examples/util/rCharts_d3_sankey-gh-pages/config.yml new file mode 100755 index 0000000..50ee566 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/config.yml @@ -0,0 +1,9 @@ +d3_horizon: + css: [css/sankey.css] + jshead: [js/d3.v3.js,js/sankey.js] + cdn: + css: + - "http://timelyportfolio.github.io/rCharts_d3_sankey/css/sankey.css" + jshead: + - "http://d3js.org/d3.v3.min.js" + - "http://timelyportfolio.github.io/rCharts_d3_sankey/js/sankey.js" diff --git a/examples/util/rCharts_d3_sankey-gh-pages/css/sankey.css b/examples/util/rCharts_d3_sankey-gh-pages/css/sankey.css new file mode 100755 index 0000000..4c6a0ba --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/css/sankey.css @@ -0,0 +1,32 @@ +/* +not sure original author +believe I copied/pasted from +http://www.d3noob.org/2013/02/sankey-diagrams-description-of-d3js-code.html +but have to think original source was Mike Bostock +http://bost.ocks.org/mike/sankey/ +*/ + +.node rect { + cursor: move; + fill-opacity: .9; + shape-rendering: crispEdges; +} + +.node text { + pointer-events: none; + text-shadow: 0 1px 0 #fff; +} + +.link { + fill: none; + stroke: #000; + stroke-opacity: .2; +} + +.link:hover { + stroke-opacity: .5; +} + +svg { + font: 10px sans-serif; +} \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example.R b/examples/util/rCharts_d3_sankey-gh-pages/example.R new file mode 100755 index 0000000..04c3c65 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example.R @@ -0,0 +1,294 @@ +require(rCharts) +require(rjson) +require(igraph) + +#get source from original example +#this is a JSON, so will need to translate +#this is complicated and unnecessary but feel I need to replicate +#for completeness + +#expect most data to come straight from R +#in form of source, target, value + +links <- matrix(unlist( + rjson::fromJSON( + file = "http://bost.ocks.org/mike/sankey/energy.json" + )$links +),ncol = 3, byrow = TRUE) + +nodes <- unlist( + rjson::fromJSON( + file = "http://bost.ocks.org/mike/sankey/energy.json" + )$nodes +) + +#convert to data.frame so souce and target can be character and value numeric +links <- data.frame(links) +colnames(links) <- c("source", "target", "value") +links$source <- sapply(links$source, FUN = function(x) {return(as.character(nodes[x+1]))}) #x+1 since js starts at 0 +links$target <- sapply(links$target, FUN = function(x) {return(nodes[x+1])}) #x+1 since js starts at 0 + + +#now we finally have the data in the form we need +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = links, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500, + units = "TWh", + title = "Sankey Diagram" +) + +sankeyPlot + + + + + + + + + + + + + + + + + + + + + +data(foodwebs, package = "igraphdata") +data(karate, package = "igraphdata") +data(Koenigsberg, package = "igraphdata") +edgelist <- get.data.frame(foodwebs$ChesLower) + +#simulate a network +g <- graph.tree(26,children=2) +edgelist <- get.data.frame(g) +edgelist$value <- 1 +colnames(edgelist) <- c("source","target","value") +edgelist$source <- LETTERS[edgelist$source] +edgelist$target <- LETTERS[edgelist$target] + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = edgelist, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot + + +g2 <- graph.tree(40,children=4) +#to construct a sankey the weight of each vertex should be the sum +#of its outgoing edges +#I believe the first step in creating a network that satisfies this condition +#is define a vertex weight for all vertexes with out degree = 0 +#but first let's define 0 for all +V(g2)$weight = 0 +#now for all vertexes with out degree = 0 +V(g2)[degree(g2,mode="out")==0]$weight <- runif(n=length(V(g2)[degree(g2,mode="out")==0]),min=0,max=100) +#the lowest level of the heirarchy is defined with a random weight +#with the lowest level defined we should now be able to sum the vertex weights +#to define the edge weight +#E(g2)$weight = 0.1 #define all weights small to visually see as we build sankey +E(g2)[to(V(g2)$weight>0)]$weight <- V(g2)[V(g2)$weight>0]$weight +#and to find the neighbors to the 0 out degree vertex +#we could do V(g2)[nei(degree(g2,mode="out")==0)] +#we have everything we need to build the rest by summing +#these edge weights if there are edges still undefined +#so set up a loop to run until all edges have a defined weight +while(max(is.na(E(g2)$weight))) { + #get.data.frame gives us from, to, and weight + #we will get this to make an easier reference later + df <- get.data.frame(g2) + #now go through each edge and find the sum of all its subedges + #we need to check to make sure out degree of its "to" vertex is not 0 + #or we will get 0 since there are no edges for vertex with out degree 0 + for (i in 1:nrow(df)) { + x = df[i,] + #sum only those with out degree > 0 or sum will be 0 + if(max(df$from==x$to)) { + E(g2)[from(x$from) & to(x$to)]$weight = sum(E(g2)[from(x$to)]$weight) + } + } +} + + +#just a quick check on the adjacency +get.adjacency(g2,sparse = FALSE,attr="weight") + + + + +#E(g2)$weight <- runif(length(E(g2))) +edgelistWeight <- get.data.frame(g2) +colnames(edgelistWeight) <- c("source","target","value") +edgelistWeight$source <- as.character(edgelistWeight$source) +edgelistWeight$target <- as.character(edgelistWeight$target) + +sankeyPlot2 <- rCharts$new() +sankeyPlot2$setLib('.') +sankeyPlot2$setTemplate(script = "layouts/chart.html") + +sankeyPlot2$set( + data = edgelistWeight, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot2 + + + +data(pHWebs, package = "cheddar") + +community <- pHWebs[[1]]$trophic.links +community$value <- 1 +colnames(community) <- c("source","target", "value") +community$source <- paste0(community$source,"[resource]") + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = community, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot + + + + + +data(Millstream, package = "cheddar") + +community <- pHWebs[[1]]$trophic.links +community$value <- 1 +colnames(community) <- c("source","target", "value") +community$source <- paste0(community$source,"[resource]") + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = community, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot + + + + + + + + + + + + ToIgraph <- function(community, weight=NULL) +{ + if(is.null(TLPS(community))) + { + stop('The community has no trophic links') + } + else + { + tlps <- TLPS(community, link.properties=weight) + if(!is.null(weight)) + { + tlps$weight <- tlps[,weight] + } + return (graph.data.frame(tlps, + vertices=NPS(community), + directed=TRUE)) + } +} + data(TL84) + # Unweighted network + TL84.ig <- ToIgraph(TL84) + +edgelist <- data.frame(get.edgelist(TL84.ig),stringsAsFactors = FALSE) +edgelist$value <- rep(1,nrow(edgelist)) +colnames(edgelist) <- c("source","target","value") +edgelist$source <- paste0(edgelist$source,"[src]") + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = edgelist, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot + + + +graph.edgelist(as.matrix(edgelist)[,1:2],directed = TRUE) +g <- graph.edgelist(as.matrix(edgelist)[,1:2],directed = TRUE) +a <- get.adjacency(g) + + + + + + + +edgelist <- get.data.frame(as.undirected(erdos.renyi.game(n=20,p.or.m=.5,type="gnp",directed=T),mode="collapse")) +edgelist$value <- 1 +colnames(edgelist) <- c("source","target","value") +edgelist$source <- paste0(edgelist$source,"[src]") + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('.') +sankeyPlot$setTemplate(script = "layouts/chart.html") + +sankeyPlot$set( + data = edgelist, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.Rmd b/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.Rmd new file mode 100755 index 0000000..051d89a --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.Rmd @@ -0,0 +1,165 @@ +--- +title: Sankey from Scratch +author: Timely Portfolio +github: {user: timelyportfolio, repo: rCharts_d3_horizon, branch: "gh-pages"} +framework: bootstrap +mode: selfcontained +highlighter: prettify +hitheme: twitter-bootstrap +widgets: "d3_sankey" +assets: + css: + - "http://fonts.googleapis.com/css?family=Raleway:300" + - "http://fonts.googleapis.com/css?family=Oxygen" +--- + + + +Fork me on GitHub + +```{r echo=F, warning= F, message=F} +opts_chunk$set( + message = FALSE, + warning = FALSE, + error = FALSE, + tidy = FALSE, + cache = FALSE, + results = 'asis' +) +``` +# Sankey from Scratch using `rCharts`, `d3.js`, and `igraph` + +## Introduction + +This example will walk through the steps of using the `R` package [`igraph`](http://igraph.sourceforge.net/) to create a tree network for a [sankey diagram](http://econ.st/JwNX8s). This is a great exercise to learn some basics of `igraph`, explore the construction of a sankey, and determine the conditions for a network to be drawn properly as a sankey. After all of this, we will plot our network with the [`rCharts`](http://rcharts.io/site) implementation of the [d3.js sankey plugin](https://github.com/d3/d3-plugins/blob/master/sankey/sankey.js). + + +## Build a Network +Let's first start by loading the `igraph` and `rCharts` packages. Then we will use `graph.tree` to build a tree network with 40 vertices with 4 children. +```{r} +require(igraph) +require(rCharts) + +g <- graph.tree(40, children = 4) +``` +For fun, we will assign a weight of 1 `E(g)$weight = 1` for each edge and then draw a Sankey diagram using `rCharts`. Going forward I will try to explain the `R` code through comments in the code block. + +## Plot Our Sankey to Find a Problem +```{r} +E(g)$weight = 1 + +edgelist <- get.data.frame(g) #this will give us a data frame with from,to,weight +colnames(edgelist) <- c("source","target","value") +#make character rather than numeric for proper functioning +edgelist$source <- as.character(edgelist$source) +edgelist$target <- as.character(edgelist$target) + +sankeyPlot <- rCharts$new() +sankeyPlot$setLib('libraries/widgets/d3_sankey') +sankeyPlot$setTemplate(script = "libraries/widgets/d3_sankey/layouts/chart.html") + +sankeyPlot$set( + data = edgelist, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot$print(chartId = 'sankey1') +``` + +Interact with the sankey plot a little, and try to find the problem in our hastily constructed network. Hovering over the vertex 4 will reveal our issue. The edge from 1 to 4 is not as big as the sum of the edges going out from 4. For this to make sense, unless 4 is magically creating something, the sum of the inflow should equal the sum of the outflow. Since 4 has four children each with weight of 1 (outflow = 1 + 1 + 1 + 1 = 4), we would expect the inflow to also be 4. It is only 1 though since we made all our edges' weights = 1 `E(g)$weight = 1`. How then would we build our network with edge weights so that for each vertex, the sum of in equals the sum of out. + + +## Fix Our Problem For a Beautiful Sankey +I am a network novice, so while the code below works, I am sure there are better ways of accomplishing the desired result. I heavily commented the code, but I will quickly describe the steps. The code starts at the lowest level of the heirarchy, or those vertexes where there is nothing going out (out degree = 0). In our network, these are 11 through 40. With `igraph` we can identify these by `V(g2)[degree(g2,mode="out")==0]`. For these we will assign a weight. Then we will loop through all of the edges summing all of the weights of the out until we have reached the top of the heirarchy. + +```{r} +g2 <- graph.tree(40, children=4) +#to construct a sankey the weight of each vertex should be the sum +#of its outgoing edges +#I believe the first step in creating a network that satisfies this condition +#is define a vertex weight for all vertexes with out degree = 0 +#but first let's define 0 for all +V(g2)$weight = 0 +#now for all vertexes with out degree = 0 +V(g2)[degree(g2,mode="out")==0]$weight <- runif(n=length(V(g2)[degree(g2,mode="out")==0]),min=0,max=100) +#the lowest level of the heirarchy is defined with a random weight +#with the lowest level defined we should now be able to sum the vertex weights +#to define the edge weight +#E(g2)$weight = 0.1 #define all weights small to visually see as we build sankey +E(g2)[to(V(g2)$weight>0)]$weight <- V(g2)[V(g2)$weight>0]$weight +#and to find the neighbors to the 0 out degree vertex +#we could do V(g2)[nei(degree(g2,mode="out")==0)] +#we have everything we need to build the rest by summing +#these edge weights if there are edges still undefined +#so set up a loop to run until all edges have a defined weight +while(max(is.na(E(g2)$weight))) { + #get.data.frame gives us from, to, and weight + #we will get this to make an easier reference later + df <- get.data.frame(g2) + #now go through each edge and find the sum of all its subedges + #we need to check to make sure out degree of its "to" vertex is not 0 + #or we will get 0 since there are no edges for vertex with out degree 0 + for (i in 1:nrow(df)) { + x = df[i,] + #sum only those with out degree > 0 or sum will be 0 + if(max(df$from==x$to)) { + E(g2)[from(x$from) & to(x$to)]$weight = sum(E(g2)[from(x$to)]$weight) + } + } +} + +edgelistWeight <- get.data.frame(g2) +colnames(edgelistWeight) <- c("source","target","value") +edgelistWeight$source <- as.character(edgelistWeight$source) +edgelistWeight$target <- as.character(edgelistWeight$target) + +sankeyPlot2 <- rCharts$new() +sankeyPlot2$setLib('libraries/widgets/d3_sankey') +sankeyPlot2$setTemplate(script = 'libraries/widgets/d3_sankey/layouts/chart.html') + +sankeyPlot2$set( + data = edgelistWeight, + nodeWidth = 15, + nodePadding = 10, + layout = 32, + width = 960, + height = 500 +) + +sankeyPlot2 +``` + +## Another Look at Our Network +There are very [good examples](http://rulesofreason.wordpress.com/tag/plot-igraph/) illustrating the use of `igraph` to plot a network. This is not one of these examples. For fun though, let's plot the network with igraph using just the defaults to compare it to our Sankey output from above. + +```{r} +plot(g2) +``` + +## Lots More Sankey +Believe it or not, there is an entire site devoted to sankey diagrams. For all the sankey you can handle, check out http://sankey-diagrams.com. Here are a couple more sankeys generated from `rCharts`: http://rcharts.io/viewer/?6001601#.UeWfuY3VCSo, http://rcharts.io/viewer/?6003605, http://rcharts.io/viewer/?6003575. \ No newline at end of file diff --git a/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.html b/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.html new file mode 100755 index 0000000..3649921 --- /dev/null +++ b/examples/util/rCharts_d3_sankey-gh-pages/example_build_network_sankey.html @@ -0,0 +1,483 @@ + + + + + + + + + Sankey from Scratch + + + + + + + + + + + + + + + + + + + + + + + + + + + +