├── .Rbuildignore ├── .circleci └── config.yml ├── .drone.yml ├── .gitignore ├── .travis.yml ├── DESCRIPTION ├── LICENSE ├── NAMESPACE ├── R └── jumpin.R ├── README.md ├── build.R ├── dashboard.png ├── inst ├── css │ ├── bootstrap-sortable.css │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── sortable-theme-bootstrap.css │ ├── sortable-theme-dark.css │ ├── sortable-theme-finder.css │ ├── sortable-theme-light.css │ ├── sortable-theme-minimal.css │ ├── sortable-theme-slick.css │ └── table-fixed-header.css ├── js │ ├── bootstrap-sortable.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── jquery-1.7.2.min.js │ ├── jquery.fixedheadertable.min.js │ ├── jquery.sparkline.js │ ├── jquery.sparkline.min.js │ ├── moment.min.js │ ├── sortable.js │ ├── sortable.min.js │ └── table-fixed-header.js ├── style │ ├── fonts │ │ ├── octicons-local.ttf │ │ ├── octicons.eot │ │ ├── octicons.less │ │ ├── octicons.svg │ │ ├── octicons.ttf │ │ ├── octicons.woff │ │ └── sprockets-octicons.scss │ ├── hint.min.css │ └── octicons.css └── template.html ├── jumpin2.R ├── man ├── add_github.Rd ├── generate_html.Rd ├── github_auth.Rd ├── github_stats.Rd ├── pipe.Rd └── total_downloads.Rd └── tests ├── testthat.R └── testthat └── test-dashboard.R /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^\.travis\.yml$ 2 | jumpin2.R 3 | zzz.R 4 | ^\.httr-oauth$ 5 | dashboard.png -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: rocker/ropensci 6 | steps: 7 | - checkout 8 | - run: R -f build.R 9 | -------------------------------------------------------------------------------- /.drone.yml: -------------------------------------------------------------------------------- 1 | pipeline: 2 | build: 3 | image: rocker/ropensci 4 | commands: 5 | - R -f build.R -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | zzz.R 5 | .httr-oauth 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Sample .travis.yml for R projects from https://github.com/craigcitro/r-travis 2 | 3 | language: c 4 | 5 | before_install: 6 | - curl -OL http://raw.github.com/craigcitro/r-travis/master/scripts/travis-tool.sh 7 | - chmod 755 ./travis-tool.sh 8 | - ./travis-tool.sh bootstrap 9 | 10 | install: 11 | - ./travis-tool.sh install_deps 12 | - ./travis-tool.sh install_github metacran/cranlogs 13 | 14 | script: ./travis-tool.sh run_tests 15 | 16 | on_failure: 17 | - ./travis-tool.sh dump_logs 18 | 19 | notifications: 20 | email: 21 | on_success: change 22 | on_failure: change 23 | -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: dashboard 2 | Title: A package status dashboard 3 | Version: 0.1 4 | Authors@R: c(person("Karthik", "Ram", role = c("aut", "cre"), email = 5 | "karthik.ram@gmail.com"), person("Scott", "Chamberlain", role = "aut")) 6 | Description: Creates a html dashboard for a suite of R packages hosted on 7 | GitHub and CRAN 8 | Depends: 9 | R (>= 3.1.2) 10 | License: MIT + file LICENSE 11 | LazyData: true 12 | Imports: 13 | lubridate, 14 | jsonlite, 15 | scales, 16 | httr, 17 | whisker, 18 | stringr, 19 | magrittr, 20 | cranlogs 21 | Suggests: 22 | testthat 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | YEAR: 2014 2 | COPYRIGHT HOLDER: Karthik Ram -------------------------------------------------------------------------------- /NAMESPACE: -------------------------------------------------------------------------------- 1 | # Generated by roxygen2 (4.0.2): do not edit by hand 2 | 3 | export("%>%") 4 | export(add_github) 5 | export(generate_html) 6 | export(github_auth) 7 | export(github_stats) 8 | export(total_downloads) 9 | importFrom(cranlogs,cran_downloads) 10 | importFrom(lubridate,now) 11 | importFrom(magrittr,"%>%") 12 | importFrom(whisker,whisker.render) 13 | -------------------------------------------------------------------------------- /R/jumpin.R: -------------------------------------------------------------------------------- 1 | #' Pipe operator 2 | #' 3 | #' @name %>% 4 | #' @rdname pipe 5 | #' @keywords internal 6 | #' @export 7 | #' @importFrom magrittr %>% 8 | #' @usage lhs \%>\% rhs 9 | NULL 10 | 11 | #' Add GitHub username or organization name to packages 12 | #' 13 | #' @param repo Name of the repository (without org name) 14 | #' @param org = "ropensci" Your GitHub org name or username. Use this function only if all the repos are part of the same account. Otherwise add manually. 15 | #' @export 16 | #' @examples \dontrun{ 17 | #' add_github("alm", "ropensci") 18 | #'} 19 | add_github <- function(repo, org = "ropensci") { 20 | . <- NULL 21 | repo %>% sort %>% sapply(., function(x) paste0(org, "/", x)) %>% unname 22 | } 23 | 24 | 25 | 26 | 27 | #' Total downloads from the RStudio CRAN mirror between specified dates. 28 | #' 29 | #' @param pkg Name of package (must not include github org/user name) 30 | #' @param start Start date for CRAN downloads 31 | #' @param today End date for CRAN downloads 32 | #' @importFrom lubridate now 33 | #' @importFrom cranlogs cran_downloads 34 | #' @export 35 | #' @examples \dontrun{ 36 | #' total_downloads("alm") 37 | #'} 38 | total_downloads <- function(pkg, start = NULL, today = NULL) { 39 | if(is.null(today)) { today <- as.Date(now()) } 40 | if(is.null(start)) { start <- as.Date("2012-10-01") } 41 | 42 | total <- cranlogs::cran_downloads(package = pkg, from = start, to = today) 43 | sum(total$downloads$downloads) 44 | } 45 | 46 | 47 | #' Authenticate with GitHub and retrieve a token 48 | #' 49 | #' Create a new application in your github settings (https://github.com/settings/applications). Set the Homepage URL and callback URL as \code{http://localhost:1410}. Then copy the app name, client id, and client secret to your \code{.rprofile} as options. e.g. \code{option(gh_appname = "YOUR_APP")} etc. This function will then automatically read those values. Otherwise specify them inline. 50 | #' @param gh_appname Github app name 51 | #' @param gh_id GitHub client id 52 | #' @param gh_secret GitHub secret 53 | #' @export 54 | #' @examples \dontrun{ 55 | #' token <- github_auth() 56 | #'} 57 | github_auth <- function(gh_appname = getOption("gh_appname"), gh_id = getOption("gh_id"), gh_secret = getOption("gh_secret")) { 58 | myapp <- httr::oauth_app(gh_appname, gh_id, gh_secret) 59 | httr::oauth2.0_token(httr::oauth_endpoints("github"), myapp) 60 | } 61 | 62 | #' Generates a full list of GitHub stats and CRAN downloads from the RStudio mirror 63 | #' 64 | #' @param repo Name of a respository. Must include username or organization in format \code{username/repo} 65 | #' @param verbose = TRUE Prints progress by default. 66 | #' @export 67 | #' @examples \dontrun{ 68 | #' github_stats("ropensci/alm") 69 | #'} 70 | github_stats <- function(repo, verbose = TRUE) { 71 | 72 | org_repo <- stringr::str_split(repo, "/") %>% (function(x) length(x[[1]])) 73 | if(org_repo != 2) 74 | stop("You must specify repo name as github_account/repo") 75 | 76 | 77 | org <- stringr::str_split(repo, "/")[[1]][1] 78 | package <- stringr::str_split(repo, "/")[[1]][2] 79 | 80 | # ---------------------------------------------------------------------------- 81 | # Create a new app, set Authorization callback URL = http://localhost:1410 Then 82 | # copy the keys into your .rprofile with the names below 83 | token <- github_auth() 84 | 85 | 86 | if(verbose) message(sprintf("Now working on %s", repo)) 87 | repo_url <- paste0("https://api.github.com/repos/", org, "/", package) 88 | data <- httr::GET(repo_url, config = c(token = token)) 89 | if (data$status != 404) 90 | { 91 | results <- httr::content(data, "parsed") 92 | dl <- httr::content(httr::GET(results$downloads_url, config = c(token = token)), 93 | "parsed") 94 | # Need an error handler here for bad gitHub repo names 95 | # Note: Repo names are case sensitive 96 | downloads <- ifelse(length(dl) == 0, 0, length(dl)) 97 | collab <- httr::content(httr::GET(results$contributors_url, config = c(token = token)), 98 | "parsed") 99 | collaborators <- length(collab) 100 | cnames <- lapply(collab, "[", "login") 101 | cnames <- sapply(cnames, unname) 102 | collaborator_names <- as.character(paste(cnames, collapse = ", ")) 103 | prs <- length(httr::content(httr::GET(paste0(repo_url, "/pulls"), config = c(token = token)), 104 | "parsed")) 105 | # Didn't add closed issues or version number since neither make sense as a reason 106 | # for someone to jump in 107 | commits_raw <- httr::GET(paste0(repo_url, "/stats/commit_activity"), config = c(token = token)) 108 | commits <- jsonlite::fromJSON(httr::content(commits_raw, "text"), flatten = TRUE)$total 109 | date <- gsub("T", " ", results$pushed_at) 110 | date <- gsub("Z", " UTC", date) 111 | # Now check to see if package is on CRAN 112 | # and if yes, then get the download stats using metacran 113 | # -------------------------------------------------------- 114 | cran_return <- httr::GET(paste0("http://cran.r-project.org/web/packages/", 115 | package, "/index.html"))$status 116 | cran <- ifelse(cran_return == 200, "label label-success", "label label-default") 117 | cran_downloads <- ifelse(cran_return == 200, total_downloads(package), 0) 118 | # -------------------------------------------------------- 119 | 120 | # Milestones --------------------------------------------- 121 | milestones <- length(httr::content(httr::GET(paste0(repo_url, "/milestones"), config = c(token = token)), 122 | "parsed")) 123 | milestones_closed <- length(httr::content(httr::GET(paste0(repo_url, "/milestones"), 124 | query = list(state = "closed"), config = c(token = token)), "parsed")) 125 | total_milestones <- milestones + milestones_closed 126 | tm <- as.character(paste0(milestones, "/", total_milestones)) 127 | mile_ratio <- ifelse(milestones == 0, "-", scales::percent(milestones/total_milestones)) 128 | # -------------------------------------------------------- 129 | 130 | # Compile everything into a list 131 | list(package = results$name, 132 | desc = results$description, 133 | updated = date, 134 | forks = results$forks, 135 | stars = results$stargazers_count, 136 | downloads = downloads, 137 | cran_downloads = cran_downloads, 138 | pull_requests = prs, 139 | cran = cran, 140 | collaborators = collaborators, 141 | collaborator_names = collaborator_names, 142 | milestones = mile_ratio, 143 | total_milestones = tm, 144 | watchers = results$subscribers_count, 145 | open_issues = results$open_issues_count, 146 | sparkline = commits) 147 | } # end the 404 if 148 | } 149 | 150 | 151 | #' Generates a static html dashboard from GitHub stats and CRAN downloads 152 | #' 153 | #' @param out A list object generated by github_stats() 154 | #' @param path Folder where you need the dashboard rendered 155 | #' @param browse = TRUE Automatically open index.html in the default browser. Set to \code{FALSE} to disable. 156 | #' @importFrom whisker whisker.render 157 | #' @importFrom lubridate now 158 | #' @export 159 | #' @examples \dontrun{ 160 | #' generate_html(results) 161 | #'} 162 | generate_html <- function(out, path = "/tmp", browse = TRUE) { 163 | setwd(path) 164 | last_generated <- lubridate::now("UTC") 165 | message("writing out html \n") 166 | # location of all files and deps 167 | template <- system.file("template.html", package = "dashboard") 168 | css <- system.file("css", package = "dashboard") 169 | style <- system.file("style", package = "dashboard") 170 | js <- system.file("js", package = "dashboard") 171 | html <- whisker::whisker.render(readLines(template)) 172 | write(html, "index.html") 173 | file.copy(css, ".", recursive = TRUE, overwrite = TRUE) 174 | file.copy(js, ".", recursive = TRUE, overwrite = TRUE) 175 | file.copy(style, ".", recursive = TRUE, overwrite = TRUE) 176 | message(sprintf("Files written to %s \n", path)) 177 | if(browse) browseURL("index.html") 178 | } 179 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/ropensci/dashboard.png?branch=master)](https://travis-ci.org/ropensci/dashboard) 2 | ![](http://img.shields.io/badge/part%20of-ropensci-blue.svg) 3 | ![](https://img.shields.io/packagist/l/doctrine/orm.svg) 4 | 5 | # Dashboard 6 | 7 | This package provides a simple dashboard for any collection of R projects on GitHub and CRAN. You can cron the script below, ideally no more than 4 times an hour to avoid maxing out the GitHub API limits. CRAN mirror logs update daily. 8 | 9 | ![](dashboard.png) 10 | 11 | ## Installation 12 | 13 | ```r 14 | library(devtools) 15 | install_github("metacran/cranlogs") 16 | install_github("ropensci/dashboard") 17 | ``` 18 | 19 | ## Example use 20 | 21 | ```r 22 | 23 | library(dashboard) 24 | 25 | package <- c("alm","AntWeb","bmc","bold","clifro","dependencies", 26 | "ecoengine","ecoretriever","elastic","elife","floras", 27 | "fulltext","geonames","gistr", "jekyll-knitr","mocker", 28 | "neotoma","plotly","rAltmetric","rAvis","rbhl","rbison", 29 | "rcrossref","rdatacite","rdryad","rebird","rentrez","reol", 30 | "reproducibility-guide","rfigshare","rfishbase","rfisheries", 31 | "rflybase","rgauges","rgbif","rglobi","rhindawi", 32 | "rinat","RMendeley","rmetadata","RNeXML","rnoaa","rnpn", 33 | "traits","rplos","rsnps","rspringer","rvertnet","rWBclimate", 34 | "solr","spocc","taxize","togeojson","treeBASE","ucipp","testdat", 35 | "git2r","rdat","EML","aRxiv","datapackage","dvn","gender","ggit", 36 | "gigadb","historydata","ICES","mdextract","ots","paleobioDB", 37 | "pangaear","prism","rDat","rebi","rnbn","rOBIS","rorcid", 38 | "RSelenium","sheetseeR","USAboundaries","zenodo") 39 | 40 | # Add the GitHub organization/user before each page 41 | # You can also do this manually (and skip this step) 42 | # especially if the packages belong to various accounts 43 | # Or you can run the function below on different vectors and concat the results 44 | pkgs <- add_github(package, "ropensci") 45 | 46 | message("Now querying the GitHub API \n") 47 | # Run the stats on all the packages 48 | # You'll need to set up a GitHub app first (one time). 49 | # See ?github_auth for more details. 50 | results <- lapply(pkgs,github_stats) %>% Filter(Negate(is.null),.) 51 | # Finally generate a static html page 52 | # It writes to the tmp folder by default 53 | # but you can specifiy your own e.g. 54 | # generate_html(results, path = getwd()) 55 | generate_html(results) 56 | ``` 57 | 58 | [![ropensci footer](http://ropensci.org/public_images/github_footer.png)](http://ropensci.org) 59 | 60 | -------------------------------------------------------------------------------- /build.R: -------------------------------------------------------------------------------- 1 | library(jsonlite) 2 | library(jqr) 3 | library(magrittr) 4 | library(usethis) 5 | library(purrr) 6 | pkgs <- readLines("https://raw.githubusercontent.com/ropensci/roregistry/gh-pages/registry.json") 7 | pkgs %>% jq(".packages[] | .url") %>% combine() %>% fromJSON() -> urls 8 | repos <- gsub("https://github.com/", "", urls) 9 | dir.create("~/repos") 10 | path <- paste0("~/repos/", repos) 11 | 12 | map(repos, function(r){ 13 | paste0("~/repos/", r) 14 | create_from_github(r, protocol = "https", destdir = "~/repos", open=FALSE) 15 | devtools::check(paste0("~/repos/", r)) 16 | 17 | }) -------------------------------------------------------------------------------- /dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karthik/dashboard/14291e0637a851f4747633fb37f130f0f62eecf1/dashboard.png -------------------------------------------------------------------------------- /inst/css/bootstrap-sortable.css: -------------------------------------------------------------------------------- 1 | table.sortable span.sign { 2 | display: block; 3 | position: absolute; 4 | top: 50%; 5 | right: 5px; 6 | font-size: 12px; 7 | margin-top: -10px; 8 | color: #bfbfc1; 9 | } 10 | 11 | table.sortable span.arrow, span.reversed { 12 | border-style: solid; 13 | border-width: 5px; 14 | font-size: 0; 15 | border-color: #ccc transparent transparent transparent; 16 | line-height: 0; 17 | height: 0; 18 | width: 0; 19 | margin-top: -2px; 20 | } 21 | 22 | table.sortable span.arrow.up { 23 | border-color: transparent transparent #ccc transparent; 24 | margin-top: -7px; 25 | } 26 | 27 | table.sortable span.reversed { 28 | border-color: transparent transparent #ccc transparent; 29 | margin-top: -7px; 30 | } 31 | 32 | table.sortable span.reversed.up { 33 | border-color: #ccc transparent transparent transparent; 34 | margin-top: -2px; 35 | } 36 | 37 | 38 | 39 | table.sortable span.az:before { 40 | content: "a .. z"; 41 | } 42 | 43 | table.sortable span.az.up:before { 44 | content: "z .. a"; 45 | } 46 | 47 | table.sortable span.AZ:before { 48 | content: "A .. Z"; 49 | } 50 | 51 | table.sortable span.AZ.up:before { 52 | content: "Z .. A"; 53 | } 54 | 55 | table.sortable span._19:before { 56 | content: "1 .. 9"; 57 | } 58 | 59 | table.sortable span._19.up:before { 60 | content: "9 .. 1"; 61 | } 62 | 63 | table.sortable span.month:before { 64 | content: "jan .. dec"; 65 | } 66 | 67 | table.sortable span.month.up:before { 68 | content: "dec .. jan"; 69 | } 70 | 71 | table.sortable thead th:not([data-defaultsort=disabled]) { 72 | cursor: pointer; 73 | position: relative; 74 | top: 0; 75 | left: 0; 76 | } 77 | 78 | table.sortable thead th:hover:not([data-defaultsort=disabled]) { 79 | background: #efefef; 80 | } 81 | 82 | table.sortable thead th div.mozilla { 83 | position: relative; 84 | } 85 | -------------------------------------------------------------------------------- /inst/css/bootstrap-theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.2.0 (http://getbootstrap.com) 3 | * Copyright 2011-2014 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | .btn-default, 8 | .btn-primary, 9 | .btn-success, 10 | .btn-info, 11 | .btn-warning, 12 | .btn-danger { 13 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); 14 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); 15 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); 16 | } 17 | .btn-default:active, 18 | .btn-primary:active, 19 | .btn-success:active, 20 | .btn-info:active, 21 | .btn-warning:active, 22 | .btn-danger:active, 23 | .btn-default.active, 24 | .btn-primary.active, 25 | .btn-success.active, 26 | .btn-info.active, 27 | .btn-warning.active, 28 | .btn-danger.active { 29 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 30 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 31 | } 32 | .btn:active, 33 | .btn.active { 34 | background-image: none; 35 | } 36 | .btn-default { 37 | text-shadow: 0 1px 0 #fff; 38 | background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); 39 | background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); 40 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); 41 | background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); 42 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); 43 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 44 | background-repeat: repeat-x; 45 | border-color: #dbdbdb; 46 | border-color: #ccc; 47 | } 48 | .btn-default:hover, 49 | .btn-default:focus { 50 | background-color: #e0e0e0; 51 | background-position: 0 -15px; 52 | } 53 | .btn-default:active, 54 | .btn-default.active { 55 | background-color: #e0e0e0; 56 | border-color: #dbdbdb; 57 | } 58 | .btn-default:disabled, 59 | .btn-default[disabled] { 60 | background-color: #e0e0e0; 61 | background-image: none; 62 | } 63 | .btn-primary { 64 | background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%); 65 | background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%); 66 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2)); 67 | background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%); 68 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0); 69 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 70 | background-repeat: repeat-x; 71 | border-color: #2b669a; 72 | } 73 | .btn-primary:hover, 74 | .btn-primary:focus { 75 | background-color: #2d6ca2; 76 | background-position: 0 -15px; 77 | } 78 | .btn-primary:active, 79 | .btn-primary.active { 80 | background-color: #2d6ca2; 81 | border-color: #2b669a; 82 | } 83 | .btn-primary:disabled, 84 | .btn-primary[disabled] { 85 | background-color: #2d6ca2; 86 | background-image: none; 87 | } 88 | .btn-success { 89 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); 90 | background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); 91 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); 92 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); 93 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); 94 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 95 | background-repeat: repeat-x; 96 | border-color: #3e8f3e; 97 | } 98 | .btn-success:hover, 99 | .btn-success:focus { 100 | background-color: #419641; 101 | background-position: 0 -15px; 102 | } 103 | .btn-success:active, 104 | .btn-success.active { 105 | background-color: #419641; 106 | border-color: #3e8f3e; 107 | } 108 | .btn-success:disabled, 109 | .btn-success[disabled] { 110 | background-color: #419641; 111 | background-image: none; 112 | } 113 | .btn-info { 114 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 115 | background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 116 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); 117 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); 118 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); 119 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 120 | background-repeat: repeat-x; 121 | border-color: #28a4c9; 122 | } 123 | .btn-info:hover, 124 | .btn-info:focus { 125 | background-color: #2aabd2; 126 | background-position: 0 -15px; 127 | } 128 | .btn-info:active, 129 | .btn-info.active { 130 | background-color: #2aabd2; 131 | border-color: #28a4c9; 132 | } 133 | .btn-info:disabled, 134 | .btn-info[disabled] { 135 | background-color: #2aabd2; 136 | background-image: none; 137 | } 138 | .btn-warning { 139 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 140 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 141 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); 142 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); 143 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); 144 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 145 | background-repeat: repeat-x; 146 | border-color: #e38d13; 147 | } 148 | .btn-warning:hover, 149 | .btn-warning:focus { 150 | background-color: #eb9316; 151 | background-position: 0 -15px; 152 | } 153 | .btn-warning:active, 154 | .btn-warning.active { 155 | background-color: #eb9316; 156 | border-color: #e38d13; 157 | } 158 | .btn-warning:disabled, 159 | .btn-warning[disabled] { 160 | background-color: #eb9316; 161 | background-image: none; 162 | } 163 | .btn-danger { 164 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 165 | background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 166 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); 167 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); 168 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); 169 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 170 | background-repeat: repeat-x; 171 | border-color: #b92c28; 172 | } 173 | .btn-danger:hover, 174 | .btn-danger:focus { 175 | background-color: #c12e2a; 176 | background-position: 0 -15px; 177 | } 178 | .btn-danger:active, 179 | .btn-danger.active { 180 | background-color: #c12e2a; 181 | border-color: #b92c28; 182 | } 183 | .btn-danger:disabled, 184 | .btn-danger[disabled] { 185 | background-color: #c12e2a; 186 | background-image: none; 187 | } 188 | .thumbnail, 189 | .img-thumbnail { 190 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 191 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 192 | } 193 | .dropdown-menu > li > a:hover, 194 | .dropdown-menu > li > a:focus { 195 | background-color: #e8e8e8; 196 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 197 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 198 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); 199 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 200 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 201 | background-repeat: repeat-x; 202 | } 203 | .dropdown-menu > .active > a, 204 | .dropdown-menu > .active > a:hover, 205 | .dropdown-menu > .active > a:focus { 206 | background-color: #357ebd; 207 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); 208 | background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%); 209 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd)); 210 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); 211 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); 212 | background-repeat: repeat-x; 213 | } 214 | .navbar-default { 215 | background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); 216 | background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); 217 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); 218 | background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); 219 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); 220 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 221 | background-repeat: repeat-x; 222 | border-radius: 4px; 223 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); 224 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); 225 | } 226 | .navbar-default .navbar-nav > .active > a { 227 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%); 228 | background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%); 229 | background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3)); 230 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%); 231 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0); 232 | background-repeat: repeat-x; 233 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); 234 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); 235 | } 236 | .navbar-brand, 237 | .navbar-nav > li > a { 238 | text-shadow: 0 1px 0 rgba(255, 255, 255, .25); 239 | } 240 | .navbar-inverse { 241 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); 242 | background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); 243 | background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); 244 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); 245 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); 246 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 247 | background-repeat: repeat-x; 248 | } 249 | .navbar-inverse .navbar-nav > .active > a { 250 | background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%); 251 | background-image: -o-linear-gradient(top, #222 0%, #282828 100%); 252 | background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828)); 253 | background-image: linear-gradient(to bottom, #222 0%, #282828 100%); 254 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0); 255 | background-repeat: repeat-x; 256 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); 257 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); 258 | } 259 | .navbar-inverse .navbar-brand, 260 | .navbar-inverse .navbar-nav > li > a { 261 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); 262 | } 263 | .navbar-static-top, 264 | .navbar-fixed-top, 265 | .navbar-fixed-bottom { 266 | border-radius: 0; 267 | } 268 | .alert { 269 | text-shadow: 0 1px 0 rgba(255, 255, 255, .2); 270 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); 271 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); 272 | } 273 | .alert-success { 274 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 275 | background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 276 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); 277 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); 278 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); 279 | background-repeat: repeat-x; 280 | border-color: #b2dba1; 281 | } 282 | .alert-info { 283 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 284 | background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 285 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); 286 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); 287 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); 288 | background-repeat: repeat-x; 289 | border-color: #9acfea; 290 | } 291 | .alert-warning { 292 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 293 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 294 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); 295 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); 296 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); 297 | background-repeat: repeat-x; 298 | border-color: #f5e79e; 299 | } 300 | .alert-danger { 301 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 302 | background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 303 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); 304 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); 305 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); 306 | background-repeat: repeat-x; 307 | border-color: #dca7a7; 308 | } 309 | .progress { 310 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 311 | background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 312 | background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); 313 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); 314 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); 315 | background-repeat: repeat-x; 316 | } 317 | .progress-bar { 318 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%); 319 | background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%); 320 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9)); 321 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); 322 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); 323 | background-repeat: repeat-x; 324 | } 325 | .progress-bar-success { 326 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); 327 | background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); 328 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); 329 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); 330 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); 331 | background-repeat: repeat-x; 332 | } 333 | .progress-bar-info { 334 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 335 | background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 336 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); 337 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); 338 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); 339 | background-repeat: repeat-x; 340 | } 341 | .progress-bar-warning { 342 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 343 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 344 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); 345 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); 346 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); 347 | background-repeat: repeat-x; 348 | } 349 | .progress-bar-danger { 350 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); 351 | background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); 352 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); 353 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); 354 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); 355 | background-repeat: repeat-x; 356 | } 357 | .progress-bar-striped { 358 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 359 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 360 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 361 | } 362 | .list-group { 363 | border-radius: 4px; 364 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 365 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 366 | } 367 | .list-group-item.active, 368 | .list-group-item.active:hover, 369 | .list-group-item.active:focus { 370 | text-shadow: 0 -1px 0 #3071a9; 371 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%); 372 | background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%); 373 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3)); 374 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); 375 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); 376 | background-repeat: repeat-x; 377 | border-color: #3278b3; 378 | } 379 | .panel { 380 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); 381 | box-shadow: 0 1px 2px rgba(0, 0, 0, .05); 382 | } 383 | .panel-default > .panel-heading { 384 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 385 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 386 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); 387 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 388 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 389 | background-repeat: repeat-x; 390 | } 391 | .panel-primary > .panel-heading { 392 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); 393 | background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%); 394 | background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd)); 395 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); 396 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); 397 | background-repeat: repeat-x; 398 | } 399 | .panel-success > .panel-heading { 400 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 401 | background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 402 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); 403 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); 404 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); 405 | background-repeat: repeat-x; 406 | } 407 | .panel-info > .panel-heading { 408 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 409 | background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 410 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); 411 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); 412 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); 413 | background-repeat: repeat-x; 414 | } 415 | .panel-warning > .panel-heading { 416 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 417 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 418 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); 419 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); 420 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); 421 | background-repeat: repeat-x; 422 | } 423 | .panel-danger > .panel-heading { 424 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 425 | background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 426 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); 427 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); 428 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); 429 | background-repeat: repeat-x; 430 | } 431 | .well { 432 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 433 | background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 434 | background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); 435 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); 436 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); 437 | background-repeat: repeat-x; 438 | border-color: #dcdcdc; 439 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); 440 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); 441 | } 442 | /*# sourceMappingURL=bootstrap-theme.css.map */ 443 | -------------------------------------------------------------------------------- /inst/css/bootstrap-theme.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"bootstrap-theme.css","sources":["less/theme.less","less/mixins/vendor-prefixes.less","bootstrap-theme.css","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAeA;;;;;;EAME,0CAAA;EC+CA,6FAAA;EACQ,qFAAA;EC5DT;AFiBC;;;;;;;;;;;;EC0CA,0DAAA;EACQ,kDAAA;EC7CT;AFqCC;;EAEE,wBAAA;EEnCH;AFwCD;EG/CI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EA+B2C,2BAAA;EAA2B,oBAAA;EE7BvE;AFAC;;EAEE,2BAAA;EACA,8BAAA;EEEH;AFCC;;EAEE,2BAAA;EACA,uBAAA;EECH;AFEC;;EAEE,2BAAA;EACA,wBAAA;EEAH;AFeD;EGhDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EE0BD;AFxBC;;EAEE,2BAAA;EACA,8BAAA;EE0BH;AFvBC;;EAEE,2BAAA;EACA,uBAAA;EEyBH;AFtBC;;EAEE,2BAAA;EACA,wBAAA;EEwBH;AFRD;EGjDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EEkDD;AFhDC;;EAEE,2BAAA;EACA,8BAAA;EEkDH;AF/CC;;EAEE,2BAAA;EACA,uBAAA;EEiDH;AF9CC;;EAEE,2BAAA;EACA,wBAAA;EEgDH;AF/BD;EGlDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EE0ED;AFxEC;;EAEE,2BAAA;EACA,8BAAA;EE0EH;AFvEC;;EAEE,2BAAA;EACA,uBAAA;EEyEH;AFtEC;;EAEE,2BAAA;EACA,wBAAA;EEwEH;AFtDD;EGnDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EEkGD;AFhGC;;EAEE,2BAAA;EACA,8BAAA;EEkGH;AF/FC;;EAEE,2BAAA;EACA,uBAAA;EEiGH;AF9FC;;EAEE,2BAAA;EACA,wBAAA;EEgGH;AF7ED;EGpDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJ8BA,6BAAA;EACA,uBAAA;EE0HD;AFxHC;;EAEE,2BAAA;EACA,8BAAA;EE0HH;AFvHC;;EAEE,2BAAA;EACA,uBAAA;EEyHH;AFtHC;;EAEE,2BAAA;EACA,wBAAA;EEwHH;AF7FD;;ECbE,oDAAA;EACQ,4CAAA;EC8GT;AFvFD;;EGvEI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHsEF,2BAAA;EE6FD;AF3FD;;;EG5EI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH4EF,2BAAA;EEiGD;AFvFD;EG1FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EJ4GA,oBAAA;EC9CA,6FAAA;EACQ,qFAAA;EC4IT;AFlGD;EG1FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,0DAAA;EACQ,kDAAA;ECqJT;AF/FD;;EAEE,gDAAA;EEiGD;AF7FD;EG5GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EFgOD;AFrGD;EG5GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,yDAAA;EACQ,iDAAA;EC0KT;AF9GD;;EAWI,2CAAA;EEuGH;AFlGD;;;EAGE,kBAAA;EEoGD;AF1FD;EACE,+CAAA;EC3FA,4FAAA;EACQ,oFAAA;ECwLT;AFlFD;EGtJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EE8FD;AFzFD;EGvJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EEsGD;AFhGD;EGxJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EE8GD;AFvGD;EGzJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8IF,uBAAA;EEsHD;AFtGD;EGlKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED2QH;AFnGD;EG5KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDkRH;AFzGD;EG7KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDyRH;AF/GD;EG9KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDgSH;AFrHD;EG/KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDuSH;AF3HD;EGhLI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED8SH;AF9HD;EGnJI,+MAAA;EACA,0MAAA;EACA,uMAAA;EDoRH;AF1HD;EACE,oBAAA;EC/IA,oDAAA;EACQ,4CAAA;EC4QT;AF3HD;;;EAGE,+BAAA;EGpME,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHkMF,uBAAA;EEiID;AFvHD;ECjKE,mDAAA;EACQ,2CAAA;EC2RT;AFjHD;EG1NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED8UH;AFvHD;EG3NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDqVH;AF7HD;EG5NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED4VH;AFnID;EG7NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDmWH;AFzID;EG9NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED0WH;AF/ID;EG/NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDiXH;AF9ID;EGvOI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHqOF,uBAAA;EC1LA,2FAAA;EACQ,mFAAA;EC+UT","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &:disabled,\n &[disabled] {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n}\n\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n",null,"// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} -------------------------------------------------------------------------------- /inst/css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.2.0 (http://getbootstrap.com) 3 | * Copyright 2011-2014 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-o-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#2d6ca2));background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-primary:disabled,.btn-primary[disabled]{background-color:#2d6ca2;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f3f3f3));background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:-o-linear-gradient(top,#222 0,#282828 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#222),to(#282828));background-image:linear-gradient(to bottom,#222 0,#282828 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-o-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3071a9));background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-o-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3278b3));background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);background-repeat:repeat-x;border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} -------------------------------------------------------------------------------- /inst/css/sortable-theme-bootstrap.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | 57 | /* line 5, ../sass/sortable-theme-bootstrap.sass */ 58 | table[data-sortable].sortable-theme-bootstrap { 59 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 60 | font-size: 14px; 61 | line-height: 20px; 62 | color: #333333; 63 | background: white; 64 | } 65 | /* line 12, ../sass/sortable-theme-bootstrap.sass */ 66 | table[data-sortable].sortable-theme-bootstrap thead th { 67 | border-bottom: 2px solid #e0e0e0; 68 | } 69 | /* line 15, ../sass/sortable-theme-bootstrap.sass */ 70 | table[data-sortable].sortable-theme-bootstrap tbody td { 71 | border-top: 1px solid #e0e0e0; 72 | } 73 | /* line 18, ../sass/sortable-theme-bootstrap.sass */ 74 | table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"] { 75 | color: #3a87ad; 76 | background: #d9edf7; 77 | border-bottom-color: #bce8f1; 78 | } 79 | /* line 23, ../sass/sortable-theme-bootstrap.sass */ 80 | table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"][data-sorted-direction="descending"]:after { 81 | border-top-color: #3a87ad; 82 | } 83 | /* line 26, ../sass/sortable-theme-bootstrap.sass */ 84 | table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"][data-sorted-direction="ascending"]:after { 85 | border-bottom-color: #3a87ad; 86 | } 87 | /* line 31, ../sass/sortable-theme-bootstrap.sass */ 88 | table[data-sortable].sortable-theme-bootstrap.sortable-theme-bootstrap-striped tbody > tr:nth-child(odd) > td { 89 | background-color: #f9f9f9; 90 | } 91 | -------------------------------------------------------------------------------- /inst/css/sortable-theme-dark.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | 57 | /* line 5, ../sass/sortable-theme-dark.sass */ 58 | table[data-sortable].sortable-theme-dark { 59 | color: #b9b9b9; 60 | background: #252525; 61 | } 62 | /* line 9, ../sass/sortable-theme-dark.sass */ 63 | table[data-sortable].sortable-theme-dark tbody td { 64 | border-top: 1px solid #2e2e2e; 65 | } 66 | /* line 12, ../sass/sortable-theme-dark.sass */ 67 | table[data-sortable].sortable-theme-dark th[data-sorted="true"] { 68 | background: #2e2e2e; 69 | } 70 | -------------------------------------------------------------------------------- /inst/css/sortable-theme-finder.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | 57 | /* line 6, ../sass/sortable-theme-finder.sass */ 58 | table[data-sortable].sortable-theme-finder { 59 | font-family: "Lucida Grande", sans-serif; 60 | font-size: 12px; 61 | line-height: 18px; 62 | color: black; 63 | background: white; 64 | border: 1px solid #cfcfcf; 65 | } 66 | /* line 14, ../sass/sortable-theme-finder.sass */ 67 | table[data-sortable].sortable-theme-finder th, table[data-sortable].sortable-theme-finder td { 68 | padding: 2px 8px; 69 | } 70 | /* line 17, ../sass/sortable-theme-finder.sass */ 71 | table[data-sortable].sortable-theme-finder thead th { 72 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(50%, #f6f6f6), color-stop(50%, #f0f0f0), color-stop(100%, #eeeeee)); 73 | background-image: -webkit-linear-gradient(#ffffff 0%, #f6f6f6 50%, #f0f0f0 50%, #eeeeee 100%); 74 | background-image: -moz-linear-gradient(#ffffff 0%, #f6f6f6 50%, #f0f0f0 50%, #eeeeee 100%); 75 | background-image: -o-linear-gradient(#ffffff 0%, #f6f6f6 50%, #f0f0f0 50%, #eeeeee 100%); 76 | background-image: linear-gradient(#ffffff 0%, #f6f6f6 50%, #f0f0f0 50%, #eeeeee 100%); 77 | background-color: #f0f0f0; 78 | border-bottom: 1px solid #cccccc; 79 | font-weight: normal; 80 | } 81 | /* line 23, ../sass/sortable-theme-finder.sass */ 82 | table[data-sortable].sortable-theme-finder tbody > tr:nth-child(odd) > td { 83 | background-color: #f3f6fa; 84 | } 85 | /* line 28, ../sass/sortable-theme-finder.sass */ 86 | table[data-sortable].sortable-theme-finder th:after { 87 | border-width: 4px; 88 | margin-right: 0; 89 | } 90 | /* line 32, ../sass/sortable-theme-finder.sass */ 91 | table[data-sortable].sortable-theme-finder th[data-sorted="true"] { 92 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c5e2f6), color-stop(50%, #80c1f0), color-stop(100%, #b8e7f5)); 93 | background-image: -webkit-linear-gradient(#c5e2f6 0%, #80c1f0 50%, #b8e7f5 100%); 94 | background-image: -moz-linear-gradient(#c5e2f6 0%, #80c1f0 50%, #b8e7f5 100%); 95 | background-image: -o-linear-gradient(#c5e2f6 0%, #80c1f0 50%, #b8e7f5 100%); 96 | background-image: linear-gradient(#c5e2f6 0%, #80c1f0 50%, #b8e7f5 100%); 97 | -webkit-background-size: 28px 100%; 98 | -moz-background-size: 28px 100%; 99 | -o-background-size: 28px 100%; 100 | background-size: 28px 100%; 101 | -webkit-box-shadow: inset 1px 0 #7eb3d3, inset -1px 0 #7eb3d3; 102 | -moz-box-shadow: inset 1px 0 #7eb3d3, inset -1px 0 #7eb3d3; 103 | box-shadow: inset 1px 0 #7eb3d3, inset -1px 0 #7eb3d3; 104 | border-bottom-color: #7eb3d3; 105 | background-color: #78c0f0; 106 | } 107 | /* line 39, ../sass/sortable-theme-finder.sass */ 108 | table[data-sortable].sortable-theme-finder th[data-sorted="true"]:first-child { 109 | -webkit-box-shadow: inset -1px 0 #7eb3d3; 110 | -moz-box-shadow: inset -1px 0 #7eb3d3; 111 | box-shadow: inset -1px 0 #7eb3d3; 112 | } 113 | /* line 42, ../sass/sortable-theme-finder.sass */ 114 | table[data-sortable].sortable-theme-finder th[data-sorted="true"]:last-child { 115 | -webkit-box-shadow: inset 1px 0 #7eb3d3; 116 | -moz-box-shadow: inset 1px 0 #7eb3d3; 117 | box-shadow: inset 1px 0 #7eb3d3; 118 | } 119 | /* line 45, ../sass/sortable-theme-finder.sass */ 120 | table[data-sortable].sortable-theme-finder th[data-sorted="true"][data-sorted-direction="descending"]:after { 121 | border-top-color: #548ec0; 122 | margin-top: 6px; 123 | } 124 | /* line 49, ../sass/sortable-theme-finder.sass */ 125 | table[data-sortable].sortable-theme-finder th[data-sorted="true"][data-sorted-direction="ascending"]:after { 126 | border-bottom-color: #548ec0; 127 | margin-top: 2px; 128 | } 129 | -------------------------------------------------------------------------------- /inst/css/sortable-theme-light.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | 57 | /* line 5, ../sass/sortable-theme-light.sass */ 58 | table[data-sortable].sortable-theme-light { 59 | color: #333333; 60 | background: #f2f2f2; 61 | } 62 | /* line 9, ../sass/sortable-theme-light.sass */ 63 | table[data-sortable].sortable-theme-light tbody td { 64 | border-top: 1px solid #e0e0e0; 65 | } 66 | /* line 12, ../sass/sortable-theme-light.sass */ 67 | table[data-sortable].sortable-theme-light th[data-sorted="true"] { 68 | background: #e0e0e0; 69 | } 70 | -------------------------------------------------------------------------------- /inst/css/sortable-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /inst/css/sortable-theme-slick.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | 57 | /* line 6, ../sass/sortable-theme-slick.sass */ 58 | table[data-sortable].sortable-theme-slick { 59 | color: #333333; 60 | background: white; 61 | border: 1px solid #e0e0e0; 62 | } 63 | /* line 11, ../sass/sortable-theme-slick.sass */ 64 | table[data-sortable].sortable-theme-slick thead th { 65 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #eeeeee)); 66 | background-image: -webkit-linear-gradient(#ffffff, #eeeeee); 67 | background-image: -moz-linear-gradient(#ffffff, #eeeeee); 68 | background-image: -o-linear-gradient(#ffffff, #eeeeee); 69 | background-image: linear-gradient(#ffffff, #eeeeee); 70 | background-color: #f0f0f0; 71 | border-bottom: 1px solid #e0e0e0; 72 | } 73 | /* line 16, ../sass/sortable-theme-slick.sass */ 74 | table[data-sortable].sortable-theme-slick tbody td { 75 | border-top: 1px solid #e0e0e0; 76 | } 77 | /* line 19, ../sass/sortable-theme-slick.sass */ 78 | table[data-sortable].sortable-theme-slick tbody > tr:nth-child(odd) > td { 79 | background-color: #f9f9f9; 80 | } 81 | /* line 22, ../sass/sortable-theme-slick.sass */ 82 | table[data-sortable].sortable-theme-slick th[data-sorted="true"] { 83 | -webkit-box-shadow: inset 1px 0 #bce8f1, inset -1px 0 #bce8f1; 84 | -moz-box-shadow: inset 1px 0 #bce8f1, inset -1px 0 #bce8f1; 85 | box-shadow: inset 1px 0 #bce8f1, inset -1px 0 #bce8f1; 86 | color: #3a87ad; 87 | background: #d9edf7; 88 | border-bottom-color: #bce8f1; 89 | } 90 | /* line 28, ../sass/sortable-theme-slick.sass */ 91 | table[data-sortable].sortable-theme-slick th[data-sorted="true"]:first-child { 92 | -webkit-box-shadow: inset -1px 0 #bce8f1; 93 | -moz-box-shadow: inset -1px 0 #bce8f1; 94 | box-shadow: inset -1px 0 #bce8f1; 95 | } 96 | /* line 31, ../sass/sortable-theme-slick.sass */ 97 | table[data-sortable].sortable-theme-slick th[data-sorted="true"]:last-child { 98 | -webkit-box-shadow: inset 1px 0 #bce8f1; 99 | -moz-box-shadow: inset 1px 0 #bce8f1; 100 | box-shadow: inset 1px 0 #bce8f1; 101 | } 102 | /* line 34, ../sass/sortable-theme-slick.sass */ 103 | table[data-sortable].sortable-theme-slick th[data-sorted="true"][data-sorted-direction="descending"]:after { 104 | border-top-color: #3a87ad; 105 | } 106 | /* line 37, ../sass/sortable-theme-slick.sass */ 107 | table[data-sortable].sortable-theme-slick th[data-sorted="true"][data-sorted-direction="ascending"]:after { 108 | border-bottom-color: #3a87ad; 109 | } 110 | -------------------------------------------------------------------------------- /inst/css/table-fixed-header.css: -------------------------------------------------------------------------------- 1 | table .header-fixed { 2 | position: fixed; 3 | top: 40px; 4 | z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */ 5 | border-bottom: 1px solid #d5d5d5; 6 | -webkit-border-radius: 0; 7 | -moz-border-radius: 0; 8 | border-radius: 0; 9 | -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); 10 | -moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); 11 | box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); 12 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */ 13 | } -------------------------------------------------------------------------------- /inst/js/bootstrap-sortable.js: -------------------------------------------------------------------------------- 1 | /* TINY SORT modified according to this https://github.com/Sjeiti/TinySort/pull/51*/ 2 | (function (e, t) { function h(e) { return e && e.toLowerCase ? e.toLowerCase() : e } function p(e, t) { for (var r = 0, i = e.length; r < i; r++) if (e[r] == t) return !n; return n } var n = !1, r = null, i = parseFloat, s = Math.min, o = /(-?\d+\.?\d*)$/g, u = /(\d+\.?\d*)$/g, a = [], f = [], l = function (e) { return typeof e == "string" }, c = Array.prototype.indexOf || function (e) { var t = this.length, n = Number(arguments[1]) || 0; n = n < 0 ? Math.ceil(n) : Math.floor(n); if (n < 0) n += t; for (; n < t; n++) { if (n in this && this[n] === e) return n } return -1 }; e.tinysort = { id: "TinySort", version: "1.5.2", copyright: "Copyright (c) 2008-2013 Ron Valstar", uri: "http://tinysort.sjeiti.com/", licensed: { MIT: "http://www.opensource.org/licenses/mit-license.php", GPL: "http://www.gnu.org/licenses/gpl.html" }, plugin: function () { var e = function (e, t) { a.push(e); f.push(t) }; e.indexOf = c; return e }(), defaults: { order: "asc", attr: r, data: r, useVal: n, place: "start", returns: n, cases: n, forceStrings: n, ignoreDashes: n, sortFunction: r } }; e.fn.extend({ tinysort: function () { var d, v, m = this, g = [], y = [], b = [], w = [], E = 0, S, x = [], T = [], N = function (t) { e.each(a, function (e, n) { n.call(n, t) }) }, C = function (t, r) { var s = 0; if (E !== 0) E = 0; while (s === 0 && E < S) { var a = w[E], c = a.oSettings, p = c.ignoreDashes ? u : o; N(c); if (c.sortFunction) { s = c.sortFunction(t, r) } else if (c.order == "rand") { s = Math.random() < .5 ? 1 : -1 } else { var d = n, v = !c.cases ? h(t.s[E]) : t.s[E], m = !c.cases ? h(r.s[E]) : r.s[E]; v = v.replace(/^\s*/i, "").replace(/\s*$/i, ""); m = m.replace(/^\s*/i, "").replace(/\s*$/i, ""); if (!A.forceStrings) { var g = l(v) ? v && v.match(p) : n, y = l(m) ? m && m.match(p) : n; if (g && y) { var b = v.substr(0, v.length - g[0].length), x = m.substr(0, m.length - y[0].length); if (b == x) { d = !n; v = i(g[0]); m = i(y[0]) } } } s = a.iAsc * (v < m ? -1 : v > m ? 1 : 0) } e.each(f, function (e, t) { s = t.call(t, d, v, m, s) }); if (s === 0) E++ } return s }; for (d = 0, v = arguments.length; d < v; d++) { var k = arguments[d]; if (l(k)) { if (x.push(k) - 1 > T.length) T.length = x.length - 1 } else { if (T.push(k) > x.length) x.length = T.length } } if (x.length > T.length) T.length = x.length; S = x.length; if (S === 0) { S = x.length = 1; T.push({}) } for (d = 0, v = S; d < v; d++) { var L = x[d], A = e.extend({}, e.tinysort.defaults, T[d]), O = !(!L || L == ""), M = O && L[0] == ":"; w.push({ sFind: L, oSettings: A, bFind: O, bAttr: !(A.attr === r || A.attr == ""), bData: A.data !== r, bFilter: M, $Filter: M ? m.filter(L) : m, fnSort: A.sortFunction, iAsc: A.order == "asc" ? 1 : -1 }) } m.each(function (n, r) { var i = e(r), s = i.parent().get(0), o, u = []; for (j = 0; j < S; j++) { var a = w[j], f = a.bFind ? a.bFilter ? a.$Filter.filter(r) : i.find(a.sFind) : i; u.push(a.bData ? f.data(a.oSettings.data) : a.bAttr ? f.attr(a.oSettings.attr) : a.oSettings.useVal ? f.val() : f.text()); if (o === t) o = f } var l = c.call(b, s); if (l < 0) { l = b.push(s) - 1; y[l] = { s: [], n: [] } } if (o.length > 0) y[l].s.push({ s: u, e: i, n: n }); else y[l].n.push({ e: i, n: n }) }); e.each(y, function (e, t) { t.s.sort(C) }); e.each(y, function (t, r) { var i = r.s.length, o = [], u = i, a = [0, 0]; switch (A.place) { case "first": e.each(r.s, function (e, t) { u = s(u, t.n) }); break; case "org": e.each(r.s, function (e, t) { o.push(t.n) }); break; case "end": u = r.n.length; break; default: u = 0 } for (d = 0; d < i; d++) { var f = p(o, d) ? !n : d >= u && d < u + r.s.length, l = (f ? r.s : r.n)[a[f ? 0 : 1]].e; l.parent().append(l); if (f || !A.returns) g.push(l.get(0)); a[f ? 0 : 1]++ } }); m.length = 0; Array.prototype.push.apply(m, g); return m } }); e.fn.TinySort = e.fn.Tinysort = e.fn.tsort = e.fn.tinysort })(jQuery); 3 | 4 | (function ($) { 5 | 6 | var $document = $(document), 7 | bsSort = [], 8 | lastSort, 9 | signClass; 10 | 11 | $.bootstrapSortable = function (applyLast, sign) { 12 | 13 | // check if moment.js is available 14 | var momentJsAvailable = (typeof moment !== 'undefined'); 15 | 16 | //Set class based on sign parameter 17 | signClass = !sign ? "arrow" : sign; 18 | 19 | // set attributes needed for sorting 20 | $('table.sortable').each(function () { 21 | var $this = $(this); 22 | applyLast = (applyLast === true); 23 | $this.find('span.sign').remove(); 24 | $this.find('thead tr').each(function (rowIndex) { 25 | var columnsSkipped = 0; 26 | $(this).find('th').each(function (columnIndex) { 27 | var $this = $(this); 28 | $this.attr('data-sortcolumn', columnIndex + columnsSkipped); 29 | $this.attr('data-sortkey', columnIndex + '-' + rowIndex); 30 | if ($this.attr("colspan") !== undefined) { 31 | columnsSkipped += parseInt($this.attr("colspan")) - 1; 32 | } 33 | }); 34 | }); 35 | $this.find('td').each(function () { 36 | var $this = $(this); 37 | if ($this.attr('data-dateformat') !== undefined && momentJsAvailable) { 38 | $this.attr('data-value', moment($this.text(), $this.attr('data-dateformat')).format('YYYY/MM/DD/HH/mm/ss')); 39 | } 40 | else { 41 | $this.attr('data-value') === undefined && $this.attr('data-value', $this.text()); 42 | } 43 | }); 44 | $this.find('thead th[data-defaultsort!="disabled"]').each(function (index) { 45 | var $this = $(this); 46 | var $sortTable = $this.closest('table.sortable'); 47 | $this.data('sortTable', $sortTable); 48 | var sortKey = $this.attr('data-sortkey'); 49 | var thisLastSort = applyLast ? lastSort : -1; 50 | bsSort[sortKey] = applyLast ? bsSort[sortKey] : $this.attr('data-defaultsort'); 51 | if (bsSort[sortKey] !== undefined && (applyLast === (sortKey === thisLastSort))) { 52 | bsSort[sortKey] = bsSort[sortKey] === 'asc' ? 'desc' : 'asc'; 53 | doSort($this, $sortTable); 54 | } 55 | }); 56 | $this.trigger('sorted'); 57 | }); 58 | }; 59 | 60 | // add click event to table header 61 | $document.on('click', 'table.sortable thead th[data-defaultsort!="disabled"]', function (e) { 62 | var $this = $(this), $table = $this.data('sortTable') || $this.closest('table.sortable'); 63 | doSort($this, $table); 64 | $table.trigger('sorted'); 65 | }); 66 | 67 | //Sorting mechanism separated 68 | function doSort($this, $table) { 69 | var sortColumn = $this.attr('data-sortcolumn'); 70 | 71 | var colspan = $this.attr('colspan'); 72 | if (colspan) { 73 | var selector; 74 | for (var i = parseFloat(sortColumn) ; i < parseFloat(sortColumn) + parseFloat(colspan) ; i++) { 75 | selector = selector + ', [data-sortcolumn="' + i + '"]'; 76 | } 77 | var subHeader = $(selector).not('[colspan]'); 78 | var mainSort = subHeader.filter('[data-mainsort]').eq(0); 79 | 80 | sortColumn = mainSort.length ? mainSort : subHeader.eq(0); 81 | doSort(sortColumn, $table); 82 | return; 83 | } 84 | 85 | var localSignClass = $this.attr('data-defaultsign') || signClass; 86 | 87 | // update arrow icon 88 | if ($.browser.mozilla) { 89 | var moz_arrow = $table.find('div.mozilla'); 90 | if (moz_arrow !== undefined) { 91 | moz_arrow.find('.sign').remove(); 92 | moz_arrow.parent().html(moz_arrow.html()); 93 | } 94 | $this.wrapInner('
'); 95 | $this.children().eq(0).append(''); 96 | } 97 | else { 98 | $table.find('span.sign').remove(); 99 | $this.append(''); 100 | } 101 | 102 | // sort direction 103 | var sortKey = $this.attr('data-sortkey'); 104 | var initialDirection = $this.attr('data-firstsort') !== 'desc' ? 'desc' : 'asc'; 105 | 106 | lastSort = sortKey; 107 | bsSort[sortKey] = (bsSort[sortKey] || initialDirection) === 'asc' ? 'desc' : 'asc'; 108 | if (bsSort[sortKey] === 'desc') { $this.find('span.sign').addClass('up'); } 109 | 110 | // sort rows 111 | var rows = $table.children('tbody').children('tr'); 112 | rows.tsort('td:eq(' + sortColumn + ')', { order: bsSort[sortKey], attr: 'data-value' }); 113 | } 114 | 115 | // jQuery 1.9 removed this object 116 | if (!$.browser) { 117 | $.browser = { chrome: false, mozilla: false, opera: false, msie: false, safari: false }; 118 | var ua = navigator.userAgent; 119 | $.each($.browser, function (c) { 120 | $.browser[c] = ((new RegExp(c, 'i').test(ua))) ? true : false; 121 | if ($.browser.mozilla && c === 'mozilla') { $.browser.mozilla = ((new RegExp('firefox', 'i').test(ua))) ? true : false; } 122 | if ($.browser.chrome && c === 'safari') { $.browser.safari = false; } 123 | }); 124 | } 125 | 126 | // Initialise on DOM ready 127 | $($.bootstrapSortable); 128 | 129 | }(jQuery)); -------------------------------------------------------------------------------- /inst/js/jquery.fixedheadertable.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jquery.fixedHeaderTable. The jQuery fixedHeaderTable plugin 3 | * 4 | * Copyright (c) 2013 Mark Malek 5 | * http://fixedheadertable.com 6 | * 7 | * Licensed under MIT 8 | * http://www.opensource.org/licenses/mit-license.php 9 | * 10 | * http://docs.jquery.com/Plugins/Authoring 11 | * jQuery authoring guidelines 12 | * 13 | * Launch : October 2009 14 | * Version : 1.3 15 | * Released: May 9th, 2011 16 | * 17 | * 18 | * all CSS sizing (width,height) is done in pixels (px) 19 | */(function(c){c.fn.fixedHeaderTable=function(m){var u={width:"100%",height:"100%",themeClass:"fht-default",borderCollapse:!0,fixedColumns:0,fixedColumn:!1,sortable:!1,autoShow:!0,footer:!1,cloneHeadToFoot:!1,autoResize:!1,create:null},b={},n={init:function(a){b=c.extend({},u,a);return this.each(function(){var a=c(this);h._isTable(a)?(n.setup.apply(this,Array.prototype.slice.call(arguments,1)),c.isFunction(b.create)&&b.create.call(this)):c.error("Invalid table mark-up")})},setup:function(){var a=c(this), d=a.find("thead"),e=a.find("tfoot"),g=0,f,k,p;b.originalTable=c(this).clone();b.includePadding=h._isPaddingIncludedWithWidth();b.scrollbarOffset=h._getScrollbarWidth();b.themeClassName=b.themeClass;f=-1'));f=a.closest(".fht-table-wrapper");!0==b.fixedColumn&&0>=b.fixedColumns&&(b.fixedColumns= 1);0'),c('
').prependTo(f),k=f.find(".fht-fixed-body"));f.css({width:b.width,height:b.height}).addClass(b.themeClassName);a.hasClass("fht-table-init")||a.wrap('
');p=a.closest(".fht-tbody");var l=h._getTableProps(a);h._setupClone(p,l.tbody);a.hasClass("fht-table-init")?k=f.find("div.fht-thead"):(k=0
').prependTo(k): c('
').prependTo(f),k.find("table.fht-table").addClass(b.originalTable.attr("class")).attr("style",b.originalTable.attr("style")),d.clone().appendTo(k.find("table")));h._setupClone(k,l.thead);a.css({"margin-top":-k.outerHeight(!0)});!0==b.footer&&(h._setupTableFooter(a,this,l),e.length||(e=f.find("div.fht-tfoot table")),g=e.outerHeight(!0));d=f.height()-d.outerHeight(!0)-g-l.border;p.css({height:d});a.addClass("fht-table-init");"undefined"!== typeof b.altClass&&n.altRows.apply(this);0
'),p=c('
');a=c('
'); var g=g.width(),l=f.find(".fht-tbody").height()-b.scrollbarOffset,q,t,r,s;k.find("table.fht-table").addClass(b.originalTable.attr("class"));p.find("table.fht-table").addClass(b.originalTable.attr("class"));a.find("table.fht-table").addClass(b.originalTable.attr("class"));q=f.find(".fht-thead thead tr > *:lt("+b.fixedColumns+")");r=b.fixedColumns*e.border;q.each(function(){r+=c(this).outerWidth(!0)});h._fixHeightWithCss(q,e);h._fixWidthWithCss(q,e);var m=[];q.each(function(){m.push(c(this).width())}); t=f.find("tbody tr > *:not(:nth-child(n+"+(b.fixedColumns+1)+"))").each(function(a){h._fixHeightWithCss(c(this),e);h._fixWidthWithCss(c(this),e,m[a%b.fixedColumns])});k.appendTo(d).find("tr").append(q.clone());p.appendTo(d).css({"margin-top":-1,height:l+e.border});t.each(function(a){0==a%b.fixedColumns&&(s=c("").appendTo(p.find("tbody")),b.altClass&&c(this).parent().hasClass(b.altClass)&&s.addClass(b.altClass));c(this).clone().appendTo(s)});d.css({height:0,width:r});var n=d.find(".fht-tbody .fht-table").height()- d.find(".fht-tbody").height();d.find(".fht-tbody .fht-table").bind("mousewheel",function(a,d,b,e){if(0!=e)return a=parseInt(c(this).css("marginTop"),10)+(0 *:lt("+b.fixedColumns+")"),h._fixHeightWithCss(k,e),a.appendTo(d).find("tr").append(k.clone()),d=a.find("table").innerWidth(),a.css({top:b.scrollbarOffset, width:d})},_setupTableFooter:function(a,d,e){d=a.closest(".fht-table-wrapper");var g=a.find("tfoot");a=d.find("div.fht-tfoot");a.length||(a=0
').appendTo(d.find(".fht-fixed-body")):c('
').appendTo(d));a.find("table.fht-table").addClass(b.originalTable.attr("class"));switch(!0){case !g.length&&!0==b.cloneHeadToFoot&&!0==b.footer:e=d.find("div.fht-thead");a.empty(); e.find("table").clone().appendTo(a);break;case g.length&&!1==b.cloneHeadToFoot&&!0==b.footer:a.find("table").append(g).css({"margin-top":-e.border}),h._setupClone(a,e.tfoot)}},_getTableProps:function(a){var d={thead:{},tbody:{},tfoot:{},border:0},c=1;!0==b.borderCollapse&&(c=2);d.border=(a.find("th:first-child").outerWidth()-a.find("th:first-child").innerWidth())/c;d.thead=h._getColumnsWidth(a.find("thead tr"));d.tfoot=h._getColumnsWidth(a.find("tfoot tr"));d.tbody=h._getColumnsWidth(a.find("tbody tr")); return d},_getColumnsWidth:function(a){var d={},b={},g=0,f,k;f=h._getColumnsCount(a);for(k=0;k').appendTo(c(this))).css({width:parseInt(d[a].width,10)}),c(this).closest(".fht-tbody").length||!c(this).is(":last-child")||c(this).closest(".fht-fixed-column").length|| (a=Math.max((c(this).innerWidth()-c(this).width())/2,b.scrollbarOffset),c(this).css({"padding-right":parseInt(c(this).css("padding-right"))+a+"px"})))})})},_isPaddingIncludedWithWidth:function(){var a=c('
test
'),d,e;a.addClass(b.originalTable.attr("class"));a.appendTo("body");d=a.find("td").height();a.find("td").css("height",a.find("tr").height());e=a.find("td").height();a.remove();return d!=e?!0:!1},_getScrollbarWidth:function(){var a= 0;if(!a)if(/msie/.test(navigator.userAgent.toLowerCase())){var b=c('').css({position:"absolute",top:-1E3,left:-1E3}).appendTo("body"),e=c('').css({position:"absolute",top:-1E3,left:-1E3}).appendTo("body"),a=b.width()-e.width()+2;b.add(e).remove()}else b=c("
").css({width:100,height:100,overflow:"auto",position:"absolute",top:-1E3,left:-1E3}).prependTo("body").append("
").find("div").css({width:"100%", height:200}),a=100-b.width(),b.parent().remove();return a}};if(n[m])return n[m].apply(this,Array.prototype.slice.call(arguments,1));if("object"!==typeof m&&m)c.error('Method "'+m+'" does not exist in fixedHeaderTable plugin!');else return n.init.apply(this,arguments)}})(jQuery); 20 | 21 | -------------------------------------------------------------------------------- /inst/js/moment.min.js: -------------------------------------------------------------------------------- 1 | //! moment.js 2 | //! version : 2.3.1 3 | //! authors : Tim Wood, Iskren Chernev, Moment.js contributors 4 | //! license : MIT 5 | //! momentjs.com 6 | (function(a){function b(a,b){return function(c){return i(a.call(this,c),b)}}function c(a,b){return function(c){return this.lang().ordinal(a.call(this,c),b)}}function d(){}function e(a){u(a),g(this,a)}function f(a){var b=o(a),c=b.year||0,d=b.month||0,e=b.week||0,f=b.day||0,g=b.hour||0,h=b.minute||0,i=b.second||0,j=b.millisecond||0;this._input=a,this._milliseconds=+j+1e3*i+6e4*h+36e5*g,this._days=+f+7*e,this._months=+d+12*c,this._data={},this._bubble()}function g(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function h(a){return 0>a?Math.ceil(a):Math.floor(a)}function i(a,b){for(var c=a+"";c.lengthd;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function n(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=Jb[a]||Kb[b]||b}return a}function o(a){var b,c,d={};for(c in a)a.hasOwnProperty(c)&&(b=n(c),b&&(d[b]=a[c]));return d}function p(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}bb[b]=function(e,f){var g,h,i=bb.fn._lang[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=bb().utc().set(d,a);return i.call(bb.fn._lang,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function r(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function s(a){return t(a)?366:365}function t(a){return 0===a%4&&0!==a%100||0===a%400}function u(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[gb]<0||a._a[gb]>11?gb:a._a[hb]<1||a._a[hb]>r(a._a[fb],a._a[gb])?hb:a._a[ib]<0||a._a[ib]>23?ib:a._a[jb]<0||a._a[jb]>59?jb:a._a[kb]<0||a._a[kb]>59?kb:a._a[lb]<0||a._a[lb]>999?lb:-1,a._pf._overflowDayOfYear&&(fb>b||b>hb)&&(b=hb),a._pf.overflow=b)}function v(a){a._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1}}function w(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function x(a){return a?a.toLowerCase().replace("_","-"):a}function y(a,b){return b.abbr=a,mb[a]||(mb[a]=new d),mb[a].set(b),mb[a]}function z(a){delete mb[a]}function A(a){var b,c,d,e,f=0,g=function(a){if(!mb[a]&&nb)try{require("./lang/"+a)}catch(b){}return mb[a]};if(!a)return bb.fn._lang;if(!k(a)){if(c=g(a))return c;a=[a]}for(;f0;){if(c=g(e.slice(0,b).join("-")))return c;if(d&&d.length>=b&&m(e,d,!0)>=b-1)break;b--}f++}return bb.fn._lang}function B(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function C(a){var b,c,d=a.match(rb);for(b=0,c=d.length;c>b;b++)d[b]=Ob[d[b]]?Ob[d[b]]:B(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function D(a,b){return a.isValid()?(b=E(b,a.lang()),Lb[b]||(Lb[b]=C(b)),Lb[b](a)):a.lang().invalidDate()}function E(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(sb.lastIndex=0;d>=0&&sb.test(a);)a=a.replace(sb,c),sb.lastIndex=0,d-=1;return a}function F(a,b){var c;switch(a){case"DDDD":return vb;case"YYYY":case"GGGG":case"gggg":return wb;case"YYYYY":case"GGGGG":case"ggggg":return xb;case"S":case"SS":case"SSS":case"DDD":return ub;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return yb;case"a":case"A":return A(b._l)._meridiemParse;case"X":return Bb;case"Z":case"ZZ":return zb;case"T":return Ab;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"ww":case"W":case"WW":case"e":case"E":return tb;default:return c=new RegExp(N(M(a.replace("\\","")),"i"))}}function G(a){var b=(zb.exec(a)||[])[0],c=(b+"").match(Gb)||["-",0,0],d=+(60*c[1])+q(c[2]);return"+"===c[0]?-d:d}function H(a,b,c){var d,e=c._a;switch(a){case"M":case"MM":null!=b&&(e[gb]=q(b)-1);break;case"MMM":case"MMMM":d=A(c._l).monthsParse(b),null!=d?e[gb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[hb]=q(b));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=q(b));break;case"YY":e[fb]=q(b)+(q(b)>68?1900:2e3);break;case"YYYY":case"YYYYY":e[fb]=q(b);break;case"a":case"A":c._isPm=A(c._l).isPM(b);break;case"H":case"HH":case"h":case"hh":e[ib]=q(b);break;case"m":case"mm":e[jb]=q(b);break;case"s":case"ss":e[kb]=q(b);break;case"S":case"SS":case"SSS":e[lb]=q(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=G(b);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":a=a.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=b)}}function I(a){var b,c,d,e,f,g,h,i,j,k,l=[];if(!a._d){for(d=K(a),a._w&&null==a._a[hb]&&null==a._a[gb]&&(f=function(b){return b?b.length<3?parseInt(b,10)>68?"19"+b:"20"+b:b:null==a._a[fb]?bb().weekYear():a._a[fb]},g=a._w,null!=g.GG||null!=g.W||null!=g.E?h=X(f(g.GG),g.W||1,g.E,4,1):(i=A(a._l),j=null!=g.d?T(g.d,i):null!=g.e?parseInt(g.e,10)+i._week.dow:0,k=parseInt(g.w,10)||1,null!=g.d&&js(e)&&(a._pf._overflowDayOfYear=!0),c=S(e,0,a._dayOfYear),a._a[gb]=c.getUTCMonth(),a._a[hb]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=l[b]=d[b];for(;7>b;b++)a._a[b]=l[b]=null==a._a[b]?2===b?1:0:a._a[b];l[ib]+=q((a._tzm||0)/60),l[jb]+=q((a._tzm||0)%60),a._d=(a._useUTC?S:R).apply(null,l)}}function J(a){var b;a._d||(b=o(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],I(a))}function K(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function L(a){a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=A(a._l),h=""+a._i,i=h.length,j=0;for(d=E(a._f,g).match(rb)||[],b=0;b0&&a._pf.unusedInput.push(f),h=h.slice(h.indexOf(c)+c.length),j+=c.length),Ob[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),H(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=i-j,h.length>0&&a._pf.unusedInput.push(h),a._isPm&&a._a[ib]<12&&(a._a[ib]+=12),a._isPm===!1&&12===a._a[ib]&&(a._a[ib]=0),I(a),u(a)}function M(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function N(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function O(a){var b,c,d,e,f;if(0===a._f.length)return a._pf.invalidFormat=!0,a._d=new Date(0/0),void 0;for(e=0;ef)&&(d=f,c=b));g(a,c||b)}function P(a){var b,c=a._i,d=Cb.exec(c);if(d){for(b=4;b>0;b--)if(d[b]){a._f=Eb[b-1]+(d[6]||" ");break}for(b=0;4>b;b++)if(Fb[b][1].exec(c)){a._f+=Fb[b][0];break}zb.exec(c)&&(a._f+=" Z"),L(a)}else a._d=new Date(c)}function Q(b){var c=b._i,d=ob.exec(c);c===a?b._d=new Date:d?b._d=new Date(+d[1]):"string"==typeof c?P(b):k(c)?(b._a=c.slice(0),I(b)):l(c)?b._d=new Date(+c):"object"==typeof c?J(b):b._d=new Date(c)}function R(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function S(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function T(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function U(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function V(a,b,c){var d=eb(Math.abs(a)/1e3),e=eb(d/60),f=eb(e/60),g=eb(f/24),h=eb(g/365),i=45>d&&["s",d]||1===e&&["m"]||45>e&&["mm",e]||1===f&&["h"]||22>f&&["hh",f]||1===g&&["d"]||25>=g&&["dd",g]||45>=g&&["M"]||345>g&&["MM",eb(g/30)]||1===h&&["y"]||["yy",h];return i[2]=b,i[3]=a>0,i[4]=c,U.apply({},i)}function W(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=bb(a).add("d",f),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function X(a,b,c,d,e){var f,g,h=new Date(Date.UTC(a,0)).getUTCDay();return c=null!=c?c:e,f=e-h+(h>d?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:s(a-1)+g}}function Y(a){var b=a._i,c=a._f;return"undefined"==typeof a._pf&&v(a),null===b?bb.invalid({nullInput:!0}):("string"==typeof b&&(a._i=b=A().preparse(b)),bb.isMoment(b)?(a=g({},b),a._d=new Date(+b._d)):c?k(c)?O(a):L(a):Q(a),new e(a))}function Z(a,b){bb.fn[a]=bb.fn[a+"s"]=function(a){var c=this._isUTC?"UTC":"";return null!=a?(this._d["set"+c+b](a),bb.updateOffset(this),this):this._d["get"+c+b]()}}function $(a){bb.duration.fn[a]=function(){return this._data[a]}}function _(a,b){bb.duration.fn["as"+a]=function(){return+this/b}}function ab(){"undefined"==typeof ender&&(this.moment=bb)}for(var bb,cb,db="2.3.1",eb=Math.round,fb=0,gb=1,hb=2,ib=3,jb=4,kb=5,lb=6,mb={},nb="undefined"!=typeof module&&module.exports,ob=/^\/?Date\((\-?\d+)/i,pb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,qb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,rb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,sb=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,tb=/\d\d?/,ub=/\d{1,3}/,vb=/\d{3}/,wb=/\d{1,4}/,xb=/[+\-]?\d{1,6}/,yb=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,zb=/Z|[\+\-]\d\d:?\d\d/i,Ab=/T/i,Bb=/[\+\-]?\d+(\.\d{1,3})?/,Cb=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?$/,Db="YYYY-MM-DDTHH:mm:ssZ",Eb=["YYYY-MM-DD","GGGG-[W]WW","GGGG-[W]WW-E","YYYY-DDD"],Fb=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Gb=/([\+\-]|\d\d)/gi,Hb="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),Ib={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},Jb={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},Kb={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},Lb={},Mb="DDD w W M D d".split(" "),Nb="M D H h m s w W".split(" "),Ob={M:function(){return this.month()+1},MMM:function(a){return this.lang().monthsShort(this,a)},MMMM:function(a){return this.lang().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.lang().weekdaysMin(this,a)},ddd:function(a){return this.lang().weekdaysShort(this,a)},dddd:function(a){return this.lang().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return i(this.year()%100,2)},YYYY:function(){return i(this.year(),4)},YYYYY:function(){return i(this.year(),5)},gg:function(){return i(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},ggggg:function(){return i(this.weekYear(),5)},GG:function(){return i(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return i(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return q(this.milliseconds()/100)},SS:function(){return i(q(this.milliseconds()/10),2)},SSS:function(){return i(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+i(q(a/60),2)+":"+i(q(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+i(q(10*a/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}},Pb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];Mb.length;)cb=Mb.pop(),Ob[cb+"o"]=c(Ob[cb],cb);for(;Nb.length;)cb=Nb.pop(),Ob[cb+cb]=b(Ob[cb],2);for(Ob.DDDD=b(Ob.DDD,3),g(d.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=bb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=bb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return W(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),bb=function(b,c,d,e){return"boolean"==typeof d&&(e=d,d=a),Y({_i:b,_f:c,_l:d,_strict:e,_isUTC:!1})},bb.utc=function(b,c,d,e){var f;return"boolean"==typeof d&&(e=d,d=a),f=Y({_useUTC:!0,_isUTC:!0,_l:d,_i:b,_f:c,_strict:e}).utc()},bb.unix=function(a){return bb(1e3*a)},bb.duration=function(a,b){var c,d,e,g=bb.isDuration(a),h="number"==typeof a,i=g?a._input:h?{}:a,j=null;return h?b?i[b]=a:i.milliseconds=a:(j=pb.exec(a))?(c="-"===j[1]?-1:1,i={y:0,d:q(j[hb])*c,h:q(j[ib])*c,m:q(j[jb])*c,s:q(j[kb])*c,ms:q(j[lb])*c}):(j=qb.exec(a))&&(c="-"===j[1]?-1:1,e=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*c},i={y:e(j[2]),M:e(j[3]),d:e(j[4]),h:e(j[5]),m:e(j[6]),s:e(j[7]),w:e(j[8])}),d=new f(i),g&&a.hasOwnProperty("_lang")&&(d._lang=a._lang),d},bb.version=db,bb.defaultFormat=Db,bb.updateOffset=function(){},bb.lang=function(a,b){var c;return a?(b?y(x(a),b):null===b?(z(a),a="en"):mb[a]||A(a),c=bb.duration.fn._lang=bb.fn._lang=A(a),c._abbr):bb.fn._lang._abbr},bb.langData=function(a){return a&&a._lang&&a._lang._abbr&&(a=a._lang._abbr),A(a)},bb.isMoment=function(a){return a instanceof e},bb.isDuration=function(a){return a instanceof f},cb=Pb.length-1;cb>=0;--cb)p(Pb[cb]);for(bb.normalizeUnits=function(a){return n(a)},bb.invalid=function(a){var b=bb.utc(0/0);return null!=a?g(b._pf,a):b._pf.userInvalidated=!0,b},bb.parseZone=function(a){return bb(a).parseZone()},g(bb.fn=e.prototype,{clone:function(){return bb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return D(bb(this).utc(),"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return w(this)},isDSTShifted:function(){return this._a?this.isValid()&&m(this._a,(this._isUTC?bb.utc(this._a):bb(this._a)).toArray())>0:!1},parsingFlags:function(){return g({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(a){var b=D(this,a||bb.defaultFormat);return this.lang().postformat(b)},add:function(a,b){var c;return c="string"==typeof a?bb.duration(+b,a):bb.duration(a,b),j(this,c,1),this},subtract:function(a,b){var c;return c="string"==typeof a?bb.duration(+b,a):bb.duration(a,b),j(this,c,-1),this},diff:function(a,b,c){var d,e,f=this._isUTC?bb(a).zone(this._offset||0):bb(a).local(),g=6e4*(this.zone()-f.zone());return b=n(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-bb(this).startOf("month")-(f-bb(f).startOf("month")))/d,e-=6e4*(this.zone()-bb(this).startOf("month").zone()-(f.zone()-bb(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:h(e)},from:function(a,b){return bb.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!b)},fromNow:function(a){return this.from(bb(),a)},calendar:function(){var a=this.diff(bb().zone(this.zone()).startOf("day"),"days",!0),b=-6>a?"sameElse":-1>a?"lastWeek":0>a?"lastDay":1>a?"sameDay":2>a?"nextDay":7>a?"nextWeek":"sameElse";return this.format(this.lang().calendar(b,this))},isLeapYear:function(){return t(this.year())},isDST:function(){return this.zone()+bb(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+bb(a).startOf(b)},isSame:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)===+bb(a).startOf(b)},min:function(a){return a=bb.apply(null,arguments),this>a?this:a},max:function(a){return a=bb.apply(null,arguments),a>this?this:a},zone:function(a){var b=this._offset||0;return null==a?this._isUTC?b:this._d.getTimezoneOffset():("string"==typeof a&&(a=G(a)),Math.abs(a)<16&&(a=60*a),this._offset=a,this._isUTC=!0,b!==a&&j(this,bb.duration(b-a,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?bb(a).zone():0,0===(this.zone()-a)%60},daysInMonth:function(){return r(this.year(),this.month())},dayOfYear:function(a){var b=eb((bb(this).startOf("day")-bb(this).startOf("year"))/864e5)+1;return null==a?b:this.add("d",a-b)},weekYear:function(a){var b=W(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?b:this.add("y",a-b)},isoWeekYear:function(a){var b=W(this,1,4).year;return null==a?b:this.add("y",a-b)},week:function(a){var b=this.lang().week(this);return null==a?b:this.add("d",7*(a-b))},isoWeek:function(a){var b=W(this,1,4).week;return null==a?b:this.add("d",7*(a-b))},weekday:function(a){var b=(this.day()+7-this.lang()._week.dow)%7;return null==a?b:this.add("d",a-b)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},get:function(a){return a=n(a),this[a]()},set:function(a,b){return a=n(a),"function"==typeof this[a]&&this[a](b),this},lang:function(b){return b===a?this._lang:(this._lang=A(b),this)}}),cb=0;cbe;e++)b=c[e],g.push(d.initTable(b));return g},initTable:function(a){var b,c,e,f,g;if(1===a.tHead.rows.length&&"true"!==a.getAttribute("data-sortable-initialized")){for(a.setAttribute("data-sortable-initialized","true"),e=a.querySelectorAll("th"),b=f=0,g=e.length;g>f;b=++f)c=e[b],"false"!==c.getAttribute("data-sortable")&&d.setupClickableTH(a,c,b);return a}},setupClickableTH:function(a,c,e){var f;return f=d.getColumnType(a,e),c.addEventListener(b,function(){var b,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;for(j="true"===this.getAttribute("data-sorted"),k=this.getAttribute("data-sorted-direction"),b=j?"ascending"===k?"descending":"ascending":f.defaultSortDirection,m=this.parentNode.querySelectorAll("th"),n=0,q=m.length;q>n;n++)c=m[n],c.setAttribute("data-sorted","false"),c.removeAttribute("data-sorted-direction");for(this.setAttribute("data-sorted","true"),this.setAttribute("data-sorted-direction",b),l=a.tBodies[0],h=[],t=l.rows,o=0,r=t.length;r>o;o++)g=t[o],h.push([d.getNodeValue(g.cells[e]),g]);for(j?h.reverse():h.sort(f.compare),u=[],p=0,s=h.length;s>p;p++)i=h[p],u.push(l.appendChild(i[1]));return u})},getColumnType:function(a,b){var e,f,g,h,i;for(i=a.tBodies[0].rows,g=0,h=i.length;h>g;g++)if(e=i[g],f=d.getNodeValue(e.cells[b]),""!==f&&f.match(c))return d.types.numeric;return d.types.alpha},getNodeValue:function(a){return a?null!==a.getAttribute("data-value")?a.getAttribute("data-value"):"undefined"!=typeof a.innerText?a.innerText.replace(f,""):a.textContent.replace(f,""):""},types:{numeric:{defaultSortDirection:"descending",compare:function(a,b){var c,d;return c=parseFloat(a[0].replace(/[^0-9.-]/g,"")),d=parseFloat(b[0].replace(/[^0-9.-]/g,"")),isNaN(c)&&(c=0),isNaN(d)&&(d=0),d-c}},alpha:{defaultSortDirection:"ascending",compare:function(a,b){var c,d;return c=a[0].toLowerCase(),d=b[0].toLowerCase(),c===d?0:d>c?-1:1}}}},setTimeout(d.init,0),window.Sortable=d}).call(this); -------------------------------------------------------------------------------- /inst/js/table-fixed-header.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | $.fn.fixedHeader = function () { 4 | 5 | return this.each( function() { 6 | var o = $(this) 7 | , nhead = o.closest('.fixed-table'); 8 | 9 | var $head = $('thead.header', o); 10 | 11 | $head.clone().removeClass('header').addClass('header-copy header-fixed').appendTo(nhead); 12 | var ww = []; 13 | o.find('thead.header > tr:first > th').each(function (i, h){ 14 | ww.push($(h).width()); 15 | }); 16 | $.each(ww, function (i, w){ 17 | nhead.find('thead.header > tr > th:eq('+i+'), thead.header-copy > tr > th:eq('+i+')').css({width: w}); 18 | }); 19 | 20 | nhead.find('thead.header-copy').css({ margin:'0 auto', 21 | width: o.width()}); 22 | }); 23 | }; 24 | 25 | })(jQuery); -------------------------------------------------------------------------------- /inst/style/fonts/octicons-local.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karthik/dashboard/14291e0637a851f4747633fb37f130f0f62eecf1/inst/style/fonts/octicons-local.ttf -------------------------------------------------------------------------------- /inst/style/fonts/octicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karthik/dashboard/14291e0637a851f4747633fb37f130f0f62eecf1/inst/style/fonts/octicons.eot -------------------------------------------------------------------------------- /inst/style/fonts/octicons.less: -------------------------------------------------------------------------------- 1 | @octicons-font-path: "."; 2 | @octicons-version: "897b19cdb9c4473f9166329e039ba8337c77d561"; 3 | 4 | @font-face { 5 | font-family: 'octicons'; 6 | src: ~"url('@{octicons-font-path}/octicons.eot?#iefix&v=@{octicons-version}') format('embedded-opentype')", 7 | ~"url('@{octicons-font-path}/octicons.woff?v=@{octicons-version}') format('woff')", 8 | ~"url('@{octicons-font-path}/octicons.ttf?v=@{octicons-version}') format('truetype')", 9 | ~"url('@{octicons-font-path}/octicons.svg?v=@{octicons-version}#octicons') format('svg')"; 10 | font-weight: normal; 11 | font-style: normal; 12 | } 13 | 14 | // .octicon is optimized for 16px. 15 | // .mega-octicon is optimized for 32px but can be used larger. 16 | .octicon { 17 | font: normal normal 16px octicons; 18 | line-height: 1; 19 | display: inline-block; 20 | text-decoration: none; 21 | -webkit-font-smoothing: antialiased; 22 | -moz-osx-font-smoothing: grayscale; 23 | -webkit-user-select: none; 24 | -moz-user-select: none; 25 | -ms-user-select: none; 26 | user-select: none; 27 | } 28 | .mega-octicon { 29 | font: normal normal 32px octicons; 30 | line-height: 1; 31 | display: inline-block; 32 | text-decoration: none; 33 | -webkit-font-smoothing: antialiased; 34 | -moz-osx-font-smoothing: grayscale; 35 | -webkit-user-select: none; 36 | -moz-user-select: none; 37 | -ms-user-select: none; 38 | user-select: none; 39 | } 40 | 41 | .octicon-alert:before { content: '\f02d'} /*  */ 42 | .octicon-alignment-align:before { content: '\f08a'} /*  */ 43 | .octicon-alignment-aligned-to:before { content: '\f08e'} /*  */ 44 | .octicon-alignment-unalign:before { content: '\f08b'} /*  */ 45 | .octicon-arrow-down:before { content: '\f03f'} /*  */ 46 | .octicon-arrow-left:before { content: '\f040'} /*  */ 47 | .octicon-arrow-right:before { content: '\f03e'} /*  */ 48 | .octicon-arrow-small-down:before { content: '\f0a0'} /*  */ 49 | .octicon-arrow-small-left:before { content: '\f0a1'} /*  */ 50 | .octicon-arrow-small-right:before { content: '\f071'} /*  */ 51 | .octicon-arrow-small-up:before { content: '\f09f'} /*  */ 52 | .octicon-arrow-up:before { content: '\f03d'} /*  */ 53 | .octicon-beer:before { content: '\f069'} /*  */ 54 | .octicon-book:before { content: '\f007'} /*  */ 55 | .octicon-bookmark:before { content: '\f07b'} /*  */ 56 | .octicon-briefcase:before { content: '\f0d3'} /*  */ 57 | .octicon-broadcast:before { content: '\f048'} /*  */ 58 | .octicon-browser:before { content: '\f0c5'} /*  */ 59 | .octicon-bug:before { content: '\f091'} /*  */ 60 | .octicon-calendar:before { content: '\f068'} /*  */ 61 | .octicon-check:before { content: '\f03a'} /*  */ 62 | .octicon-checklist:before { content: '\f076'} /*  */ 63 | .octicon-chevron-down:before { content: '\f0a3'} /*  */ 64 | .octicon-chevron-left:before { content: '\f0a4'} /*  */ 65 | .octicon-chevron-right:before { content: '\f078'} /*  */ 66 | .octicon-chevron-up:before { content: '\f0a2'} /*  */ 67 | .octicon-circle-slash:before { content: '\f084'} /*  */ 68 | .octicon-circuit-board:before { content: '\f0d6'} /*  */ 69 | .octicon-clippy:before { content: '\f035'} /*  */ 70 | .octicon-clock:before { content: '\f046'} /*  */ 71 | .octicon-cloud-download:before { content: '\f00b'} /*  */ 72 | .octicon-cloud-upload:before { content: '\f00c'} /*  */ 73 | .octicon-code:before { content: '\f05f'} /*  */ 74 | .octicon-color-mode:before { content: '\f065'} /*  */ 75 | .octicon-comment-add:before, 76 | .octicon-comment:before { content: '\f02b'} /*  */ 77 | .octicon-comment-discussion:before { content: '\f04f'} /*  */ 78 | .octicon-credit-card:before { content: '\f045'} /*  */ 79 | .octicon-dash:before { content: '\f0ca'} /*  */ 80 | .octicon-dashboard:before { content: '\f07d'} /*  */ 81 | .octicon-database:before { content: '\f096'} /*  */ 82 | .octicon-device-camera:before { content: '\f056'} /*  */ 83 | .octicon-device-camera-video:before { content: '\f057'} /*  */ 84 | .octicon-device-desktop:before { content: '\f27c'} /*  */ 85 | .octicon-device-mobile:before { content: '\f038'} /*  */ 86 | .octicon-diff:before { content: '\f04d'} /*  */ 87 | .octicon-diff-added:before { content: '\f06b'} /*  */ 88 | .octicon-diff-ignored:before { content: '\f099'} /*  */ 89 | .octicon-diff-modified:before { content: '\f06d'} /*  */ 90 | .octicon-diff-removed:before { content: '\f06c'} /*  */ 91 | .octicon-diff-renamed:before { content: '\f06e'} /*  */ 92 | .octicon-ellipsis:before { content: '\f09a'} /*  */ 93 | .octicon-eye-unwatch:before, 94 | .octicon-eye-watch:before, 95 | .octicon-eye:before { content: '\f04e'} /*  */ 96 | .octicon-file-binary:before { content: '\f094'} /*  */ 97 | .octicon-file-code:before { content: '\f010'} /*  */ 98 | .octicon-file-directory:before { content: '\f016'} /*  */ 99 | .octicon-file-media:before { content: '\f012'} /*  */ 100 | .octicon-file-pdf:before { content: '\f014'} /*  */ 101 | .octicon-file-submodule:before { content: '\f017'} /*  */ 102 | .octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ 103 | .octicon-file-symlink-file:before { content: '\f0b0'} /*  */ 104 | .octicon-file-text:before { content: '\f011'} /*  */ 105 | .octicon-file-zip:before { content: '\f013'} /*  */ 106 | .octicon-flame:before { content: '\f0d2'} /*  */ 107 | .octicon-fold:before { content: '\f0cc'} /*  */ 108 | .octicon-gear:before { content: '\f02f'} /*  */ 109 | .octicon-gift:before { content: '\f042'} /*  */ 110 | .octicon-gist:before { content: '\f00e'} /*  */ 111 | .octicon-gist-secret:before { content: '\f08c'} /*  */ 112 | .octicon-git-branch-create:before, 113 | .octicon-git-branch-delete:before, 114 | .octicon-git-branch:before { content: '\f020'} /*  */ 115 | .octicon-git-commit:before { content: '\f01f'} /*  */ 116 | .octicon-git-compare:before { content: '\f0ac'} /*  */ 117 | .octicon-git-merge:before { content: '\f023'} /*  */ 118 | .octicon-git-pull-request-abandoned:before, 119 | .octicon-git-pull-request:before { content: '\f009'} /*  */ 120 | .octicon-globe:before { content: '\f0b6'} /*  */ 121 | .octicon-graph:before { content: '\f043'} /*  */ 122 | .octicon-heart:before { content: '\2665'} /* ♥ */ 123 | .octicon-history:before { content: '\f07e'} /*  */ 124 | .octicon-home:before { content: '\f08d'} /*  */ 125 | .octicon-horizontal-rule:before { content: '\f070'} /*  */ 126 | .octicon-hourglass:before { content: '\f09e'} /*  */ 127 | .octicon-hubot:before { content: '\f09d'} /*  */ 128 | .octicon-inbox:before { content: '\f0cf'} /*  */ 129 | .octicon-info:before { content: '\f059'} /*  */ 130 | .octicon-issue-closed:before { content: '\f028'} /*  */ 131 | .octicon-issue-opened:before { content: '\f026'} /*  */ 132 | .octicon-issue-reopened:before { content: '\f027'} /*  */ 133 | .octicon-jersey:before { content: '\f019'} /*  */ 134 | .octicon-jump-down:before { content: '\f072'} /*  */ 135 | .octicon-jump-left:before { content: '\f0a5'} /*  */ 136 | .octicon-jump-right:before { content: '\f0a6'} /*  */ 137 | .octicon-jump-up:before { content: '\f073'} /*  */ 138 | .octicon-key:before { content: '\f049'} /*  */ 139 | .octicon-keyboard:before { content: '\f00d'} /*  */ 140 | .octicon-law:before { content: '\f0d8'} /* */ 141 | .octicon-light-bulb:before { content: '\f000'} /*  */ 142 | .octicon-link:before { content: '\f05c'} /*  */ 143 | .octicon-link-external:before { content: '\f07f'} /*  */ 144 | .octicon-list-ordered:before { content: '\f062'} /*  */ 145 | .octicon-list-unordered:before { content: '\f061'} /*  */ 146 | .octicon-location:before { content: '\f060'} /*  */ 147 | .octicon-gist-private:before, 148 | .octicon-mirror-private:before, 149 | .octicon-git-fork-private:before, 150 | .octicon-lock:before { content: '\f06a'} /*  */ 151 | .octicon-logo-github:before { content: '\f092'} /*  */ 152 | .octicon-mail:before { content: '\f03b'} /*  */ 153 | .octicon-mail-read:before { content: '\f03c'} /*  */ 154 | .octicon-mail-reply:before { content: '\f051'} /*  */ 155 | .octicon-mark-github:before { content: '\f00a'} /*  */ 156 | .octicon-markdown:before { content: '\f0c9'} /*  */ 157 | .octicon-megaphone:before { content: '\f077'} /*  */ 158 | .octicon-mention:before { content: '\f0be'} /*  */ 159 | .octicon-microscope:before { content: '\f089'} /*  */ 160 | .octicon-milestone:before { content: '\f075'} /*  */ 161 | .octicon-mirror-public:before, 162 | .octicon-mirror:before { content: '\f024'} /*  */ 163 | .octicon-mortar-board:before { content: '\f0d7'} /* */ 164 | .octicon-move-down:before { content: '\f0a8'} /*  */ 165 | .octicon-move-left:before { content: '\f074'} /*  */ 166 | .octicon-move-right:before { content: '\f0a9'} /*  */ 167 | .octicon-move-up:before { content: '\f0a7'} /*  */ 168 | .octicon-mute:before { content: '\f080'} /*  */ 169 | .octicon-no-newline:before { content: '\f09c'} /*  */ 170 | .octicon-octoface:before { content: '\f008'} /*  */ 171 | .octicon-organization:before { content: '\f037'} /*  */ 172 | .octicon-package:before { content: '\f0c4'} /*  */ 173 | .octicon-paintcan:before { content: '\f0d1'} /*  */ 174 | .octicon-pencil:before { content: '\f058'} /*  */ 175 | .octicon-person-add:before, 176 | .octicon-person-follow:before, 177 | .octicon-person:before { content: '\f018'} /*  */ 178 | .octicon-pin:before { content: '\f041'} /*  */ 179 | .octicon-playback-fast-forward:before { content: '\f0bd'} /*  */ 180 | .octicon-playback-pause:before { content: '\f0bb'} /*  */ 181 | .octicon-playback-play:before { content: '\f0bf'} /*  */ 182 | .octicon-playback-rewind:before { content: '\f0bc'} /*  */ 183 | .octicon-plug:before { content: '\f0d4'} /*  */ 184 | .octicon-repo-create:before, 185 | .octicon-gist-new:before, 186 | .octicon-file-directory-create:before, 187 | .octicon-file-add:before, 188 | .octicon-plus:before { content: '\f05d'} /*  */ 189 | .octicon-podium:before { content: '\f0af'} /*  */ 190 | .octicon-primitive-dot:before { content: '\f052'} /*  */ 191 | .octicon-primitive-square:before { content: '\f053'} /*  */ 192 | .octicon-pulse:before { content: '\f085'} /*  */ 193 | .octicon-puzzle:before { content: '\f0c0'} /*  */ 194 | .octicon-question:before { content: '\f02c'} /*  */ 195 | .octicon-quote:before { content: '\f063'} /*  */ 196 | .octicon-radio-tower:before { content: '\f030'} /*  */ 197 | .octicon-repo-delete:before, 198 | .octicon-repo:before { content: '\f001'} /*  */ 199 | .octicon-repo-clone:before { content: '\f04c'} /*  */ 200 | .octicon-repo-force-push:before { content: '\f04a'} /*  */ 201 | .octicon-gist-fork:before, 202 | .octicon-repo-forked:before { content: '\f002'} /*  */ 203 | .octicon-repo-pull:before { content: '\f006'} /*  */ 204 | .octicon-repo-push:before { content: '\f005'} /*  */ 205 | .octicon-rocket:before { content: '\f033'} /*  */ 206 | .octicon-rss:before { content: '\f034'} /*  */ 207 | .octicon-ruby:before { content: '\f047'} /*  */ 208 | .octicon-screen-full:before { content: '\f066'} /*  */ 209 | .octicon-screen-normal:before { content: '\f067'} /*  */ 210 | .octicon-search-save:before, 211 | .octicon-search:before { content: '\f02e'} /*  */ 212 | .octicon-server:before { content: '\f097'} /*  */ 213 | .octicon-settings:before { content: '\f07c'} /*  */ 214 | .octicon-log-in:before, 215 | .octicon-sign-in:before { content: '\f036'} /*  */ 216 | .octicon-log-out:before, 217 | .octicon-sign-out:before { content: '\f032'} /*  */ 218 | .octicon-split:before { content: '\f0c6'} /*  */ 219 | .octicon-squirrel:before { content: '\f0b2'} /*  */ 220 | .octicon-star-add:before, 221 | .octicon-star-delete:before, 222 | .octicon-star:before { content: '\f02a'} /*  */ 223 | .octicon-steps:before { content: '\f0c7'} /*  */ 224 | .octicon-stop:before { content: '\f08f'} /*  */ 225 | .octicon-repo-sync:before, 226 | .octicon-sync:before { content: '\f087'} /*  */ 227 | .octicon-tag-remove:before, 228 | .octicon-tag-add:before, 229 | .octicon-tag:before { content: '\f015'} /*  */ 230 | .octicon-telescope:before { content: '\f088'} /*  */ 231 | .octicon-terminal:before { content: '\f0c8'} /*  */ 232 | .octicon-three-bars:before { content: '\f05e'} /*  */ 233 | .octicon-tools:before { content: '\f031'} /*  */ 234 | .octicon-trashcan:before { content: '\f0d0'} /*  */ 235 | .octicon-triangle-down:before { content: '\f05b'} /*  */ 236 | .octicon-triangle-left:before { content: '\f044'} /*  */ 237 | .octicon-triangle-right:before { content: '\f05a'} /*  */ 238 | .octicon-triangle-up:before { content: '\f0aa'} /*  */ 239 | .octicon-unfold:before { content: '\f039'} /*  */ 240 | .octicon-unmute:before { content: '\f0ba'} /*  */ 241 | .octicon-versions:before { content: '\f064'} /*  */ 242 | .octicon-remove-close:before, 243 | .octicon-x:before { content: '\f081'} /*  */ 244 | .octicon-zap:before { content: '\26A1'} /* ⚡ */ 245 | -------------------------------------------------------------------------------- /inst/style/fonts/octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karthik/dashboard/14291e0637a851f4747633fb37f130f0f62eecf1/inst/style/fonts/octicons.ttf -------------------------------------------------------------------------------- /inst/style/fonts/octicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karthik/dashboard/14291e0637a851f4747633fb37f130f0f62eecf1/inst/style/fonts/octicons.woff -------------------------------------------------------------------------------- /inst/style/fonts/sprockets-octicons.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'octicons'; 3 | src: font-url('octicons.eot?#iefix') format('embedded-opentype'), 4 | font-url('octicons.woff') format('woff'), 5 | font-url('octicons.ttf') format('truetype'), 6 | font-url('octicons.svg#octicons') format('svg'); 7 | font-weight: normal; 8 | font-style: normal; 9 | } 10 | 11 | // .octicon is optimized for 16px. 12 | // .mega-octicon is optimized for 32px but can be used larger. 13 | .octicon { 14 | font: normal normal 16px octicons; 15 | line-height: 1; 16 | display: inline-block; 17 | text-decoration: none; 18 | -webkit-font-smoothing: antialiased; 19 | -moz-osx-font-smoothing: grayscale; 20 | -webkit-user-select: none; 21 | -moz-user-select: none; 22 | -ms-user-select: none; 23 | user-select: none; 24 | } 25 | .mega-octicon { 26 | font: normal normal 32px octicons; 27 | line-height: 1; 28 | display: inline-block; 29 | text-decoration: none; 30 | -webkit-font-smoothing: antialiased; 31 | -moz-osx-font-smoothing: grayscale; 32 | -webkit-user-select: none; 33 | -moz-user-select: none; 34 | -ms-user-select: none; 35 | user-select: none; 36 | } 37 | 38 | .octicon-alert:before { content: '\f02d'} /*  */ 39 | .octicon-alignment-align:before { content: '\f08a'} /*  */ 40 | .octicon-alignment-aligned-to:before { content: '\f08e'} /*  */ 41 | .octicon-alignment-unalign:before { content: '\f08b'} /*  */ 42 | .octicon-arrow-down:before { content: '\f03f'} /*  */ 43 | .octicon-arrow-left:before { content: '\f040'} /*  */ 44 | .octicon-arrow-right:before { content: '\f03e'} /*  */ 45 | .octicon-arrow-small-down:before { content: '\f0a0'} /*  */ 46 | .octicon-arrow-small-left:before { content: '\f0a1'} /*  */ 47 | .octicon-arrow-small-right:before { content: '\f071'} /*  */ 48 | .octicon-arrow-small-up:before { content: '\f09f'} /*  */ 49 | .octicon-arrow-up:before { content: '\f03d'} /*  */ 50 | .octicon-beer:before { content: '\f069'} /*  */ 51 | .octicon-book:before { content: '\f007'} /*  */ 52 | .octicon-bookmark:before { content: '\f07b'} /*  */ 53 | .octicon-briefcase:before { content: '\f0d3'} /*  */ 54 | .octicon-broadcast:before { content: '\f048'} /*  */ 55 | .octicon-browser:before { content: '\f0c5'} /*  */ 56 | .octicon-bug:before { content: '\f091'} /*  */ 57 | .octicon-calendar:before { content: '\f068'} /*  */ 58 | .octicon-check:before { content: '\f03a'} /*  */ 59 | .octicon-checklist:before { content: '\f076'} /*  */ 60 | .octicon-chevron-down:before { content: '\f0a3'} /*  */ 61 | .octicon-chevron-left:before { content: '\f0a4'} /*  */ 62 | .octicon-chevron-right:before { content: '\f078'} /*  */ 63 | .octicon-chevron-up:before { content: '\f0a2'} /*  */ 64 | .octicon-circle-slash:before { content: '\f084'} /*  */ 65 | .octicon-circuit-board:before { content: '\f0d6'} /*  */ 66 | .octicon-clippy:before { content: '\f035'} /*  */ 67 | .octicon-clock:before { content: '\f046'} /*  */ 68 | .octicon-cloud-download:before { content: '\f00b'} /*  */ 69 | .octicon-cloud-upload:before { content: '\f00c'} /*  */ 70 | .octicon-code:before { content: '\f05f'} /*  */ 71 | .octicon-color-mode:before { content: '\f065'} /*  */ 72 | .octicon-comment-add:before, 73 | .octicon-comment:before { content: '\f02b'} /*  */ 74 | .octicon-comment-discussion:before { content: '\f04f'} /*  */ 75 | .octicon-credit-card:before { content: '\f045'} /*  */ 76 | .octicon-dash:before { content: '\f0ca'} /*  */ 77 | .octicon-dashboard:before { content: '\f07d'} /*  */ 78 | .octicon-database:before { content: '\f096'} /*  */ 79 | .octicon-device-camera:before { content: '\f056'} /*  */ 80 | .octicon-device-camera-video:before { content: '\f057'} /*  */ 81 | .octicon-device-desktop:before { content: '\f27c'} /*  */ 82 | .octicon-device-mobile:before { content: '\f038'} /*  */ 83 | .octicon-diff:before { content: '\f04d'} /*  */ 84 | .octicon-diff-added:before { content: '\f06b'} /*  */ 85 | .octicon-diff-ignored:before { content: '\f099'} /*  */ 86 | .octicon-diff-modified:before { content: '\f06d'} /*  */ 87 | .octicon-diff-removed:before { content: '\f06c'} /*  */ 88 | .octicon-diff-renamed:before { content: '\f06e'} /*  */ 89 | .octicon-ellipsis:before { content: '\f09a'} /*  */ 90 | .octicon-eye-unwatch:before, 91 | .octicon-eye-watch:before, 92 | .octicon-eye:before { content: '\f04e'} /*  */ 93 | .octicon-file-binary:before { content: '\f094'} /*  */ 94 | .octicon-file-code:before { content: '\f010'} /*  */ 95 | .octicon-file-directory:before { content: '\f016'} /*  */ 96 | .octicon-file-media:before { content: '\f012'} /*  */ 97 | .octicon-file-pdf:before { content: '\f014'} /*  */ 98 | .octicon-file-submodule:before { content: '\f017'} /*  */ 99 | .octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ 100 | .octicon-file-symlink-file:before { content: '\f0b0'} /*  */ 101 | .octicon-file-text:before { content: '\f011'} /*  */ 102 | .octicon-file-zip:before { content: '\f013'} /*  */ 103 | .octicon-flame:before { content: '\f0d2'} /*  */ 104 | .octicon-fold:before { content: '\f0cc'} /*  */ 105 | .octicon-gear:before { content: '\f02f'} /*  */ 106 | .octicon-gift:before { content: '\f042'} /*  */ 107 | .octicon-gist:before { content: '\f00e'} /*  */ 108 | .octicon-gist-secret:before { content: '\f08c'} /*  */ 109 | .octicon-git-branch-create:before, 110 | .octicon-git-branch-delete:before, 111 | .octicon-git-branch:before { content: '\f020'} /*  */ 112 | .octicon-git-commit:before { content: '\f01f'} /*  */ 113 | .octicon-git-compare:before { content: '\f0ac'} /*  */ 114 | .octicon-git-merge:before { content: '\f023'} /*  */ 115 | .octicon-git-pull-request-abandoned:before, 116 | .octicon-git-pull-request:before { content: '\f009'} /*  */ 117 | .octicon-globe:before { content: '\f0b6'} /*  */ 118 | .octicon-graph:before { content: '\f043'} /*  */ 119 | .octicon-heart:before { content: '\2665'} /* ♥ */ 120 | .octicon-history:before { content: '\f07e'} /*  */ 121 | .octicon-home:before { content: '\f08d'} /*  */ 122 | .octicon-horizontal-rule:before { content: '\f070'} /*  */ 123 | .octicon-hourglass:before { content: '\f09e'} /*  */ 124 | .octicon-hubot:before { content: '\f09d'} /*  */ 125 | .octicon-inbox:before { content: '\f0cf'} /*  */ 126 | .octicon-info:before { content: '\f059'} /*  */ 127 | .octicon-issue-closed:before { content: '\f028'} /*  */ 128 | .octicon-issue-opened:before { content: '\f026'} /*  */ 129 | .octicon-issue-reopened:before { content: '\f027'} /*  */ 130 | .octicon-jersey:before { content: '\f019'} /*  */ 131 | .octicon-jump-down:before { content: '\f072'} /*  */ 132 | .octicon-jump-left:before { content: '\f0a5'} /*  */ 133 | .octicon-jump-right:before { content: '\f0a6'} /*  */ 134 | .octicon-jump-up:before { content: '\f073'} /*  */ 135 | .octicon-key:before { content: '\f049'} /*  */ 136 | .octicon-keyboard:before { content: '\f00d'} /*  */ 137 | .octicon-law:before { content: '\f0d8'} /* */ 138 | .octicon-light-bulb:before { content: '\f000'} /*  */ 139 | .octicon-link:before { content: '\f05c'} /*  */ 140 | .octicon-link-external:before { content: '\f07f'} /*  */ 141 | .octicon-list-ordered:before { content: '\f062'} /*  */ 142 | .octicon-list-unordered:before { content: '\f061'} /*  */ 143 | .octicon-location:before { content: '\f060'} /*  */ 144 | .octicon-gist-private:before, 145 | .octicon-mirror-private:before, 146 | .octicon-git-fork-private:before, 147 | .octicon-lock:before { content: '\f06a'} /*  */ 148 | .octicon-logo-github:before { content: '\f092'} /*  */ 149 | .octicon-mail:before { content: '\f03b'} /*  */ 150 | .octicon-mail-read:before { content: '\f03c'} /*  */ 151 | .octicon-mail-reply:before { content: '\f051'} /*  */ 152 | .octicon-mark-github:before { content: '\f00a'} /*  */ 153 | .octicon-markdown:before { content: '\f0c9'} /*  */ 154 | .octicon-megaphone:before { content: '\f077'} /*  */ 155 | .octicon-mention:before { content: '\f0be'} /*  */ 156 | .octicon-microscope:before { content: '\f089'} /*  */ 157 | .octicon-milestone:before { content: '\f075'} /*  */ 158 | .octicon-mirror-public:before, 159 | .octicon-mirror:before { content: '\f024'} /*  */ 160 | .octicon-mortar-board:before { content: '\f0d7'} /* */ 161 | .octicon-move-down:before { content: '\f0a8'} /*  */ 162 | .octicon-move-left:before { content: '\f074'} /*  */ 163 | .octicon-move-right:before { content: '\f0a9'} /*  */ 164 | .octicon-move-up:before { content: '\f0a7'} /*  */ 165 | .octicon-mute:before { content: '\f080'} /*  */ 166 | .octicon-no-newline:before { content: '\f09c'} /*  */ 167 | .octicon-octoface:before { content: '\f008'} /*  */ 168 | .octicon-organization:before { content: '\f037'} /*  */ 169 | .octicon-package:before { content: '\f0c4'} /*  */ 170 | .octicon-paintcan:before { content: '\f0d1'} /*  */ 171 | .octicon-pencil:before { content: '\f058'} /*  */ 172 | .octicon-person-add:before, 173 | .octicon-person-follow:before, 174 | .octicon-person:before { content: '\f018'} /*  */ 175 | .octicon-pin:before { content: '\f041'} /*  */ 176 | .octicon-playback-fast-forward:before { content: '\f0bd'} /*  */ 177 | .octicon-playback-pause:before { content: '\f0bb'} /*  */ 178 | .octicon-playback-play:before { content: '\f0bf'} /*  */ 179 | .octicon-playback-rewind:before { content: '\f0bc'} /*  */ 180 | .octicon-plug:before { content: '\f0d4'} /*  */ 181 | .octicon-repo-create:before, 182 | .octicon-gist-new:before, 183 | .octicon-file-directory-create:before, 184 | .octicon-file-add:before, 185 | .octicon-plus:before { content: '\f05d'} /*  */ 186 | .octicon-podium:before { content: '\f0af'} /*  */ 187 | .octicon-primitive-dot:before { content: '\f052'} /*  */ 188 | .octicon-primitive-square:before { content: '\f053'} /*  */ 189 | .octicon-pulse:before { content: '\f085'} /*  */ 190 | .octicon-puzzle:before { content: '\f0c0'} /*  */ 191 | .octicon-question:before { content: '\f02c'} /*  */ 192 | .octicon-quote:before { content: '\f063'} /*  */ 193 | .octicon-radio-tower:before { content: '\f030'} /*  */ 194 | .octicon-repo-delete:before, 195 | .octicon-repo:before { content: '\f001'} /*  */ 196 | .octicon-repo-clone:before { content: '\f04c'} /*  */ 197 | .octicon-repo-force-push:before { content: '\f04a'} /*  */ 198 | .octicon-gist-fork:before, 199 | .octicon-repo-forked:before { content: '\f002'} /*  */ 200 | .octicon-repo-pull:before { content: '\f006'} /*  */ 201 | .octicon-repo-push:before { content: '\f005'} /*  */ 202 | .octicon-rocket:before { content: '\f033'} /*  */ 203 | .octicon-rss:before { content: '\f034'} /*  */ 204 | .octicon-ruby:before { content: '\f047'} /*  */ 205 | .octicon-screen-full:before { content: '\f066'} /*  */ 206 | .octicon-screen-normal:before { content: '\f067'} /*  */ 207 | .octicon-search-save:before, 208 | .octicon-search:before { content: '\f02e'} /*  */ 209 | .octicon-server:before { content: '\f097'} /*  */ 210 | .octicon-settings:before { content: '\f07c'} /*  */ 211 | .octicon-log-in:before, 212 | .octicon-sign-in:before { content: '\f036'} /*  */ 213 | .octicon-log-out:before, 214 | .octicon-sign-out:before { content: '\f032'} /*  */ 215 | .octicon-split:before { content: '\f0c6'} /*  */ 216 | .octicon-squirrel:before { content: '\f0b2'} /*  */ 217 | .octicon-star-add:before, 218 | .octicon-star-delete:before, 219 | .octicon-star:before { content: '\f02a'} /*  */ 220 | .octicon-steps:before { content: '\f0c7'} /*  */ 221 | .octicon-stop:before { content: '\f08f'} /*  */ 222 | .octicon-repo-sync:before, 223 | .octicon-sync:before { content: '\f087'} /*  */ 224 | .octicon-tag-remove:before, 225 | .octicon-tag-add:before, 226 | .octicon-tag:before { content: '\f015'} /*  */ 227 | .octicon-telescope:before { content: '\f088'} /*  */ 228 | .octicon-terminal:before { content: '\f0c8'} /*  */ 229 | .octicon-three-bars:before { content: '\f05e'} /*  */ 230 | .octicon-tools:before { content: '\f031'} /*  */ 231 | .octicon-trashcan:before { content: '\f0d0'} /*  */ 232 | .octicon-triangle-down:before { content: '\f05b'} /*  */ 233 | .octicon-triangle-left:before { content: '\f044'} /*  */ 234 | .octicon-triangle-right:before { content: '\f05a'} /*  */ 235 | .octicon-triangle-up:before { content: '\f0aa'} /*  */ 236 | .octicon-unfold:before { content: '\f039'} /*  */ 237 | .octicon-unmute:before { content: '\f0ba'} /*  */ 238 | .octicon-versions:before { content: '\f064'} /*  */ 239 | .octicon-remove-close:before, 240 | .octicon-x:before { content: '\f081'} /*  */ 241 | .octicon-zap:before { content: '\26A1'} /* ⚡ */ 242 | -------------------------------------------------------------------------------- /inst/style/hint.min.css: -------------------------------------------------------------------------------- 1 | /*! Hint.css - v1.3.3 - 2014-07-06 2 | * http://kushagragour.in/lab/hint/ 3 | * Copyright (c) 2014 Kushagra Gour; Licensed MIT */ 4 | 5 | .hint,[data-hint]{position:relative;display:inline-block}.hint:before,.hint:after,[data-hint]:before,[data-hint]:after{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0ms;-moz-transition-delay:0ms;transition-delay:0ms}.hint:hover:before,.hint:hover:after,.hint:focus:before,.hint:focus:after,[data-hint]:hover:before,[data-hint]:hover:after,[data-hint]:focus:before,[data-hint]:focus:after{visibility:visible;opacity:1}.hint:hover:before,.hint:hover:after,[data-hint]:hover:before,[data-hint]:hover:after{-webkit-transition-delay:100ms;-moz-transition-delay:100ms;transition-delay:100ms}.hint:before,[data-hint]:before{content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1000001}.hint:after,[data-hint]:after{content:attr(data-hint);background:#383838;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap}.hint--top:before{border-top-color:#383838}.hint--bottom:before{border-bottom-color:#383838}.hint--left:before{border-left-color:#383838}.hint--right:before{border-right-color:#383838}.hint--top:before{margin-bottom:-12px}.hint--top:after{margin-left:-18px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:hover:after,.hint--top:hover:before,.hint--top:focus:after,.hint--top:focus:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--bottom:before{margin-top:-12px}.hint--bottom:after{margin-left:-18px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:hover:after,.hint--bottom:hover:before,.hint--bottom:focus:after,.hint--bottom:focus:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--right:before{margin-left:-12px;margin-bottom:-6px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{left:100%;bottom:50%}.hint--right:hover:after,.hint--right:hover:before,.hint--right:focus:after,.hint--right:focus:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--left:before{margin-right:-12px;margin-bottom:-6px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{right:100%;bottom:50%}.hint--left:hover:after,.hint--left:hover:before,.hint--left:focus:after,.hint--left:focus:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--error:after{background-color:#b34e4d;text-shadow:0 -1px 0 #592726}.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{background-color:#c09854;text-shadow:0 -1px 0 #6c5328}.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{background-color:#3986ac;text-shadow:0 -1px 0 #193b4d}.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{background-color:#458746;text-shadow:0 -1px 0 #1a321a}.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:after,.hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--bottom:after,.hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--left:after,.hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--always.hint--right:after,.hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{-webkit-transition-duration:0ms;-moz-transition-duration:0ms;transition-duration:0ms}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(0.71,1.7,.77,1.24);-moz-transition:opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(0.71,1.7,.77,1.24);transition:opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(0.71,1.7,.77,1.24)} -------------------------------------------------------------------------------- /inst/style/octicons.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'octicons'; 3 | src: url('fonts/octicons.eot?#iefix') format('embedded-opentype'), 4 | url('fonts/octicons.woff') format('woff'), 5 | url('fonts/octicons.ttf') format('truetype'), 6 | url('fonts/octicons.svg#octicons') format('svg'); 7 | font-weight: normal; 8 | font-style: normal; 9 | } 10 | 11 | /* 12 | 13 | .octicon is optimized for 16px. 14 | .mega-octicon is optimized for 32px but can be used larger. 15 | 16 | */ 17 | .octicon { 18 | font: normal normal 16px octicons; 19 | line-height: 1; 20 | display: inline-block; 21 | text-decoration: none; 22 | -webkit-font-smoothing: antialiased; 23 | -moz-osx-font-smoothing: grayscale; 24 | -webkit-user-select: none; 25 | -moz-user-select: none; 26 | -ms-user-select: none; 27 | user-select: none; 28 | } 29 | .mega-octicon { 30 | font: normal normal 32px octicons; 31 | line-height: 1; 32 | display: inline-block; 33 | text-decoration: none; 34 | -webkit-font-smoothing: antialiased; 35 | -moz-osx-font-smoothing: grayscale; 36 | -webkit-user-select: none; 37 | -moz-user-select: none; 38 | -ms-user-select: none; 39 | user-select: none; 40 | } 41 | 42 | .octicon-alert:before { content: '\f02d'} /*  */ 43 | .octicon-alignment-align:before { content: '\f08a'} /*  */ 44 | .octicon-alignment-aligned-to:before { content: '\f08e'} /*  */ 45 | .octicon-alignment-unalign:before { content: '\f08b'} /*  */ 46 | .octicon-arrow-down:before { content: '\f03f'} /*  */ 47 | .octicon-arrow-left:before { content: '\f040'} /*  */ 48 | .octicon-arrow-right:before { content: '\f03e'} /*  */ 49 | .octicon-arrow-small-down:before { content: '\f0a0'} /*  */ 50 | .octicon-arrow-small-left:before { content: '\f0a1'} /*  */ 51 | .octicon-arrow-small-right:before { content: '\f071'} /*  */ 52 | .octicon-arrow-small-up:before { content: '\f09f'} /*  */ 53 | .octicon-arrow-up:before { content: '\f03d'} /*  */ 54 | .octicon-beer:before { content: '\f069'} /*  */ 55 | .octicon-book:before { content: '\f007'} /*  */ 56 | .octicon-bookmark:before { content: '\f07b'} /*  */ 57 | .octicon-briefcase:before { content: '\f0d3'} /*  */ 58 | .octicon-broadcast:before { content: '\f048'} /*  */ 59 | .octicon-browser:before { content: '\f0c5'} /*  */ 60 | .octicon-bug:before { content: '\f091'} /*  */ 61 | .octicon-calendar:before { content: '\f068'} /*  */ 62 | .octicon-check:before { content: '\f03a'} /*  */ 63 | .octicon-checklist:before { content: '\f076'} /*  */ 64 | .octicon-chevron-down:before { content: '\f0a3'} /*  */ 65 | .octicon-chevron-left:before { content: '\f0a4'} /*  */ 66 | .octicon-chevron-right:before { content: '\f078'} /*  */ 67 | .octicon-chevron-up:before { content: '\f0a2'} /*  */ 68 | .octicon-circle-slash:before { content: '\f084'} /*  */ 69 | .octicon-circuit-board:before { content: '\f0d6'} /*  */ 70 | .octicon-clippy:before { content: '\f035'} /*  */ 71 | .octicon-clock:before { content: '\f046'} /*  */ 72 | .octicon-cloud-download:before { content: '\f00b'} /*  */ 73 | .octicon-cloud-upload:before { content: '\f00c'} /*  */ 74 | .octicon-code:before { content: '\f05f'} /*  */ 75 | .octicon-color-mode:before { content: '\f065'} /*  */ 76 | .octicon-comment-add:before, 77 | .octicon-comment:before { content: '\f02b'} /*  */ 78 | .octicon-comment-discussion:before { content: '\f04f'} /*  */ 79 | .octicon-credit-card:before { content: '\f045'} /*  */ 80 | .octicon-dash:before { content: '\f0ca'} /*  */ 81 | .octicon-dashboard:before { content: '\f07d'} /*  */ 82 | .octicon-database:before { content: '\f096'} /*  */ 83 | .octicon-device-camera:before { content: '\f056'} /*  */ 84 | .octicon-device-camera-video:before { content: '\f057'} /*  */ 85 | .octicon-device-desktop:before { content: '\f27c'} /*  */ 86 | .octicon-device-mobile:before { content: '\f038'} /*  */ 87 | .octicon-diff:before { content: '\f04d'} /*  */ 88 | .octicon-diff-added:before { content: '\f06b'} /*  */ 89 | .octicon-diff-ignored:before { content: '\f099'} /*  */ 90 | .octicon-diff-modified:before { content: '\f06d'} /*  */ 91 | .octicon-diff-removed:before { content: '\f06c'} /*  */ 92 | .octicon-diff-renamed:before { content: '\f06e'} /*  */ 93 | .octicon-ellipsis:before { content: '\f09a'} /*  */ 94 | .octicon-eye-unwatch:before, 95 | .octicon-eye-watch:before, 96 | .octicon-eye:before { content: '\f04e'} /*  */ 97 | .octicon-file-binary:before { content: '\f094'} /*  */ 98 | .octicon-file-code:before { content: '\f010'} /*  */ 99 | .octicon-file-directory:before { content: '\f016'} /*  */ 100 | .octicon-file-media:before { content: '\f012'} /*  */ 101 | .octicon-file-pdf:before { content: '\f014'} /*  */ 102 | .octicon-file-submodule:before { content: '\f017'} /*  */ 103 | .octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ 104 | .octicon-file-symlink-file:before { content: '\f0b0'} /*  */ 105 | .octicon-file-text:before { content: '\f011'} /*  */ 106 | .octicon-file-zip:before { content: '\f013'} /*  */ 107 | .octicon-flame:before { content: '\f0d2'} /*  */ 108 | .octicon-fold:before { content: '\f0cc'} /*  */ 109 | .octicon-gear:before { content: '\f02f'} /*  */ 110 | .octicon-gift:before { content: '\f042'} /*  */ 111 | .octicon-gist:before { content: '\f00e'} /*  */ 112 | .octicon-gist-secret:before { content: '\f08c'} /*  */ 113 | .octicon-git-branch-create:before, 114 | .octicon-git-branch-delete:before, 115 | .octicon-git-branch:before { content: '\f020'} /*  */ 116 | .octicon-git-commit:before { content: '\f01f'} /*  */ 117 | .octicon-git-compare:before { content: '\f0ac'} /*  */ 118 | .octicon-git-merge:before { content: '\f023'} /*  */ 119 | .octicon-git-pull-request-abandoned:before, 120 | .octicon-git-pull-request:before { content: '\f009'} /*  */ 121 | .octicon-globe:before { content: '\f0b6'} /*  */ 122 | .octicon-graph:before { content: '\f043'} /*  */ 123 | .octicon-heart:before { content: '\2665'} /* ♥ */ 124 | .octicon-history:before { content: '\f07e'} /*  */ 125 | .octicon-home:before { content: '\f08d'} /*  */ 126 | .octicon-horizontal-rule:before { content: '\f070'} /*  */ 127 | .octicon-hourglass:before { content: '\f09e'} /*  */ 128 | .octicon-hubot:before { content: '\f09d'} /*  */ 129 | .octicon-inbox:before { content: '\f0cf'} /*  */ 130 | .octicon-info:before { content: '\f059'} /*  */ 131 | .octicon-issue-closed:before { content: '\f028'} /*  */ 132 | .octicon-issue-opened:before { content: '\f026'} /*  */ 133 | .octicon-issue-reopened:before { content: '\f027'} /*  */ 134 | .octicon-jersey:before { content: '\f019'} /*  */ 135 | .octicon-jump-down:before { content: '\f072'} /*  */ 136 | .octicon-jump-left:before { content: '\f0a5'} /*  */ 137 | .octicon-jump-right:before { content: '\f0a6'} /*  */ 138 | .octicon-jump-up:before { content: '\f073'} /*  */ 139 | .octicon-key:before { content: '\f049'} /*  */ 140 | .octicon-keyboard:before { content: '\f00d'} /*  */ 141 | .octicon-law:before { content: '\f0d8'} /* */ 142 | .octicon-light-bulb:before { content: '\f000'} /*  */ 143 | .octicon-link:before { content: '\f05c'} /*  */ 144 | .octicon-link-external:before { content: '\f07f'} /*  */ 145 | .octicon-list-ordered:before { content: '\f062'} /*  */ 146 | .octicon-list-unordered:before { content: '\f061'} /*  */ 147 | .octicon-location:before { content: '\f060'} /*  */ 148 | .octicon-gist-private:before, 149 | .octicon-mirror-private:before, 150 | .octicon-git-fork-private:before, 151 | .octicon-lock:before { content: '\f06a'} /*  */ 152 | .octicon-logo-github:before { content: '\f092'} /*  */ 153 | .octicon-mail:before { content: '\f03b'} /*  */ 154 | .octicon-mail-read:before { content: '\f03c'} /*  */ 155 | .octicon-mail-reply:before { content: '\f051'} /*  */ 156 | .octicon-mark-github:before { content: '\f00a'} /*  */ 157 | .octicon-markdown:before { content: '\f0c9'} /*  */ 158 | .octicon-megaphone:before { content: '\f077'} /*  */ 159 | .octicon-mention:before { content: '\f0be'} /*  */ 160 | .octicon-microscope:before { content: '\f089'} /*  */ 161 | .octicon-milestone:before { content: '\f075'} /*  */ 162 | .octicon-mirror-public:before, 163 | .octicon-mirror:before { content: '\f024'} /*  */ 164 | .octicon-mortar-board:before { content: '\f0d7'} /* */ 165 | .octicon-move-down:before { content: '\f0a8'} /*  */ 166 | .octicon-move-left:before { content: '\f074'} /*  */ 167 | .octicon-move-right:before { content: '\f0a9'} /*  */ 168 | .octicon-move-up:before { content: '\f0a7'} /*  */ 169 | .octicon-mute:before { content: '\f080'} /*  */ 170 | .octicon-no-newline:before { content: '\f09c'} /*  */ 171 | .octicon-octoface:before { content: '\f008'} /*  */ 172 | .octicon-organization:before { content: '\f037'} /*  */ 173 | .octicon-package:before { content: '\f0c4'} /*  */ 174 | .octicon-paintcan:before { content: '\f0d1'} /*  */ 175 | .octicon-pencil:before { content: '\f058'} /*  */ 176 | .octicon-person-add:before, 177 | .octicon-person-follow:before, 178 | .octicon-person:before { content: '\f018'} /*  */ 179 | .octicon-pin:before { content: '\f041'} /*  */ 180 | .octicon-playback-fast-forward:before { content: '\f0bd'} /*  */ 181 | .octicon-playback-pause:before { content: '\f0bb'} /*  */ 182 | .octicon-playback-play:before { content: '\f0bf'} /*  */ 183 | .octicon-playback-rewind:before { content: '\f0bc'} /*  */ 184 | .octicon-plug:before { content: '\f0d4'} /*  */ 185 | .octicon-repo-create:before, 186 | .octicon-gist-new:before, 187 | .octicon-file-directory-create:before, 188 | .octicon-file-add:before, 189 | .octicon-plus:before { content: '\f05d'} /*  */ 190 | .octicon-podium:before { content: '\f0af'} /*  */ 191 | .octicon-primitive-dot:before { content: '\f052'} /*  */ 192 | .octicon-primitive-square:before { content: '\f053'} /*  */ 193 | .octicon-pulse:before { content: '\f085'} /*  */ 194 | .octicon-puzzle:before { content: '\f0c0'} /*  */ 195 | .octicon-question:before { content: '\f02c'} /*  */ 196 | .octicon-quote:before { content: '\f063'} /*  */ 197 | .octicon-radio-tower:before { content: '\f030'} /*  */ 198 | .octicon-repo-delete:before, 199 | .octicon-repo:before { content: '\f001'} /*  */ 200 | .octicon-repo-clone:before { content: '\f04c'} /*  */ 201 | .octicon-repo-force-push:before { content: '\f04a'} /*  */ 202 | .octicon-gist-fork:before, 203 | .octicon-repo-forked:before { content: '\f002'} /*  */ 204 | .octicon-repo-pull:before { content: '\f006'} /*  */ 205 | .octicon-repo-push:before { content: '\f005'} /*  */ 206 | .octicon-rocket:before { content: '\f033'} /*  */ 207 | .octicon-rss:before { content: '\f034'} /*  */ 208 | .octicon-ruby:before { content: '\f047'} /*  */ 209 | .octicon-screen-full:before { content: '\f066'} /*  */ 210 | .octicon-screen-normal:before { content: '\f067'} /*  */ 211 | .octicon-search-save:before, 212 | .octicon-search:before { content: '\f02e'} /*  */ 213 | .octicon-server:before { content: '\f097'} /*  */ 214 | .octicon-settings:before { content: '\f07c'} /*  */ 215 | .octicon-log-in:before, 216 | .octicon-sign-in:before { content: '\f036'} /*  */ 217 | .octicon-log-out:before, 218 | .octicon-sign-out:before { content: '\f032'} /*  */ 219 | .octicon-split:before { content: '\f0c6'} /*  */ 220 | .octicon-squirrel:before { content: '\f0b2'} /*  */ 221 | .octicon-star-add:before, 222 | .octicon-star-delete:before, 223 | .octicon-star:before { content: '\f02a'} /*  */ 224 | .octicon-steps:before { content: '\f0c7'} /*  */ 225 | .octicon-stop:before { content: '\f08f'} /*  */ 226 | .octicon-repo-sync:before, 227 | .octicon-sync:before { content: '\f087'} /*  */ 228 | .octicon-tag-remove:before, 229 | .octicon-tag-add:before, 230 | .octicon-tag:before { content: '\f015'} /*  */ 231 | .octicon-telescope:before { content: '\f088'} /*  */ 232 | .octicon-terminal:before { content: '\f0c8'} /*  */ 233 | .octicon-three-bars:before { content: '\f05e'} /*  */ 234 | .octicon-tools:before { content: '\f031'} /*  */ 235 | .octicon-trashcan:before { content: '\f0d0'} /*  */ 236 | .octicon-triangle-down:before { content: '\f05b'} /*  */ 237 | .octicon-triangle-left:before { content: '\f044'} /*  */ 238 | .octicon-triangle-right:before { content: '\f05a'} /*  */ 239 | .octicon-triangle-up:before { content: '\f0aa'} /*  */ 240 | .octicon-unfold:before { content: '\f039'} /*  */ 241 | .octicon-unmute:before { content: '\f0ba'} /*  */ 242 | .octicon-versions:before { content: '\f064'} /*  */ 243 | .octicon-remove-close:before, 244 | .octicon-x:before { content: '\f081'} /*  */ 245 | .octicon-zap:before { content: '\26A1'} /* ⚡ */ 246 | -------------------------------------------------------------------------------- /inst/template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | rOpenSci package status page 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 28 | 29 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | {{#out}} 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | {{/out}} 70 | 71 |
Package (52wk)
{{package}} cran {{updated}}{{open_issues}}{{milestones}}{{collaborators}}{{stars}}{{forks}}{{pull_requests}}{{cran_downloads}}{{sparkline}}
72 | 73 | 74 | {{#last_generated}} 75 |

Page was last generated at {{last_generated}} UTC. This dashboard was built by the R dashboard package.

76 | {{/last_generated}} 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /jumpin2.R: -------------------------------------------------------------------------------- 1 | 2 | library(dashboard) 3 | 4 | package <- c("alm","AntWeb","bmc","bold","clifro","dependencies", 5 | "ecoengine","ecoretriever","elastic","elife","floras", 6 | "fulltext","geonames","gistr", "jekyll-knitr","mocker", 7 | "neotoma","plotly","rAltmetric","rAvis","rbhl","rbison", 8 | "rcrossref","rdatacite","rdryad","rebird","rentrez","reol", 9 | "reproducibility-guide","rfigshare","rfishbase","rfisheries", 10 | "rflybase","rgauges","rgbif","rglobi","rhindawi", 11 | "rinat","RMendeley","rmetadata","RNeXML","rnoaa","rnpn", 12 | "traits","rplos","rsnps","rspringer","rvertnet","rWBclimate", 13 | "solr","spocc","taxize","togeojson","treeBASE","ucipp","testdat", 14 | "git2r","rdat","EML",'aRxiv','datapackage','dvn','gender','ggit', 15 | 'gigadb','historydata','ICES','mdextract','ots','paleobioDB', 16 | 'pangaear','prism','rDat','rebi','rnbn','rOBIS','rorcid', 17 | 'RSelenium','sheetseeR','USAboundaries','zenodo') 18 | 19 | # Add the GitHub organization/user name before each page 20 | pkgs <- add_github(package,"ropensci") 21 | 22 | message("Now querying the GitHub API \n") 23 | # Run the stats on all the packages 24 | results <- lapply(pkgs,github_stats) %>% Filter(Negate(is.null),.) 25 | # Finally generate a static html page 26 | generate_html(results) 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /man/add_github.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2 (4.0.2): do not edit by hand 2 | \name{add_github} 3 | \alias{add_github} 4 | \title{Add GitHub username or organization name to packages} 5 | \usage{ 6 | add_github(repo, org = "ropensci") 7 | } 8 | \arguments{ 9 | \item{repo}{Name of the repository (without org name)} 10 | 11 | \item{org}{= "ropensci" Your GitHub org name or username. Use this function only if all the repos are part of the same account. Otherwise add manually.} 12 | } 13 | \description{ 14 | Add GitHub username or organization name to packages 15 | } 16 | \examples{ 17 | \dontrun{ 18 | add_github("alm", "ropensci") 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /man/generate_html.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2 (4.0.2): do not edit by hand 2 | \name{generate_html} 3 | \alias{generate_html} 4 | \title{Generates a static html dashboard from GitHub stats and CRAN downloads} 5 | \usage{ 6 | generate_html(out, path = "/tmp", browse = TRUE) 7 | } 8 | \arguments{ 9 | \item{out}{A list object generated by github_stats()} 10 | 11 | \item{path}{Folder where you need the dashboard rendered} 12 | 13 | \item{browse}{= TRUE Automatically open index.html in the default browser. Set to \code{FALSE} to disable.} 14 | } 15 | \description{ 16 | Generates a static html dashboard from GitHub stats and CRAN downloads 17 | } 18 | \examples{ 19 | \dontrun{ 20 | generate_html(results) 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /man/github_auth.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2 (4.0.2): do not edit by hand 2 | \name{github_auth} 3 | \alias{github_auth} 4 | \title{Authenticate with GitHub and retrieve a token} 5 | \usage{ 6 | github_auth(gh_appname = getOption("gh_appname"), 7 | gh_id = getOption("gh_id"), gh_secret = getOption("gh_secret")) 8 | } 9 | \arguments{ 10 | \item{gh_appname}{Github app name} 11 | 12 | \item{gh_id}{GitHub client id} 13 | 14 | \item{gh_secret}{GitHub secret} 15 | } 16 | \description{ 17 | Create a new application in your github settings (https://github.com/settings/applications). Set the Homepage URL and callback URL as \code{http://localhost:1410}. Then copy the app name, client id, and client secret to your \code{.rprofile} as options. e.g. \code{option(gh_appname = "YOUR_APP")} etc. This function will then automatically read those values. Otherwise specify them inline. 18 | } 19 | \examples{ 20 | \dontrun{ 21 | token <- github_auth() 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /man/github_stats.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2 (4.0.2): do not edit by hand 2 | \name{github_stats} 3 | \alias{github_stats} 4 | \title{Generates a full list of GitHub stats and CRAN downloads from the RStudio mirror} 5 | \usage{ 6 | github_stats(repo, verbose = TRUE) 7 | } 8 | \arguments{ 9 | \item{repo}{Name of a respository. Must include username or organization in format \code{username/repo}} 10 | 11 | \item{verbose}{= TRUE Prints progress by default.} 12 | } 13 | \description{ 14 | Generates a full list of GitHub stats and CRAN downloads from the RStudio mirror 15 | } 16 | \examples{ 17 | \dontrun{ 18 | github_stats("ropensci/alm") 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /man/pipe.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2 (4.0.2): do not edit by hand 2 | \name{\%>\%} 3 | \alias{\%>\%} 4 | \title{Pipe operator} 5 | \usage{ 6 | lhs \%>\% rhs 7 | } 8 | \description{ 9 | Pipe operator 10 | } 11 | \keyword{internal} 12 | 13 | -------------------------------------------------------------------------------- /man/total_downloads.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2 (4.0.2): do not edit by hand 2 | \name{total_downloads} 3 | \alias{total_downloads} 4 | \title{Total downloads from the RStudio CRAN mirror between specified dates.} 5 | \usage{ 6 | total_downloads(pkg, start = NULL, today = NULL) 7 | } 8 | \arguments{ 9 | \item{pkg}{Name of package (must not include github org/user name)} 10 | 11 | \item{start}{Start date for CRAN downloads} 12 | 13 | \item{today}{End date for CRAN downloads} 14 | } 15 | \description{ 16 | Total downloads from the RStudio CRAN mirror between specified dates. 17 | } 18 | \examples{ 19 | \dontrun{ 20 | total_downloads("alm") 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | library(testthat) 2 | library(dashboard) 3 | 4 | test_check("dashboard") 5 | -------------------------------------------------------------------------------- /tests/testthat/test-dashboard.R: -------------------------------------------------------------------------------- 1 | 2 | context("We can add GitHub organization names") 3 | 4 | context("We can retrieve GitHub metrics") 5 | --------------------------------------------------------------------------------