From 425b253600916fb3946b1aed1053d32141db2db6 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 03:45:37 +0000 Subject: [PATCH 01/16] Update documentation to newest version of roxygen --- DESCRIPTION | 2 +- man/box.Rd | 1 - man/dashboardBody.Rd | 1 - man/dashboardHeader.Rd | 1 - man/dashboardPage.Rd | 1 - man/dashboardSidebar.Rd | 1 - man/dropdownMenu.Rd | 1 - man/dropdownMenuOutput.Rd | 1 - man/infoBox.Rd | 1 - man/menuItemOutput.Rd | 1 - man/menuOutput.Rd | 1 - man/messageItem.Rd | 1 - man/notificationItem.Rd | 1 - man/renderDropdownMenu.Rd | 1 - man/renderMenu.Rd | 1 - man/renderValueBox.Rd | 3 +-- man/shinydashboard.Rd | 1 - man/sidebarMenu.Rd | 3 +-- man/sidebarMenuOutput.Rd | 1 - man/sidebarSearchForm.Rd | 1 - man/sidebarUserPanel.Rd | 1 - man/tabBox.Rd | 1 - man/tabItem.Rd | 1 - man/tabItems.Rd | 1 - man/tagAssert.Rd | 1 - man/taskItem.Rd | 1 - man/updateTabItems.Rd | 1 - man/validColors.Rd | 1 - man/validStatuses.Rd | 1 - man/valueBox.Rd | 1 - man/valueBoxOutput.Rd | 3 +-- 31 files changed, 4 insertions(+), 34 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index e8780704..66d83901 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -18,4 +18,4 @@ Imports: shiny (>= 0.12.1), htmltools (>= 0.2.6) BugReports: https://github.com/rstudio/shinydashboard -RoxygenNote: 5.0.1 +RoxygenNote: 6.0.1 diff --git a/man/box.Rd b/man/box.Rd index 9626aaf0..d1a0b9f3 100644 --- a/man/box.Rd +++ b/man/box.Rd @@ -171,4 +171,3 @@ shinyApp( Other boxes: \code{\link{infoBox}}, \code{\link{tabBox}}, \code{\link{valueBox}} } - diff --git a/man/dashboardBody.Rd b/man/dashboardBody.Rd index 91162ecb..532e6461 100644 --- a/man/dashboardBody.Rd +++ b/man/dashboardBody.Rd @@ -16,4 +16,3 @@ pattern is for the main body to contain \code{\link{tabItems}}. \seealso{ \code{\link{tabItems}}, \code{\link{box}}, \code{\link{valueBox}}. } - diff --git a/man/dashboardHeader.Rd b/man/dashboardHeader.Rd index 02cf4bd0..c31a01cb 100644 --- a/man/dashboardHeader.Rd +++ b/man/dashboardHeader.Rd @@ -100,4 +100,3 @@ shinyApp( \seealso{ \code{\link{dropdownMenu}} } - diff --git a/man/dashboardPage.Rd b/man/dashboardPage.Rd index d8b8969a..2e29f3e0 100644 --- a/man/dashboardPage.Rd +++ b/man/dashboardPage.Rd @@ -43,4 +43,3 @@ shinyApp( \code{\link{dashboardHeader}}, \code{\link{dashboardSidebar}}, \code{\link{dashboardBody}}. } - diff --git a/man/dashboardSidebar.Rd b/man/dashboardSidebar.Rd index 4fcc1e6a..20aa54ed 100644 --- a/man/dashboardSidebar.Rd +++ b/man/dashboardSidebar.Rd @@ -72,4 +72,3 @@ shinyApp( \seealso{ \code{\link{sidebarMenu}} } - diff --git a/man/dropdownMenu.Rd b/man/dropdownMenu.Rd index 960985e4..2307cd01 100644 --- a/man/dropdownMenu.Rd +++ b/man/dropdownMenu.Rd @@ -42,4 +42,3 @@ Create a dropdown menu to place in a dashboard header \seealso{ \code{\link{dashboardHeader}} for example usage. } - diff --git a/man/dropdownMenuOutput.Rd b/man/dropdownMenuOutput.Rd index dfe460a9..a8cf541a 100644 --- a/man/dropdownMenuOutput.Rd +++ b/man/dropdownMenuOutput.Rd @@ -21,4 +21,3 @@ Other menu outputs: \code{\link{menuItemOutput}}, \code{\link{menuOutput}}, \code{\link{renderMenu}}, \code{\link{sidebarMenuOutput}} } - diff --git a/man/infoBox.Rd b/man/infoBox.Rd index e2695477..eb9aaf38 100644 --- a/man/infoBox.Rd +++ b/man/infoBox.Rd @@ -45,4 +45,3 @@ boxes are meant to be placed in the main body of a dashboard. Other boxes: \code{\link{box}}, \code{\link{tabBox}}, \code{\link{valueBox}} } - diff --git a/man/menuItemOutput.Rd b/man/menuItemOutput.Rd index b2bf5776..cd981ca6 100644 --- a/man/menuItemOutput.Rd +++ b/man/menuItemOutput.Rd @@ -21,4 +21,3 @@ Other menu outputs: \code{\link{dropdownMenuOutput}}, \code{\link{menuOutput}}, \code{\link{renderMenu}}, \code{\link{sidebarMenuOutput}} } - diff --git a/man/menuOutput.Rd b/man/menuOutput.Rd index ab37fa3e..4868a606 100644 --- a/man/menuOutput.Rd +++ b/man/menuOutput.Rd @@ -28,4 +28,3 @@ Other menu outputs: \code{\link{dropdownMenuOutput}}, \code{\link{menuItemOutput}}, \code{\link{renderMenu}}, \code{\link{sidebarMenuOutput}} } - diff --git a/man/messageItem.Rd b/man/messageItem.Rd index 4f049405..0a54071f 100644 --- a/man/messageItem.Rd +++ b/man/messageItem.Rd @@ -30,4 +30,3 @@ Create a message item to place in a dropdown message menu Other menu items: \code{\link{notificationItem}}, \code{\link{taskItem}} } - diff --git a/man/notificationItem.Rd b/man/notificationItem.Rd index 43f08b33..3095571f 100644 --- a/man/notificationItem.Rd +++ b/man/notificationItem.Rd @@ -26,4 +26,3 @@ Create a notification item to place in a dropdown notification menu Other menu items: \code{\link{messageItem}}, \code{\link{taskItem}} } - diff --git a/man/renderDropdownMenu.Rd b/man/renderDropdownMenu.Rd index d0212477..74737c6e 100644 --- a/man/renderDropdownMenu.Rd +++ b/man/renderDropdownMenu.Rd @@ -18,4 +18,3 @@ is useful if you want to save an expression in a variable.} \description{ This is the server-side function for creating a dynamic dropdown menu. } - diff --git a/man/renderMenu.Rd b/man/renderMenu.Rd index 98ace611..caef628e 100644 --- a/man/renderMenu.Rd +++ b/man/renderMenu.Rd @@ -102,4 +102,3 @@ Other menu outputs: \code{\link{dropdownMenuOutput}}, \code{\link{menuItemOutput}}, \code{\link{menuOutput}}, \code{\link{sidebarMenuOutput}} } - diff --git a/man/renderValueBox.Rd b/man/renderValueBox.Rd index c29ee10d..0eb5ab66 100644 --- a/man/renderValueBox.Rd +++ b/man/renderValueBox.Rd @@ -1,8 +1,8 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/valueBoxOutput.R \name{renderValueBox} -\alias{renderInfoBox} \alias{renderValueBox} +\alias{renderInfoBox} \title{Create an info or value box output (server side)} \usage{ renderValueBox(expr, env = parent.frame(), quoted = FALSE) @@ -62,4 +62,3 @@ shinyApp(ui, server) \seealso{ \code{\link{valueBoxOutput}} for the corresponding UI-side function. } - diff --git a/man/shinydashboard.Rd b/man/shinydashboard.Rd index 500fbf81..6fb3314e 100644 --- a/man/shinydashboard.Rd +++ b/man/shinydashboard.Rd @@ -8,4 +8,3 @@ \description{ shinydashboard } - diff --git a/man/sidebarMenu.Rd b/man/sidebarMenu.Rd index b7524ecf..1e04fa4e 100644 --- a/man/sidebarMenu.Rd +++ b/man/sidebarMenu.Rd @@ -1,9 +1,9 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/dashboardSidebar.R \name{sidebarMenu} +\alias{sidebarMenu} \alias{menuItem} \alias{menuSubItem} -\alias{sidebarMenu} \title{Create a dashboard sidebar menu and menu items.} \usage{ sidebarMenu(..., id = NULL, .list = NULL) @@ -82,4 +82,3 @@ colored oval containing text. Other sidebar items: \code{\link{sidebarSearchForm}}, \code{\link{sidebarUserPanel}} } - diff --git a/man/sidebarMenuOutput.Rd b/man/sidebarMenuOutput.Rd index 5bee9719..71b35f99 100644 --- a/man/sidebarMenuOutput.Rd +++ b/man/sidebarMenuOutput.Rd @@ -21,4 +21,3 @@ Other menu outputs: \code{\link{dropdownMenuOutput}}, \code{\link{menuItemOutput}}, \code{\link{menuOutput}}, \code{\link{renderMenu}} } - diff --git a/man/sidebarSearchForm.Rd b/man/sidebarSearchForm.Rd index 7e9019de..0231f7b1 100644 --- a/man/sidebarSearchForm.Rd +++ b/man/sidebarSearchForm.Rd @@ -26,4 +26,3 @@ A search form consists of a text input field and a search button. Other sidebar items: \code{\link{sidebarMenu}}, \code{\link{sidebarUserPanel}} } - diff --git a/man/sidebarUserPanel.Rd b/man/sidebarUserPanel.Rd index dd98349d..13c2f5aa 100644 --- a/man/sidebarUserPanel.Rd +++ b/man/sidebarUserPanel.Rd @@ -24,4 +24,3 @@ A panel displaying user information in a sidebar Other sidebar items: \code{\link{sidebarMenu}}, \code{\link{sidebarSearchForm}} } - diff --git a/man/tabBox.Rd b/man/tabBox.Rd index 853efc71..eae27eed 100644 --- a/man/tabBox.Rd +++ b/man/tabBox.Rd @@ -87,4 +87,3 @@ shinyApp( Other boxes: \code{\link{box}}, \code{\link{infoBox}}, \code{\link{valueBox}} } - diff --git a/man/tabItem.Rd b/man/tabItem.Rd index b3d423db..e7bcada1 100644 --- a/man/tabItem.Rd +++ b/man/tabItem.Rd @@ -19,4 +19,3 @@ One tab to put inside a tab items container \code{\link{menuItem}}, \code{\link{menuSubItem}}, \code{\link{tabItems}}. See \code{\link{sidebarMenu}} for a usage example. } - diff --git a/man/tabItems.Rd b/man/tabItems.Rd index 42924995..0b2fe4dc 100644 --- a/man/tabItems.Rd +++ b/man/tabItems.Rd @@ -17,4 +17,3 @@ A container for tab items \code{\link{menuItem}}, \code{\link{menuSubItem}}, \code{\link{tabItem}}. See \code{\link{sidebarMenu}} for a usage example. } - diff --git a/man/tagAssert.Rd b/man/tagAssert.Rd index 93f94c82..14b55bef 100644 --- a/man/tagAssert.Rd +++ b/man/tagAssert.Rd @@ -22,4 +22,3 @@ contents.} Assert that a tag has specified properties } \keyword{internal} - diff --git a/man/taskItem.Rd b/man/taskItem.Rd index 477ef11b..c4a78b72 100644 --- a/man/taskItem.Rd +++ b/man/taskItem.Rd @@ -25,4 +25,3 @@ Create a task item to place in a dropdown task menu Other menu items: \code{\link{messageItem}}, \code{\link{notificationItem}} } - diff --git a/man/updateTabItems.Rd b/man/updateTabItems.Rd index 555e84d6..c264fa55 100644 --- a/man/updateTabItems.Rd +++ b/man/updateTabItems.Rd @@ -58,4 +58,3 @@ server <- function(input, output, session) { shinyApp(ui, server) } } - diff --git a/man/validColors.Rd b/man/validColors.Rd index f4e69ba3..2bb839b8 100644 --- a/man/validColors.Rd +++ b/man/validColors.Rd @@ -28,4 +28,3 @@ listed below. } } \keyword{internal} - diff --git a/man/validStatuses.Rd b/man/validStatuses.Rd index 60760c80..011cae18 100644 --- a/man/validStatuses.Rd +++ b/man/validStatuses.Rd @@ -19,4 +19,3 @@ generally appear as follows: } } \keyword{internal} - diff --git a/man/valueBox.Rd b/man/valueBox.Rd index a79faf03..d8ca53b2 100644 --- a/man/valueBox.Rd +++ b/man/valueBox.Rd @@ -36,4 +36,3 @@ to be placed in the main body of a dashboard. Other boxes: \code{\link{box}}, \code{\link{infoBox}}, \code{\link{tabBox}} } - diff --git a/man/valueBoxOutput.Rd b/man/valueBoxOutput.Rd index efada325..6f8e56ba 100644 --- a/man/valueBoxOutput.Rd +++ b/man/valueBoxOutput.Rd @@ -1,8 +1,8 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/valueBoxOutput.R \name{valueBoxOutput} -\alias{infoBoxOutput} \alias{valueBoxOutput} +\alias{infoBoxOutput} \title{Create an info or value box output (client side)} \usage{ valueBoxOutput(outputId, width = 4) @@ -26,4 +26,3 @@ This is the UI-side function for creating a dynamic \code{\link{valueBox}} or \code{\link{renderValueBox}} for the corresponding server-side function and examples. } - From 1e1b09faf65b4351bbb95c79c44305509701546e Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 04:51:44 +0000 Subject: [PATCH 02/16] split js files --- .Rbuildignore | 1 + R/deps.R | 4 ++- inst/AdminLTE/AdminLTE.min.css | 2 +- inst/AdminLTE/_all-skins.min.css | 2 +- inst/shinydashboard.js | 24 ++++++++++++++-- inst/shinydashboard.js.map | 1 + srcjs/_end.js | 1 + srcjs/_start.js | 1 + srcjs/input_binding_tabItem.js | 48 ++++++++++++++++++++++++++++++++ srcjs/output_binding_menu.js | 45 ++++++++++++++++++++++++++++++ srcjs/sidebar.js | 15 ++++++++++ srcjs/tabs.js | 46 ++++++++++++++++++++++++++++++ tools/Gruntfile.js | 43 ++++++++++++++++++++++------ tools/package.json | 1 + tools/updateAdminLTE.R | 2 +- tools/yarn.lock | 9 +++++- 16 files changed, 229 insertions(+), 16 deletions(-) create mode 100644 inst/shinydashboard.js.map create mode 100644 srcjs/_end.js create mode 100644 srcjs/_start.js create mode 100644 srcjs/input_binding_tabItem.js create mode 100644 srcjs/output_binding_menu.js create mode 100644 srcjs/sidebar.js create mode 100644 srcjs/tabs.js diff --git a/.Rbuildignore b/.Rbuildignore index 349d6839..66645d0d 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,6 +1,7 @@ ^.*\.Rproj$ ^\.Rproj\.user$ ^tools$ +^srcjs$ ^tests-manual$ ^\.travis\.yml$ ^appveyor\.yml$ diff --git a/R/deps.R b/R/deps.R index c5276df4..8376d43d 100644 --- a/R/deps.R +++ b/R/deps.R @@ -13,9 +13,11 @@ appendDependencies <- function(x, value) { addDeps <- function(x) { if (getOption("shiny.minified", TRUE)) { adminLTE_js <- "app.min.js" + shinydashboard_js <- "shinydashboard.min.js" adminLTE_css <- c("AdminLTE.min.css", "_all-skins.min.css") } else { adminLTE_js <- "app.js" + shinydashboard_js <- "shinydashboard.js" adminLTE_css <- c("AdminLTE.css", "_all-skins.css") } @@ -28,7 +30,7 @@ addDeps <- function(x) { htmlDependency("shinydashboard", as.character(utils::packageVersion("shinydashboard")), c(file = system.file(package = "shinydashboard")), - script = "shinydashboard.js", + script = shinydashboard_js, stylesheet = "shinydashboard.css" ) ) diff --git a/inst/AdminLTE/AdminLTE.min.css b/inst/AdminLTE/AdminLTE.min.css index b8bacd08..f1056e5e 100644 --- a/inst/AdminLTE/AdminLTE.min.css +++ b/inst/AdminLTE/AdminLTE.min.css @@ -4,4 +4,4 @@ * Website: Almsaeed Studio * License: Open source - MIT * Please visit http://opensource.org/licenses/MIT for more information -!*/.layout-boxed body,.layout-boxed html,body,html{height:100%}body{font-family:'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{height:100%;position:relative;overflow-x:hidden;overflow-y:auto}.wrapper:after,.wrapper:before{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,.5);position:relative}.layout-boxed{background:url(../img/boxed-bg.jpg) fixed}.content-wrapper,.main-footer,.right-side{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer,.layout-top-nav .right-side{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer,.right-side{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer,.sidebar-collapse .right-side{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer,.sidebar-open .right-side{-webkit-transform:translate(230px,0);-ms-transform:translate(230px,0);-o-transform:translate(230px,0);transform:translate(230px,0)}}.content-wrapper,.right-side{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .left-side,.fixed .main-header,.fixed .main-sidebar{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}body.hold-transition .content-wrapper,body.hold-transition .left-side,body.hold-transition .main-footer,body.hold-transition .main-header .logo,body.hold-transition .main-header .navbar,body.hold-transition .main-sidebar,body.hold-transition .right-side{-webkit-transition:none;-o-transition:none;transition:none}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:'Source Sans Pro',sans-serif}a{color:#3c8dbc}a:active,a:focus,a:hover{outline:0;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header .navbar{-webkit-transition:margin-left .3s ease-in-out;-o-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header .navbar{margin-left:0}.main-header #navbar-search-input.form-control{background:rgba(255,255,255,.2);border-color:transparent}.main-header #navbar-search-input.form-control:active,.main-header #navbar-search-input.form-control:focus{border-color:rgba(0,0,0,.1);background:rgba(255,255,255,.9)}.main-header #navbar-search-input.form-control::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input.form-control:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input.form-control::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:0 0}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\f0c9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle:active,.main-header .sidebar-toggle:focus{background:0 0}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{-webkit-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out;display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300;overflow:hidden}.main-header .logo .logo-lg{display:block}.main-header .logo .logo-mini{display:none}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:0 0;margin-top:0;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:'>\00a0'}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}}@media (max-width:991px){.navbar-collapse.pull-left{float:none!important}.navbar-collapse.pull-left+.navbar-custom-menu{display:block;position:absolute;top:0;right:40px}}.left-side,.main-sidebar{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s ease-in-out,width .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,width .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,width .3s ease-in-out;transition:transform .3s ease-in-out,width .3s ease-in-out}@media (max-width:767px){.left-side,.main-sidebar{padding-top:100px}}@media (max-width:767px){.left-side,.main-sidebar{-webkit-transform:translate(-230px,0);-ms-transform:translate(-230px,0);-o-transform:translate(-230px,0);transform:translate(-230px,0)}}@media (min-width:768px){.sidebar-collapse .left-side,.sidebar-collapse .main-sidebar{-webkit-transform:translate(-230px,0);-ms-transform:translate(-230px,0);-o-transform:translate(-230px,0);transform:translate(-230px,0)}}@media (max-width:767px){.sidebar-open .left-side,.sidebar-open .main-sidebar{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}}.sidebar{padding-bottom:10px}.sidebar-form input:focus{border-color:transparent}.user-panel{position:relative;width:100%;padding:10px;overflow:hidden}.user-panel:after,.user-panel:before{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:100%;max-width:45px;height:auto}.user-panel>.info{padding:5px 5px 5px 15px;line-height:1;position:absolute;left:55px}.user-panel>.info>p{font-weight:600;margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px}.user-panel>.info>a>.fa,.user-panel>.info>a>.glyphicon,.user-panel>.info>a>.ion{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .badge,.sidebar-menu>li .label{margin-right:5px}.sidebar-menu>li .badge{margin-top:3px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.fa-angle-left,.sidebar-menu li>a>.pull-right-container>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px}.sidebar-menu li>a>.fa-angle-left{position:absolute;top:50%;right:10px;margin-top:-8px}.sidebar-menu li.active>a>.fa-angle-left,.sidebar-menu li.active>a>.pull-right-container>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu li.active>.treeview-menu{display:block}.sidebar-menu .treeview-menu{display:none;list-style:none;padding:0 0 0 5px;margin:0}.sidebar-menu .treeview-menu .treeview-menu{padding-left:20px}.sidebar-menu .treeview-menu>li{margin:0}.sidebar-menu .treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.sidebar-menu .treeview-menu>li>a>.fa,.sidebar-menu .treeview-menu>li>a>.glyphicon,.sidebar-menu .treeview-menu>li>a>.ion{width:20px}.sidebar-menu .treeview-menu>li>a>.fa-angle-down,.sidebar-menu .treeview-menu>li>a>.fa-angle-left,.sidebar-menu .treeview-menu>li>a>.pull-right-container>.fa-angle-down,.sidebar-menu .treeview-menu>li>a>.pull-right-container>.fa-angle-left{width:auto}@media (min-width:768px){.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .main-footer,.sidebar-mini.sidebar-collapse .right-side{margin-left:50px!important;z-index:840}.sidebar-mini.sidebar-collapse .main-sidebar{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0);width:50px!important;z-index:850}.sidebar-mini.sidebar-collapse .sidebar-menu>li{position:relative}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a{margin-right:0}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{border-top-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:not(.treeview)>a>span{border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{padding-top:5px;padding-bottom:5px;border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>span:not(.pull-right){display:block!important;position:absolute;width:180px;left:50px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>span{top:0;margin-left:-3px;padding:12px 5px 12px 20px;background-color:inherit}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container{position:relative!important;float:right;width:auto!important;left:180px!important;top:-22px!important;z-index:900}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container>.label:not(:first-of-type){display:none}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{top:44px;margin-left:0}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel>.info,.sidebar-mini.sidebar-collapse .sidebar-form,.sidebar-mini.sidebar-collapse .sidebar-menu li.header,.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>.pull-right,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{display:none!important;-webkit-transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-header .logo{width:50px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-mini{display:block;margin-left:-15px;margin-right:-15px;font-size:18px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-lg{display:none}.sidebar-mini.sidebar-collapse .main-header .navbar{margin-left:50px}}.main-sidebar .user-panel,.sidebar-menu,.sidebar-menu>li.header{white-space:nowrap;overflow:hidden}.sidebar-menu:hover{overflow:visible}.sidebar-form,.sidebar-menu>li.header{overflow:hidden;text-overflow:clip}.sidebar-menu li>a{position:relative}.sidebar-menu li>a>.pull-right-container{position:absolute;right:10px;top:50%;margin-top:-7px}.control-sidebar-bg{position:fixed;z-index:1000;bottom:0}.control-sidebar,.control-sidebar-bg{top:0;right:-230px;width:230px;-webkit-transition:right .3s ease-in-out;-o-transition:right .3s ease-in-out;transition:right .3s ease-in-out}.control-sidebar{position:absolute;padding-top:50px;z-index:1010}@media (max-width:768px){.control-sidebar{padding-top:100px}}.control-sidebar>.tab-content{padding:10px 15px}.control-sidebar-open .control-sidebar,.control-sidebar-open .control-sidebar-bg,.control-sidebar.control-sidebar-open,.control-sidebar.control-sidebar-open+.control-sidebar-bg{right:0}@media (min-width:768px){.control-sidebar-open .content-wrapper,.control-sidebar-open .main-footer,.control-sidebar-open .right-side{margin-right:230px}}.nav-tabs.control-sidebar-tabs>li:first-of-type>a,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:focus,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:hover{border-left-width:0}.nav-tabs.control-sidebar-tabs>li>a{border-radius:0}.nav-tabs.control-sidebar-tabs>li>a,.nav-tabs.control-sidebar-tabs>li>a:hover{border-top:none;border-right:none;border-left:1px solid transparent;border-bottom:1px solid transparent}.nav-tabs.control-sidebar-tabs>li>a .icon{font-size:16px}.nav-tabs.control-sidebar-tabs>li.active>a,.nav-tabs.control-sidebar-tabs>li.active>a:active,.nav-tabs.control-sidebar-tabs>li.active>a:focus,.nav-tabs.control-sidebar-tabs>li.active>a:hover{border-top:none;border-right:none;border-bottom:none}@media (max-width:768px){.nav-tabs.control-sidebar-tabs{display:table}.nav-tabs.control-sidebar-tabs>li{display:table-cell}}.control-sidebar-heading{font-weight:400;font-size:16px;padding:10px 0;margin-bottom:10px}.control-sidebar-subheading{display:block;font-weight:400;font-size:14px}.control-sidebar-menu{list-style:none;padding:0;margin:0 -15px}.control-sidebar-menu>li>a{display:block;padding:10px 15px}.control-sidebar-menu>li>a:after,.control-sidebar-menu>li>a:before{content:" ";display:table}.control-sidebar-menu>li>a:after{clear:both}.control-sidebar-menu>li>a>.control-sidebar-subheading{margin-top:0}.control-sidebar-menu .menu-icon{float:left;width:35px;height:35px;border-radius:50%;text-align:center;line-height:35px}.control-sidebar-menu .menu-info{margin-left:45px;margin-top:3px}.control-sidebar-menu .menu-info>.control-sidebar-subheading{margin:0}.control-sidebar-menu .menu-info>p{margin:0;font-size:11px}.control-sidebar-menu .progress{margin:0}.control-sidebar-dark{color:#b8c7ce}.control-sidebar-dark,.control-sidebar-dark+.control-sidebar-bg{background:#222d32}.control-sidebar-dark .nav-tabs.control-sidebar-tabs{border-bottom:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a{background:#181f23;color:#b8c7ce}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#141a1d;border-bottom-color:#141a1d}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{background:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{color:#fff}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#222d32;color:#fff}.control-sidebar-dark .control-sidebar-heading,.control-sidebar-dark .control-sidebar-subheading{color:#fff}.control-sidebar-dark .control-sidebar-menu>li>a:hover{background:#1e282c}.control-sidebar-dark .control-sidebar-menu>li>a .menu-info>p{color:#b8c7ce}.control-sidebar-light{color:#5e5e5e}.control-sidebar-light,.control-sidebar-light+.control-sidebar-bg{background:#f9fafc;border-left:1px solid #d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs{border-bottom:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a{background:#e8ecf4;color:#444}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#d2d6de;border-bottom-color:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{background:#eff1f7}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#f9fafc;color:#111}.control-sidebar-light .control-sidebar-heading,.control-sidebar-light .control-sidebar-subheading{color:#111}.control-sidebar-light .control-sidebar-menu{margin-left:-14px}.control-sidebar-light .control-sidebar-menu>li>a:hover{background:#f4f4f5}.control-sidebar-light .control-sidebar-menu>li>a .menu-info>p{color:#5e5e5e}.dropdown-menu{box-shadow:none;border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0;margin:0;top:100%}.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-radius:4px 4px 0 0;background-color:#fff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444;font-size:14px}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-radius:0 0 4px 4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eee;color:#444!important;text-align:center}@media (max-width:991px){.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff!important;color:#444!important}}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:400}.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444;overflow:hidden;text-overflow:ellipsis;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0;padding:10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999;font-size:10px;position:absolute;top:0;right:0}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px;color:#666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:rgba(255,255,255,.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:rgba(255,255,255,.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #ddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after,.navbar-nav>.user-menu>.dropdown-menu>.user-body:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444!important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff!important;color:#444!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f9f9f9}}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible!important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc;box-shadow:none}.form-control:-ms-input-placeholder,.form-control::-moz-placeholder,.form-control::-webkit-input-placeholder{color:#bbb;opacity:1}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control,.form-group.has-success .input-group-addon{border-color:#00a65a;box-shadow:none}.form-group.has-success .help-block{color:#00a65a}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control,.form-group.has-warning .input-group-addon{border-color:#f39c12;box-shadow:none}.form-group.has-warning .help-block{color:#f39c12}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control,.form-group.has-error .input-group-addon{border-color:#dd4b39;box-shadow:none}.form-group.has-error .help-block{color:#dd4b39}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.form-control-feedback.fa{line-height:34px}.form-group-lg .form-control+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fa,.input-lg+.form-control-feedback.fa{line-height:46px}.form-group-sm .form-control+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fa,.input-sm+.form-control-feedback.fa{line-height:30px}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress .progress-bar,.progress>.progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress-sm,.progress.sm{height:10px}.progress-sm,.progress-sm .progress-bar,.progress.sm,.progress.sm .progress-bar{border-radius:1px}.progress-xs,.progress.xs{height:7px}.progress-xs,.progress-xs .progress-bar,.progress.xs,.progress.xs .progress-bar{border-radius:1px}.progress-xxs,.progress.xxs{height:3px}.progress-xxs,.progress-xxs .progress-bar,.progress.xxs,.progress.xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%;position:absolute;bottom:0}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{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)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{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)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{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)}.progress-bar-warning,.progress-bar-yellow{background-color:#f39c12}.progress-striped .progress-bar-warning,.progress-striped .progress-bar-yellow{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)}.progress-bar-danger,.progress-bar-red{background-color:#dd4b39}.progress-striped .progress-bar-danger,.progress-striped .progress-bar-red{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)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:rgba(255,255,255,.8);display:block;z-index:10;background:rgba(0,0,0,.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,.15)}.small-box h3{font-size:38px;font-weight:700;margin:0 0 10px;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#fff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0}.box.box-solid>.box-header .btn.btn-default{background:0 0}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,.1)}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de}.box.box-solid.box-default>.box-header .btn,.box.box-solid.box-default>.box-header a{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc}.box.box-solid.box-primary>.box-header .btn,.box.box-solid.box-primary>.box-header a{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef}.box.box-solid.box-info>.box-header .btn,.box.box-solid.box-info>.box-header a{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39}.box.box-solid.box-danger>.box-header .btn,.box.box-solid.box-danger>.box-header a{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12}.box.box-solid.box-warning>.box-header .btn,.box.box-solid.box-warning>.box-header a{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a}.box.box-solid.box-success>.box-header .btn,.box.box-solid.box-success>.box-header a{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*=bg]>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:.3em}.box>.loading-img,.box>.overlay,.overlay-wrapper>.loading-img,.overlay-wrapper>.overlay{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay{z-index:50;background:rgba(255,255,255,.7);border-radius:3px}.box .overlay>.fa,.overlay-wrapper .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark,.overlay-wrapper .overlay.dark{background:rgba(0,0,0,.5)}.box-body:after,.box-body:before,.box-footer:after,.box-footer:before,.box-header:after,.box-header:before{content:" ";display:table}.box-body:after,.box-footer:after,.box-header:after{clear:both}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header .box-title,.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle=tooltip]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.box-header>.box-tools .dropdown-menu>li>a{color:#444!important}.btn-box-tool{padding:5px;font-size:12px;background:0 0;color:#97a0b3}.btn-box-tool:hover,.open .btn-box-tool{color:#606c84}.btn-box-tool.btn:active{box-shadow:none}.box-body{border-radius:0 0 3px 3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-radius:0 0 0 3px}.box-body .box-pane-right{border-radius:0 0 3px}.box-footer{border-radius:0 0 3px 3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.box-comments{background:#f7f7f7}.box-comments .box-comment{padding:8px 0;border-bottom:1px solid #eee}.box-comments .box-comment:after,.box-comments .box-comment:before{content:" ";display:table}.box-comments .box-comment:after{clear:both}.box-comments .box-comment:last-of-type{border-bottom:0}.box-comments .box-comment:first-of-type{padding-top:0}.box-comments .comment-text{margin-left:40px;color:#555}.box-comments .username{color:#444;display:block;font-weight:600}.box-comments .text-muted{font-weight:400;font-size:12px}.todo-list{margin:0;padding:0;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type=checkbox]{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de!important}.todo-list .danger{border-left-color:#dd4b39}.todo-list .warning{border-left-color:#f39c12}.todo-list .info{border-left-color:#00c0ef}.todo-list .success{border-left-color:#00a65a}.todo-list .primary{border-left-color:#3c8dbc}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:after,.chat .item:before{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50%}.chat .item>.online{border:2px solid #00a65a}.chat .item>.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px;font-weight:600;font-size:14px}.chat .item>.attachment>.filename,.chat .item>.attachment>p{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:after,.chat .item>.attachment:before{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.modal .panel-body{color:#444}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,.2);margin:5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-radius:2px 0 0 2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,.2)}.info-box-icon>img{max-width:100%}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:700;font-size:18px}.info-box-text,.progress-description{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px;padding:0;list-style:none}.timeline:before{content:'';position:absolute;top:0;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:after,.timeline>li:before{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;margin-top:0;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.timeline>.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline-inverse>li>.timeline-item{background:#f0f0f0;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.timeline-inverse>li>.timeline-item>.timeline-header{border-bottom-color:#ddd}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:focus{outline:0}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;filter:alpha(opacity=0);outline:0;background:#fff;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default.hover,.btn-default:active,.btn-default:hover{background-color:#e7e7e7}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary.hover,.btn-primary:active,.btn-primary:hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success.hover,.btn-success:active,.btn-success:hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info.hover,.btn-info:active,.btn-info:hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger.hover,.btn-danger:active,.btn-danger:hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning.hover,.btn-warning:active,.btn-warning:hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:0 0;color:#fff}.btn-outline:active,.btn-outline:focus,.btn-outline:hover{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*=bg-]:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.2);box-shadow:inset 0 0 100px rgba(0,0,0,.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout .highlight,.callout code{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2;filter:alpha(opacity=20)}.alert .close:hover{opacity:.5;filter:alpha(opacity=50)}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav>li>a:active,.nav>li>a:focus,.nav>li>a:hover{color:#444;background:#f7f7f7}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{border-top-color:#3c8dbc}.nav-pills>li.active>a{font-weight:600}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background:0 0;color:#444;border-top:0;border-left-color:#3c8dbc}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li>a{color:#444;border-radius:0}.nav-tabs-custom>.nav-tabs>li>a.text-muted{color:#999}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:0 0;margin:0}.nav-tabs-custom>.nav-tabs>li>a:hover{color:#999}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active:hover>a,.nav-tabs-custom>.nav-tabs>li.active>a{background-color:#fff;color:#444}.nav-tabs-custom>.nav-tabs>li.active>a{border-top-color:transparent;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-color:transparent}.nav-tabs-custom>.nav-tabs.pull-right{float:none!important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type>a{border-left-width:1px}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-color:#f4f4f4;border-right-color:transparent}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.nav-tabs-custom .dropdown.open>a:active,.nav-tabs-custom .dropdown.open>a:focus{background:0 0;color:#999}.nav-tabs-custom.tab-primary>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom.tab-info>.nav-tabs>li.active{border-top-color:#00c0ef}.nav-tabs-custom.tab-danger>.nav-tabs>li.active{border-top-color:#dd4b39}.nav-tabs-custom.tab-warning>.nav-tabs>li.active{border-top-color:#f39c12}.nav-tabs-custom.tab-success>.nav-tabs>li.active{border-top-color:#00a65a}.nav-tabs-custom.tab-default>.nav-tabs>li.active{border-top-color:#d2d6de}.pagination>li>a{background:#fafafa;color:#666}.pagination.pagination-flat>li>a{border-radius:0!important}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);padding:10px 0;background:#fff}.products-list>.item:after,.products-list>.item:before{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #f4f4f4}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.direct-chat-messages{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0);padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:after,.direct-chat-msg:before{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-contacts,.direct-chat-messages{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:' ';height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.direct-chat-contacts{-webkit-transform:translate(101%,0);-ms-transform:translate(101%,0);-o-transform:translate(101%,0);transform:translate(101%,0);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,.2);padding:10px;margin:0}.contacts-list>li:after,.contacts-list>li:before{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:400}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li img{border-radius:50%;max-width:100%;height:auto}.users-list>li>a:hover,.users-list>li>a:hover .users-list-name{color:#999}.users-list-date,.users-list-name{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-date{color:#999;font-size:12px}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125);border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125)}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-footer,.modal-primary .modal-header{border-color:#307095}.modal-warning .modal-footer,.modal-warning .modal-header{border-color:#c87f0a}.modal-info .modal-footer,.modal-info .modal-header{border-color:#0097bc}.modal-success .modal-footer,.modal-success .modal-header{border-color:#00733e}.modal-danger .modal-footer,.modal-danger .modal-header{border-color:#c23321}.box-widget{border:none;position:relative}.widget-user .widget-user-header{padding:20px;height:120px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user .widget-user-username{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,.2)}.widget-user .widget-user-desc{margin-top:0}.widget-user .widget-user-image{position:absolute;top:65px;left:50%;margin-left:-45px}.widget-user .widget-user-image>img{width:90px;height:auto;border:3px solid #fff}.widget-user .box-footer{padding-top:30px}.widget-user-2 .widget-user-header{padding:20px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user-2 .widget-user-username{margin-top:5px;margin-bottom:5px;font-size:25px;font-weight:300}.widget-user-2 .widget-user-desc{margin-top:0}.widget-user-2 .widget-user-desc,.widget-user-2 .widget-user-username{margin-left:75px}.widget-user-2 .widget-user-image>img{width:65px;height:auto;float:left}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border{border-bottom:1px solid #f4f4f4}.mailbox-read-info{border-bottom:1px solid #f4f4f4;padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:700;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:10% auto 0}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.profile-user-img{margin:0 auto;width:100px;padding:3px;border:3px solid #d2d6de}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px}.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,.2)}.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;line-height:34px;font-size:1.6em}.btn-social-icon.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon>:first-child{border:none;text-align:center;width:100%}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn.focus,.btn-adn:active,.btn-adn:focus,.btn-adn:hover,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn:active,.open>.dropdown-toggle.btn-adn{background-image:none}.btn-adn .badge{color:#d87a68;background-color:#fff}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket.focus,.btn-bitbucket:active,.btn-bitbucket:focus,.btn-bitbucket:hover,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket:active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox.focus,.btn-dropbox:active,.btn-dropbox:focus,.btn-dropbox:hover,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox:active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook.focus,.btn-facebook:active,.btn-facebook:focus,.btn-facebook:hover,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook:active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr.focus,.btn-flickr:active,.btn-flickr:focus,.btn-flickr:hover,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr:active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare.focus,.btn-foursquare:active,.btn-foursquare:focus,.btn-foursquare:hover,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare:active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare .badge{color:#f94877;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github.focus,.btn-github:active,.btn-github:focus,.btn-github:hover,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github:active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github .badge{color:#444;background-color:#fff}.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google.focus,.btn-google:active,.btn-google:focus,.btn-google:hover,.open>.dropdown-toggle.btn-google{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google:active,.open>.dropdown-toggle.btn-google{background-image:none}.btn-google .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram.focus,.btn-instagram:active,.btn-instagram:focus,.btn-instagram:hover,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram:active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin.focus,.btn-linkedin:active,.btn-linkedin:focus,.btn-linkedin:hover,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin:active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft.focus,.btn-microsoft:active,.btn-microsoft:focus,.btn-microsoft:hover,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft:active,.open>.dropdown-toggle.btn-microsoft{background-image:none}.btn-microsoft .badge{color:#2672ec;background-color:#fff}.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid.focus,.btn-openid:active,.btn-openid:focus,.btn-openid:hover,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid:active,.open>.dropdown-toggle.btn-openid{background-image:none}.btn-openid .badge{color:#f7931e;background-color:#fff}.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest.focus,.btn-pinterest:active,.btn-pinterest:focus,.btn-pinterest:hover,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest:active,.open>.dropdown-toggle.btn-pinterest{background-image:none}.btn-pinterest .badge{color:#cb2027;background-color:#fff}.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit.focus,.btn-reddit:active,.btn-reddit:focus,.btn-reddit:hover,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit:active,.open>.dropdown-toggle.btn-reddit{background-image:none}.btn-reddit .badge{color:#eff7ff;background-color:#000}.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud.focus,.btn-soundcloud:active,.btn-soundcloud:focus,.btn-soundcloud:hover,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud:active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}.btn-soundcloud .badge{color:#f50;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr.focus,.btn-tumblr:active,.btn-tumblr:focus,.btn-tumblr:hover,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr:active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter.focus,.btn-twitter:active,.btn-twitter:focus,.btn-twitter:hover,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter:active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo.focus,.btn-vimeo:active,.btn-vimeo:focus,.btn-vimeo:hover,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo:active,.open>.dropdown-toggle.btn-vimeo{background-image:none}.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk.focus,.btn-vk:active,.btn-vk:focus,.btn-vk:hover,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk:active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk .badge{color:#587ea3;background-color:#fff}.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo.focus,.btn-yahoo:active,.btn-yahoo:focus,.btn-yahoo:hover,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo:active,.open>.dropdown-toggle.btn-yahoo{background-image:none}.btn-yahoo .badge{color:#720e9e;background-color:#fff}.fc-button{background:#f4f4f4;color:#444;border-color:#ddd}.fc-button.hover,.fc-button:active,.fc-button:hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-content:first-of-type,.fc-widget-header:first-of-type{border-left:0;border-right:0}.fc-widget-content:last-of-type,.fc-widget-header:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform linear .3s;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform linear .3s}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all linear .3s;-o-transition:all linear .3s;transition:all linear .3s}.external-event{padding:5px 10px;font-weight:700;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);text-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,.2)}.select2-container--default.select2-container--focus,.select2-container--default:active,.select2-container--default:focus,.select2-selection.select2-container--focus,.select2-selection:active,.select2-selection:focus{outline:0}.select2-container--default .select2-selection--single,.select2-selection .select2-selection--single{border:1px solid #d2d6de;border-radius:0;padding:6px 12px;height:34px}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:#fff}.select2-results__option{padding:6px 12px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:0;height:auto;margin-top:-4px}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:0;border:1px solid #3c8dbc}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3c8dbc;border-color:#367fa9;padding:1px 10px;color:#fff}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:rgba(255,255,255,.7)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.margin-bottom-none{margin-bottom:0}.margin-r-5{margin-right:5px}.inline{display:inline}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.alert-danger,.alert-error,.alert-info,.alert-success,.alert-warning,.bg-aqua,.bg-aqua-active,.bg-black,.bg-black-active,.bg-blue,.bg-blue-active,.bg-fuchsia,.bg-fuchsia-active,.bg-green,.bg-green-active,.bg-light-blue,.bg-light-blue-active,.bg-lime,.bg-lime-active,.bg-maroon,.bg-maroon-active,.bg-navy,.bg-navy-active,.bg-olive,.bg-olive-active,.bg-orange,.bg-orange-active,.bg-purple,.bg-purple-active,.bg-red,.bg-red-active,.bg-teal,.bg-teal-active,.bg-yellow,.bg-yellow-active,.callout.callout-danger,.callout.callout-info,.callout.callout-success,.callout.callout-warning,.label-danger,.label-info,.label-primary,.label-success,.label-warning,.modal-danger .modal-body,.modal-danger .modal-footer,.modal-danger .modal-header,.modal-info .modal-body,.modal-info .modal-footer,.modal-info .modal-header,.modal-primary .modal-body,.modal-primary .modal-footer,.modal-primary .modal-header,.modal-success .modal-body,.modal-success .modal-footer,.modal-success .modal-header,.modal-warning .modal-body,.modal-warning .modal-footer,.modal-warning .modal-header{color:#fff!important}.bg-gray{color:#000;background-color:#d2d6de!important}.bg-gray-light{background-color:#f7f7f7}.bg-black{background-color:#111!important}.alert-danger,.alert-error,.bg-red,.callout.callout-danger,.label-danger,.modal-danger .modal-body{background-color:#dd4b39!important}.alert-warning,.bg-yellow,.callout.callout-warning,.label-warning,.modal-warning .modal-body{background-color:#f39c12!important}.alert-info,.bg-aqua,.callout.callout-info,.label-info,.modal-info .modal-body{background-color:#00c0ef!important}.bg-blue{background-color:#0073b7!important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc!important}.alert-success,.bg-green,.callout.callout-success,.label-success,.modal-success .modal-body{background-color:#00a65a!important}.bg-navy{background-color:#001f3f!important}.bg-teal{background-color:#39cccc!important}.bg-olive{background-color:#3d9970!important}.bg-lime{background-color:#01ff70!important}.bg-orange{background-color:#ff851b!important}.bg-fuchsia{background-color:#f012be!important}.bg-purple{background-color:#605ca8!important}.bg-maroon{background-color:#d81b60!important}.bg-gray-active{color:#000;background-color:#b5bbc8!important}.bg-black-active{background-color:#000!important}.bg-red-active,.modal-danger .modal-footer,.modal-danger .modal-header{background-color:#d33724!important}.bg-yellow-active,.modal-warning .modal-footer,.modal-warning .modal-header{background-color:#db8b0b!important}.bg-aqua-active,.modal-info .modal-footer,.modal-info .modal-header{background-color:#00a7d0!important}.bg-blue-active{background-color:#005384!important}.bg-light-blue-active,.modal-primary .modal-footer,.modal-primary .modal-header{background-color:#357ca5!important}.bg-green-active,.modal-success .modal-footer,.modal-success .modal-header{background-color:#008d4c!important}.bg-navy-active{background-color:#001a35!important}.bg-teal-active{background-color:#30bbbb!important}.bg-olive-active{background-color:#368763!important}.bg-lime-active{background-color:#00e765!important}.bg-orange-active{background-color:#ff7701!important}.bg-fuchsia-active{background-color:#db0ead!important}.bg-purple-active{background-color:#555299!important}.bg-maroon-active{background-color:#ca195a!important}[class^=bg-].disabled{opacity:.65;filter:alpha(opacity=65)}.text-red{color:#dd4b39!important}.text-yellow{color:#f39c12!important}.text-aqua{color:#00c0ef!important}.text-blue{color:#0073b7!important}.text-black{color:#111!important}.text-light-blue{color:#3c8dbc!important}.text-green{color:#00a65a!important}.text-gray{color:#d2d6de!important}.text-navy{color:#001f3f!important}.text-teal{color:#39cccc!important}.text-olive{color:#3d9970!important}.text-lime{color:#01ff70!important}.text-orange{color:#ff851b!important}.text-fuchsia{color:#f012be!important}.text-purple{color:#605ca8!important}.text-maroon{color:#d81b60!important}.link-muted{color:#7a869d}.link-muted:focus,.link-muted:hover{color:#606c84}.link-black{color:#666}.link-black:focus,.link-black:hover{color:#999}.hide{display:none!important}.no-border{border:0!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-shadow{box-shadow:none!important}.chart-legend,.contacts-list,.list-unstyled,.mailbox-attachments,.users-list{list-style:none;margin:0;padding:0}.list-group-unbordered>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.flat{border-radius:0!important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-sm{font-size:12px}.jqstooltip{padding:5px!important;width:auto!important;height:auto!important}.bg-teal-gradient{background:#39cccc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#39cccc),color-stop(1,#7adddd))!important;background:-ms-linear-gradient(bottom,#39cccc,#7adddd)!important;background:-moz-linear-gradient(center bottom,#39cccc 0,#7adddd 100%)!important;background:-o-linear-gradient(#7adddd,#39cccc)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0)!important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#3c8dbc),color-stop(1,#67a8ce))!important;background:-ms-linear-gradient(bottom,#3c8dbc,#67a8ce)!important;background:-moz-linear-gradient(center bottom,#3c8dbc 0,#67a8ce 100%)!important;background:-o-linear-gradient(#67a8ce,#3c8dbc)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0)!important;color:#fff}.bg-blue-gradient{background:#0073b7!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#0073b7),color-stop(1,#0089db))!important;background:-ms-linear-gradient(bottom,#0073b7,#0089db)!important;background:-moz-linear-gradient(center bottom,#0073b7 0,#0089db 100%)!important;background:-o-linear-gradient(#0089db,#0073b7)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0)!important;color:#fff}.bg-aqua-gradient{background:#00c0ef!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00c0ef),color-stop(1,#14d1ff))!important;background:-ms-linear-gradient(bottom,#00c0ef,#14d1ff)!important;background:-moz-linear-gradient(center bottom,#00c0ef 0,#14d1ff 100%)!important;background:-o-linear-gradient(#14d1ff,#00c0ef)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0)!important;color:#fff}.bg-yellow-gradient{background:#f39c12!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#f39c12),color-stop(1,#f7bc60))!important;background:-ms-linear-gradient(bottom,#f39c12,#f7bc60)!important;background:-moz-linear-gradient(center bottom,#f39c12 0,#f7bc60 100%)!important;background:-o-linear-gradient(#f7bc60,#f39c12)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0)!important;color:#fff}.bg-purple-gradient{background:#605ca8!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#605ca8),color-stop(1,#9491c4))!important;background:-ms-linear-gradient(bottom,#605ca8,#9491c4)!important;background:-moz-linear-gradient(center bottom,#605ca8 0,#9491c4 100%)!important;background:-o-linear-gradient(#9491c4,#605ca8)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0)!important;color:#fff}.bg-green-gradient{background:#00a65a!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00a65a),color-stop(1,#00ca6d))!important;background:-ms-linear-gradient(bottom,#00a65a,#00ca6d)!important;background:-moz-linear-gradient(center bottom,#00a65a 0,#00ca6d 100%)!important;background:-o-linear-gradient(#00ca6d,#00a65a)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0)!important;color:#fff}.bg-red-gradient{background:#dd4b39!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dd4b39),color-stop(1,#e47365))!important;background:-ms-linear-gradient(bottom,#dd4b39,#e47365)!important;background:-moz-linear-gradient(center bottom,#dd4b39 0,#e47365 100%)!important;background:-o-linear-gradient(#e47365,#dd4b39)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0)!important;color:#fff}.bg-black-gradient{background:#111!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#111),color-stop(1,#2b2b2b))!important;background:-ms-linear-gradient(bottom,#111,#2b2b2b)!important;background:-moz-linear-gradient(center bottom,#111 0,#2b2b2b 100%)!important;background:-o-linear-gradient(#2b2b2b,#111)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0)!important;color:#fff}.bg-maroon-gradient{background:#d81b60!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#d81b60),color-stop(1,#e73f7c))!important;background:-ms-linear-gradient(bottom,#d81b60,#e73f7c)!important;background:-moz-linear-gradient(center bottom,#d81b60 0,#e73f7c 100%)!important;background:-o-linear-gradient(#e73f7c,#d81b60)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0)!important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static!important}.list-header{font-size:15px;padding:10px 4px;font-weight:700;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:after,.user-block:before{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .comment,.user-block .description,.user-block .username{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .comment,.user-block.user-block-sm .description,.user-block.user-block-sm .username{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.box-comments .box-comment img,.img-lg,.img-md,.img-sm,.user-block.user-block-sm img{float:left}.box-comments .box-comment img,.img-sm,.user-block.user-block-sm img{width:30px!important;height:30px!important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}.chart{position:relative;overflow:hidden;width:100%}.chart canvas,.chart svg{width:100%!important}@media print{.content-header,.left-side,.main-header,.main-sidebar,.no-print{display:none!important}.content-wrapper,.main-footer,.right-side{margin-left:0!important;min-height:0!important;-webkit-transform:translate(0,0)!important;-ms-transform:translate(0,0)!important;-o-transform:translate(0,0)!important;transform:translate(0,0)!important}.fixed .content-wrapper,.fixed .right-side{padding-top:0!important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr td,.table-responsive>.table tr th{white-space:normal!important}} \ No newline at end of file +!*/body,html{height:100%}.layout-boxed body,.layout-boxed html{height:100%}body{font-family:'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{height:100%;position:relative;overflow-x:hidden;overflow-y:auto}.wrapper:after,.wrapper:before{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,.5);position:relative}.layout-boxed{background:url(../img/boxed-bg.jpg) repeat fixed}.content-wrapper,.main-footer,.right-side{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer,.layout-top-nav .right-side{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer,.right-side{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer,.sidebar-collapse .right-side{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer,.sidebar-open .right-side{-webkit-transform:translate(230px,0);-ms-transform:translate(230px,0);-o-transform:translate(230px,0);transform:translate(230px,0)}}.content-wrapper,.right-side{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .left-side,.fixed .main-header,.fixed .main-sidebar{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}body.hold-transition .content-wrapper,body.hold-transition .left-side,body.hold-transition .main-footer,body.hold-transition .main-header .logo,body.hold-transition .main-header .navbar,body.hold-transition .main-sidebar,body.hold-transition .right-side{-webkit-transition:none;-o-transition:none;transition:none}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:'Source Sans Pro',sans-serif}a{color:#3c8dbc}a:active,a:focus,a:hover{outline:0;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px 0;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header .navbar{-webkit-transition:margin-left .3s ease-in-out;-o-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header .navbar{margin-left:0}.main-header #navbar-search-input.form-control{background:rgba(255,255,255,.2);border-color:transparent}.main-header #navbar-search-input.form-control:active,.main-header #navbar-search-input.form-control:focus{border-color:rgba(0,0,0,.1);background:rgba(255,255,255,.9)}.main-header #navbar-search-input.form-control::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input.form-control:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input.form-control::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:0 0}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px 15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\f0c9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle:active,.main-header .sidebar-toggle:focus{background:0 0}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{-webkit-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out;display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300;overflow:hidden}.main-header .logo .logo-lg{display:block}.main-header .logo .logo-mini{display:none}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0 15px}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:0 0;margin-top:0;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:'>\00a0'}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px 15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}}@media (max-width:991px){.navbar-collapse.pull-left{float:none!important}.navbar-collapse.pull-left+.navbar-custom-menu{display:block;position:absolute;top:0;right:40px}}.left-side,.main-sidebar{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s ease-in-out,width .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,width .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,width .3s ease-in-out;transition:transform .3s ease-in-out,width .3s ease-in-out}@media (max-width:767px){.left-side,.main-sidebar{padding-top:100px}}@media (max-width:767px){.left-side,.main-sidebar{-webkit-transform:translate(-230px,0);-ms-transform:translate(-230px,0);-o-transform:translate(-230px,0);transform:translate(-230px,0)}}@media (min-width:768px){.sidebar-collapse .left-side,.sidebar-collapse .main-sidebar{-webkit-transform:translate(-230px,0);-ms-transform:translate(-230px,0);-o-transform:translate(-230px,0);transform:translate(-230px,0)}}@media (max-width:767px){.sidebar-open .left-side,.sidebar-open .main-sidebar{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}}.sidebar{padding-bottom:10px}.sidebar-form input:focus{border-color:transparent}.user-panel{position:relative;width:100%;padding:10px;overflow:hidden}.user-panel:after,.user-panel:before{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:100%;max-width:45px;height:auto}.user-panel>.info{padding:5px 5px 5px 15px;line-height:1;position:absolute;left:55px}.user-panel>.info>p{font-weight:600;margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px}.user-panel>.info>a>.fa,.user-panel>.info>a>.glyphicon,.user-panel>.info>a>.ion{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .badge,.sidebar-menu>li .label{margin-right:5px}.sidebar-menu>li .badge{margin-top:3px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.fa-angle-left,.sidebar-menu li>a>.pull-right-container>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px}.sidebar-menu li>a>.fa-angle-left{position:absolute;top:50%;right:10px;margin-top:-8px}.sidebar-menu li.active>a>.fa-angle-left,.sidebar-menu li.active>a>.pull-right-container>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu li.active>.treeview-menu{display:block}.sidebar-menu .treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.sidebar-menu .treeview-menu .treeview-menu{padding-left:20px}.sidebar-menu .treeview-menu>li{margin:0}.sidebar-menu .treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.sidebar-menu .treeview-menu>li>a>.fa,.sidebar-menu .treeview-menu>li>a>.glyphicon,.sidebar-menu .treeview-menu>li>a>.ion{width:20px}.sidebar-menu .treeview-menu>li>a>.fa-angle-down,.sidebar-menu .treeview-menu>li>a>.fa-angle-left,.sidebar-menu .treeview-menu>li>a>.pull-right-container>.fa-angle-down,.sidebar-menu .treeview-menu>li>a>.pull-right-container>.fa-angle-left{width:auto}@media (min-width:768px){.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .main-footer,.sidebar-mini.sidebar-collapse .right-side{margin-left:50px!important;z-index:840}.sidebar-mini.sidebar-collapse .main-sidebar{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0);width:50px!important;z-index:850}.sidebar-mini.sidebar-collapse .sidebar-menu>li{position:relative}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a{margin-right:0}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{border-top-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:not(.treeview)>a>span{border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{padding-top:5px;padding-bottom:5px;border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>span:not(.pull-right){display:block!important;position:absolute;width:180px;left:50px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>span{top:0;margin-left:-3px;padding:12px 5px 12px 20px;background-color:inherit}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container{position:relative!important;float:right;width:auto!important;left:180px!important;top:-22px!important;z-index:900}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container>.label:not(:first-of-type){display:none}.sidebar-mini.sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{top:44px;margin-left:0}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel>.info,.sidebar-mini.sidebar-collapse .sidebar-form,.sidebar-mini.sidebar-collapse .sidebar-menu li.header,.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>.pull-right,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{display:none!important;-webkit-transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-header .logo{width:50px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-mini{display:block;margin-left:-15px;margin-right:-15px;font-size:18px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-lg{display:none}.sidebar-mini.sidebar-collapse .main-header .navbar{margin-left:50px}}.main-sidebar .user-panel,.sidebar-menu,.sidebar-menu>li.header{white-space:nowrap;overflow:hidden}.sidebar-menu:hover{overflow:visible}.sidebar-form,.sidebar-menu>li.header{overflow:hidden;text-overflow:clip}.sidebar-menu li>a{position:relative}.sidebar-menu li>a>.pull-right-container{position:absolute;right:10px;top:50%;margin-top:-7px}.control-sidebar-bg{position:fixed;z-index:1000;bottom:0}.control-sidebar,.control-sidebar-bg{top:0;right:-230px;width:230px;-webkit-transition:right .3s ease-in-out;-o-transition:right .3s ease-in-out;transition:right .3s ease-in-out}.control-sidebar{position:absolute;padding-top:50px;z-index:1010}@media (max-width:768px){.control-sidebar{padding-top:100px}}.control-sidebar>.tab-content{padding:10px 15px}.control-sidebar.control-sidebar-open,.control-sidebar.control-sidebar-open+.control-sidebar-bg{right:0}.control-sidebar-open .control-sidebar,.control-sidebar-open .control-sidebar-bg{right:0}@media (min-width:768px){.control-sidebar-open .content-wrapper,.control-sidebar-open .main-footer,.control-sidebar-open .right-side{margin-right:230px}}.nav-tabs.control-sidebar-tabs>li:first-of-type>a,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:focus,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:hover{border-left-width:0}.nav-tabs.control-sidebar-tabs>li>a{border-radius:0}.nav-tabs.control-sidebar-tabs>li>a,.nav-tabs.control-sidebar-tabs>li>a:hover{border-top:none;border-right:none;border-left:1px solid transparent;border-bottom:1px solid transparent}.nav-tabs.control-sidebar-tabs>li>a .icon{font-size:16px}.nav-tabs.control-sidebar-tabs>li.active>a,.nav-tabs.control-sidebar-tabs>li.active>a:active,.nav-tabs.control-sidebar-tabs>li.active>a:focus,.nav-tabs.control-sidebar-tabs>li.active>a:hover{border-top:none;border-right:none;border-bottom:none}@media (max-width:768px){.nav-tabs.control-sidebar-tabs{display:table}.nav-tabs.control-sidebar-tabs>li{display:table-cell}}.control-sidebar-heading{font-weight:400;font-size:16px;padding:10px 0;margin-bottom:10px}.control-sidebar-subheading{display:block;font-weight:400;font-size:14px}.control-sidebar-menu{list-style:none;padding:0;margin:0 -15px}.control-sidebar-menu>li>a{display:block;padding:10px 15px}.control-sidebar-menu>li>a:after,.control-sidebar-menu>li>a:before{content:" ";display:table}.control-sidebar-menu>li>a:after{clear:both}.control-sidebar-menu>li>a>.control-sidebar-subheading{margin-top:0}.control-sidebar-menu .menu-icon{float:left;width:35px;height:35px;border-radius:50%;text-align:center;line-height:35px}.control-sidebar-menu .menu-info{margin-left:45px;margin-top:3px}.control-sidebar-menu .menu-info>.control-sidebar-subheading{margin:0}.control-sidebar-menu .menu-info>p{margin:0;font-size:11px}.control-sidebar-menu .progress{margin:0}.control-sidebar-dark{color:#b8c7ce}.control-sidebar-dark,.control-sidebar-dark+.control-sidebar-bg{background:#222d32}.control-sidebar-dark .nav-tabs.control-sidebar-tabs{border-bottom:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a{background:#181f23;color:#b8c7ce}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#141a1d;border-bottom-color:#141a1d}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{background:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{color:#fff}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#222d32;color:#fff}.control-sidebar-dark .control-sidebar-heading,.control-sidebar-dark .control-sidebar-subheading{color:#fff}.control-sidebar-dark .control-sidebar-menu>li>a:hover{background:#1e282c}.control-sidebar-dark .control-sidebar-menu>li>a .menu-info>p{color:#b8c7ce}.control-sidebar-light{color:#5e5e5e}.control-sidebar-light,.control-sidebar-light+.control-sidebar-bg{background:#f9fafc;border-left:1px solid #d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs{border-bottom:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a{background:#e8ecf4;color:#444}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#d2d6de;border-bottom-color:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{background:#eff1f7}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#f9fafc;color:#111}.control-sidebar-light .control-sidebar-heading,.control-sidebar-light .control-sidebar-subheading{color:#111}.control-sidebar-light .control-sidebar-menu{margin-left:-14px}.control-sidebar-light .control-sidebar-menu>li>a:hover{background:#f4f4f5}.control-sidebar-light .control-sidebar-menu>li>a .menu-info>p{color:#5e5e5e}.dropdown-menu{box-shadow:none;border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0;margin:0;top:100%}.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;background-color:#fff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444;font-size:14px}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eee;color:#444!important;text-align:center}@media (max-width:991px){.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff!important;color:#444!important}}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:400}.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444;overflow:hidden;text-overflow:ellipsis;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0;padding:10px 10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999;font-size:10px;position:absolute;top:0;right:0}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px 0;color:#666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:rgba(255,255,255,.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:rgba(255,255,255,.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #ddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after,.navbar-nav>.user-menu>.dropdown-menu>.user-body:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444!important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff!important;color:#444!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f9f9f9}}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible!important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc;box-shadow:none}.form-control:-ms-input-placeholder,.form-control::-moz-placeholder,.form-control::-webkit-input-placeholder{color:#bbb;opacity:1}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control,.form-group.has-success .input-group-addon{border-color:#00a65a;box-shadow:none}.form-group.has-success .help-block{color:#00a65a}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control,.form-group.has-warning .input-group-addon{border-color:#f39c12;box-shadow:none}.form-group.has-warning .help-block{color:#f39c12}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control,.form-group.has-error .input-group-addon{border-color:#dd4b39;box-shadow:none}.form-group.has-error .help-block{color:#dd4b39}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.form-control-feedback.fa{line-height:34px}.form-group-lg .form-control+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fa,.input-lg+.form-control-feedback.fa{line-height:46px}.form-group-sm .form-control+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fa,.input-sm+.form-control-feedback.fa{line-height:30px}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress .progress-bar,.progress>.progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress-sm,.progress.sm{height:10px}.progress-sm,.progress-sm .progress-bar,.progress.sm,.progress.sm .progress-bar{border-radius:1px}.progress-xs,.progress.xs{height:7px}.progress-xs,.progress-xs .progress-bar,.progress.xs,.progress.xs .progress-bar{border-radius:1px}.progress-xxs,.progress.xxs{height:3px}.progress-xxs,.progress-xxs .progress-bar,.progress.xxs,.progress.xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%;position:absolute;bottom:0}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{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)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{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)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{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)}.progress-bar-warning,.progress-bar-yellow{background-color:#f39c12}.progress-striped .progress-bar-warning,.progress-striped .progress-bar-yellow{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)}.progress-bar-danger,.progress-bar-red{background-color:#dd4b39}.progress-striped .progress-bar-danger,.progress-striped .progress-bar-red{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)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:rgba(255,255,255,.8);display:block;z-index:10;background:rgba(0,0,0,.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,.15)}.small-box h3{font-size:38px;font-weight:700;margin:0 0 10px 0;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#fff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0}.box.box-solid>.box-header .btn.btn-default{background:0 0}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,.1)}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de;background-color:#d2d6de}.box.box-solid.box-default>.box-header .btn,.box.box-solid.box-default>.box-header a{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc;background-color:#3c8dbc}.box.box-solid.box-primary>.box-header .btn,.box.box-solid.box-primary>.box-header a{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef;background-color:#00c0ef}.box.box-solid.box-info>.box-header .btn,.box.box-solid.box-info>.box-header a{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39;background-color:#dd4b39}.box.box-solid.box-danger>.box-header .btn,.box.box-solid.box-danger>.box-header a{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12;background-color:#f39c12}.box.box-solid.box-warning>.box-header .btn,.box.box-solid.box-warning>.box-header a{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a;background-color:#00a65a}.box.box-solid.box-success>.box-header .btn,.box.box-solid.box-success>.box-header a{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*=bg]>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:.3em}.box>.loading-img,.box>.overlay,.overlay-wrapper>.loading-img,.overlay-wrapper>.overlay{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay{z-index:50;background:rgba(255,255,255,.7);border-radius:3px}.box .overlay>.fa,.overlay-wrapper .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark,.overlay-wrapper .overlay.dark{background:rgba(0,0,0,.5)}.box-body:after,.box-body:before,.box-footer:after,.box-footer:before,.box-header:after,.box-header:before{content:" ";display:table}.box-body:after,.box-footer:after,.box-header:after{clear:both}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header .box-title,.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle=tooltip]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.box-header>.box-tools .dropdown-menu>li>a{color:#444!important}.btn-box-tool{padding:5px;font-size:12px;background:0 0;color:#97a0b3}.btn-box-tool:hover,.open .btn-box-tool{color:#606c84}.btn-box-tool.btn:active{box-shadow:none}.box-body{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px}.box-body .box-pane-right{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:0}.box-footer{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}.chart-legend{margin:10px 0}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.box-comments{background:#f7f7f7}.box-comments .box-comment{padding:8px 0;border-bottom:1px solid #eee}.box-comments .box-comment:after,.box-comments .box-comment:before{content:" ";display:table}.box-comments .box-comment:after{clear:both}.box-comments .box-comment:last-of-type{border-bottom:0}.box-comments .box-comment:first-of-type{padding-top:0}.box-comments .box-comment img{float:left}.box-comments .comment-text{margin-left:40px;color:#555}.box-comments .username{color:#444;display:block;font-weight:600}.box-comments .text-muted{font-weight:400;font-size:12px}.todo-list{margin:0;padding:0;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type=checkbox]{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de!important}.todo-list .danger{border-left-color:#dd4b39}.todo-list .warning{border-left-color:#f39c12}.todo-list .info{border-left-color:#00c0ef}.todo-list .success{border-left-color:#00a65a}.todo-list .primary{border-left-color:#3c8dbc}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:after,.chat .item:before{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50%}.chat .item>.online{border:2px solid #00a65a}.chat .item>.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px 0;font-weight:600;font-size:14px}.chat .item>.attachment>.filename,.chat .item>.attachment>p{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:after,.chat .item>.attachment:before{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.modal .panel-body{color:#444}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,.2);margin:5px -10px 5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,.2)}.info-box-icon>img{max-width:100%}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:700;font-size:18px}.info-box-text,.progress-description{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px 0;padding:0;list-style:none}.timeline:before{content:'';position:absolute;top:0;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:after,.timeline>li:before{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;margin-top:0;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.timeline>.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline-inverse>li>.timeline-item{background:#f0f0f0;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.timeline-inverse>li>.timeline-item>.timeline-header{border-bottom-color:#ddd}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:focus{outline:0}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;outline:0;background:#fff;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default.hover,.btn-default:active,.btn-default:hover{background-color:#e7e7e7}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary.hover,.btn-primary:active,.btn-primary:hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success.hover,.btn-success:active,.btn-success:hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info.hover,.btn-info:active,.btn-info:hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger.hover,.btn-danger:active,.btn-danger:hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning.hover,.btn-warning:active,.btn-warning:hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:0 0;color:#fff}.btn-outline:active,.btn-outline:focus,.btn-outline:hover{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*=bg-]:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.2);box-shadow:inset 0 0 100px rgba(0,0,0,.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px 0;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout .highlight,.callout code{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2}.alert .close:hover{opacity:.5}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav>li>a:active,.nav>li>a:focus,.nav>li>a:hover{color:#444;background:#f7f7f7}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{border-top-color:#3c8dbc}.nav-pills>li.active>a{font-weight:600}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background:0 0;color:#444;border-top:0;border-left-color:#3c8dbc}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li>a{color:#444;border-radius:0}.nav-tabs-custom>.nav-tabs>li>a.text-muted{color:#999}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:0 0;margin:0}.nav-tabs-custom>.nav-tabs>li>a:hover{color:#999}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active:hover>a,.nav-tabs-custom>.nav-tabs>li.active>a{background-color:#fff;color:#444}.nav-tabs-custom>.nav-tabs>li.active>a{border-top-color:transparent;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-color:transparent}.nav-tabs-custom>.nav-tabs.pull-right{float:none!important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type>a{border-left-width:1px}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-color:#f4f4f4;border-right-color:transparent}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.nav-tabs-custom .dropdown.open>a:active,.nav-tabs-custom .dropdown.open>a:focus{background:0 0;color:#999}.nav-tabs-custom.tab-primary>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom.tab-info>.nav-tabs>li.active{border-top-color:#00c0ef}.nav-tabs-custom.tab-danger>.nav-tabs>li.active{border-top-color:#dd4b39}.nav-tabs-custom.tab-warning>.nav-tabs>li.active{border-top-color:#f39c12}.nav-tabs-custom.tab-success>.nav-tabs>li.active{border-top-color:#00a65a}.nav-tabs-custom.tab-default>.nav-tabs>li.active{border-top-color:#d2d6de}.pagination>li>a{background:#fafafa;color:#666}.pagination.pagination-flat>li>a{border-radius:0!important}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);padding:10px 0;background:#fff}.products-list>.item:after,.products-list>.item:before{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered{border:1px solid #f4f4f4}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #f4f4f4}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.direct-chat-messages{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0);padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:after,.direct-chat-msg:before{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-contacts,.direct-chat-messages{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:' ';height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.direct-chat-contacts{-webkit-transform:translate(101%,0);-ms-transform:translate(101%,0);-o-transform:translate(101%,0);transform:translate(101%,0);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,.2);padding:10px;margin:0}.contacts-list>li:after,.contacts-list>li:before{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:400}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li img{border-radius:50%;max-width:100%;height:auto}.users-list>li>a:hover,.users-list>li>a:hover .users-list-name{color:#999}.users-list-date,.users-list-name{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-date{color:#999;font-size:12px}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125);border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125)}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-footer,.modal-primary .modal-header{border-color:#307095}.modal-warning .modal-footer,.modal-warning .modal-header{border-color:#c87f0a}.modal-info .modal-footer,.modal-info .modal-header{border-color:#0097bc}.modal-success .modal-footer,.modal-success .modal-header{border-color:#00733e}.modal-danger .modal-footer,.modal-danger .modal-header{border-color:#c23321}.box-widget{border:none;position:relative}.widget-user .widget-user-header{padding:20px;height:120px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user .widget-user-username{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,.2)}.widget-user .widget-user-desc{margin-top:0}.widget-user .widget-user-image{position:absolute;top:65px;left:50%;margin-left:-45px}.widget-user .widget-user-image>img{width:90px;height:auto;border:3px solid #fff}.widget-user .box-footer{padding-top:30px}.widget-user-2 .widget-user-header{padding:20px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user-2 .widget-user-username{margin-top:5px;margin-bottom:5px;font-size:25px;font-weight:300}.widget-user-2 .widget-user-desc{margin-top:0}.widget-user-2 .widget-user-desc,.widget-user-2 .widget-user-username{margin-left:75px}.widget-user-2 .widget-user-image>img{width:65px;height:auto;float:left}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border{border-bottom:1px solid #f4f4f4}.mailbox-read-info{border-bottom:1px solid #f4f4f4;padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:700;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px auto;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0 auto}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.profile-user-img{margin:0 auto;width:100px;padding:3px;border:3px solid #d2d6de}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px}.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,.2)}.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,.2)}.btn-social-icon.btn-lg{padding-left:61px}.btn-social-icon.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm{padding-left:38px}.btn-social-icon.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs{padding-left:30px}.btn-social-icon.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon>:first-child{border:none;text-align:center;width:100%}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,.2)}.btn-adn.focus,.btn-adn:focus{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,.2)}.btn-adn:hover{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn:active,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn:active,.open>.dropdown-toggle.btn-adn{background-image:none}.btn-adn .badge{color:#d87a68;background-color:#fff}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,.2)}.btn-bitbucket.focus,.btn-bitbucket:focus{color:#fff;background-color:#163758;border-color:rgba(0,0,0,.2)}.btn-bitbucket:hover{color:#fff;background-color:#163758;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket:active,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket:active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,.2)}.btn-dropbox.focus,.btn-dropbox:focus{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,.2)}.btn-dropbox:hover{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox:active,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox:active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,.2)}.btn-facebook.focus,.btn-facebook:focus{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,.2)}.btn-facebook:hover{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook:active,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook:active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,.2)}.btn-flickr.focus,.btn-flickr:focus{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,.2)}.btn-flickr:hover{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr:active,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr:active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,.2)}.btn-foursquare.focus,.btn-foursquare:focus{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,.2)}.btn-foursquare:hover{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare:active,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare:active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare .badge{color:#f94877;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,.2)}.btn-github.focus,.btn-github:focus{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,.2)}.btn-github:hover{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github:active,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github:active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github .badge{color:#444;background-color:#fff}.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,.2)}.btn-google.focus,.btn-google:focus{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,.2)}.btn-google:hover{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google:active,.open>.dropdown-toggle.btn-google{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google:active,.open>.dropdown-toggle.btn-google{background-image:none}.btn-google .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,.2)}.btn-instagram.focus,.btn-instagram:focus{color:#fff;background-color:#305777;border-color:rgba(0,0,0,.2)}.btn-instagram:hover{color:#fff;background-color:#305777;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram:active,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram:active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,.2)}.btn-linkedin.focus,.btn-linkedin:focus{color:#fff;background-color:#005983;border-color:rgba(0,0,0,.2)}.btn-linkedin:hover{color:#fff;background-color:#005983;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin:active,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin:active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,.2)}.btn-microsoft.focus,.btn-microsoft:focus{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,.2)}.btn-microsoft:hover{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft:active,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft:active,.open>.dropdown-toggle.btn-microsoft{background-image:none}.btn-microsoft .badge{color:#2672ec;background-color:#fff}.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,.2)}.btn-openid.focus,.btn-openid:focus{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,.2)}.btn-openid:hover{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid:active,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid:active,.open>.dropdown-toggle.btn-openid{background-image:none}.btn-openid .badge{color:#f7931e;background-color:#fff}.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,.2)}.btn-pinterest.focus,.btn-pinterest:focus{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,.2)}.btn-pinterest:hover{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest:active,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest:active,.open>.dropdown-toggle.btn-pinterest{background-image:none}.btn-pinterest .badge{color:#cb2027;background-color:#fff}.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,.2)}.btn-reddit.focus,.btn-reddit:focus{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,.2)}.btn-reddit:hover{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit:active,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit:active,.open>.dropdown-toggle.btn-reddit{background-image:none}.btn-reddit .badge{color:#eff7ff;background-color:#000}.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,.2)}.btn-soundcloud.focus,.btn-soundcloud:focus{color:#fff;background-color:#c40;border-color:rgba(0,0,0,.2)}.btn-soundcloud:hover{color:#fff;background-color:#c40;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud:active,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud:active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}.btn-soundcloud .badge{color:#f50;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,.2)}.btn-tumblr.focus,.btn-tumblr:focus{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,.2)}.btn-tumblr:hover{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr:active,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr:active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,.2)}.btn-twitter.focus,.btn-twitter:focus{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,.2)}.btn-twitter:hover{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter:active,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter:active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,.2)}.btn-vimeo.focus,.btn-vimeo:focus{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,.2)}.btn-vimeo:hover{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo:active,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo:active,.open>.dropdown-toggle.btn-vimeo{background-image:none}.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,.2)}.btn-vk.focus,.btn-vk:focus{color:#fff;background-color:#466482;border-color:rgba(0,0,0,.2)}.btn-vk:hover{color:#fff;background-color:#466482;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk:active,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk:active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk .badge{color:#587ea3;background-color:#fff}.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,.2)}.btn-yahoo.focus,.btn-yahoo:focus{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,.2)}.btn-yahoo:hover{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo:active,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo:active,.open>.dropdown-toggle.btn-yahoo{background-image:none}.btn-yahoo .badge{color:#720e9e;background-color:#fff}.fc-button{background:#f4f4f4;background-image:none;color:#444;border-color:#ddd;border-bottom-color:#ddd}.fc-button.hover,.fc-button:active,.fc-button:hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-content:first-of-type,.fc-widget-header:first-of-type{border-left:0;border-right:0}.fc-widget-content:last-of-type,.fc-widget-header:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform linear .3s;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform linear .3s}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all linear .3s;-o-transition:all linear .3s;transition:all linear .3s}.external-event{padding:5px 10px;font-weight:700;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);text-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,.2)}.select2-container--default.select2-container--focus,.select2-container--default:active,.select2-container--default:focus,.select2-selection.select2-container--focus,.select2-selection:active,.select2-selection:focus{outline:0}.select2-container--default .select2-selection--single,.select2-selection .select2-selection--single{border:1px solid #d2d6de;border-radius:0;padding:6px 12px;height:34px}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:#fff}.select2-results__option{padding:6px 12px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:0;padding-right:0;height:auto;margin-top:-4px}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:0;border:1px solid #3c8dbc}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3c8dbc;border-color:#367fa9;padding:1px 10px;color:#fff}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:rgba(255,255,255,.7)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.margin-bottom-none{margin-bottom:0}.margin-r-5{margin-right:5px}.inline{display:inline}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.alert-danger,.alert-error,.alert-info,.alert-success,.alert-warning,.bg-aqua,.bg-aqua-active,.bg-black,.bg-black-active,.bg-blue,.bg-blue-active,.bg-fuchsia,.bg-fuchsia-active,.bg-green,.bg-green-active,.bg-light-blue,.bg-light-blue-active,.bg-lime,.bg-lime-active,.bg-maroon,.bg-maroon-active,.bg-navy,.bg-navy-active,.bg-olive,.bg-olive-active,.bg-orange,.bg-orange-active,.bg-purple,.bg-purple-active,.bg-red,.bg-red-active,.bg-teal,.bg-teal-active,.bg-yellow,.bg-yellow-active,.callout.callout-danger,.callout.callout-info,.callout.callout-success,.callout.callout-warning,.label-danger,.label-info,.label-primary,.label-success,.label-warning,.modal-danger .modal-body,.modal-danger .modal-footer,.modal-danger .modal-header,.modal-info .modal-body,.modal-info .modal-footer,.modal-info .modal-header,.modal-primary .modal-body,.modal-primary .modal-footer,.modal-primary .modal-header,.modal-success .modal-body,.modal-success .modal-footer,.modal-success .modal-header,.modal-warning .modal-body,.modal-warning .modal-footer,.modal-warning .modal-header{color:#fff!important}.bg-gray{color:#000;background-color:#d2d6de!important}.bg-gray-light{background-color:#f7f7f7}.bg-black{background-color:#111!important}.alert-danger,.alert-error,.bg-red,.callout.callout-danger,.label-danger,.modal-danger .modal-body{background-color:#dd4b39!important}.alert-warning,.bg-yellow,.callout.callout-warning,.label-warning,.modal-warning .modal-body{background-color:#f39c12!important}.alert-info,.bg-aqua,.callout.callout-info,.label-info,.modal-info .modal-body{background-color:#00c0ef!important}.bg-blue{background-color:#0073b7!important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc!important}.alert-success,.bg-green,.callout.callout-success,.label-success,.modal-success .modal-body{background-color:#00a65a!important}.bg-navy{background-color:#001f3f!important}.bg-teal{background-color:#39cccc!important}.bg-olive{background-color:#3d9970!important}.bg-lime{background-color:#01ff70!important}.bg-orange{background-color:#ff851b!important}.bg-fuchsia{background-color:#f012be!important}.bg-purple{background-color:#605ca8!important}.bg-maroon{background-color:#d81b60!important}.bg-gray-active{color:#000;background-color:#b5bbc8!important}.bg-black-active{background-color:#000!important}.bg-red-active,.modal-danger .modal-footer,.modal-danger .modal-header{background-color:#d33724!important}.bg-yellow-active,.modal-warning .modal-footer,.modal-warning .modal-header{background-color:#db8b0b!important}.bg-aqua-active,.modal-info .modal-footer,.modal-info .modal-header{background-color:#00a7d0!important}.bg-blue-active{background-color:#005384!important}.bg-light-blue-active,.modal-primary .modal-footer,.modal-primary .modal-header{background-color:#357ca5!important}.bg-green-active,.modal-success .modal-footer,.modal-success .modal-header{background-color:#008d4c!important}.bg-navy-active{background-color:#001a35!important}.bg-teal-active{background-color:#30bbbb!important}.bg-olive-active{background-color:#368763!important}.bg-lime-active{background-color:#00e765!important}.bg-orange-active{background-color:#ff7701!important}.bg-fuchsia-active{background-color:#db0ead!important}.bg-purple-active{background-color:#555299!important}.bg-maroon-active{background-color:#ca195a!important}[class^=bg-].disabled{opacity:.65}.text-red{color:#dd4b39!important}.text-yellow{color:#f39c12!important}.text-aqua{color:#00c0ef!important}.text-blue{color:#0073b7!important}.text-black{color:#111!important}.text-light-blue{color:#3c8dbc!important}.text-green{color:#00a65a!important}.text-gray{color:#d2d6de!important}.text-navy{color:#001f3f!important}.text-teal{color:#39cccc!important}.text-olive{color:#3d9970!important}.text-lime{color:#01ff70!important}.text-orange{color:#ff851b!important}.text-fuchsia{color:#f012be!important}.text-purple{color:#605ca8!important}.text-maroon{color:#d81b60!important}.link-muted{color:#7a869d}.link-muted:focus,.link-muted:hover{color:#606c84}.link-black{color:#666}.link-black:focus,.link-black:hover{color:#999}.hide{display:none!important}.no-border{border:0!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-shadow{box-shadow:none!important}.chart-legend,.contacts-list,.list-unstyled,.mailbox-attachments,.users-list{list-style:none;margin:0;padding:0}.list-group-unbordered>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.flat{border-radius:0!important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-sm{font-size:12px}.jqstooltip{padding:5px!important;width:auto!important;height:auto!important}.bg-teal-gradient{background:#39cccc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#39cccc),color-stop(1,#7adddd))!important;background:-ms-linear-gradient(bottom,#39cccc,#7adddd)!important;background:-moz-linear-gradient(center bottom,#39cccc 0,#7adddd 100%)!important;background:-o-linear-gradient(#7adddd,#39cccc)!important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#3c8dbc),color-stop(1,#67a8ce))!important;background:-ms-linear-gradient(bottom,#3c8dbc,#67a8ce)!important;background:-moz-linear-gradient(center bottom,#3c8dbc 0,#67a8ce 100%)!important;background:-o-linear-gradient(#67a8ce,#3c8dbc)!important;color:#fff}.bg-blue-gradient{background:#0073b7!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#0073b7),color-stop(1,#0089db))!important;background:-ms-linear-gradient(bottom,#0073b7,#0089db)!important;background:-moz-linear-gradient(center bottom,#0073b7 0,#0089db 100%)!important;background:-o-linear-gradient(#0089db,#0073b7)!important;color:#fff}.bg-aqua-gradient{background:#00c0ef!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00c0ef),color-stop(1,#14d1ff))!important;background:-ms-linear-gradient(bottom,#00c0ef,#14d1ff)!important;background:-moz-linear-gradient(center bottom,#00c0ef 0,#14d1ff 100%)!important;background:-o-linear-gradient(#14d1ff,#00c0ef)!important;color:#fff}.bg-yellow-gradient{background:#f39c12!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#f39c12),color-stop(1,#f7bc60))!important;background:-ms-linear-gradient(bottom,#f39c12,#f7bc60)!important;background:-moz-linear-gradient(center bottom,#f39c12 0,#f7bc60 100%)!important;background:-o-linear-gradient(#f7bc60,#f39c12)!important;color:#fff}.bg-purple-gradient{background:#605ca8!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#605ca8),color-stop(1,#9491c4))!important;background:-ms-linear-gradient(bottom,#605ca8,#9491c4)!important;background:-moz-linear-gradient(center bottom,#605ca8 0,#9491c4 100%)!important;background:-o-linear-gradient(#9491c4,#605ca8)!important;color:#fff}.bg-green-gradient{background:#00a65a!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00a65a),color-stop(1,#00ca6d))!important;background:-ms-linear-gradient(bottom,#00a65a,#00ca6d)!important;background:-moz-linear-gradient(center bottom,#00a65a 0,#00ca6d 100%)!important;background:-o-linear-gradient(#00ca6d,#00a65a)!important;color:#fff}.bg-red-gradient{background:#dd4b39!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dd4b39),color-stop(1,#e47365))!important;background:-ms-linear-gradient(bottom,#dd4b39,#e47365)!important;background:-moz-linear-gradient(center bottom,#dd4b39 0,#e47365 100%)!important;background:-o-linear-gradient(#e47365,#dd4b39)!important;color:#fff}.bg-black-gradient{background:#111!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#111),color-stop(1,#2b2b2b))!important;background:-ms-linear-gradient(bottom,#111,#2b2b2b)!important;background:-moz-linear-gradient(center bottom,#111 0,#2b2b2b 100%)!important;background:-o-linear-gradient(#2b2b2b,#111)!important;color:#fff}.bg-maroon-gradient{background:#d81b60!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#d81b60),color-stop(1,#e73f7c))!important;background:-ms-linear-gradient(bottom,#d81b60,#e73f7c)!important;background:-moz-linear-gradient(center bottom,#d81b60 0,#e73f7c 100%)!important;background:-o-linear-gradient(#e73f7c,#d81b60)!important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static!important}.list-header{font-size:15px;padding:10px 4px;font-weight:700;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px 0}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:after,.user-block:before{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .comment,.user-block .description,.user-block .username{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .comment,.user-block.user-block-sm .description,.user-block.user-block-sm .username{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.box-comments .box-comment img,.img-lg,.img-md,.img-sm,.user-block.user-block-sm img{float:left}.box-comments .box-comment img,.img-sm,.user-block.user-block-sm img{width:30px!important;height:30px!important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65}.full-opacity-hover:hover{opacity:1}.chart{position:relative;overflow:hidden;width:100%}.chart canvas,.chart svg{width:100%!important}@media print{.content-header,.left-side,.main-header,.main-sidebar,.no-print{display:none!important}.content-wrapper,.main-footer,.right-side{margin-left:0!important;min-height:0!important;-webkit-transform:translate(0,0)!important;-ms-transform:translate(0,0)!important;-o-transform:translate(0,0)!important;transform:translate(0,0)!important}.fixed .content-wrapper,.fixed .right-side{padding-top:0!important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr td,.table-responsive>.table tr th{white-space:normal!important}} \ No newline at end of file diff --git a/inst/AdminLTE/_all-skins.min.css b/inst/AdminLTE/_all-skins.min.css index cfc4277d..ec314886 100644 --- a/inst/AdminLTE/_all-skins.min.css +++ b/inst/AdminLTE/_all-skins.min.css @@ -1 +1 @@ -.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav>.active>a,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:0 0}.skin-blue .left-side,.skin-blue .main-sidebar,.skin-blue .wrapper{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li.active>a,.skin-blue .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-blue .sidebar-form .btn,.skin-blue .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-blue .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-blue .sidebar-form input[type=text]:focus,.skin-blue .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}.skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav>.active>a,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:0 0}.skin-blue-light .left-side,.skin-blue-light .main-sidebar,.skin-blue-light .wrapper{background-color:#f9fafc}.skin-blue-light .content-wrapper,.skin-blue-light .main-footer{border-left:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li.active>a,.skin-blue-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .treeview-menu>li>a{color:#777}.skin-blue-light .treeview-menu>li.active>a,.skin-blue-light .treeview-menu>li>a:hover{color:#000}.skin-blue-light .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-blue-light .sidebar-form .btn,.skin-blue-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-blue-light .sidebar-form input[type=text]:focus,.skin-blue-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav>.active>a,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav>li>a:hover{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:0 0;box-shadow:none}.skin-black .left-side,.skin-black .main-sidebar,.skin-black .wrapper{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li.active>a,.skin-black .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-black .sidebar-form .btn,.skin-black .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-black .sidebar-form input[type=text]:focus,.skin-black .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222}.skin-black-light .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav>.active>a,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav>li>a:hover{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:0 0;box-shadow:none}.skin-black-light .left-side,.skin-black-light .main-sidebar,.skin-black-light .wrapper{background-color:#f9fafc}.skin-black-light .content-wrapper,.skin-black-light .main-footer{border-left:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li.active>a,.skin-black-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-black-light .sidebar-form .btn,.skin-black-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-black-light .sidebar-form input[type=text]:focus,.skin-black-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav>.active>a,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:0 0}.skin-green .left-side,.skin-green .main-sidebar,.skin-green .wrapper{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li.active>a,.skin-green .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-green .sidebar-form .btn,.skin-green .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-green .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-green .sidebar-form input[type=text]:focus,.skin-green .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}.skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav>.active>a,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:0 0}.skin-green-light .left-side,.skin-green-light .main-sidebar,.skin-green-light .wrapper{background-color:#f9fafc}.skin-green-light .content-wrapper,.skin-green-light .main-footer{border-left:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li.active>a,.skin-green-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-green-light .sidebar-form .btn,.skin-green-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-green-light .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-green-light .sidebar-form input[type=text]:focus,.skin-green-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav>.active>a,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:0 0}.skin-red .left-side,.skin-red .main-sidebar,.skin-red .wrapper{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li.active>a,.skin-red .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-red .sidebar-form .btn,.skin-red .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-red .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-red .sidebar-form input[type=text]:focus,.skin-red .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}.skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav>.active>a,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:0 0}.skin-red-light .left-side,.skin-red-light .main-sidebar,.skin-red-light .wrapper{background-color:#f9fafc}.skin-red-light .content-wrapper,.skin-red-light .main-footer{border-left:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li.active>a,.skin-red-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-red-light .sidebar-form .btn,.skin-red-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-red-light .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-red-light .sidebar-form input[type=text]:focus,.skin-red-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav>.active>a,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:0 0}.skin-yellow .left-side,.skin-yellow .main-sidebar,.skin-yellow .wrapper{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li.active>a,.skin-yellow .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-yellow .sidebar-form .btn,.skin-yellow .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-yellow .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-yellow .sidebar-form input[type=text]:focus,.skin-yellow .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}.skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav>.active>a,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:0 0}.skin-yellow-light .left-side,.skin-yellow-light .main-sidebar,.skin-yellow-light .wrapper{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li.active>a,.skin-yellow-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-yellow-light .sidebar-form .btn,.skin-yellow-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-yellow-light .sidebar-form input[type=text]:focus,.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav>.active>a,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:0 0}.skin-purple .left-side,.skin-purple .main-sidebar,.skin-purple .wrapper{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li.active>a,.skin-purple .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-purple .sidebar-form .btn,.skin-purple .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-purple .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-purple .sidebar-form input[type=text]:focus,.skin-purple .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}.skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav>.active>a,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:0 0}.skin-purple-light .left-side,.skin-purple-light .main-sidebar,.skin-purple-light .wrapper{background-color:#f9fafc}.skin-purple-light .content-wrapper,.skin-purple-light .main-footer{border-left:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li.active>a,.skin-purple-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-purple-light .sidebar-form .btn,.skin-purple-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-purple-light .sidebar-form input[type=text]{color:#666;border-radius:2px 0 0 2px}.skin-purple-light .sidebar-form input[type=text]:focus,.skin-purple-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-radius:0 2px 2px 0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file +.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav>.active>a,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:0 0}.skin-blue .left-side,.skin-blue .main-sidebar,.skin-blue .wrapper{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li.active>a,.skin-blue .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form .btn,.skin-blue .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-blue .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type=text]:focus,.skin-blue .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav>.active>a,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:0 0}.skin-blue-light .left-side,.skin-blue-light .main-sidebar,.skin-blue-light .wrapper{background-color:#f9fafc}.skin-blue-light .content-wrapper,.skin-blue-light .main-footer{border-left:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li.active>a,.skin-blue-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .treeview-menu>li>a{color:#777}.skin-blue-light .treeview-menu>li.active>a,.skin-blue-light .treeview-menu>li>a:hover{color:#000}.skin-blue-light .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form .btn,.skin-blue-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type=text]:focus,.skin-blue-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav>.active>a,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav>li>a:hover{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:0 0;box-shadow:none}.skin-black .left-side,.skin-black .main-sidebar,.skin-black .wrapper{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li.active>a,.skin-black .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form .btn,.skin-black .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type=text]:focus,.skin-black .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222}.skin-black-light .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav>.active>a,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav>li>a:hover{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:0 0;box-shadow:none}.skin-black-light .left-side,.skin-black-light .main-sidebar,.skin-black-light .wrapper{background-color:#f9fafc}.skin-black-light .content-wrapper,.skin-black-light .main-footer{border-left:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li.active>a,.skin-black-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form .btn,.skin-black-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type=text]:focus,.skin-black-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav>.active>a,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:0 0}.skin-green .left-side,.skin-green .main-sidebar,.skin-green .wrapper{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li.active>a,.skin-green .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form .btn,.skin-green .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-green .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type=text]:focus,.skin-green .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav>.active>a,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:0 0}.skin-green-light .left-side,.skin-green-light .main-sidebar,.skin-green-light .wrapper{background-color:#f9fafc}.skin-green-light .content-wrapper,.skin-green-light .main-footer{border-left:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li.active>a,.skin-green-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form .btn,.skin-green-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-green-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type=text]:focus,.skin-green-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav>.active>a,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:0 0}.skin-red .left-side,.skin-red .main-sidebar,.skin-red .wrapper{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li.active>a,.skin-red .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form .btn,.skin-red .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-red .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type=text]:focus,.skin-red .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav>.active>a,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:0 0}.skin-red-light .left-side,.skin-red-light .main-sidebar,.skin-red-light .wrapper{background-color:#f9fafc}.skin-red-light .content-wrapper,.skin-red-light .main-footer{border-left:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li.active>a,.skin-red-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form .btn,.skin-red-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-red-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type=text]:focus,.skin-red-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav>.active>a,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:0 0}.skin-yellow .left-side,.skin-yellow .main-sidebar,.skin-yellow .wrapper{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li.active>a,.skin-yellow .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form .btn,.skin-yellow .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-yellow .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type=text]:focus,.skin-yellow .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav>.active>a,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:0 0}.skin-yellow-light .left-side,.skin-yellow-light .main-sidebar,.skin-yellow-light .wrapper{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li.active>a,.skin-yellow-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form .btn,.skin-yellow-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type=text]:focus,.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav>.active>a,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:0 0}.skin-purple .left-side,.skin-purple .main-sidebar,.skin-purple .wrapper{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li.active>a,.skin-purple .sidebar-menu>li:hover>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form .btn,.skin-purple .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-purple .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type=text]:focus,.skin-purple .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav>.active>a,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav>li>a:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:0 0}.skin-purple-light .left-side,.skin-purple-light .main-sidebar,.skin-purple-light .wrapper{background-color:#f9fafc}.skin-purple-light .content-wrapper,.skin-purple-light .main-footer{border-left:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li.active>a,.skin-purple-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form .btn,.skin-purple-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-purple-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type=text]:focus,.skin-purple-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index c9b6db1d..8c0a9cec 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -1,7 +1,11 @@ -/* jshint browser:true, jquery:true, indent:2 */ -/* global Shiny */ +//--------------------------------------------------------------------- +// Source file: ../srcjs/_start.js $(function() { + +//--------------------------------------------------------------------- +// Source file: ../srcjs/tabs.js + // This function handles a special case in the AdminLTE sidebar: when there // is a sidebar-menu with items, and one of those items has sub-items, and // they are used for tab navigation. Normally, if one of the items is @@ -49,6 +53,9 @@ $(function() { ensureActivatedTab(); +//--------------------------------------------------------------------- +// Source file: ../srcjs/sidebar.js + // Optionally disable sidebar if ($("section.sidebar").data("disable")) { $("body").addClass("sidebar-collapse"); @@ -65,6 +72,11 @@ $(function() { $(this).next(".treeview-menu").trigger("shown"); }); +//--------------------------------------------------------------------- +// Source file: ../srcjs/output_binding_menu.js + + /* global Shiny */ + // menuOutputBinding // ------------------------------------------------------------------ // Based on Shiny.htmlOutputBinding, but instead of putting the result in a @@ -109,6 +121,10 @@ $(function() { Shiny.outputBindings.register(menuOutputBinding, "shinydashboard.menuOutputBinding"); +//--------------------------------------------------------------------- +// Source file: ../srcjs/input_binding_tabItem.js + + /* global Shiny */ // tabItemInputBinding // ------------------------------------------------------------------ @@ -157,5 +173,9 @@ $(function() { }); Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); +//--------------------------------------------------------------------- +// Source file: ../srcjs/_end.js }); + +//# sourceMappingURL=shinydashboard.js.map \ No newline at end of file diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map new file mode 100644 index 00000000..cd37e352 --- /dev/null +++ b/inst/shinydashboard.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n // This function handles a special case in the AdminLTE sidebar: when there\n // is a sidebar-menu with items, and one of those items has sub-items, and\n // they are used for tab navigation. Normally, if one of the items is\n // selected and then a sub-item is clicked, both the item and sub-item will\n // retain the \"active\" class, so they will both be highlighted. This happens\n // because they're not designed to be used together for tab panels. This\n // code ensures that only one item will have the \"active\" class.\n var deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n };\n\n $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n // When document is ready, if there is a sidebar menu with no activated tabs,\n // activate the one specified by `data-start-selected`, or if that's not\n // present, the first one.\n var ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n };\n\n ensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n // Optionally disable sidebar\n if ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n }\n\n // Trigger the resize event when the sidebar is collapsed/expanded\n // (this allows images to be responsive and resize themselves)\n $(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n });\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n /* global Shiny */\n\n // menuOutputBinding\n // ------------------------------------------------------------------\n // Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n // wrapper div, it replaces the origin DOM element with the new DOM elements,\n // copying over the ID and class.\n var menuOutputBinding = new Shiny.OutputBinding();\n $.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n }\n });\n Shiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n /* global Shiny */\n\n // tabItemInputBinding\n // ------------------------------------------------------------------\n // Based on Shiny.tabItemInputBinding, but customized for tabItems in\n // shinydashboard, which have a slightly different structure.\n var tabItemInputBinding = new Shiny.InputBinding();\n $.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n });\n Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file diff --git a/srcjs/_end.js b/srcjs/_end.js new file mode 100644 index 00000000..27b8217c --- /dev/null +++ b/srcjs/_end.js @@ -0,0 +1 @@ +}); diff --git a/srcjs/_start.js b/srcjs/_start.js new file mode 100644 index 00000000..46be8e14 --- /dev/null +++ b/srcjs/_start.js @@ -0,0 +1 @@ +$(function() { diff --git a/srcjs/input_binding_tabItem.js b/srcjs/input_binding_tabItem.js new file mode 100644 index 00000000..bb8dd4ff --- /dev/null +++ b/srcjs/input_binding_tabItem.js @@ -0,0 +1,48 @@ + /* global Shiny */ + + // tabItemInputBinding + // ------------------------------------------------------------------ + // Based on Shiny.tabItemInputBinding, but customized for tabItems in + // shinydashboard, which have a slightly different structure. + var tabItemInputBinding = new Shiny.InputBinding(); + $.extend(tabItemInputBinding, { + find: function(scope) { + return $(scope).find('ul.sidebar-menu'); + }, + getValue: function(el) { + var anchor = $(el).find('li:not(.treeview).active').children('a'); + if (anchor.length === 1) + return this._getTabName(anchor); + + return null; + }, + setValue: function(el, value) { + var self = this; + var anchors = $(el).find('li:not(.treeview)').children('a'); + anchors.each(function() { + if (self._getTabName($(this)) === value) { + $(this).tab('show'); + return false; + } + }); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + // This event is triggered by deactivateOtherTabs, which is triggered by + // shown. The deactivation of other tabs must occur before Shiny gets the + // input value. + $(el).on('change.tabItemInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.tabItemInputBinding'); + }, + _getTabName: function(anchor) { + return anchor.attr('data-value'); + } + }); + Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); diff --git a/srcjs/output_binding_menu.js b/srcjs/output_binding_menu.js new file mode 100644 index 00000000..c11ae612 --- /dev/null +++ b/srcjs/output_binding_menu.js @@ -0,0 +1,45 @@ + /* global Shiny */ + + // menuOutputBinding + // ------------------------------------------------------------------ + // Based on Shiny.htmlOutputBinding, but instead of putting the result in a + // wrapper div, it replaces the origin DOM element with the new DOM elements, + // copying over the ID and class. + var menuOutputBinding = new Shiny.OutputBinding(); + $.extend(menuOutputBinding, { + find: function(scope) { + return $(scope).find('.shinydashboard-menu-output'); + }, + onValueError: function(el, err) { + Shiny.unbindAll(el); + this.renderError(el, err); + }, + renderValue: function(el, data) { + Shiny.unbindAll(el); + + var html; + var dependencies = []; + if (data === null) { + return; + } else if (typeof(data) === 'string') { + html = data; + } else if (typeof(data) === 'object') { + html = data.html; + dependencies = data.deps; + } + + var $html = $($.parseHTML(html)); + + // Convert the inner contents to HTML, and pass to renderHtml + Shiny.renderHtml($html.html(), el, dependencies); + + // Extract class of wrapper, and add them to the wrapper element + el.className = 'shinydashboard-menu-output shiny-bound-output ' + + $html.attr('class'); + + Shiny.initializeInputs(el); + Shiny.bindAll(el); + } + }); + Shiny.outputBindings.register(menuOutputBinding, + "shinydashboard.menuOutputBinding"); diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js new file mode 100644 index 00000000..fc3c72ea --- /dev/null +++ b/srcjs/sidebar.js @@ -0,0 +1,15 @@ + // Optionally disable sidebar + if ($("section.sidebar").data("disable")) { + $("body").addClass("sidebar-collapse"); + $(".navbar > .sidebar-toggle").hide(); + } + + // Trigger the resize event when the sidebar is collapsed/expanded + // (this allows images to be responsive and resize themselves) + $(document).on("click", ".sidebar-toggle", function() { + $(window).trigger("resize"); + }); + + $(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); + }); diff --git a/srcjs/tabs.js b/srcjs/tabs.js new file mode 100644 index 00000000..154cd622 --- /dev/null +++ b/srcjs/tabs.js @@ -0,0 +1,46 @@ + // This function handles a special case in the AdminLTE sidebar: when there + // is a sidebar-menu with items, and one of those items has sub-items, and + // they are used for tab navigation. Normally, if one of the items is + // selected and then a sub-item is clicked, both the item and sub-item will + // retain the "active" class, so they will both be highlighted. This happens + // because they're not designed to be used together for tab panels. This + // code ensures that only one item will have the "active" class. + var deactivateOtherTabs = function() { + var $this = $(this); + var $sidebarMenu = $this.closest("ul.sidebar-menu"); + + // Find all tab links under sidebar-menu + var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); + + // If any other items are active, deactivate them + $tablinks.not($this).parent("li").removeClass("active"); + + // Trigger event for the tabItemInputBinding + $sidebarMenu.trigger('change.tabItemInputBinding'); + }; + + $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', + deactivateOtherTabs); + + + // When document is ready, if there is a sidebar menu with no activated tabs, + // activate the one specified by `data-start-selected`, or if that's not + // present, the first one. + var ensureActivatedTab = function() { + var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); + + // If there's a `data-start-selected` attribute and we can find a tab with + // that name, activate it. + var $startTab = $tablinks.filter("[data-start-selected='1']"); + if ($startTab.length !== 0) { + $startTab.tab("show"); + return; + } + + // If we got this far, just activate the first tab. + if (! $tablinks.parent("li").hasClass("active") ) { + $tablinks.first().tab("show"); + } + }; + + ensureActivatedTab(); diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index 663ddda2..ffc29af3 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -1,27 +1,51 @@ module.exports = function(grunt) { - var srcdir = '../inst/'; + var srcdirjs = '../srcjs/'; + var srcdircss = '../inst/'; + var destdirjs = '../inst/'; + var destdircss = '../inst/'; grunt.initConfig({ pkg: pkgInfo(), + concat: { + options: { + process: function(src, filepath) { + return '//---------------------------------------------------------------------\n' + + '// Source file: ' + filepath + '\n\n' + src; + }, + sourceMap: true + }, + shinydashboard: { + src: [ + srcdirjs + '_start.js', + srcdirjs + 'tabs.js', + srcdirjs + 'sidebar.js', + srcdirjs + 'output_binding_menu.js', + srcdirjs + 'input_binding_tabItem.js', + srcdirjs + '_end.js' + ], + dest: destdirjs + 'shinydashboard.js' + } + }, + uglify: { adminlte: { options: { sourceMap: true }, - src: srcdir + '/AdminLTE/app.js', - dest: srcdir + '/AdminLTE/app.min.js' + src: destdirjs + '/AdminLTE/app.js', + dest: destdirjs + '/AdminLTE/app.min.js' } }, cssmin: { adminlte: { - src: srcdir + '/AdminLTE/AdminLTE.css', - dest: srcdir + '/AdminLTE/AdminLTE.min.css' + src: srcdircss + '/AdminLTE/AdminLTE.css', + dest: srcdircss + '/AdminLTE/AdminLTE.min.css' }, adminlte_themes: { - src: srcdir + '/AdminLTE/_all-skins.css', - dest: srcdir + '/AdminLTE/_all-skins.min.css' + src: srcdircss + '/AdminLTE/_all-skins.css', + dest: srcdircss + '/AdminLTE/_all-skins.min.css' } }, @@ -30,7 +54,7 @@ module.exports = function(grunt) { force: true // Don't abort if there are JSHint warnings }, shinydashboard: { - src: srcdir + '/shinydashboard.js', + src: destdirjs + '/shinydashboard.js', } }, @@ -51,10 +75,11 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-newer'); - grunt.registerTask('default', ['newer:uglify', 'newer:cssmin', 'newer:jshint']); + grunt.registerTask('default', ['newer:concat', 'newer:uglify', 'newer:cssmin', 'newer:jshint']); diff --git a/tools/package.json b/tools/package.json index 6729673f..1bf5a535 100644 --- a/tools/package.json +++ b/tools/package.json @@ -1,6 +1,7 @@ { "devDependencies": { "grunt": "^1.0.1", + "grunt-contrib-concat": "^1.0.1", "grunt-contrib-cssmin": "^2.0.0", "grunt-contrib-jshint": "^1.1.0", "grunt-contrib-uglify": "^2.1.0", diff --git a/tools/updateAdminLTE.R b/tools/updateAdminLTE.R index e26b5ca2..92dcf5f1 100755 --- a/tools/updateAdminLTE.R +++ b/tools/updateAdminLTE.R @@ -23,6 +23,6 @@ srcdir <- file.path(dirname(thisFile()), "../../AdminLTE/dist") destdir <- file.path(dirname(thisFile()), "../inst/AdminLTE") -file.copy(file.path(srcdir, "/js/app.js"), destdir, overwrite = TRUE) +file.copy(file.path(srcdir, "/js/app.js"), "../srcjs/AdminLTE", overwrite = TRUE) file.copy(file.path(srcdir, "/css/AdminLTE.css"), destdir, overwrite = TRUE) file.copy(file.path(srcdir, "/css/skins/_all-skins.css"), destdir, overwrite = TRUE) diff --git a/tools/yarn.lock b/tools/yarn.lock index 5aaa8e49..7b0cd980 100644 --- a/tools/yarn.lock +++ b/tools/yarn.lock @@ -380,6 +380,13 @@ grunt-cli@~1.2.0: nopt "~3.0.6" resolve "~1.1.0" +grunt-contrib-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz#61509863084e871d7e86de48c015259ed97745bd" + dependencies: + chalk "^1.0.0" + source-map "^0.5.3" + grunt-contrib-cssmin@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.0.0.tgz#3bc8e8c8865c819159cc2779f82fcf833473345b" @@ -907,7 +914,7 @@ signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -source-map@0.5.x, source-map@~0.5.1: +source-map@0.5.x, source-map@^0.5.3, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" From 0ea92e1585a93c9f17154234e9364eb12d7087d2 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 05:05:53 +0000 Subject: [PATCH 03/16] more updates to Gruntfile and structure --- inst/AdminLTE/app.js | 5 + inst/AdminLTE/app.js.map | 1 + inst/AdminLTE/app.min.js.map | 2 +- inst/shinydashboard.js | 292 +++---- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 4 + inst/shinydashboard.min.js.map | 1 + {inst => srcjs}/AdminLTE/README-shiny-mods.md | 0 srcjs/AdminLTE/app.js | 782 ++++++++++++++++++ srcjs/input_binding_tabItem.js | 92 +-- srcjs/output_binding_menu.js | 78 +- srcjs/sidebar.js | 26 +- srcjs/tabs.js | 92 +-- tools/Gruntfile.js | 89 +- tools/package.json | 1 + tools/yarn.lock | 617 +++++++++++++- 16 files changed, 1759 insertions(+), 325 deletions(-) mode change 100755 => 100644 inst/AdminLTE/app.js create mode 100644 inst/AdminLTE/app.js.map create mode 100644 inst/shinydashboard.min.js create mode 100644 inst/shinydashboard.min.js.map rename {inst => srcjs}/AdminLTE/README-shiny-mods.md (100%) create mode 100755 srcjs/AdminLTE/app.js diff --git a/inst/AdminLTE/app.js b/inst/AdminLTE/app.js old mode 100755 new mode 100644 index 90f82bb2..3794e378 --- a/inst/AdminLTE/app.js +++ b/inst/AdminLTE/app.js @@ -1,3 +1,6 @@ +//--------------------------------------------------------------------- +// Source file: ../srcjs/AdminLTE/app.js + /*! AdminLTE app.js * ================ * Main JS application file for AdminLTE v2. This file @@ -780,3 +783,5 @@ function _init() { }); }; }(jQuery)); + +//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/inst/AdminLTE/app.js.map b/inst/AdminLTE/app.js.map new file mode 100644 index 00000000..39a26e87 --- /dev/null +++ b/inst/AdminLTE/app.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../srcjs/AdminLTE/app.js"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxC;AACA,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnB,CAAC,CAAC,CAAC,gBAAgB;AACnB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;AACtD,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AAC3D,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACrD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;AAC3C,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;AACzC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACpD,CAAC,EAAE;AACH;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAChD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACpC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG;AAC9C,CAAC;AACD;AACA,EAAE,CAAC,QAAQ;AACX,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACf,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;AACrE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AACxE,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACxE,CAAC,CAAC,cAAc,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AACpE,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACzC,CAAC,EAAE;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG;AAChB;AACA,EAAE,CAAC,oBAAoB;AACvB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC,oBAAoB;AACvB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc;AACnD,CAAC,EAAE;AACH,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK;AAClC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM;AACnD,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC/B,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC;AAC7B,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG;AACjE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC3D,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;AACpF,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC;AACpF,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/B,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC;AACtB,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;AAC5C,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI;AACrD,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC;AACxB,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;AACvF,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC1D,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC3E,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;AACrB,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC;AAC9B,EAAE,EAAE,UAAU,CAAC,MAAM;AACrB,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC;AACzB,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO;AACxB,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC;AACzB,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC/C,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;AAClD,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG;AACtD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC9D,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5B,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC;AACzB,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AAC9B,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC;AAC9B,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;AAC3B,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC;AAC7B,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;AACtD,IAAI,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI;AACzD,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ;AAC1B,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE;AACjC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;AAC/B,IAAI,KAAK,CAAC,CAAC,IAAI;AACf,EAAE,EAAE;AACJ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AACzC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO;AACjD,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC;AACxB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;AAC7B,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACrB,IAAI,cAAc,CAAC,CAAC,CAAC;AACrB,MAAM,EAAE,QAAQ,CAAC,IAAI;AACrB,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE;AAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;AACjB,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACtB,MAAM,EAAE,MAAM,CAAC,IAAI;AACnB,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,EAAE;AACN,IAAI,kBAAkB,CAAC,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;AAC9B,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI;AACvC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;AAChC,MAAM,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG;AAC1C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;AAC9B,EAAE,UAAU,CAAC,CAAC,CAAC;AACf,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AACnC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC;AACjB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AACzD,IAAI,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AAC7D,EAAE,EAAE;AACJ,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC/D,EAAE,MAAM,CAAC,CAAC,CAAC;AACX,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE;AACzB,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AACnB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE;AACrB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE;AACpB,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE;AACtB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE;AACpB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE;AACrB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE;AACpB,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE;AACtB,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE;AACvB,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE;AACtB,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE;AACtB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE;AACrB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;AACnB,EAAE,EAAE;AACJ,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClD,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1D,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClB,EAAE,WAAW,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AACZ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AACZ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AACZ,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,EAAE,CAAC;AACH,EAAE;AACF;AACA,EAAE,CAAC,kBAAkB;AACrB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,kBAAkB;AACrB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC5C,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AACjB,CAAC,EAAE;AACH,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACf,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;AACf;AACA,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;AAC/B,EAAE,GAAG,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC,UAAU,GAAG;AAC3C;AACA,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;AAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;AAClB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;AACzB,MAAM,eAAe,EAAE;AACvB,EAAE,CAAC;AACH;AACA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;AAC1B,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC7B;AACA,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACrB,EAAE,KAAK,GAAG;AACV;AACA,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK;AAC7B,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG;AAC/B;AACA,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;AACrC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAChC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,OAAO,GAAG;AAChC,EAAE,CAAC;AACH;AACA,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;AAC1B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC/B,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG;AACzC,EAAE,CAAC;AACH;AACA,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;AACrC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACxE,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,UAAU,EAAE;AACnC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACjC,MAAM,aAAa,CAAC,CAAC,KAAK,CAAC;AAC3B,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB;AACvC,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI;AAC5B,EAAE,CAAC;AACH;AACA,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,EAAE;AAC1D,EAAE,CAAC;AACH;AACA,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO;AAC9B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC3B,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE;AACvB,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACpC,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,IAAI,GAAG;AACP,EAAE,CAAC;AACH;AACA,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;AACvB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1B,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG;AACpC,EAAE,CAAC;AACH;AACA,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;AACvB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7D,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpC,EAAE,CAAC;AACH;AACA,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AAC/B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7E,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG;AACxD,MAAM,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG;AACnD,IAAI,GAAG;AACP,EAAE,CAAC;AACH;AACA,EAAE,EAAE;AACJ,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM;AAC7B,GAAG,CAAC,CAAC,wBAAwB;AAC7B,GAAG,EAAE;AACL,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACxB,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,MAAM,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,EAAE,MAAM,GAAG;AACtD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG;AACjC,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,IAAI,GAAG;AACP;AACA,EAAE,GAAG;AACL,GAAG;AACH;AACA,EAAE,CAAC,kCAAkC;AACrC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC,kCAAkC;AACrC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;AAChD,CAAC,EAAE;AACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AAClB,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;AACf,EAAE,EAAE,CAAC,MAAM;AACX,GAAG,CAAC,CAAC,MAAM;AACX,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACtD,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACjB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;AACnC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;AAC1C,GAAG,EAAE;AACL,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,KAAK,CAAC,GAAG,GAAG;AAClB,MAAM,KAAK,CAAC,UAAU,GAAG;AACzB,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG;AACtD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChD,QAAQ,KAAK,CAAC,GAAG,GAAG;AACpB,QAAQ,KAAK,CAAC,UAAU,GAAG;AAC3B,MAAM,GAAG;AACT,IAAI,EAAE;AACN,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;AAC7D,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG;AAC9D,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AAChD,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;AAChE,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG;AAC7C,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAClE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE;AAC5F,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,GAAG,CAAC,YAAY,CAAC;AACzB,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9C,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE;AACpF,UAAU,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7C,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAChB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE;AAC/E,UAAU,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;AACxC,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;AAC5C,QAAQ,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE;AAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACpD,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACrD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,IAAI;AAC1F,QAAQ,CAAC;AACT;AACA,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK;AACnD,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;AACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACpD,UAAU,IAAI,OAAO,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG;AACnE,QAAQ,CAAC;AACT,QAAQ,MAAM,CAAC;AACf,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3E,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI;AACxF,MAAM,CAAC;AACP,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC1C,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACpD,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AAChC,UAAU,IAAI,OAAO,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG;AACnE,UAAU,EAAE,GAAG,CAAC,UAAU;AAC1B,UAAU,IAAI,OAAO,GAAG,UAAU,EAAE;AACpC,YAAY,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AAC7E,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACrC,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,CAAC,QAAQ,EAAE;AACf,GAAG,CAAC,CAAC,UAAU;AACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACrD,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;AACnB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI;AAC7D,GAAG,EAAE;AACL,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK;AAC5B,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;AACvD;AACA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;AAC7B,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B;AACA,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAClC,QAAQ,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,UAAU,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvD,YAAY,GAAG,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC,QAAQ,GAAG;AACnF,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG;AACjF,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACpD,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;AACnD,YAAY,GAAG,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG;AAChH,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,QAAQ,CAAC,QAAQ,GAAG;AAC5E,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO;AAChF,QAAQ,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9F,UAAU,GAAG,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,IAAI,GAAG;AAChD,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC/C,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB;AACjD,QAAQ,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE;AACvC,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK;AAC/B,MAAM,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5C,QAAQ,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE;AAC9C,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;AACnD,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/C,UAAU,KAAK,CAAC,MAAM,GAAG;AACzB,QAAQ,CAAC;AACT,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,QAAQ,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE;AAC9C,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;AAC5D,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/C,UAAU,KAAK,CAAC,QAAQ,GAAG;AAC3B,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,EAAE;AACN,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,GAAG,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG;AACtF,IAAI,EAAE;AACN,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5D,QAAQ,GAAG,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG;AACxF,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,CAAC,IAAI,EAAE;AACX,GAAG,CAAC,CAAC,MAAM;AACX,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;AAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACpB,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;AACnB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,OAAO,EAAE;AACxC,GAAG,EAAE;AACL,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;AAC3D,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5C,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO;AACnD,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AAC5B,QAAQ,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AACxC;AACA,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO;AAC5D,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;AAChI,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;AAC1B,UAAU,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,YAAY,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,GAAG;AAClD,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACxF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG;AACjC,UAAU,GAAG;AACb,UAAU,YAAY,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,GAAG;AAC1D,QAAQ,CAAC;AACT,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AACpC,QAAQ,IAAI,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;AACzF,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;AAC/B,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG;AACnD,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;AAClD,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE;AACrE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AACtD,UAAU,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,GAAG;AACtC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7B,UAAU,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG;AAC7C;AACA,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAC5D,UAAU,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9D,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACnD,YAAY,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG;AAC/C,YAAY,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,WAAW,EAAE,MAAM,GAAG;AAC3D,YAAY,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG;AACzC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACxF,YAAY,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG;AAC/B,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;AACtE,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AAChD,UAAU,CAAC,CAAC,cAAc,GAAG;AAC7B,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,CAAC,cAAc;AACnB,GAAG,CAAC,CAAC,cAAc;AACnB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AAC5C,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACjB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvD,GAAG,EAAE;AACL,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM;AAC5B,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM;AACtB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,MAAM,CAAC,OAAO;AACtB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC;AACvD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;AACvB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;AAClC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;AACzB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE;AACvC;AACA,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AACjC,MAAM,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACpC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;AACrD,UAAU,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3D,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;AAC5B,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACvC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAChB,UAAU,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACxC,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ;AACnE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG;AACxC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;AACrB;AACA,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;AACtE,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;AACxC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE;AACpC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AACnF,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7E,UAAU,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;AACxC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AAC9B,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;AAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClB,QAAQ,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG;AACjD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO;AACvE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AAC/B,QAAQ,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG;AACnD,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AAC/B,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClB,QAAQ,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG;AACpD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,GAAG,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG;AACtD,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/C,QAAQ,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG;AAC5C,QAAQ,OAAO,CAAC,MAAM,KAAK,OAAO,GAAG,MAAM,IAAI;AAC/C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AACpC,UAAU,MAAM,CAAC;AACjB,QAAQ,CAAC;AACT,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAQ,GAAG;AACX,QAAQ,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,OAAO,CAAC,GAAG,EAAE;AACrB,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE;AAC9B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;AAC1B,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,MAAM,OAAO,CAAC,GAAG,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE;AAC5B,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG;AAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;AAC3B,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;AAChC,MAAM,GAAG;AACT,IAAI,EAAE;AACN,IAAI,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI;AAC7E,IAAI,CAAC;AACL,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,CAAC,SAAS;AACd,GAAG,CAAC,CAAC,SAAS;AACd,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG;AACnD,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACpC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACjB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC3C,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;AACtE,GAAG,EAAE;AACL,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AACtE,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC;AAC9D,IAAI,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;AACtD,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AAC1D,MAAM,CAAC;AACP,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;AAC1C,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG;AAChC,MAAM,GAAG;AACT;AACA,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;AACxC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG;AAC9B,MAAM,GAAG;AACT,IAAI,EAAE;AACN,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AAC3B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG;AAChD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AACpC,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG;AACzG,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;AAC3C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AACjC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE;AAClC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC5C,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AACtC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;AAC1B,QAAQ,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,UAAU,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,GAAG;AACxC,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG;AAC5C,QAAQ,GAAG;AACX,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AACjC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE;AAClC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC1C;AACA,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG;AACxE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;AAC/E,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG;AAC9E,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AAC5E,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;AAC5E,QAAQ,EAAE,CAAC,SAAS,CAAC;AACrB,QAAQ,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG;AACzC;AACA,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;AAC1B,QAAQ,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,UAAU,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,GAAG;AAC3C,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AAC3B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG;AAChD,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,CAAC;AACD;AACA,EAAE,CAAC,kBAAkB;AACrB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,kBAAkB;AACrB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,CAAC,EAAE;AACH;AACA,EAAE;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACrB,CAAC,CAAC,CAAC,kBAAkB;AACrB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AAC9E,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE;AACjD,CAAC,EAAE;AACH,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACf;AACA,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;AACf;AACA,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO;AACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC/B,MAAM,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;AAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpD,MAAM,MAAM,CAAC,CAAC,GAAG;AACjB,MAAM,EAAE,SAAS;AACjB,MAAM,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,QAAQ,MAAM,CAAC,GAAG,CAAC;AACnB,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO;AAClD,MAAM,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,MAAM,CAAC,GAAG,CAAC;AACnB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACzC;AACA,IAAI,EAAE,CAAC,OAAO,EAAE;AAChB;AACA,IAAI,EAAE,GAAG,CAAC,OAAO;AACjB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AAC5F;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS;AAChC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7B,UAAU,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK;AAC7E,QAAQ,CAAC;AACT,QAAQ,MAAM,CAAC;AACf,MAAM,CAAC;AACP,MAAM,EAAE,GAAG,CAAC,GAAG;AACf,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACxB,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG;AACpD;AACA,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK;AACxB,MAAM,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;AAC7B,QAAQ,KAAK,CAAC,GAAG,EAAE;AACnB;AACA,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;AAC3B,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,UAAU,IAAI,CAAC,GAAG,EAAE;AACpB,QAAQ,GAAG;AACX,MAAM,GAAG;AACT,IAAI,GAAG;AACP;AACA,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AACnC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;AAC1B;AACA,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE;AACrC,IAAI,CAAC;AACL;AACA,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AACtC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG;AACjC;AACA,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;AACpC,IAAI,CAAC;AACL;AACA,EAAE,EAAE;AACJ;AACA,GAAG,MAAM,EAAE;AACX;AACA,EAAE;AACF,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ;AACxB,CAAC,CAAC,CAAC,uBAAuB;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ;AACnF,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAChF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,WAAW,GAAG;AACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,GAAG;AACvC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,GAAG;AACvC,CAAC,EAAE;AACH,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACf;AACA,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;AACf;AACA,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxC,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;AAClE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1C,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;AAChE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;AACxC,EAAE,EAAE;AACJ;AACA,GAAG,MAAM,EAAE;AACX;AACA,EAAE;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;AAC1B,CAAC,CAAC,CAAC,uBAAuB;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AACrE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE;AAChD,CAAC,EAAE;AACH,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACf;AACA,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;AACf;AACA,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO;AACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AACtC,MAAM,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,QAAQ,MAAM,CAAC,GAAG,CAAC;AACnB,MAAM,EAAE;AACR,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK;AACxC,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,QAAQ,MAAM,CAAC,GAAG,CAAC;AACnB,MAAM,CAAC;AACP,IAAI,EAAE,CAAC,OAAO,EAAE;AAChB;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC;AACA,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9C,QAAQ,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG;AAClD,UAAU,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG;AAClC,UAAU,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;AACrC,QAAQ,GAAG;AACX;AACA,QAAQ,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG;AAClD,UAAU,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG;AAClC,UAAU,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;AACvC,QAAQ,GAAG;AACX,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG;AAClD,UAAU,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG;AAClC,UAAU,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC;AAC/C,YAAY,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;AACvC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;AACzC,UAAU,CAAC;AACX,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,MAAM,GAAG","file":"app.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/AdminLTE/app.js\n\n/*! AdminLTE app.js\n * ================\n * Main JS application file for AdminLTE v2. This file\n * should be included in all pages. It controls some layout\n * options and implements exclusive AdminLTE plugins.\n *\n * @Author Almsaeed Studio\n * @Support \n * @Email \n * @version 2.3.11\n * @license MIT \n */\n\n//Make sure jQuery has been loaded before app.js\nif (typeof jQuery === \"undefined\") {\n throw new Error(\"AdminLTE requires jQuery\");\n}\n\n/* AdminLTE\n *\n * @type Object\n * @description $.AdminLTE is the main object for the template's app.\n * It's used for implementing functions and options related\n * to the template. Keeping everything wrapped in an object\n * prevents conflict with other plugins and is a better\n * way to organize our code.\n */\n$.AdminLTE = {};\n\n/* --------------------\n * - AdminLTE Options -\n * --------------------\n * Modify these options to suit your implementation\n */\n$.AdminLTE.options = {\n //Add slimscroll to navbar menus\n //This requires you to load the slimscroll plugin\n //in every page before app.js\n navbarMenuSlimscroll: true,\n navbarMenuSlimscrollWidth: \"3px\", //The width of the scroll bar\n navbarMenuHeight: \"200px\", //The height of the inner menu\n //General animation speed for JS animated elements such as box collapse/expand and\n //sidebar treeview slide up/down. This options accepts an integer as milliseconds,\n //'fast', 'normal', or 'slow'\n animationSpeed: 500,\n //Sidebar push menu toggle button selector\n sidebarToggleSelector: \"[data-toggle='offcanvas']\",\n //Activate sidebar push menu\n sidebarPushMenu: true,\n //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)\n sidebarSlimScroll: true,\n //Enable sidebar expand on hover effect for sidebar mini\n //This option is forced to true if both the fixed layout and sidebar mini\n //are used together\n sidebarExpandOnHover: false,\n //BoxRefresh Plugin\n enableBoxRefresh: true,\n //Bootstrap.js tooltip\n enableBSToppltip: true,\n BSTooltipSelector: \"[data-toggle='tooltip']\",\n //Enable Fast Click. Fastclick.js creates a more\n //native touch experience with touch devices. If you\n //choose to enable the plugin, make sure you load the script\n //before AdminLTE's app.js\n enableFastclick: false,\n //Control Sidebar Tree views\n enableControlTreeView: true,\n //Control Sidebar Options\n enableControlSidebar: true,\n controlSidebarOptions: {\n //Which button should trigger the open/close event\n toggleBtnSelector: \"[data-toggle='control-sidebar']\",\n //The sidebar selector\n selector: \".control-sidebar\",\n //Enable slide over content\n slide: true\n },\n //Box Widget Plugin. Enable this plugin\n //to allow boxes to be collapsed and/or removed\n enableBoxWidget: true,\n //Box Widget plugin options\n boxWidgetOptions: {\n boxWidgetIcons: {\n //Collapse icon\n collapse: 'fa-minus',\n //Open icon\n open: 'fa-plus',\n //Remove icon\n remove: 'fa-times'\n },\n boxWidgetSelectors: {\n //Remove button selector\n remove: '[data-widget=\"remove\"]',\n //Collapse button selector\n collapse: '[data-widget=\"collapse\"]'\n }\n },\n //Direct Chat plugin options\n directChat: {\n //Enable direct chat by default\n enable: true,\n //The button to open and close the chat contacts pane\n contactToggleSelector: '[data-widget=\"chat-pane-toggle\"]'\n },\n //Define the set of colors to use globally around the website\n colors: {\n lightBlue: \"#3c8dbc\",\n red: \"#f56954\",\n green: \"#00a65a\",\n aqua: \"#00c0ef\",\n yellow: \"#f39c12\",\n blue: \"#0073b7\",\n navy: \"#001F3F\",\n teal: \"#39CCCC\",\n olive: \"#3D9970\",\n lime: \"#01FF70\",\n orange: \"#FF851B\",\n fuchsia: \"#F012BE\",\n purple: \"#8E24AA\",\n maroon: \"#D81B60\",\n black: \"#222222\",\n gray: \"#d2d6de\"\n },\n //The standard screen sizes that bootstrap uses.\n //If you change these in the variables.less file, change\n //them here too.\n screenSizes: {\n xs: 480,\n sm: 768,\n md: 992,\n lg: 1200\n }\n};\n\n/* ------------------\n * - Implementation -\n * ------------------\n * The next block of code implements AdminLTE's\n * functions and plugins as specified by the\n * options above.\n */\n$(function () {\n \"use strict\";\n\n //Fix for IE page transitions\n $(\"body\").removeClass(\"hold-transition\");\n\n //Extend options if external options exist\n if (typeof AdminLTEOptions !== \"undefined\") {\n $.extend(true,\n $.AdminLTE.options,\n AdminLTEOptions);\n }\n\n //Easy access to options\n var o = $.AdminLTE.options;\n\n //Set up the object\n _init();\n\n //Activate the layout maker\n $.AdminLTE.layout.activate();\n\n //Enable sidebar tree view controls\n if (o.enableControlTreeView) {\n $.AdminLTE.tree('.sidebar');\n }\n\n //Enable control sidebar\n if (o.enableControlSidebar) {\n $.AdminLTE.controlSidebar.activate();\n }\n\n //Add slimscroll to navbar dropdown\n if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {\n $(\".navbar .menu\").slimscroll({\n height: o.navbarMenuHeight,\n alwaysVisible: false,\n size: o.navbarMenuSlimscrollWidth\n }).css(\"width\", \"100%\");\n }\n\n //Activate sidebar push menu\n if (o.sidebarPushMenu) {\n $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);\n }\n\n //Activate Bootstrap tooltip\n if (o.enableBSToppltip) {\n $('body').tooltip({\n selector: o.BSTooltipSelector,\n container: 'body'\n });\n }\n\n //Activate box widget\n if (o.enableBoxWidget) {\n $.AdminLTE.boxWidget.activate();\n }\n\n //Activate fast click\n if (o.enableFastclick && typeof FastClick != 'undefined') {\n FastClick.attach(document.body);\n }\n\n //Activate direct chat widget\n if (o.directChat.enable) {\n $(document).on('click', o.directChat.contactToggleSelector, function () {\n var box = $(this).parents('.direct-chat').first();\n box.toggleClass('direct-chat-contacts-open');\n });\n }\n\n /*\n * INITIALIZE BUTTON TOGGLE\n * ------------------------\n */\n $('.btn-group[data-toggle=\"btn-toggle\"]').each(function () {\n var group = $(this);\n $(this).find(\".btn\").on('click', function (e) {\n group.find(\".btn.active\").removeClass(\"active\");\n $(this).addClass(\"active\");\n e.preventDefault();\n });\n\n });\n});\n\n/* ----------------------------------\n * - Initialize the AdminLTE Object -\n * ----------------------------------\n * All AdminLTE functions are implemented below.\n */\nfunction _init() {\n 'use strict';\n /* Layout\n * ======\n * Fixes the layout height in case min-height fails.\n *\n * @type Object\n * @usage $.AdminLTE.layout.activate()\n * $.AdminLTE.layout.fix()\n * $.AdminLTE.layout.fixSidebar()\n */\n $.AdminLTE.layout = {\n activate: function () {\n var _this = this;\n _this.fix();\n _this.fixSidebar();\n $('body, html, .wrapper').css('height', 'auto');\n $(window, \".wrapper\").resize(function () {\n _this.fix();\n _this.fixSidebar();\n });\n },\n fix: function () {\n // Remove overflow from .wrapper if layout-boxed exists\n $(\".layout-boxed > .wrapper\").css('overflow', 'hidden');\n //Get window height and the wrapper height\n var footer_height = $('.main-footer').outerHeight() || 0;\n var neg = $('.main-header').outerHeight() + footer_height;\n var window_height = $(window).height();\n var sidebar_height = $(\".sidebar\").height() || 0;\n //Set the min-height of the content and sidebar based on the\n //the height of the document.\n if ($(\"body\").hasClass(\"fixed\")) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - footer_height);\n } else {\n var postSetWidth;\n if (window_height >= sidebar_height) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - neg);\n postSetWidth = window_height - neg;\n } else {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar_height);\n postSetWidth = sidebar_height;\n }\n\n //Fix for the control sidebar height\n var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);\n if (typeof controlSidebar !== \"undefined\") {\n if (controlSidebar.height() > postSetWidth)\n $(\".content-wrapper, .right-side\").css('min-height', controlSidebar.height());\n }\n\n }\n },\n fixSidebar: function () {\n //Make sure the body tag has the .fixed class\n if (!$(\"body\").hasClass(\"fixed\")) {\n if (typeof $.fn.slimScroll != 'undefined') {\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n }\n return;\n } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {\n window.console.error(\"Error: the fixed layout requires the slimscroll plugin!\");\n }\n //Enable slimscroll for fixed layout\n if ($.AdminLTE.options.sidebarSlimScroll) {\n if (typeof $.fn.slimScroll != 'undefined') {\n //Destroy if it exists\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n //Add slimscroll\n $(\".sidebar\").slimScroll({\n height: ($(window).height() - $(\".main-header\").height()) + \"px\",\n color: \"rgba(0,0,0,0.2)\",\n size: \"3px\"\n });\n }\n }\n }\n };\n\n /* PushMenu()\n * ==========\n * Adds the push menu functionality to the sidebar.\n *\n * @type Function\n * @usage: $.AdminLTE.pushMenu(\"[data-toggle='offcanvas']\")\n */\n $.AdminLTE.pushMenu = {\n activate: function (toggleBtn) {\n //Get the screen sizes\n var screenSizes = $.AdminLTE.options.screenSizes;\n\n //Enable sidebar toggle\n $(document).on('click', toggleBtn, function (e) {\n e.preventDefault();\n\n //Enable sidebar push menu\n if ($(window).width() > (screenSizes.sm - 1)) {\n if ($(\"body\").hasClass('sidebar-collapse')) {\n $(\"body\").removeClass('sidebar-collapse').trigger('expanded.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-collapse').trigger('collapsed.pushMenu');\n }\n }\n //Handle sidebar push menu for small screens\n else {\n if ($(\"body\").hasClass('sidebar-open')) {\n $(\"body\").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-open').trigger('expanded.pushMenu');\n }\n }\n });\n\n $(\".content-wrapper\").click(function () {\n //Enable hide menu when clicking on the content-wrapper on small screens\n if ($(window).width() <= (screenSizes.sm - 1) && $(\"body\").hasClass(\"sidebar-open\")) {\n $(\"body\").removeClass('sidebar-open');\n }\n });\n\n //Enable expand on hover for sidebar mini\n if ($.AdminLTE.options.sidebarExpandOnHover\n || ($('body').hasClass('fixed')\n && $('body').hasClass('sidebar-mini'))) {\n this.expandOnHover();\n }\n },\n expandOnHover: function () {\n var _this = this;\n var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;\n //Expand sidebar on hover\n $('.main-sidebar').hover(function () {\n if ($('body').hasClass('sidebar-mini')\n && $(\"body\").hasClass('sidebar-collapse')\n && $(window).width() > screenWidth) {\n _this.expand();\n }\n }, function () {\n if ($('body').hasClass('sidebar-mini')\n && $('body').hasClass('sidebar-expanded-on-hover')\n && $(window).width() > screenWidth) {\n _this.collapse();\n }\n });\n },\n expand: function () {\n $(\"body\").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');\n },\n collapse: function () {\n if ($('body').hasClass('sidebar-expanded-on-hover')) {\n $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');\n }\n }\n };\n\n /* Tree()\n * ======\n * Converts the sidebar into a multilevel\n * tree view menu.\n *\n * @type Function\n * @Usage: $.AdminLTE.tree('.sidebar')\n */\n $.AdminLTE.tree = function (menu) {\n var _this = this;\n var animationSpeed = $.AdminLTE.options.animationSpeed;\n $(document).off('click', menu + ' li a')\n .on('click', menu + ' li a', function (e) {\n //Get the clicked link and the next element\n var $this = $(this);\n var checkElement = $this.next();\n\n //Check if the next element is a menu and is visible\n if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) {\n //Close the menu\n checkElement.slideUp(animationSpeed, function () {\n checkElement.removeClass('menu-open');\n //Fix the layout in case the sidebar stretches over the height of the window\n //_this.layout.fix();\n });\n checkElement.parent(\"li\").removeClass(\"active\");\n }\n //If the menu is not visible\n else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {\n //Get the parent menu\n var parent = $this.parents('ul').first();\n //Close all open menus within the parent\n var ul = parent.find('ul:visible').slideUp(animationSpeed);\n //Remove the menu-open class from the parent\n ul.removeClass('menu-open');\n //Get the parent li\n var parent_li = $this.parent(\"li\");\n\n //Open the target menu and add the menu-open class\n checkElement.slideDown(animationSpeed, function () {\n //Add the class active to the parent li\n checkElement.addClass('menu-open');\n parent.find('li.active').removeClass('active');\n parent_li.addClass('active');\n //Fix the layout in case the sidebar stretches over the height of the window\n _this.layout.fix();\n });\n }\n //if this isn't a link, prevent the page from being redirected\n if (checkElement.is('.treeview-menu')) {\n e.preventDefault();\n }\n });\n };\n\n /* ControlSidebar\n * ==============\n * Adds functionality to the right sidebar\n *\n * @type Object\n * @usage $.AdminLTE.controlSidebar.activate(options)\n */\n $.AdminLTE.controlSidebar = {\n //instantiate the object\n activate: function () {\n //Get the object\n var _this = this;\n //Update options\n var o = $.AdminLTE.options.controlSidebarOptions;\n //Get the sidebar\n var sidebar = $(o.selector);\n //The toggle button\n var btn = $(o.toggleBtnSelector);\n\n //Listen to the click event\n btn.on('click', function (e) {\n e.preventDefault();\n //If the sidebar is not open\n if (!sidebar.hasClass('control-sidebar-open')\n && !$('body').hasClass('control-sidebar-open')) {\n //Open the sidebar\n _this.open(sidebar, o.slide);\n } else {\n _this.close(sidebar, o.slide);\n }\n });\n\n //If the body has a boxed layout, fix the sidebar bg position\n var bg = $(\".control-sidebar-bg\");\n _this._fix(bg);\n\n //If the body has a fixed layout, make the control sidebar fixed\n if ($('body').hasClass('fixed')) {\n _this._fixForFixed(sidebar);\n } else {\n //If the content height is less than the sidebar's height, force max height\n if ($('.content-wrapper, .right-side').height() < sidebar.height()) {\n _this._fixForContent(sidebar);\n }\n }\n },\n //Open the control sidebar\n open: function (sidebar, slide) {\n //Slide over content\n if (slide) {\n sidebar.addClass('control-sidebar-open');\n } else {\n //Push the content by adding the open class to the body instead\n //of the sidebar itself\n $('body').addClass('control-sidebar-open');\n }\n },\n //Close the control sidebar\n close: function (sidebar, slide) {\n if (slide) {\n sidebar.removeClass('control-sidebar-open');\n } else {\n $('body').removeClass('control-sidebar-open');\n }\n },\n _fix: function (sidebar) {\n var _this = this;\n if ($(\"body\").hasClass('layout-boxed')) {\n sidebar.css('position', 'absolute');\n sidebar.height($(\".wrapper\").height());\n if (_this.hasBindedResize) {\n return;\n }\n $(window).resize(function () {\n _this._fix(sidebar);\n });\n _this.hasBindedResize = true;\n } else {\n sidebar.css({\n 'position': 'fixed',\n 'height': 'auto'\n });\n }\n },\n _fixForFixed: function (sidebar) {\n sidebar.css({\n 'position': 'fixed',\n 'max-height': '100%',\n 'overflow': 'auto',\n 'padding-bottom': '50px'\n });\n },\n _fixForContent: function (sidebar) {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar.height());\n }\n };\n\n /* BoxWidget\n * =========\n * BoxWidget is a plugin to handle collapsing and\n * removing boxes from the screen.\n *\n * @type Object\n * @usage $.AdminLTE.boxWidget.activate()\n * Set all your options in the main $.AdminLTE.options object\n */\n $.AdminLTE.boxWidget = {\n selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,\n icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,\n animationSpeed: $.AdminLTE.options.animationSpeed,\n activate: function (_box) {\n var _this = this;\n if (!_box) {\n _box = document; // activate all boxes per default\n }\n //Listen for collapse event triggers\n $(_box).on('click', _this.selectors.collapse, function (e) {\n e.preventDefault();\n _this.collapse($(this));\n });\n\n //Listen for remove event triggers\n $(_box).on('click', _this.selectors.remove, function (e) {\n e.preventDefault();\n _this.remove($(this));\n });\n },\n collapse: function (element) {\n var _this = this;\n //Find the box parent\n var box = element.parents(\".box\").first();\n //Find the body and the footer\n var box_content = box.find(\"> .box-body, > .box-footer, > form >.box-body, > form > .box-footer\");\n if (!box.hasClass(\"collapsed-box\")) {\n //Convert minus into plus\n element.children(\":first\")\n .removeClass(_this.icons.collapse)\n .addClass(_this.icons.open);\n //Hide the content\n box_content.slideUp(_this.animationSpeed, function () {\n box.addClass(\"collapsed-box\");\n box.trigger(\"hidden.bs.collapse\");\n });\n } else {\n //Convert plus into minus\n element.children(\":first\")\n .removeClass(_this.icons.open)\n .addClass(_this.icons.collapse);\n\n // Technically, it should be 'show' which is triggered here, and\n // 'shown' which is triggered later. However, this works better because\n // of the slow expansion transition -- the box would fully expand, and\n // only then trigger 'shown', which then results in an update of the\n // content. This would allow users to see the old content during the\n // expansion.\n box.trigger(\"shown.bs.collapse\");\n\n //Show the content\n box_content.slideDown(_this.animationSpeed, function () {\n box.removeClass(\"collapsed-box\");\n });\n }\n },\n remove: function (element) {\n //Find the box parent\n var box = element.parents(\".box\").first();\n box.slideUp(this.animationSpeed);\n }\n };\n}\n\n/* ------------------\n * - Custom Plugins -\n * ------------------\n * All custom plugins are defined below.\n */\n\n/*\n * BOX REFRESH BUTTON\n * ------------------\n * This is a custom plugin to use with the component BOX. It allows you to add\n * a refresh button to the box. It converts the box's state to a loading state.\n *\n * @type plugin\n * @usage $(\"#box-widget\").boxRefresh( options );\n */\n(function ($) {\n\n \"use strict\";\n\n $.fn.boxRefresh = function (options) {\n\n // Render options\n var settings = $.extend({\n //Refresh button selector\n trigger: \".refresh-btn\",\n //File source to be loaded (e.g: ajax/src.php)\n source: \"\",\n //Callbacks\n onLoadStart: function (box) {\n return box;\n }, //Right after the button has been clicked\n onLoadDone: function (box) {\n return box;\n } //When the source has been loaded\n\n }, options);\n\n //The overlay\n var overlay = $('
');\n\n return this.each(function () {\n //if a source is specified\n if (settings.source === \"\") {\n if (window.console) {\n window.console.log(\"Please specify a source first - boxRefresh()\");\n }\n return;\n }\n //the box\n var box = $(this);\n //the button\n var rBtn = box.find(settings.trigger).first();\n\n //On trigger click\n rBtn.on('click', function (e) {\n e.preventDefault();\n //Add loading overlay\n start(box);\n\n //Perform ajax call\n box.find(\".box-body\").load(settings.source, function () {\n done(box);\n });\n });\n });\n\n function start(box) {\n //Add overlay and loading img\n box.append(overlay);\n\n settings.onLoadStart.call(box);\n }\n\n function done(box) {\n //Remove overlay and loading img\n box.find(overlay).remove();\n\n settings.onLoadDone.call(box);\n }\n\n };\n\n})(jQuery);\n\n/*\n * EXPLICIT BOX CONTROLS\n * -----------------------\n * This is a custom plugin to use with the component BOX. It allows you to activate\n * a box inserted in the DOM after the app.js was loaded, toggle and remove box.\n *\n * @type plugin\n * @usage $(\"#box-widget\").activateBox();\n * @usage $(\"#box-widget\").toggleBox();\n * @usage $(\"#box-widget\").removeBox();\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.activateBox = function () {\n $.AdminLTE.boxWidget.activate(this);\n };\n\n $.fn.toggleBox = function () {\n var button = $($.AdminLTE.boxWidget.selectors.collapse, this);\n $.AdminLTE.boxWidget.collapse(button);\n };\n\n $.fn.removeBox = function () {\n var button = $($.AdminLTE.boxWidget.selectors.remove, this);\n $.AdminLTE.boxWidget.remove(button);\n };\n\n})(jQuery);\n\n/*\n * TODO LIST CUSTOM PLUGIN\n * -----------------------\n * This plugin depends on iCheck plugin for checkbox and radio inputs\n *\n * @type plugin\n * @usage $(\"#todo-widget\").todolist( options );\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.todolist = function (options) {\n // Render options\n var settings = $.extend({\n //When the user checks the input\n onCheck: function (ele) {\n return ele;\n },\n //When the user unchecks the input\n onUncheck: function (ele) {\n return ele;\n }\n }, options);\n\n return this.each(function () {\n\n if (typeof $.fn.iCheck != 'undefined') {\n $('input', this).on('ifChecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onCheck.call(ele);\n });\n\n $('input', this).on('ifUnchecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onUncheck.call(ele);\n });\n } else {\n $('input', this).on('change', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n if ($('input', ele).is(\":checked\")) {\n settings.onCheck.call(ele);\n } else {\n settings.onUncheck.call(ele);\n }\n });\n }\n });\n };\n}(jQuery));\n"]} \ No newline at end of file diff --git a/inst/AdminLTE/app.min.js.map b/inst/AdminLTE/app.min.js.map index a7f33619..bb7079f4 100644 --- a/inst/AdminLTE/app.min.js.map +++ b/inst/AdminLTE/app.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["app.js"],"names":["_init","$","AdminLTE","layout","activate","_this","this","fix","fixSidebar","css","window","resize","footer_height","outerHeight","neg","window_height","height","sidebar_height","hasClass","postSetWidth","controlSidebar","options","controlSidebarOptions","selector","fn","slimScroll","console","error","sidebarSlimScroll","destroy","color","size","pushMenu","toggleBtn","screenSizes","document","on","e","preventDefault","width","sm","removeClass","trigger","addClass","click","sidebarExpandOnHover","expandOnHover","screenWidth","hover","expand","collapse","tree","menu","animationSpeed","off","$this","checkElement","next","is","slideUp","parent","parents","first","ul","find","parent_li","slideDown","o","sidebar","btn","toggleBtnSelector","close","slide","open","bg","_fix","_fixForFixed","_fixForContent","hasBindedResize","position","max-height","overflow","padding-bottom","boxWidget","selectors","boxWidgetOptions","boxWidgetSelectors","icons","boxWidgetIcons","_box","remove","element","box","box_content","children","jQuery","Error","navbarMenuSlimscroll","navbarMenuSlimscrollWidth","navbarMenuHeight","sidebarToggleSelector","sidebarPushMenu","enableBoxRefresh","enableBSToppltip","BSTooltipSelector","enableFastclick","enableControlTreeView","enableControlSidebar","enableBoxWidget","directChat","enable","contactToggleSelector","colors","lightBlue","red","green","aqua","yellow","blue","navy","teal","olive","lime","orange","fuchsia","purple","maroon","black","gray","xs","md","lg","AdminLTEOptions","extend","slimscroll","alwaysVisible","tooltip","container","FastClick","attach","body","toggleClass","each","group","boxRefresh","start","append","overlay","settings","onLoadStart","call","done","onLoadDone","source","log","rBtn","load","activateBox","toggleBox","button","removeBox","todolist","onCheck","ele","onUncheck","iCheck"],"mappings":"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","file":"app.min.js"} \ No newline at end of file +{"version":3,"sources":["../../srcjs/AdminLTE/app.js"],"names":["_init","$","AdminLTE","layout","activate","_this","this","fix","fixSidebar","css","window","resize","footer_height","outerHeight","neg","window_height","height","sidebar_height","hasClass","postSetWidth","controlSidebar","options","controlSidebarOptions","selector","fn","slimScroll","console","error","sidebarSlimScroll","destroy","color","size","pushMenu","toggleBtn","screenSizes","document","on","e","preventDefault","width","sm","removeClass","trigger","addClass","click","sidebarExpandOnHover","expandOnHover","screenWidth","hover","expand","collapse","tree","menu","animationSpeed","off","$this","checkElement","next","is","slideUp","parent","parents","first","ul","find","parent_li","slideDown","o","sidebar","btn","toggleBtnSelector","close","slide","open","bg","_fix","_fixForFixed","_fixForContent","hasBindedResize","position","max-height","overflow","padding-bottom","boxWidget","selectors","boxWidgetOptions","boxWidgetSelectors","icons","boxWidgetIcons","_box","remove","element","box","box_content","children","jQuery","Error","navbarMenuSlimscroll","navbarMenuSlimscrollWidth","navbarMenuHeight","sidebarToggleSelector","sidebarPushMenu","enableBoxRefresh","enableBSToppltip","BSTooltipSelector","enableFastclick","enableControlTreeView","enableControlSidebar","enableBoxWidget","directChat","enable","contactToggleSelector","colors","lightBlue","red","green","aqua","yellow","blue","navy","teal","olive","lime","orange","fuchsia","purple","maroon","black","gray","xs","md","lg","AdminLTEOptions","extend","slimscroll","alwaysVisible","tooltip","container","FastClick","attach","body","toggleClass","each","group","boxRefresh","start","append","overlay","settings","onLoadStart","call","done","onLoadDone","source","log","rBtn","load","activateBox","toggleBox","button","removeBox","todolist","onCheck","ele","onUncheck","iCheck"],"mappings":"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","file":"app.min.js"} \ No newline at end of file diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 8c0a9cec..c0ec4c60 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -6,172 +6,172 @@ $(function() { //--------------------------------------------------------------------- // Source file: ../srcjs/tabs.js - // This function handles a special case in the AdminLTE sidebar: when there - // is a sidebar-menu with items, and one of those items has sub-items, and - // they are used for tab navigation. Normally, if one of the items is - // selected and then a sub-item is clicked, both the item and sub-item will - // retain the "active" class, so they will both be highlighted. This happens - // because they're not designed to be used together for tab panels. This - // code ensures that only one item will have the "active" class. - var deactivateOtherTabs = function() { - var $this = $(this); - var $sidebarMenu = $this.closest("ul.sidebar-menu"); - - // Find all tab links under sidebar-menu - var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); - - // If any other items are active, deactivate them - $tablinks.not($this).parent("li").removeClass("active"); - - // Trigger event for the tabItemInputBinding - $sidebarMenu.trigger('change.tabItemInputBinding'); - }; - - $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', - deactivateOtherTabs); - - - // When document is ready, if there is a sidebar menu with no activated tabs, - // activate the one specified by `data-start-selected`, or if that's not - // present, the first one. - var ensureActivatedTab = function() { - var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); - - // If there's a `data-start-selected` attribute and we can find a tab with - // that name, activate it. - var $startTab = $tablinks.filter("[data-start-selected='1']"); - if ($startTab.length !== 0) { - $startTab.tab("show"); - return; - } +// This function handles a special case in the AdminLTE sidebar: when there +// is a sidebar-menu with items, and one of those items has sub-items, and +// they are used for tab navigation. Normally, if one of the items is +// selected and then a sub-item is clicked, both the item and sub-item will +// retain the "active" class, so they will both be highlighted. This happens +// because they're not designed to be used together for tab panels. This +// code ensures that only one item will have the "active" class. +var deactivateOtherTabs = function() { + var $this = $(this); + var $sidebarMenu = $this.closest("ul.sidebar-menu"); + + // Find all tab links under sidebar-menu + var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); + + // If any other items are active, deactivate them + $tablinks.not($this).parent("li").removeClass("active"); + + // Trigger event for the tabItemInputBinding + $sidebarMenu.trigger('change.tabItemInputBinding'); +}; + +$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', + deactivateOtherTabs); + + +// When document is ready, if there is a sidebar menu with no activated tabs, +// activate the one specified by `data-start-selected`, or if that's not +// present, the first one. +var ensureActivatedTab = function() { + var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); + + // If there's a `data-start-selected` attribute and we can find a tab with + // that name, activate it. + var $startTab = $tablinks.filter("[data-start-selected='1']"); + if ($startTab.length !== 0) { + $startTab.tab("show"); + return; + } - // If we got this far, just activate the first tab. - if (! $tablinks.parent("li").hasClass("active") ) { - $tablinks.first().tab("show"); - } - }; + // If we got this far, just activate the first tab. + if (! $tablinks.parent("li").hasClass("active") ) { + $tablinks.first().tab("show"); + } +}; - ensureActivatedTab(); +ensureActivatedTab(); //--------------------------------------------------------------------- // Source file: ../srcjs/sidebar.js - // Optionally disable sidebar - if ($("section.sidebar").data("disable")) { - $("body").addClass("sidebar-collapse"); - $(".navbar > .sidebar-toggle").hide(); - } +// Optionally disable sidebar +if ($("section.sidebar").data("disable")) { + $("body").addClass("sidebar-collapse"); + $(".navbar > .sidebar-toggle").hide(); +} - // Trigger the resize event when the sidebar is collapsed/expanded - // (this allows images to be responsive and resize themselves) - $(document).on("click", ".sidebar-toggle", function() { - $(window).trigger("resize"); - }); +// Trigger the resize event when the sidebar is collapsed/expanded +// (this allows images to be responsive and resize themselves) +$(document).on("click", ".sidebar-toggle", function() { + $(window).trigger("resize"); +}); - $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); - }); +$(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); +}); //--------------------------------------------------------------------- // Source file: ../srcjs/output_binding_menu.js - /* global Shiny */ - - // menuOutputBinding - // ------------------------------------------------------------------ - // Based on Shiny.htmlOutputBinding, but instead of putting the result in a - // wrapper div, it replaces the origin DOM element with the new DOM elements, - // copying over the ID and class. - var menuOutputBinding = new Shiny.OutputBinding(); - $.extend(menuOutputBinding, { - find: function(scope) { - return $(scope).find('.shinydashboard-menu-output'); - }, - onValueError: function(el, err) { - Shiny.unbindAll(el); - this.renderError(el, err); - }, - renderValue: function(el, data) { - Shiny.unbindAll(el); - - var html; - var dependencies = []; - if (data === null) { - return; - } else if (typeof(data) === 'string') { - html = data; - } else if (typeof(data) === 'object') { - html = data.html; - dependencies = data.deps; - } +/* global Shiny */ + +// menuOutputBinding +// ------------------------------------------------------------------ +// Based on Shiny.htmlOutputBinding, but instead of putting the result in a +// wrapper div, it replaces the origin DOM element with the new DOM elements, +// copying over the ID and class. +var menuOutputBinding = new Shiny.OutputBinding(); +$.extend(menuOutputBinding, { + find: function(scope) { + return $(scope).find('.shinydashboard-menu-output'); + }, + onValueError: function(el, err) { + Shiny.unbindAll(el); + this.renderError(el, err); + }, + renderValue: function(el, data) { + Shiny.unbindAll(el); + + var html; + var dependencies = []; + if (data === null) { + return; + } else if (typeof(data) === 'string') { + html = data; + } else if (typeof(data) === 'object') { + html = data.html; + dependencies = data.deps; + } - var $html = $($.parseHTML(html)); + var $html = $($.parseHTML(html)); - // Convert the inner contents to HTML, and pass to renderHtml - Shiny.renderHtml($html.html(), el, dependencies); + // Convert the inner contents to HTML, and pass to renderHtml + Shiny.renderHtml($html.html(), el, dependencies); - // Extract class of wrapper, and add them to the wrapper element - el.className = 'shinydashboard-menu-output shiny-bound-output ' + - $html.attr('class'); + // Extract class of wrapper, and add them to the wrapper element + el.className = 'shinydashboard-menu-output shiny-bound-output ' + + $html.attr('class'); - Shiny.initializeInputs(el); - Shiny.bindAll(el); - } - }); - Shiny.outputBindings.register(menuOutputBinding, - "shinydashboard.menuOutputBinding"); + Shiny.initializeInputs(el); + Shiny.bindAll(el); + } +}); +Shiny.outputBindings.register(menuOutputBinding, + "shinydashboard.menuOutputBinding"); //--------------------------------------------------------------------- // Source file: ../srcjs/input_binding_tabItem.js - /* global Shiny */ - - // tabItemInputBinding - // ------------------------------------------------------------------ - // Based on Shiny.tabItemInputBinding, but customized for tabItems in - // shinydashboard, which have a slightly different structure. - var tabItemInputBinding = new Shiny.InputBinding(); - $.extend(tabItemInputBinding, { - find: function(scope) { - return $(scope).find('ul.sidebar-menu'); - }, - getValue: function(el) { - var anchor = $(el).find('li:not(.treeview).active').children('a'); - if (anchor.length === 1) - return this._getTabName(anchor); - - return null; - }, - setValue: function(el, value) { - var self = this; - var anchors = $(el).find('li:not(.treeview)').children('a'); - anchors.each(function() { - if (self._getTabName($(this)) === value) { - $(this).tab('show'); - return false; - } - }); - }, - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); - }, - subscribe: function(el, callback) { - // This event is triggered by deactivateOtherTabs, which is triggered by - // shown. The deactivation of other tabs must occur before Shiny gets the - // input value. - $(el).on('change.tabItemInputBinding', function() { - callback(); - }); - }, - unsubscribe: function(el) { - $(el).off('.tabItemInputBinding'); - }, - _getTabName: function(anchor) { - return anchor.attr('data-value'); - } - }); - Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); +/* global Shiny */ + +// tabItemInputBinding +// ------------------------------------------------------------------ +// Based on Shiny.tabItemInputBinding, but customized for tabItems in +// shinydashboard, which have a slightly different structure. +var tabItemInputBinding = new Shiny.InputBinding(); +$.extend(tabItemInputBinding, { + find: function(scope) { + return $(scope).find('ul.sidebar-menu'); + }, + getValue: function(el) { + var anchor = $(el).find('li:not(.treeview).active').children('a'); + if (anchor.length === 1) + return this._getTabName(anchor); + + return null; + }, + setValue: function(el, value) { + var self = this; + var anchors = $(el).find('li:not(.treeview)').children('a'); + anchors.each(function() { // eslint-disable-line consistent-return + if (self._getTabName($(this)) === value) { + $(this).tab('show'); + return false; + } + }); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + // This event is triggered by deactivateOtherTabs, which is triggered by + // shown. The deactivation of other tabs must occur before Shiny gets the + // input value. + $(el).on('change.tabItemInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.tabItemInputBinding'); + }, + _getTabName: function(anchor) { + return anchor.attr('data-value'); + } +}); +Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); //--------------------------------------------------------------------- // Source file: ../srcjs/_end.js diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index cd37e352..875dc679 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/_end.js"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;AAClC;AACA,EAAE,QAAQ,EAAE,CAAC,CAAC;;ACHd,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE;AAChC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7E,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG;AAC5E,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACvE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AAC7E,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO;AAC9E,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI;AAC1E,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AAClE,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACxB,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;AACxD;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;AAC5C,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;AAC9D;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI;AACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,GAAG;AAC5D;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB;AAChD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,mBAAmB,GAAG;AACvD,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AACtE,iBAAiB,mBAAmB,EAAE;AACtC;AACA;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/E,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AAC1E,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5B,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;AACjF;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI;AAC9E,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK;AAClE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG;AAC5B,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACvD,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG;AACpC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ;AACA,EAAE,kBAAkB,GAAG;;AChDvB,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE;AACnC;AACA,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;AAC/B,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;AAC7C,IAAI,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG;AAC3C,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG;AAC1C,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ;AACpE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;AAChE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;AAChC,EAAE,GAAG;AACL;AACA,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,GAAG;AACpD,EAAE,GAAG;;ACjBL,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,EAAE;AAC/C;AACA,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACpB;AACA,EAAE,EAAE,CAAC,iBAAiB;AACtB,EAAE,EAAE,CAAC,kEAAkE;AACvE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7E,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/E,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG;AACpD,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG;AAC1D,IAAI,EAAE;AACN,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;AAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AAChC,IAAI,EAAE;AACN,IAAI,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;AAC1B;AACA,MAAM,GAAG,CAAC,IAAI,CAAC;AACf,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,QAAQ,MAAM,CAAC;AACf,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,QAAQ,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,MAAM,CAAC;AACP;AACA,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,GAAG;AACvC;AACA,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU;AACnE,MAAM,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE;AACvD;AACA,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AACtE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;AACzC;AACA,MAAM,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE;AACjC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;AACxB,IAAI,CAAC;AACL,EAAE,GAAG;AACL,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAClD,gCAAgC,CAAC,cAAc,CAAC,iBAAiB,GAAG;;AC/CpE,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,EAAE;AACjD;AACA,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACpB;AACA,EAAE,EAAE,CAAC,mBAAmB;AACxB,EAAE,EAAE,CAAC,kEAAkE;AACvE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACvE,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;AAC/D,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AACrD,EAAE,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;AAC9C,IAAI,EAAE;AACN,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG;AACxE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACxC;AACA,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC,GAAG;AAClE,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG;AAC9B,UAAU,MAAM,CAAC,KAAK,CAAC;AACvB,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,EAAE;AACN,IAAI,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG;AACvC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACtC,IAAI,EAAE;AACN,IAAI,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;AAC9E,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;AAC/E,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACrB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,QAAQ,QAAQ,GAAG;AACnB,MAAM,GAAG;AACT,IAAI,EAAE;AACN,IAAI,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,mBAAmB,GAAG;AACxC,IAAI,EAAE;AACN,IAAI,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG;AACvC,IAAI,CAAC;AACL,EAAE,GAAG;AACL,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG;;AClDnF,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE;AAChC;AACA,GAAG","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n // This function handles a special case in the AdminLTE sidebar: when there\n // is a sidebar-menu with items, and one of those items has sub-items, and\n // they are used for tab navigation. Normally, if one of the items is\n // selected and then a sub-item is clicked, both the item and sub-item will\n // retain the \"active\" class, so they will both be highlighted. This happens\n // because they're not designed to be used together for tab panels. This\n // code ensures that only one item will have the \"active\" class.\n var deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n };\n\n $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n // When document is ready, if there is a sidebar menu with no activated tabs,\n // activate the one specified by `data-start-selected`, or if that's not\n // present, the first one.\n var ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n };\n\n ensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n // Optionally disable sidebar\n if ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n }\n\n // Trigger the resize event when the sidebar is collapsed/expanded\n // (this allows images to be responsive and resize themselves)\n $(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n });\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n /* global Shiny */\n\n // menuOutputBinding\n // ------------------------------------------------------------------\n // Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n // wrapper div, it replaces the origin DOM element with the new DOM elements,\n // copying over the ID and class.\n var menuOutputBinding = new Shiny.OutputBinding();\n $.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n }\n });\n Shiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n /* global Shiny */\n\n // tabItemInputBinding\n // ------------------------------------------------------------------\n // Based on Shiny.tabItemInputBinding, but customized for tabItems in\n // shinydashboard, which have a slightly different structure.\n var tabItemInputBinding = new Shiny.InputBinding();\n $.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n });\n Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file diff --git a/inst/shinydashboard.min.js b/inst/shinydashboard.min.js new file mode 100644 index 00000000..d96c6940 --- /dev/null +++ b/inst/shinydashboard.min.js @@ -0,0 +1,4 @@ +/*! shinydashboard 0.5.3.9000 | (c) 2017-2017 RStudio, Inc. | License: GPL-2 | file LICENSE */ + +$(function(){var a=function(){var a=$(this),b=a.closest("ul.sidebar-menu"),c=b.find("a[data-toggle='tab']");c.not(a).parent("li").removeClass("active"),b.trigger("change.tabItemInputBinding")};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||a.first().tab("show"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize")}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,b){Shiny.unbindAll(a);var c,d=[];if(null!==b){"string"==typeof b?c=b:"object"==typeof b&&(c=b.html,d=b.deps);var e=$($.parseHTML(c));Shiny.renderHtml(e.html(),a,d),a.className="shinydashboard-menu-output shiny-bound-output "+e.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a)}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find("ul.sidebar-menu")},getValue:function(a){var b=$(a).find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput")}); +//# sourceMappingURL=shinydashboard.min.js.map \ No newline at end of file diff --git a/inst/shinydashboard.min.js.map b/inst/shinydashboard.min.js.map new file mode 100644 index 00000000..dc88432c --- /dev/null +++ b/inst/shinydashboard.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","window","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","attr","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","setValue","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WACxB,GAAIC,GAAQF,EAAEG,MACVC,EAAeF,EAAMG,QAAO,mBAG5BC,EAAYF,EAAaG,KAAI,uBAGjCD,GAAUE,IAAGN,GAAQO,OAAM,MAAOC,YAAW,UAG7CN,EAAaO,QAAO,8BAGtBX,GAAEY,UAAUC,GAAE,eAAiB,qCAChBZ,EAMf,IAAIa,GAAqB,WACvB,GAAIR,GAAYN,EAAA,mBAAqBO,KAAI,KAAMQ,OAAM,uBAIjDC,EAAYV,EAAUS,OAAM,4BAChC,OAAyB,KAAtBC,EAAWC,WACZD,GAAUE,IAAG,aAKTZ,EAAUG,OAAM,MAAOU,SAAQ,WACnCb,EAAUc,QAAQF,IAAG,SAIzBJ,KC5CGd,EAAA,mBAAsBqB,KAAI,aAC3BrB,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAKjCvB,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAEwB,QAAQb,QAAO,YAGnBX,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMsB,KAAI,kBAAmBd,QAAO,UCNxC,IAAIe,GAAoB,GAAIC,OAAMC,aAClC5B,GAAE6B,OAAOH,GACPnB,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,gCAEtBwB,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChB7B,KAAKgC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIX,GACxBM,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATjB,EAAJ,CAE4B,gBAAX,GACfgB,EAAOhB,EACmB,gBAAX,KACfgB,EAAOhB,EAAKgB,KACZC,EAAejB,EAAKkB,KAGtB,IAAIC,GAAQxC,EAAAA,EAAIyC,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMI,KAAI,SAEzBjB,MAAMkB,iBAAiBb,GACvBL,MAAMmB,QAAQd,OAGlBL,MAAMoB,eAAeC,SAAStB,EACA,mCCtC9B,IAAIuB,GAAsB,GAAItB,OAAMuB,YACpClD,GAAE6B,OAAOoB,GACP1C,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,oBAEtB4C,SAAU,SAASnB,GACjB,GAAIoB,GAASpD,EAAEgC,GAAIzB,KAAI,4BAA6B8C,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOnC,OACFd,KAAKmD,YAAYF,GAEnB,MAETG,SAAU,SAASvB,EAAIwB,GACrB,GAAIC,GAAOtD,KACPuD,EAAU1D,EAAEgC,GAAIzB,KAAI,qBAAsB8C,SAAQ,IACtDK,GAAQC,KAAK,WACX,GAAIF,EAAKH,YAAWtD,EAAGG,SAAWqD,EAEhC,MADAxD,GAAEG,MAAMe,IAAG,SACJ,KAIb0C,eAAgB,SAAS5B,EAAIX,GACvBA,EAAKwC,eAAc,UACrB1D,KAAKoD,SAASvB,EAAIX,EAAKmC,QAE3BM,UAAW,SAAS9B,EAAI+B,GAItB/D,EAAEgC,GAAInB,GAAE,6BAA+B,WACrCkD,OAGJC,YAAa,SAAShC,GACpBhC,EAAEgC,GAAIiC,IAAG,yBAEXX,YAAa,SAASF,GACpB,MAAOA,GAAOR,KAAI,iBAGtBjB,MAAMuC,cAAclB,SAASC,EAAqB","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n"]} \ No newline at end of file diff --git a/inst/AdminLTE/README-shiny-mods.md b/srcjs/AdminLTE/README-shiny-mods.md similarity index 100% rename from inst/AdminLTE/README-shiny-mods.md rename to srcjs/AdminLTE/README-shiny-mods.md diff --git a/srcjs/AdminLTE/app.js b/srcjs/AdminLTE/app.js new file mode 100755 index 00000000..90f82bb2 --- /dev/null +++ b/srcjs/AdminLTE/app.js @@ -0,0 +1,782 @@ +/*! AdminLTE app.js + * ================ + * Main JS application file for AdminLTE v2. This file + * should be included in all pages. It controls some layout + * options and implements exclusive AdminLTE plugins. + * + * @Author Almsaeed Studio + * @Support + * @Email + * @version 2.3.11 + * @license MIT + */ + +//Make sure jQuery has been loaded before app.js +if (typeof jQuery === "undefined") { + throw new Error("AdminLTE requires jQuery"); +} + +/* AdminLTE + * + * @type Object + * @description $.AdminLTE is the main object for the template's app. + * It's used for implementing functions and options related + * to the template. Keeping everything wrapped in an object + * prevents conflict with other plugins and is a better + * way to organize our code. + */ +$.AdminLTE = {}; + +/* -------------------- + * - AdminLTE Options - + * -------------------- + * Modify these options to suit your implementation + */ +$.AdminLTE.options = { + //Add slimscroll to navbar menus + //This requires you to load the slimscroll plugin + //in every page before app.js + navbarMenuSlimscroll: true, + navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar + navbarMenuHeight: "200px", //The height of the inner menu + //General animation speed for JS animated elements such as box collapse/expand and + //sidebar treeview slide up/down. This options accepts an integer as milliseconds, + //'fast', 'normal', or 'slow' + animationSpeed: 500, + //Sidebar push menu toggle button selector + sidebarToggleSelector: "[data-toggle='offcanvas']", + //Activate sidebar push menu + sidebarPushMenu: true, + //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin) + sidebarSlimScroll: true, + //Enable sidebar expand on hover effect for sidebar mini + //This option is forced to true if both the fixed layout and sidebar mini + //are used together + sidebarExpandOnHover: false, + //BoxRefresh Plugin + enableBoxRefresh: true, + //Bootstrap.js tooltip + enableBSToppltip: true, + BSTooltipSelector: "[data-toggle='tooltip']", + //Enable Fast Click. Fastclick.js creates a more + //native touch experience with touch devices. If you + //choose to enable the plugin, make sure you load the script + //before AdminLTE's app.js + enableFastclick: false, + //Control Sidebar Tree views + enableControlTreeView: true, + //Control Sidebar Options + enableControlSidebar: true, + controlSidebarOptions: { + //Which button should trigger the open/close event + toggleBtnSelector: "[data-toggle='control-sidebar']", + //The sidebar selector + selector: ".control-sidebar", + //Enable slide over content + slide: true + }, + //Box Widget Plugin. Enable this plugin + //to allow boxes to be collapsed and/or removed + enableBoxWidget: true, + //Box Widget plugin options + boxWidgetOptions: { + boxWidgetIcons: { + //Collapse icon + collapse: 'fa-minus', + //Open icon + open: 'fa-plus', + //Remove icon + remove: 'fa-times' + }, + boxWidgetSelectors: { + //Remove button selector + remove: '[data-widget="remove"]', + //Collapse button selector + collapse: '[data-widget="collapse"]' + } + }, + //Direct Chat plugin options + directChat: { + //Enable direct chat by default + enable: true, + //The button to open and close the chat contacts pane + contactToggleSelector: '[data-widget="chat-pane-toggle"]' + }, + //Define the set of colors to use globally around the website + colors: { + lightBlue: "#3c8dbc", + red: "#f56954", + green: "#00a65a", + aqua: "#00c0ef", + yellow: "#f39c12", + blue: "#0073b7", + navy: "#001F3F", + teal: "#39CCCC", + olive: "#3D9970", + lime: "#01FF70", + orange: "#FF851B", + fuchsia: "#F012BE", + purple: "#8E24AA", + maroon: "#D81B60", + black: "#222222", + gray: "#d2d6de" + }, + //The standard screen sizes that bootstrap uses. + //If you change these in the variables.less file, change + //them here too. + screenSizes: { + xs: 480, + sm: 768, + md: 992, + lg: 1200 + } +}; + +/* ------------------ + * - Implementation - + * ------------------ + * The next block of code implements AdminLTE's + * functions and plugins as specified by the + * options above. + */ +$(function () { + "use strict"; + + //Fix for IE page transitions + $("body").removeClass("hold-transition"); + + //Extend options if external options exist + if (typeof AdminLTEOptions !== "undefined") { + $.extend(true, + $.AdminLTE.options, + AdminLTEOptions); + } + + //Easy access to options + var o = $.AdminLTE.options; + + //Set up the object + _init(); + + //Activate the layout maker + $.AdminLTE.layout.activate(); + + //Enable sidebar tree view controls + if (o.enableControlTreeView) { + $.AdminLTE.tree('.sidebar'); + } + + //Enable control sidebar + if (o.enableControlSidebar) { + $.AdminLTE.controlSidebar.activate(); + } + + //Add slimscroll to navbar dropdown + if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') { + $(".navbar .menu").slimscroll({ + height: o.navbarMenuHeight, + alwaysVisible: false, + size: o.navbarMenuSlimscrollWidth + }).css("width", "100%"); + } + + //Activate sidebar push menu + if (o.sidebarPushMenu) { + $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector); + } + + //Activate Bootstrap tooltip + if (o.enableBSToppltip) { + $('body').tooltip({ + selector: o.BSTooltipSelector, + container: 'body' + }); + } + + //Activate box widget + if (o.enableBoxWidget) { + $.AdminLTE.boxWidget.activate(); + } + + //Activate fast click + if (o.enableFastclick && typeof FastClick != 'undefined') { + FastClick.attach(document.body); + } + + //Activate direct chat widget + if (o.directChat.enable) { + $(document).on('click', o.directChat.contactToggleSelector, function () { + var box = $(this).parents('.direct-chat').first(); + box.toggleClass('direct-chat-contacts-open'); + }); + } + + /* + * INITIALIZE BUTTON TOGGLE + * ------------------------ + */ + $('.btn-group[data-toggle="btn-toggle"]').each(function () { + var group = $(this); + $(this).find(".btn").on('click', function (e) { + group.find(".btn.active").removeClass("active"); + $(this).addClass("active"); + e.preventDefault(); + }); + + }); +}); + +/* ---------------------------------- + * - Initialize the AdminLTE Object - + * ---------------------------------- + * All AdminLTE functions are implemented below. + */ +function _init() { + 'use strict'; + /* Layout + * ====== + * Fixes the layout height in case min-height fails. + * + * @type Object + * @usage $.AdminLTE.layout.activate() + * $.AdminLTE.layout.fix() + * $.AdminLTE.layout.fixSidebar() + */ + $.AdminLTE.layout = { + activate: function () { + var _this = this; + _this.fix(); + _this.fixSidebar(); + $('body, html, .wrapper').css('height', 'auto'); + $(window, ".wrapper").resize(function () { + _this.fix(); + _this.fixSidebar(); + }); + }, + fix: function () { + // Remove overflow from .wrapper if layout-boxed exists + $(".layout-boxed > .wrapper").css('overflow', 'hidden'); + //Get window height and the wrapper height + var footer_height = $('.main-footer').outerHeight() || 0; + var neg = $('.main-header').outerHeight() + footer_height; + var window_height = $(window).height(); + var sidebar_height = $(".sidebar").height() || 0; + //Set the min-height of the content and sidebar based on the + //the height of the document. + if ($("body").hasClass("fixed")) { + $(".content-wrapper, .right-side").css('min-height', window_height - footer_height); + } else { + var postSetWidth; + if (window_height >= sidebar_height) { + $(".content-wrapper, .right-side").css('min-height', window_height - neg); + postSetWidth = window_height - neg; + } else { + $(".content-wrapper, .right-side").css('min-height', sidebar_height); + postSetWidth = sidebar_height; + } + + //Fix for the control sidebar height + var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector); + if (typeof controlSidebar !== "undefined") { + if (controlSidebar.height() > postSetWidth) + $(".content-wrapper, .right-side").css('min-height', controlSidebar.height()); + } + + } + }, + fixSidebar: function () { + //Make sure the body tag has the .fixed class + if (!$("body").hasClass("fixed")) { + if (typeof $.fn.slimScroll != 'undefined') { + $(".sidebar").slimScroll({destroy: true}).height("auto"); + } + return; + } else if (typeof $.fn.slimScroll == 'undefined' && window.console) { + window.console.error("Error: the fixed layout requires the slimscroll plugin!"); + } + //Enable slimscroll for fixed layout + if ($.AdminLTE.options.sidebarSlimScroll) { + if (typeof $.fn.slimScroll != 'undefined') { + //Destroy if it exists + $(".sidebar").slimScroll({destroy: true}).height("auto"); + //Add slimscroll + $(".sidebar").slimScroll({ + height: ($(window).height() - $(".main-header").height()) + "px", + color: "rgba(0,0,0,0.2)", + size: "3px" + }); + } + } + } + }; + + /* PushMenu() + * ========== + * Adds the push menu functionality to the sidebar. + * + * @type Function + * @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']") + */ + $.AdminLTE.pushMenu = { + activate: function (toggleBtn) { + //Get the screen sizes + var screenSizes = $.AdminLTE.options.screenSizes; + + //Enable sidebar toggle + $(document).on('click', toggleBtn, function (e) { + e.preventDefault(); + + //Enable sidebar push menu + if ($(window).width() > (screenSizes.sm - 1)) { + if ($("body").hasClass('sidebar-collapse')) { + $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu'); + } else { + $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu'); + } + } + //Handle sidebar push menu for small screens + else { + if ($("body").hasClass('sidebar-open')) { + $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu'); + } else { + $("body").addClass('sidebar-open').trigger('expanded.pushMenu'); + } + } + }); + + $(".content-wrapper").click(function () { + //Enable hide menu when clicking on the content-wrapper on small screens + if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) { + $("body").removeClass('sidebar-open'); + } + }); + + //Enable expand on hover for sidebar mini + if ($.AdminLTE.options.sidebarExpandOnHover + || ($('body').hasClass('fixed') + && $('body').hasClass('sidebar-mini'))) { + this.expandOnHover(); + } + }, + expandOnHover: function () { + var _this = this; + var screenWidth = $.AdminLTE.options.screenSizes.sm - 1; + //Expand sidebar on hover + $('.main-sidebar').hover(function () { + if ($('body').hasClass('sidebar-mini') + && $("body").hasClass('sidebar-collapse') + && $(window).width() > screenWidth) { + _this.expand(); + } + }, function () { + if ($('body').hasClass('sidebar-mini') + && $('body').hasClass('sidebar-expanded-on-hover') + && $(window).width() > screenWidth) { + _this.collapse(); + } + }); + }, + expand: function () { + $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover'); + }, + collapse: function () { + if ($('body').hasClass('sidebar-expanded-on-hover')) { + $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse'); + } + } + }; + + /* Tree() + * ====== + * Converts the sidebar into a multilevel + * tree view menu. + * + * @type Function + * @Usage: $.AdminLTE.tree('.sidebar') + */ + $.AdminLTE.tree = function (menu) { + var _this = this; + var animationSpeed = $.AdminLTE.options.animationSpeed; + $(document).off('click', menu + ' li a') + .on('click', menu + ' li a', function (e) { + //Get the clicked link and the next element + var $this = $(this); + var checkElement = $this.next(); + + //Check if the next element is a menu and is visible + if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) { + //Close the menu + checkElement.slideUp(animationSpeed, function () { + checkElement.removeClass('menu-open'); + //Fix the layout in case the sidebar stretches over the height of the window + //_this.layout.fix(); + }); + checkElement.parent("li").removeClass("active"); + } + //If the menu is not visible + else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) { + //Get the parent menu + var parent = $this.parents('ul').first(); + //Close all open menus within the parent + var ul = parent.find('ul:visible').slideUp(animationSpeed); + //Remove the menu-open class from the parent + ul.removeClass('menu-open'); + //Get the parent li + var parent_li = $this.parent("li"); + + //Open the target menu and add the menu-open class + checkElement.slideDown(animationSpeed, function () { + //Add the class active to the parent li + checkElement.addClass('menu-open'); + parent.find('li.active').removeClass('active'); + parent_li.addClass('active'); + //Fix the layout in case the sidebar stretches over the height of the window + _this.layout.fix(); + }); + } + //if this isn't a link, prevent the page from being redirected + if (checkElement.is('.treeview-menu')) { + e.preventDefault(); + } + }); + }; + + /* ControlSidebar + * ============== + * Adds functionality to the right sidebar + * + * @type Object + * @usage $.AdminLTE.controlSidebar.activate(options) + */ + $.AdminLTE.controlSidebar = { + //instantiate the object + activate: function () { + //Get the object + var _this = this; + //Update options + var o = $.AdminLTE.options.controlSidebarOptions; + //Get the sidebar + var sidebar = $(o.selector); + //The toggle button + var btn = $(o.toggleBtnSelector); + + //Listen to the click event + btn.on('click', function (e) { + e.preventDefault(); + //If the sidebar is not open + if (!sidebar.hasClass('control-sidebar-open') + && !$('body').hasClass('control-sidebar-open')) { + //Open the sidebar + _this.open(sidebar, o.slide); + } else { + _this.close(sidebar, o.slide); + } + }); + + //If the body has a boxed layout, fix the sidebar bg position + var bg = $(".control-sidebar-bg"); + _this._fix(bg); + + //If the body has a fixed layout, make the control sidebar fixed + if ($('body').hasClass('fixed')) { + _this._fixForFixed(sidebar); + } else { + //If the content height is less than the sidebar's height, force max height + if ($('.content-wrapper, .right-side').height() < sidebar.height()) { + _this._fixForContent(sidebar); + } + } + }, + //Open the control sidebar + open: function (sidebar, slide) { + //Slide over content + if (slide) { + sidebar.addClass('control-sidebar-open'); + } else { + //Push the content by adding the open class to the body instead + //of the sidebar itself + $('body').addClass('control-sidebar-open'); + } + }, + //Close the control sidebar + close: function (sidebar, slide) { + if (slide) { + sidebar.removeClass('control-sidebar-open'); + } else { + $('body').removeClass('control-sidebar-open'); + } + }, + _fix: function (sidebar) { + var _this = this; + if ($("body").hasClass('layout-boxed')) { + sidebar.css('position', 'absolute'); + sidebar.height($(".wrapper").height()); + if (_this.hasBindedResize) { + return; + } + $(window).resize(function () { + _this._fix(sidebar); + }); + _this.hasBindedResize = true; + } else { + sidebar.css({ + 'position': 'fixed', + 'height': 'auto' + }); + } + }, + _fixForFixed: function (sidebar) { + sidebar.css({ + 'position': 'fixed', + 'max-height': '100%', + 'overflow': 'auto', + 'padding-bottom': '50px' + }); + }, + _fixForContent: function (sidebar) { + $(".content-wrapper, .right-side").css('min-height', sidebar.height()); + } + }; + + /* BoxWidget + * ========= + * BoxWidget is a plugin to handle collapsing and + * removing boxes from the screen. + * + * @type Object + * @usage $.AdminLTE.boxWidget.activate() + * Set all your options in the main $.AdminLTE.options object + */ + $.AdminLTE.boxWidget = { + selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors, + icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons, + animationSpeed: $.AdminLTE.options.animationSpeed, + activate: function (_box) { + var _this = this; + if (!_box) { + _box = document; // activate all boxes per default + } + //Listen for collapse event triggers + $(_box).on('click', _this.selectors.collapse, function (e) { + e.preventDefault(); + _this.collapse($(this)); + }); + + //Listen for remove event triggers + $(_box).on('click', _this.selectors.remove, function (e) { + e.preventDefault(); + _this.remove($(this)); + }); + }, + collapse: function (element) { + var _this = this; + //Find the box parent + var box = element.parents(".box").first(); + //Find the body and the footer + var box_content = box.find("> .box-body, > .box-footer, > form >.box-body, > form > .box-footer"); + if (!box.hasClass("collapsed-box")) { + //Convert minus into plus + element.children(":first") + .removeClass(_this.icons.collapse) + .addClass(_this.icons.open); + //Hide the content + box_content.slideUp(_this.animationSpeed, function () { + box.addClass("collapsed-box"); + box.trigger("hidden.bs.collapse"); + }); + } else { + //Convert plus into minus + element.children(":first") + .removeClass(_this.icons.open) + .addClass(_this.icons.collapse); + + // Technically, it should be 'show' which is triggered here, and + // 'shown' which is triggered later. However, this works better because + // of the slow expansion transition -- the box would fully expand, and + // only then trigger 'shown', which then results in an update of the + // content. This would allow users to see the old content during the + // expansion. + box.trigger("shown.bs.collapse"); + + //Show the content + box_content.slideDown(_this.animationSpeed, function () { + box.removeClass("collapsed-box"); + }); + } + }, + remove: function (element) { + //Find the box parent + var box = element.parents(".box").first(); + box.slideUp(this.animationSpeed); + } + }; +} + +/* ------------------ + * - Custom Plugins - + * ------------------ + * All custom plugins are defined below. + */ + +/* + * BOX REFRESH BUTTON + * ------------------ + * This is a custom plugin to use with the component BOX. It allows you to add + * a refresh button to the box. It converts the box's state to a loading state. + * + * @type plugin + * @usage $("#box-widget").boxRefresh( options ); + */ +(function ($) { + + "use strict"; + + $.fn.boxRefresh = function (options) { + + // Render options + var settings = $.extend({ + //Refresh button selector + trigger: ".refresh-btn", + //File source to be loaded (e.g: ajax/src.php) + source: "", + //Callbacks + onLoadStart: function (box) { + return box; + }, //Right after the button has been clicked + onLoadDone: function (box) { + return box; + } //When the source has been loaded + + }, options); + + //The overlay + var overlay = $('
'); + + return this.each(function () { + //if a source is specified + if (settings.source === "") { + if (window.console) { + window.console.log("Please specify a source first - boxRefresh()"); + } + return; + } + //the box + var box = $(this); + //the button + var rBtn = box.find(settings.trigger).first(); + + //On trigger click + rBtn.on('click', function (e) { + e.preventDefault(); + //Add loading overlay + start(box); + + //Perform ajax call + box.find(".box-body").load(settings.source, function () { + done(box); + }); + }); + }); + + function start(box) { + //Add overlay and loading img + box.append(overlay); + + settings.onLoadStart.call(box); + } + + function done(box) { + //Remove overlay and loading img + box.find(overlay).remove(); + + settings.onLoadDone.call(box); + } + + }; + +})(jQuery); + +/* + * EXPLICIT BOX CONTROLS + * ----------------------- + * This is a custom plugin to use with the component BOX. It allows you to activate + * a box inserted in the DOM after the app.js was loaded, toggle and remove box. + * + * @type plugin + * @usage $("#box-widget").activateBox(); + * @usage $("#box-widget").toggleBox(); + * @usage $("#box-widget").removeBox(); + */ +(function ($) { + + 'use strict'; + + $.fn.activateBox = function () { + $.AdminLTE.boxWidget.activate(this); + }; + + $.fn.toggleBox = function () { + var button = $($.AdminLTE.boxWidget.selectors.collapse, this); + $.AdminLTE.boxWidget.collapse(button); + }; + + $.fn.removeBox = function () { + var button = $($.AdminLTE.boxWidget.selectors.remove, this); + $.AdminLTE.boxWidget.remove(button); + }; + +})(jQuery); + +/* + * TODO LIST CUSTOM PLUGIN + * ----------------------- + * This plugin depends on iCheck plugin for checkbox and radio inputs + * + * @type plugin + * @usage $("#todo-widget").todolist( options ); + */ +(function ($) { + + 'use strict'; + + $.fn.todolist = function (options) { + // Render options + var settings = $.extend({ + //When the user checks the input + onCheck: function (ele) { + return ele; + }, + //When the user unchecks the input + onUncheck: function (ele) { + return ele; + } + }, options); + + return this.each(function () { + + if (typeof $.fn.iCheck != 'undefined') { + $('input', this).on('ifChecked', function () { + var ele = $(this).parents("li").first(); + ele.toggleClass("done"); + settings.onCheck.call(ele); + }); + + $('input', this).on('ifUnchecked', function () { + var ele = $(this).parents("li").first(); + ele.toggleClass("done"); + settings.onUncheck.call(ele); + }); + } else { + $('input', this).on('change', function () { + var ele = $(this).parents("li").first(); + ele.toggleClass("done"); + if ($('input', ele).is(":checked")) { + settings.onCheck.call(ele); + } else { + settings.onUncheck.call(ele); + } + }); + } + }); + }; +}(jQuery)); diff --git a/srcjs/input_binding_tabItem.js b/srcjs/input_binding_tabItem.js index bb8dd4ff..9335511e 100644 --- a/srcjs/input_binding_tabItem.js +++ b/srcjs/input_binding_tabItem.js @@ -1,48 +1,48 @@ - /* global Shiny */ +/* global Shiny */ - // tabItemInputBinding - // ------------------------------------------------------------------ - // Based on Shiny.tabItemInputBinding, but customized for tabItems in - // shinydashboard, which have a slightly different structure. - var tabItemInputBinding = new Shiny.InputBinding(); - $.extend(tabItemInputBinding, { - find: function(scope) { - return $(scope).find('ul.sidebar-menu'); - }, - getValue: function(el) { - var anchor = $(el).find('li:not(.treeview).active').children('a'); - if (anchor.length === 1) - return this._getTabName(anchor); +// tabItemInputBinding +// ------------------------------------------------------------------ +// Based on Shiny.tabItemInputBinding, but customized for tabItems in +// shinydashboard, which have a slightly different structure. +var tabItemInputBinding = new Shiny.InputBinding(); +$.extend(tabItemInputBinding, { + find: function(scope) { + return $(scope).find('ul.sidebar-menu'); + }, + getValue: function(el) { + var anchor = $(el).find('li:not(.treeview).active').children('a'); + if (anchor.length === 1) + return this._getTabName(anchor); - return null; - }, - setValue: function(el, value) { - var self = this; - var anchors = $(el).find('li:not(.treeview)').children('a'); - anchors.each(function() { - if (self._getTabName($(this)) === value) { - $(this).tab('show'); - return false; - } - }); - }, - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); - }, - subscribe: function(el, callback) { - // This event is triggered by deactivateOtherTabs, which is triggered by - // shown. The deactivation of other tabs must occur before Shiny gets the - // input value. - $(el).on('change.tabItemInputBinding', function() { - callback(); - }); - }, - unsubscribe: function(el) { - $(el).off('.tabItemInputBinding'); - }, - _getTabName: function(anchor) { - return anchor.attr('data-value'); - } - }); - Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); + return null; + }, + setValue: function(el, value) { + var self = this; + var anchors = $(el).find('li:not(.treeview)').children('a'); + anchors.each(function() { // eslint-disable-line consistent-return + if (self._getTabName($(this)) === value) { + $(this).tab('show'); + return false; + } + }); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + // This event is triggered by deactivateOtherTabs, which is triggered by + // shown. The deactivation of other tabs must occur before Shiny gets the + // input value. + $(el).on('change.tabItemInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.tabItemInputBinding'); + }, + _getTabName: function(anchor) { + return anchor.attr('data-value'); + } +}); +Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); diff --git a/srcjs/output_binding_menu.js b/srcjs/output_binding_menu.js index c11ae612..047893cc 100644 --- a/srcjs/output_binding_menu.js +++ b/srcjs/output_binding_menu.js @@ -1,45 +1,45 @@ - /* global Shiny */ +/* global Shiny */ - // menuOutputBinding - // ------------------------------------------------------------------ - // Based on Shiny.htmlOutputBinding, but instead of putting the result in a - // wrapper div, it replaces the origin DOM element with the new DOM elements, - // copying over the ID and class. - var menuOutputBinding = new Shiny.OutputBinding(); - $.extend(menuOutputBinding, { - find: function(scope) { - return $(scope).find('.shinydashboard-menu-output'); - }, - onValueError: function(el, err) { - Shiny.unbindAll(el); - this.renderError(el, err); - }, - renderValue: function(el, data) { - Shiny.unbindAll(el); +// menuOutputBinding +// ------------------------------------------------------------------ +// Based on Shiny.htmlOutputBinding, but instead of putting the result in a +// wrapper div, it replaces the origin DOM element with the new DOM elements, +// copying over the ID and class. +var menuOutputBinding = new Shiny.OutputBinding(); +$.extend(menuOutputBinding, { + find: function(scope) { + return $(scope).find('.shinydashboard-menu-output'); + }, + onValueError: function(el, err) { + Shiny.unbindAll(el); + this.renderError(el, err); + }, + renderValue: function(el, data) { + Shiny.unbindAll(el); - var html; - var dependencies = []; - if (data === null) { - return; - } else if (typeof(data) === 'string') { - html = data; - } else if (typeof(data) === 'object') { - html = data.html; - dependencies = data.deps; - } + var html; + var dependencies = []; + if (data === null) { + return; + } else if (typeof(data) === 'string') { + html = data; + } else if (typeof(data) === 'object') { + html = data.html; + dependencies = data.deps; + } - var $html = $($.parseHTML(html)); + var $html = $($.parseHTML(html)); - // Convert the inner contents to HTML, and pass to renderHtml - Shiny.renderHtml($html.html(), el, dependencies); + // Convert the inner contents to HTML, and pass to renderHtml + Shiny.renderHtml($html.html(), el, dependencies); - // Extract class of wrapper, and add them to the wrapper element - el.className = 'shinydashboard-menu-output shiny-bound-output ' + - $html.attr('class'); + // Extract class of wrapper, and add them to the wrapper element + el.className = 'shinydashboard-menu-output shiny-bound-output ' + + $html.attr('class'); - Shiny.initializeInputs(el); - Shiny.bindAll(el); - } - }); - Shiny.outputBindings.register(menuOutputBinding, - "shinydashboard.menuOutputBinding"); + Shiny.initializeInputs(el); + Shiny.bindAll(el); + } +}); +Shiny.outputBindings.register(menuOutputBinding, + "shinydashboard.menuOutputBinding"); diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index fc3c72ea..ac22c5fb 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -1,15 +1,15 @@ - // Optionally disable sidebar - if ($("section.sidebar").data("disable")) { - $("body").addClass("sidebar-collapse"); - $(".navbar > .sidebar-toggle").hide(); - } +// Optionally disable sidebar +if ($("section.sidebar").data("disable")) { + $("body").addClass("sidebar-collapse"); + $(".navbar > .sidebar-toggle").hide(); +} - // Trigger the resize event when the sidebar is collapsed/expanded - // (this allows images to be responsive and resize themselves) - $(document).on("click", ".sidebar-toggle", function() { - $(window).trigger("resize"); - }); +// Trigger the resize event when the sidebar is collapsed/expanded +// (this allows images to be responsive and resize themselves) +$(document).on("click", ".sidebar-toggle", function() { + $(window).trigger("resize"); +}); - $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); - }); +$(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); +}); diff --git a/srcjs/tabs.js b/srcjs/tabs.js index 154cd622..63def6f3 100644 --- a/srcjs/tabs.js +++ b/srcjs/tabs.js @@ -1,46 +1,46 @@ - // This function handles a special case in the AdminLTE sidebar: when there - // is a sidebar-menu with items, and one of those items has sub-items, and - // they are used for tab navigation. Normally, if one of the items is - // selected and then a sub-item is clicked, both the item and sub-item will - // retain the "active" class, so they will both be highlighted. This happens - // because they're not designed to be used together for tab panels. This - // code ensures that only one item will have the "active" class. - var deactivateOtherTabs = function() { - var $this = $(this); - var $sidebarMenu = $this.closest("ul.sidebar-menu"); - - // Find all tab links under sidebar-menu - var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); - - // If any other items are active, deactivate them - $tablinks.not($this).parent("li").removeClass("active"); - - // Trigger event for the tabItemInputBinding - $sidebarMenu.trigger('change.tabItemInputBinding'); - }; - - $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', - deactivateOtherTabs); - - - // When document is ready, if there is a sidebar menu with no activated tabs, - // activate the one specified by `data-start-selected`, or if that's not - // present, the first one. - var ensureActivatedTab = function() { - var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); - - // If there's a `data-start-selected` attribute and we can find a tab with - // that name, activate it. - var $startTab = $tablinks.filter("[data-start-selected='1']"); - if ($startTab.length !== 0) { - $startTab.tab("show"); - return; - } - - // If we got this far, just activate the first tab. - if (! $tablinks.parent("li").hasClass("active") ) { - $tablinks.first().tab("show"); - } - }; - - ensureActivatedTab(); +// This function handles a special case in the AdminLTE sidebar: when there +// is a sidebar-menu with items, and one of those items has sub-items, and +// they are used for tab navigation. Normally, if one of the items is +// selected and then a sub-item is clicked, both the item and sub-item will +// retain the "active" class, so they will both be highlighted. This happens +// because they're not designed to be used together for tab panels. This +// code ensures that only one item will have the "active" class. +var deactivateOtherTabs = function() { + var $this = $(this); + var $sidebarMenu = $this.closest("ul.sidebar-menu"); + + // Find all tab links under sidebar-menu + var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); + + // If any other items are active, deactivate them + $tablinks.not($this).parent("li").removeClass("active"); + + // Trigger event for the tabItemInputBinding + $sidebarMenu.trigger('change.tabItemInputBinding'); +}; + +$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', + deactivateOtherTabs); + + +// When document is ready, if there is a sidebar menu with no activated tabs, +// activate the one specified by `data-start-selected`, or if that's not +// present, the first one. +var ensureActivatedTab = function() { + var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); + + // If there's a `data-start-selected` attribute and we can find a tab with + // that name, activate it. + var $startTab = $tablinks.filter("[data-start-selected='1']"); + if ($startTab.length !== 0) { + $startTab.tab("show"); + return; + } + + // If we got this far, just activate the first tab. + if (! $tablinks.parent("li").hasClass("active") ) { + $tablinks.first().tab("show"); + } +}; + +ensureActivatedTab(); diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index ffc29af3..f7edcd7d 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -7,6 +7,23 @@ module.exports = function(grunt) { grunt.initConfig({ pkg: pkgInfo(), + + clean: { + options: { force: true }, + src: [ + destdirjs + "shinydashboard.js", + destdirjs + "shinydashboard.js.map", + destdirjs + "shinydashboard.min.js", + destdirjs + "shinydashboard.min.js.map", + destdirjs + "AdminLTE/app.js", + destdirjs + "AdminLTE/app.js.map", + destdirjs + "AdminLTE/app.min.js", + destdirjs + "AdminLTE/app.min.js.map", + destdircss + "AdminLTE/AdminLTE.min.css", + destdircss + "AdminLTE/_all-skins.min.css", + ] + }, + concat: { options: { process: function(src, filepath) { @@ -25,43 +42,79 @@ module.exports = function(grunt) { srcdirjs + '_end.js' ], dest: destdirjs + 'shinydashboard.js' + }, + adminlte: { + src: [ + srcdirjs + 'AdminLTE/app.js' + ], + dest: destdirjs + 'AdminLTE/app.js' } }, uglify: { + shinydashboard: { + options: { + banner: '/*! <%= pkg.name %> <%= pkg.version %> | ' + + '(c) 2017-<%= grunt.template.today("yyyy") %> RStudio, Inc. | ' + + 'License: <%= pkg.license %> */\n', + sourceMap: true, + // Base the .min.js sourcemap off of the .js sourcemap created by concat + sourceMapIn: destdirjs + 'shinydashboard.js.map', + sourceMapIncludeSources: true + }, + src: destdirjs + 'shinydashboard.js', + dest: destdirjs + 'shinydashboard.min.js' + }, adminlte: { options: { sourceMap: true }, - src: destdirjs + '/AdminLTE/app.js', - dest: destdirjs + '/AdminLTE/app.min.js' + src: srcdirjs + 'AdminLTE/app.js', + dest: destdirjs + 'AdminLTE/app.min.js' } }, cssmin: { adminlte: { - src: srcdircss + '/AdminLTE/AdminLTE.css', - dest: srcdircss + '/AdminLTE/AdminLTE.min.css' + src: srcdircss + 'AdminLTE/AdminLTE.css', + dest: destdircss + 'AdminLTE/AdminLTE.min.css' }, adminlte_themes: { - src: srcdircss + '/AdminLTE/_all-skins.css', - dest: srcdircss + '/AdminLTE/_all-skins.min.css' + src: srcdircss + 'AdminLTE/_all-skins.css', + dest: destdircss + 'AdminLTE/_all-skins.min.css' } }, - jshint: { + eslint: { options: { - force: true // Don't abort if there are JSHint warnings + extends: 'eslint:recommended', + rules: { + "consistent-return": 1, + "dot-location": [1, "property"], + "eqeqeq": 1, + "no-undef": 1, + "no-unused-vars": [1, {"args": "none"}], + "guard-for-in": 1, + "semi": [1, "always"] + }, + envs: [ + "browser", + "jquery" + ], + globals: ["strftime"] }, - shinydashboard: { - src: destdirjs + '/shinydashboard.js', - } + shinydashboard: [ + srcdirjs + 'tabs.js', + srcdirjs + 'sidebar.js', + srcdirjs + 'output_binding_menu.js', + srcdirjs + 'input_binding_tabItem.js', + ] }, watch: { shinydashboard: { - files: '<%= jshint.shinydashboard.src %>', - tasks: ['newer:jshint:shinydashboard'] + files: '<%= concat.shinydashboard.src %>', + tasks: ['newer:concat:shinydashboard', 'newer:uglify:shinydashboard', 'newer:jshint:shinydashboard'] }, adminlte: { files: ['<%= uglify.adminlte.src %>', '<%= cssmin.adminlte.src %>'], @@ -70,18 +123,19 @@ module.exports = function(grunt) { } }); - grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-cssmin'); - grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-eslint'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-newer'); - - grunt.registerTask('default', ['newer:concat', 'newer:uglify', 'newer:cssmin', 'newer:jshint']); + grunt.registerTask('default', ['newer:concat', 'newer:eslint', 'newer:uglify', 'newer:cssmin']); + // --------------------------------------------------------------------------- + // Utility functions + // --------------------------------------------------------------------------- // Return an object which merges information from package.json and the // DESCRIPTION file. @@ -113,4 +167,3 @@ module.exports = function(grunt) { return txt; } }; - diff --git a/tools/package.json b/tools/package.json index 1bf5a535..4f08c6af 100644 --- a/tools/package.json +++ b/tools/package.json @@ -6,6 +6,7 @@ "grunt-contrib-jshint": "^1.1.0", "grunt-contrib-uglify": "^2.1.0", "grunt-contrib-watch": "^1.0.0", + "grunt-eslint": "^19.0.0", "grunt-newer": "^1.2.0" } } diff --git a/tools/yarn.lock b/tools/yarn.lock index 7b0cd980..d807e9fb 100644 --- a/tools/yarn.lock +++ b/tools/yarn.lock @@ -6,6 +6,31 @@ abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + version "4.11.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -14,6 +39,10 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -32,6 +61,20 @@ array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + async@^1.5.0, async@^1.5.2, async@~1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -40,6 +83,14 @@ async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" +babel-code-frame@^6.16.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -88,6 +139,16 @@ bytes@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -110,7 +171,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.0.0, chalk@^1.1.1, chalk@~1.1.1: +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -120,12 +181,26 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@~1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + clean-css@~4.0.3: version "4.0.7" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.7.tgz#d8fa8b4d87a125f38fa3d64afc59abfc68ba7790" dependencies: source-map "0.5.x" +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + cli@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" @@ -141,6 +216,14 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + coffee-script@~1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz#12938bcf9be1948fa006f92e0c4c9e81705108c0" @@ -153,7 +236,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.1: +concat-stream@^1.4.1, concat-stream@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -181,6 +264,12 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -192,7 +281,7 @@ dateformat@~1.0.12: get-stdin "^4.0.1" meow "^3.3.0" -debug@~2.2.0: +debug@^2.1.1, debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: @@ -202,6 +291,10 @@ decamelize@^1.0.0, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -209,10 +302,29 @@ define-properties@^1.1.2: foreach "^2.0.5" object-keys "^1.0.8" +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -259,35 +371,190 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.15" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@^3.0.0: + version "3.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.18.0.tgz#647e985c4ae71502d20ac62c109f66d5104c8a4b" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d" + dependencies: + acorn "4.0.4" + acorn-jsx "^3.0.0" + esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + eventemitter2@~0.4.13: version "0.4.14" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + exit@0.1.2, exit@0.1.x, exit@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" dependencies: websocket-driver ">=0.5.1" -figures@^1.0.1: +figures@^1.0.1, figures@^1.3.5: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -301,6 +568,15 @@ findup-sync@~0.3.0: dependencies: glob "~5.0.0" +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -319,6 +595,16 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -327,9 +613,9 @@ getobject@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c" -glob@^7.0.5, glob@~7.0.0: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@~7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -338,9 +624,9 @@ glob@^7.0.5, glob@~7.0.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.1, glob@~7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" +glob@^7.0.5, glob@~7.0.0: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -359,6 +645,21 @@ glob@~5.0.0: once "^1.3.0" path-is-absolute "^1.0.0" +globals@^9.14.0: + version "9.16.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + globule@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" @@ -422,6 +723,13 @@ grunt-contrib-watch@^1.0.0: lodash "^3.10.1" tiny-lr "^0.2.1" +grunt-eslint@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/grunt-eslint/-/grunt-eslint-19.0.0.tgz#bb74c379061599cec1f66169def2a89d862d861b" + dependencies: + chalk "^1.0.0" + eslint "^3.0.0" + grunt-known-options@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.0.tgz#a4274eeb32fa765da5a7a3b1712617ce3b144149" @@ -529,6 +837,14 @@ iconv-lite@~0.4.13: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" +ignore@^3.2.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -546,6 +862,28 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -566,6 +904,51 @@ is-finite@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-my-json-valid@^2.10.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -574,7 +957,7 @@ isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@~1.0.0: +isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -582,7 +965,11 @@ isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" -js-yaml@~3.5.2: +js-tokens@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" + +js-yaml@^3.5.1, js-yaml@~3.5.2: version "3.5.5" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.5.5.tgz#0377c38017cabc7322b0d1fbcd25a491641f2fbe" dependencies: @@ -602,6 +989,20 @@ jshint@~2.9.4: shelljs "0.3.x" strip-json-comments "1.0.x" +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + kind-of@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" @@ -612,6 +1013,13 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + livereload-js@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.2.2.tgz#6c87257e648ab475bc24ea257457edcc1f8d0bc2" @@ -634,7 +1042,7 @@ lodash@^3.10.1, lodash@~3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@~4.16.4: +lodash@^4.0.0, lodash@^4.3.0, lodash@~4.16.4: version "4.16.6" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" @@ -701,14 +1109,32 @@ mime-types@~2.1.13: dependencies: brace-expansion "^1.0.0" +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + minimist@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -756,6 +1182,25 @@ once@^1.3.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -780,6 +1225,10 @@ path-is-absolute@^1.0.0, path-is-absolute@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -802,6 +1251,14 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + pretty-bytes@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" @@ -813,6 +1270,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + qs@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be" @@ -865,6 +1326,20 @@ readable-stream@^2.2.2: string_decoder "~0.10.x" util-deprecate "~1.0.1" +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -882,17 +1357,35 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -resolve@~1.1.0: +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve@^1.1.6, resolve@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@^2.5.2: +rimraf@^2.2.8, rimraf@^2.5.2: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -902,6 +1395,16 @@ rimraf@~2.2.8: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + "semver@2 || 3 || 4 || 5": version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -910,10 +1413,22 @@ shelljs@0.3.x: version "0.3.0" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + source-map@0.5.x, source-map@^0.5.3, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -940,6 +1455,21 @@ statuses@1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -956,6 +1486,10 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -966,10 +1500,33 @@ strip-json-comments@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + tiny-lr@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.2.1.tgz#b3fdba802e5d56a33c2f6f10794b32e477ac729d" @@ -985,6 +1542,16 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + type-is@~1.6.10: version "1.6.14" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" @@ -1021,6 +1588,12 @@ uri-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32" +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -1056,10 +1629,24 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" From eb55652776aa3fcbeb21c2565362b0b8a87382cc Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 05:16:07 +0000 Subject: [PATCH 04/16] added findAttribute function --- R/dashboardPage.R | 6 +++--- R/utils.R | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/R/dashboardPage.R b/R/dashboardPage.R index 40e78fea..e35c9eca 100644 --- a/R/dashboardPage.R +++ b/R/dashboardPage.R @@ -57,9 +57,9 @@ dashboardPage <- function(header, sidebar, body, title = NULL, body ) - # if the sidebar has the class "start-collapsed", it means that the user set - # the `collapsed` argument of `dashboardSidebar` to TRUE - collapsed <- "start-collapsed" %in% strsplit(sidebar$attribs$class, " ")[[1]] + # if the sidebar has the attribute `data-collapsed = "true"`, it means that + # the user set the `collapsed` argument of `dashboardSidebar` to TRUE + collapsed <- findAttribute(sidebar, "data-collapsed", "true") addDeps( tags$body( diff --git a/R/utils.R b/R/utils.R index 4f56b558..5f7563ab 100644 --- a/R/utils.R +++ b/R/utils.R @@ -198,3 +198,24 @@ tagMatches <- function(item, ..., id = NULL, name = NULL, class = NULL) { TRUE } + +# This function takes a DOM element/tag object and reccurs within it until +# it finds a child which has an attribute called `attr` and with value `val` +# (and returns TRUE). If it finds an element with an attribute called `attr` +# whose value is NOT `val`, it returns FALSE. If it exhausts all children +# and it doesn't find an element with an attribute called `attr`, it also +# returns FALSE +findAttribute <- function(x, attr, val) { + if (is.atomic(x)) return(FALSE) # exhausted this branch of the tree + + if (!is.null(x$attribs[[attr]])) { # found attribute called `attr` + if (identical(x$attribs[[attr]], val)) return(TRUE) + else return(FALSE) + } + + if (length(x$children) > 0) { # recursion + return(any(unlist(lapply(x$children, findAttribute, attr, val)))) + } + + return(FALSE) # found no attribute called `attr` +} From 18b3505603def0aae350fb09364d9c25d6ddc47a Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 05:20:07 +0000 Subject: [PATCH 05/16] call ensureActivatedTab() for dynamic sidebar menus --- inst/shinydashboard.js | 1 + inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/output_binding_menu.js | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index c0ec4c60..8ddfd7dd 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -116,6 +116,7 @@ $.extend(menuOutputBinding, { Shiny.initializeInputs(el); Shiny.bindAll(el); + ensureActivatedTab(); // eslint-disable-line } }); Shiny.outputBindings.register(menuOutputBinding, diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 875dc679..b8432cfd 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file diff --git a/inst/shinydashboard.min.js b/inst/shinydashboard.min.js index d96c6940..bd0230c0 100644 --- a/inst/shinydashboard.min.js +++ b/inst/shinydashboard.min.js @@ -1,4 +1,4 @@ /*! shinydashboard 0.5.3.9000 | (c) 2017-2017 RStudio, Inc. | License: GPL-2 | file LICENSE */ -$(function(){var a=function(){var a=$(this),b=a.closest("ul.sidebar-menu"),c=b.find("a[data-toggle='tab']");c.not(a).parent("li").removeClass("active"),b.trigger("change.tabItemInputBinding")};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||a.first().tab("show"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize")}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,b){Shiny.unbindAll(a);var c,d=[];if(null!==b){"string"==typeof b?c=b:"object"==typeof b&&(c=b.html,d=b.deps);var e=$($.parseHTML(c));Shiny.renderHtml(e.html(),a,d),a.className="shinydashboard-menu-output shiny-bound-output "+e.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a)}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find("ul.sidebar-menu")},getValue:function(a){var b=$(a).find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput")}); +$(function(){var a=function(){var a=$(this),b=a.closest("ul.sidebar-menu"),c=b.find("a[data-toggle='tab']");c.not(a).parent("li").removeClass("active"),b.trigger("change.tabItemInputBinding")};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||a.first().tab("show"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize")}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find("ul.sidebar-menu")},getValue:function(a){var b=$(a).find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput")}); //# sourceMappingURL=shinydashboard.min.js.map \ No newline at end of file diff --git a/inst/shinydashboard.min.js.map b/inst/shinydashboard.min.js.map index dc88432c..8f786d5a 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","window","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","attr","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","setValue","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WACxB,GAAIC,GAAQF,EAAEG,MACVC,EAAeF,EAAMG,QAAO,mBAG5BC,EAAYF,EAAaG,KAAI,uBAGjCD,GAAUE,IAAGN,GAAQO,OAAM,MAAOC,YAAW,UAG7CN,EAAaO,QAAO,8BAGtBX,GAAEY,UAAUC,GAAE,eAAiB,qCAChBZ,EAMf,IAAIa,GAAqB,WACvB,GAAIR,GAAYN,EAAA,mBAAqBO,KAAI,KAAMQ,OAAM,uBAIjDC,EAAYV,EAAUS,OAAM,4BAChC,OAAyB,KAAtBC,EAAWC,WACZD,GAAUE,IAAG,aAKTZ,EAAUG,OAAM,MAAOU,SAAQ,WACnCb,EAAUc,QAAQF,IAAG,SAIzBJ,KC5CGd,EAAA,mBAAsBqB,KAAI,aAC3BrB,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAKjCvB,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAEwB,QAAQb,QAAO,YAGnBX,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMsB,KAAI,kBAAmBd,QAAO,UCNxC,IAAIe,GAAoB,GAAIC,OAAMC,aAClC5B,GAAE6B,OAAOH,GACPnB,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,gCAEtBwB,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChB7B,KAAKgC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIX,GACxBM,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATjB,EAAJ,CAE4B,gBAAX,GACfgB,EAAOhB,EACmB,gBAAX,KACfgB,EAAOhB,EAAKgB,KACZC,EAAejB,EAAKkB,KAGtB,IAAIC,GAAQxC,EAAAA,EAAIyC,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMI,KAAI,SAEzBjB,MAAMkB,iBAAiBb,GACvBL,MAAMmB,QAAQd,OAGlBL,MAAMoB,eAAeC,SAAStB,EACA,mCCtC9B,IAAIuB,GAAsB,GAAItB,OAAMuB,YACpClD,GAAE6B,OAAOoB,GACP1C,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,oBAEtB4C,SAAU,SAASnB,GACjB,GAAIoB,GAASpD,EAAEgC,GAAIzB,KAAI,4BAA6B8C,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOnC,OACFd,KAAKmD,YAAYF,GAEnB,MAETG,SAAU,SAASvB,EAAIwB,GACrB,GAAIC,GAAOtD,KACPuD,EAAU1D,EAAEgC,GAAIzB,KAAI,qBAAsB8C,SAAQ,IACtDK,GAAQC,KAAK,WACX,GAAIF,EAAKH,YAAWtD,EAAGG,SAAWqD,EAEhC,MADAxD,GAAEG,MAAMe,IAAG,SACJ,KAIb0C,eAAgB,SAAS5B,EAAIX,GACvBA,EAAKwC,eAAc,UACrB1D,KAAKoD,SAASvB,EAAIX,EAAKmC,QAE3BM,UAAW,SAAS9B,EAAI+B,GAItB/D,EAAEgC,GAAInB,GAAE,6BAA+B,WACrCkD,OAGJC,YAAa,SAAShC,GACpBhC,EAAEgC,GAAIiC,IAAG,yBAEXX,YAAa,SAASF,GACpB,MAAOA,GAAOR,KAAI,iBAGtBjB,MAAMuC,cAAclB,SAASC,EAAqB","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","window","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","attr","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","setValue","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WACxB,GAAIC,GAAQF,EAAEG,MACVC,EAAeF,EAAMG,QAAO,mBAG5BC,EAAYF,EAAaG,KAAI,uBAGjCD,GAAUE,IAAGN,GAAQO,OAAM,MAAOC,YAAW,UAG7CN,EAAaO,QAAO,8BAGtBX,GAAEY,UAAUC,GAAE,eAAiB,qCAChBZ,EAMf,IAAIa,GAAqB,WACvB,GAAIR,GAAYN,EAAA,mBAAqBO,KAAI,KAAMQ,OAAM,uBAIjDC,EAAYV,EAAUS,OAAM,4BAChC,OAAyB,KAAtBC,EAAWC,WACZD,GAAUE,IAAG,aAKTZ,EAAUG,OAAM,MAAOU,SAAQ,WACnCb,EAAUc,QAAQF,IAAG,SAIzBJ,KC5CGd,EAAA,mBAAsBqB,KAAI,aAC3BrB,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAKjCvB,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAEwB,QAAQb,QAAO,YAGnBX,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMsB,KAAI,kBAAmBd,QAAO,UCNxC,IAAIe,GAAoB,GAAIC,OAAMC,aAClC5B,GAAE6B,OAAOH,GACPnB,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,gCAEtBwB,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChB7B,KAAKgC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIX,GACxBM,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATjB,EAAJ,CAE4B,gBAAX,GACfgB,EAAOhB,EACmB,gBAAX,KACfgB,EAAOhB,EAAKgB,KACZC,EAAejB,EAAKkB,KAGtB,IAAIC,GAAQxC,EAAAA,EAAIyC,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMI,KAAI,SAEzBjB,MAAMkB,iBAAiBb,GACvBL,MAAMmB,QAAQd,GACdlB,QAGJa,MAAMoB,eAAeC,SAAStB,EACA,mCCvC9B,IAAIuB,GAAsB,GAAItB,OAAMuB,YACpClD,GAAE6B,OAAOoB,GACP1C,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,oBAEtB4C,SAAU,SAASnB,GACjB,GAAIoB,GAASpD,EAAEgC,GAAIzB,KAAI,4BAA6B8C,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOnC,OACFd,KAAKmD,YAAYF,GAEnB,MAETG,SAAU,SAASvB,EAAIwB,GACrB,GAAIC,GAAOtD,KACPuD,EAAU1D,EAAEgC,GAAIzB,KAAI,qBAAsB8C,SAAQ,IACtDK,GAAQC,KAAK,WACX,GAAIF,EAAKH,YAAWtD,EAAGG,SAAWqD,EAEhC,MADAxD,GAAEG,MAAMe,IAAG,SACJ,KAIb0C,eAAgB,SAAS5B,EAAIX,GACvBA,EAAKwC,eAAc,UACrB1D,KAAKoD,SAASvB,EAAIX,EAAKmC,QAE3BM,UAAW,SAAS9B,EAAI+B,GAItB/D,EAAEgC,GAAInB,GAAE,6BAA+B,WACrCkD,OAGJC,YAAa,SAAShC,GACpBhC,EAAEgC,GAAIiC,IAAG,yBAEXX,YAAa,SAASF,GACpB,MAAOA,GAAOR,KAAI,iBAGtBjB,MAAMuC,cAAclB,SAASC,EAAqB","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n"]} \ No newline at end of file diff --git a/srcjs/output_binding_menu.js b/srcjs/output_binding_menu.js index 047893cc..3d5175a2 100644 --- a/srcjs/output_binding_menu.js +++ b/srcjs/output_binding_menu.js @@ -39,6 +39,7 @@ $.extend(menuOutputBinding, { Shiny.initializeInputs(el); Shiny.bindAll(el); + ensureActivatedTab(); // eslint-disable-line } }); Shiny.outputBindings.register(menuOutputBinding, From 5d96e62699d9210b7b4982f201577b8e6e7de736 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 05:32:24 +0000 Subject: [PATCH 06/16] add support for bookmarking the expanded/collapsed state of the whole sidebar --- R/dashboardSidebar.R | 13 ++++-- inst/shinydashboard.js | 57 +++++++++++++++++++++++-- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarCollapsed.js | 40 +++++++++++++++++ srcjs/sidebar.js | 13 ++++-- tools/Gruntfile.js | 2 + 8 files changed, 119 insertions(+), 12 deletions(-) create mode 100644 srcjs/input_binding_sidebarCollapsed.js diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 338a1be2..0e972f97 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -117,12 +117,19 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL ')))) } + # If we're restoring a bookmarked app, this holds the value of whether or not the + # sidebar was collapsed. If this is not the case, the default is whatever the user + # specified in the `collapsed` argument. + dataValue <- shiny::restoreInput(id = "sidebarCollapsed", + default = if (collapsed) "true" else "false") + # The expanded/collapsed state of the sidebar is actually set by adding a # class to the body (not to the sidebar). However, it makes sense for the # `collapsed` argument to belong in this function. So this information is - # just passed through (also as a class) to the `dashboardPage()` function - tags$aside(class = paste("main-sidebar", if (collapsed) "start-collapsed"), - custom_css, + # just passed through (as the `data-collapsed` attribute) to the + # `dashboardPage()` function + tags$aside( + class = "main-sidebar", `data-collapsed` = dataValue, custom_css, tags$section( class = "sidebar", `data-disable` = if (disable) 1 else NULL, diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 8ddfd7dd..99dd7ec7 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -56,16 +56,23 @@ ensureActivatedTab(); //--------------------------------------------------------------------- // Source file: ../srcjs/sidebar.js -// Optionally disable sidebar +// Optionally disable sidebar (set through the `disable` argument +// to the `dashboardSidebar` function) if ($("section.sidebar").data("disable")) { $("body").addClass("sidebar-collapse"); $(".navbar > .sidebar-toggle").hide(); } -// Trigger the resize event when the sidebar is collapsed/expanded -// (this allows images to be responsive and resize themselves) +// Whenever the sidebar expand/collapse button is clicked: $(document).on("click", ".sidebar-toggle", function() { + // 1) Trigger the resize event (so images are responsive and resize) $(window).trigger("resize"); + + // 2) Update the value for the sidebar's input binding + var $obj = $('.main-sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.toggleValue($obj); + $obj.trigger('change'); }); $(document).on("click", ".treeview > a", function() { @@ -174,6 +181,50 @@ $.extend(tabItemInputBinding, { }); Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); +//--------------------------------------------------------------------- +// Source file: ../srcjs/input_binding_sidebarCollapsed.js + +/* global Shiny */ + +// sidebarCollapsedInputBinding +// ------------------------------------------------------------------ +// This keeps tracks of whether the sidebar is expanded (default) +// or collapsed +var sidebarCollapsedInputBinding = new Shiny.InputBinding(); +$.extend(sidebarCollapsedInputBinding, { + find: function(scope) { + return $(scope).find('.main-sidebar').first(); + }, + getId: function(el) { + return "sidebarCollapsed"; + }, + getValue: function(el) { + return $(el).attr("data-collapsed"); + }, + setValue: function(el, value) { + $(el).attr("data-collapsed", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current === "true") ? "false" : "true"; + this.setValue(el, newVal); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarCollapsedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarCollapsedInputBinding'); + } +}); +Shiny.inputBindings.register(sidebarCollapsedInputBinding, + 'shinydashboard.sidebarCollapsedInputBinding'); + //--------------------------------------------------------------------- // Source file: ../srcjs/_end.js diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index b8432cfd..56ddbf10 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file diff --git a/inst/shinydashboard.min.js b/inst/shinydashboard.min.js index bd0230c0..af839729 100644 --- a/inst/shinydashboard.min.js +++ b/inst/shinydashboard.min.js @@ -1,4 +1,4 @@ /*! shinydashboard 0.5.3.9000 | (c) 2017-2017 RStudio, Inc. | License: GPL-2 | file LICENSE */ -$(function(){var a=function(){var a=$(this),b=a.closest("ul.sidebar-menu"),c=b.find("a[data-toggle='tab']");c.not(a).parent("li").removeClass("active"),b.trigger("change.tabItemInputBinding")};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||a.first().tab("show"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize")}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find("ul.sidebar-menu")},getValue:function(a){var b=$(a).find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput")}); +$(function(){var a=function(){var a=$(this),b=a.closest("ul.sidebar-menu"),c=b.find("a[data-toggle='tab']");c.not(a).parent("li").removeClass("active"),b.trigger("change.tabItemInputBinding")};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||a.first().tab("show"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize");var a=$(".main-sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find("ul.sidebar-menu")},getValue:function(a){var b=$(a).find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-collapsed")},setValue:function(a,b){$(a).attr("data-collapsed",b)},toggleValue:function(a){var b=this.getValue(a),c="true"===b?"false":"true";this.setValue(a,c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarCollapsedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarCollapsedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarCollapsedInputBinding")}); //# sourceMappingURL=shinydashboard.min.js.map \ No newline at end of file diff --git a/inst/shinydashboard.min.js.map b/inst/shinydashboard.min.js.map index 8f786d5a..2a43522f 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","window","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","attr","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","setValue","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WACxB,GAAIC,GAAQF,EAAEG,MACVC,EAAeF,EAAMG,QAAO,mBAG5BC,EAAYF,EAAaG,KAAI,uBAGjCD,GAAUE,IAAGN,GAAQO,OAAM,MAAOC,YAAW,UAG7CN,EAAaO,QAAO,8BAGtBX,GAAEY,UAAUC,GAAE,eAAiB,qCAChBZ,EAMf,IAAIa,GAAqB,WACvB,GAAIR,GAAYN,EAAA,mBAAqBO,KAAI,KAAMQ,OAAM,uBAIjDC,EAAYV,EAAUS,OAAM,4BAChC,OAAyB,KAAtBC,EAAWC,WACZD,GAAUE,IAAG,aAKTZ,EAAUG,OAAM,MAAOU,SAAQ,WACnCb,EAAUc,QAAQF,IAAG,SAIzBJ,KC5CGd,EAAA,mBAAsBqB,KAAI,aAC3BrB,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAKjCvB,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAEwB,QAAQb,QAAO,YAGnBX,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMsB,KAAI,kBAAmBd,QAAO,UCNxC,IAAIe,GAAoB,GAAIC,OAAMC,aAClC5B,GAAE6B,OAAOH,GACPnB,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,gCAEtBwB,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChB7B,KAAKgC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIX,GACxBM,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATjB,EAAJ,CAE4B,gBAAX,GACfgB,EAAOhB,EACmB,gBAAX,KACfgB,EAAOhB,EAAKgB,KACZC,EAAejB,EAAKkB,KAGtB,IAAIC,GAAQxC,EAAAA,EAAIyC,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMI,KAAI,SAEzBjB,MAAMkB,iBAAiBb,GACvBL,MAAMmB,QAAQd,GACdlB,QAGJa,MAAMoB,eAAeC,SAAStB,EACA,mCCvC9B,IAAIuB,GAAsB,GAAItB,OAAMuB,YACpClD,GAAE6B,OAAOoB,GACP1C,KAAM,SAASuB,GACb,MAAO9B,GAAE8B,GAAOvB,KAAI,oBAEtB4C,SAAU,SAASnB,GACjB,GAAIoB,GAASpD,EAAEgC,GAAIzB,KAAI,4BAA6B8C,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOnC,OACFd,KAAKmD,YAAYF,GAEnB,MAETG,SAAU,SAASvB,EAAIwB,GACrB,GAAIC,GAAOtD,KACPuD,EAAU1D,EAAEgC,GAAIzB,KAAI,qBAAsB8C,SAAQ,IACtDK,GAAQC,KAAK,WACX,GAAIF,EAAKH,YAAWtD,EAAGG,SAAWqD,EAEhC,MADAxD,GAAEG,MAAMe,IAAG,SACJ,KAIb0C,eAAgB,SAAS5B,EAAIX,GACvBA,EAAKwC,eAAc,UACrB1D,KAAKoD,SAASvB,EAAIX,EAAKmC,QAE3BM,UAAW,SAAS9B,EAAI+B,GAItB/D,EAAEgC,GAAInB,GAAE,6BAA+B,WACrCkD,OAGJC,YAAa,SAAShC,GACpBhC,EAAEgC,GAAIiC,IAAG,yBAEXX,YAAa,SAASF,GACpB,MAAOA,GAAOR,KAAI,iBAGtBjB,MAAMuC,cAAclB,SAASC,EAAqB","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger the resize event when the sidebar is collapsed/expanded\n// (this allows images to be responsive and resize themselves)\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","window","$obj","inputBinding","toggleValue","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","attr","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","setValue","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n"]} \ No newline at end of file diff --git a/srcjs/input_binding_sidebarCollapsed.js b/srcjs/input_binding_sidebarCollapsed.js new file mode 100644 index 00000000..aa7b0c0b --- /dev/null +++ b/srcjs/input_binding_sidebarCollapsed.js @@ -0,0 +1,40 @@ +/* global Shiny */ + +// sidebarCollapsedInputBinding +// ------------------------------------------------------------------ +// This keeps tracks of whether the sidebar is expanded (default) +// or collapsed +var sidebarCollapsedInputBinding = new Shiny.InputBinding(); +$.extend(sidebarCollapsedInputBinding, { + find: function(scope) { + return $(scope).find('.main-sidebar').first(); + }, + getId: function(el) { + return "sidebarCollapsed"; + }, + getValue: function(el) { + return $(el).attr("data-collapsed"); + }, + setValue: function(el, value) { + $(el).attr("data-collapsed", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current === "true") ? "false" : "true"; + this.setValue(el, newVal); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarCollapsedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarCollapsedInputBinding'); + } +}); +Shiny.inputBindings.register(sidebarCollapsedInputBinding, + 'shinydashboard.sidebarCollapsedInputBinding'); diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index ac22c5fb..dd03bbc0 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -1,13 +1,20 @@ -// Optionally disable sidebar +// Optionally disable sidebar (set through the `disable` argument +// to the `dashboardSidebar` function) if ($("section.sidebar").data("disable")) { $("body").addClass("sidebar-collapse"); $(".navbar > .sidebar-toggle").hide(); } -// Trigger the resize event when the sidebar is collapsed/expanded -// (this allows images to be responsive and resize themselves) +// Whenever the sidebar expand/collapse button is clicked: $(document).on("click", ".sidebar-toggle", function() { + // 1) Trigger the resize event (so images are responsive and resize) $(window).trigger("resize"); + + // 2) Update the value for the sidebar's input binding + var $obj = $('.main-sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.toggleValue($obj); + $obj.trigger('change'); }); $(document).on("click", ".treeview > a", function() { diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index f7edcd7d..8ce893ba 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -39,6 +39,7 @@ module.exports = function(grunt) { srcdirjs + 'sidebar.js', srcdirjs + 'output_binding_menu.js', srcdirjs + 'input_binding_tabItem.js', + srcdirjs + 'input_binding_sidebarCollapsed.js', srcdirjs + '_end.js' ], dest: destdirjs + 'shinydashboard.js' @@ -108,6 +109,7 @@ module.exports = function(grunt) { srcdirjs + 'sidebar.js', srcdirjs + 'output_binding_menu.js', srcdirjs + 'input_binding_tabItem.js', + srcdirjs + 'input_binding_sidebarCollapsed.js', ] }, From 2cf3564f4b1a1cb3252abcaf2639a8d5feb0a19f Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 21 Apr 2017 18:26:36 +0100 Subject: [PATCH 07/16] * Added Shiny input to keep track of which sidebar menuItem is expanded (if any), which makes bookmarking the exact state of the sidebar trivial. * Better shown/hidden mechanic for Shiny inputs inside collapsible menuItems. --- R/dashboardSidebar.R | 41 ++++++++++- inst/shinydashboard.js | 85 +++++++++++++++++----- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- man/sidebarMenu.Rd | 13 +++- srcjs/input_binding_sidebarmenuExpanded.js | 29 ++++++++ srcjs/input_binding_tabItem.js | 14 ++-- srcjs/sidebar.js | 15 +++- srcjs/tabs.js | 23 +++--- tools/Gruntfile.js | 2 + 11 files changed, 186 insertions(+), 42 deletions(-) create mode 100644 srcjs/input_binding_sidebarmenuExpanded.js diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 0e972f97..3595873b 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -243,6 +243,13 @@ sidebarSearchForm <- function(textId, buttonId, label = "Search...", #' @param selected If \code{TRUE}, this \code{menuItem} or \code{menuSubItem} #' will start selected. If no item have \code{selected=TRUE}, then the first #' \code{menuItem} will start selected. +#' @param expandedName A unique name given to each \code{menuItem} that serves +#' to indicate which one (if any) is currently expanded. (This is only applicable +#' to \code{menuItem}s that have children and it is mostly only useful for +#' bookmarking state.) +#' @param startExpanded Should this \code{menuItem} be expanded on app startup? +#' (This is only applicable to \code{menuItem}s that have children, and only +#' one of these can be expanded at any given time). #' @param ... For menu items, this may consist of \code{\link{menuSubItem}}s. #' @param .list An optional list containing items to put in the menu Same as the #' \code{...} arguments, but in list format. This can be useful when working @@ -270,7 +277,9 @@ sidebarMenu <- function(..., id = NULL, .list = NULL) { # Given a menuItem and a logical value for `selected`, set the # data-start-selected attribute to the appropriate value (1 or 0). selectItem <- function(item, selected) { - if (length(item$children) == 0) { + + # in the cases that the children of menuItems are NOT menuSubItems + if (is.atomic(item) || length(item$children) == 0) { return(item) } @@ -281,6 +290,7 @@ sidebarMenu <- function(..., id = NULL, .list = NULL) { # data-start-selected="1". The []<- assignment is to preserve # attributes. item$children[] <- lapply(item$children, function(child) { + # Find the appropriate child if (tagMatches(child, name = "a", `data-toggle` = "tab")) { child$attribs[["data-start-selected"]] <- value @@ -335,18 +345,25 @@ sidebarMenu <- function(..., id = NULL, .list = NULL) { item }) } + # This is a 0 height div, whose only purpose is to hold the tabName of the currently + # selected menuItem in its `data-value` attribute. This is the DOM element that is + # bound to tabItemInputBinding in the JS side. + items[[length(items) + 1]] <- div(id = id, + class = "sidebarMenuSelectedTabItem", `data-value` = selectedTabName %OR% "null") } # Use do.call so that we don't add an extra list layer to the children of the # ul tag. This makes it a little easier to traverse the tree to search for # selected items to restore. - do.call(tags$ul, c(id = id, class = "sidebar-menu", items)) + do.call(tags$ul, c(class = "sidebar-menu", items)) } #' @rdname sidebarMenu #' @export menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "green", - tabName = NULL, href = NULL, newtab = TRUE, selected = NULL) { + tabName = NULL, href = NULL, newtab = TRUE, selected = NULL, + expandedName = as.character(gsub("[[:space:]]", "", text)), + startExpanded = FALSE) { subItems <- list(...) if (!is.null(icon)) tagAssert(icon, type = "i") @@ -401,6 +418,18 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr ) } + # If we're restoring a bookmarked app, this holds the value of what menuItem (if any) + # was expanded (this has be to stored separately from the selected menuItem, since + # these actually independent in AdminLTE). If no menuItem was expanded, `dataExpanded` + # is NULL. However, we want to this input to get passed on (and not dropped), so we + # do `%OR% ""` to assure this. + default <- if (startExpanded) expandedName else "" + dataExpanded <- shiny::restoreInput(id = "sidebarItemExpanded", default) %OR% "" + + # If `dataExpanded` is not the empty string, we need to check that it is eqaul to the + # this menuItem's `expandedName`` + isExpanded <- nzchar(dataExpanded) && (dataExpanded == expandedName) + tags$li(class = "treeview", a(href = href, icon, @@ -410,7 +439,11 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr # Use do.call so that we don't add an extra list layer to the children of the # ul tag. This makes it a little easier to traverse the tree to search for # selected items to restore. - do.call(tags$ul, c(class = "treeview-menu", subItems)) + do.call(tags$ul, c( + class = paste0("treeview-menu", if (isExpanded) " menu-open" else ""), + style = paste0("display: ", if (isExpanded) "block;" else "none;"), + `data-expanded` = expandedName, + subItems)) ) } diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 99dd7ec7..8bd4eec9 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -14,28 +14,31 @@ $(function() { // because they're not designed to be used together for tab panels. This // code ensures that only one item will have the "active" class. var deactivateOtherTabs = function() { - var $this = $(this); - var $sidebarMenu = $this.closest("ul.sidebar-menu"); - - // Find all tab links under sidebar-menu - var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); + // Find all tab links under sidebar-menu even if they don't have a + // tabName (which is why the second selector is necessary) + var $tablinks = $(".sidebar-menu a[data-toggle='tab']," + + ".sidebar-menu li.treeview > a"); // If any other items are active, deactivate them - $tablinks.not($this).parent("li").removeClass("active"); + $tablinks.not($(this)).parent("li").removeClass("active"); // Trigger event for the tabItemInputBinding - $sidebarMenu.trigger('change.tabItemInputBinding'); + var $obj = $('.sidebarMenuSelectedTabItem'); + var inputBinding = $obj.data('shiny-input-binding'); + if (typeof inputBinding !== 'undefined') { + inputBinding.setValue($obj, $(this).attr('data-value')); + $obj.trigger('change'); + } }; $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', deactivateOtherTabs); - // When document is ready, if there is a sidebar menu with no activated tabs, // activate the one specified by `data-start-selected`, or if that's not // present, the first one. var ensureActivatedTab = function() { - var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); + var $tablinks = $(".sidebar-menu a[data-toggle='tab']"); // If there's a `data-start-selected` attribute and we can find a tab with // that name, activate it. @@ -48,6 +51,8 @@ var ensureActivatedTab = function() { // If we got this far, just activate the first tab. if (! $tablinks.parent("li").hasClass("active") ) { $tablinks.first().tab("show"); + $(".sidebarMenuSelectedTabItem").attr("data-value", + $tablinks.first().attr("data-value")); } }; @@ -75,8 +80,21 @@ $(document).on("click", ".sidebar-toggle", function() { $obj.trigger('change'); }); +// Whenever we expand a menuItem (to be expandable, it must have children), +// update the value for the expandedItem's input binding (this is the +// tabName of the fist subMenuItem inside the menuItem that is currently +// expanded) $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); + var $menu = $(this).next(); + // If this menuItem was already open, then clicking on it again, + // should trigger the "hidden" event, so Shiny doesn't worry about + // it while it's hidden (and vice versa). + if ($menu.hasClass("menu-open")) $menu.trigger("hidden"); + else if ($menu.hasClass("treeview-menu")) $menu.trigger("shown"); + + // need to set timeout to account for the slideUp/slideDown animation + var $obj = $('section.sidebar.shiny-bound-input'); + setTimeout(function() { $obj.trigger('change'); }, 600); }); //--------------------------------------------------------------------- @@ -141,21 +159,20 @@ Shiny.outputBindings.register(menuOutputBinding, var tabItemInputBinding = new Shiny.InputBinding(); $.extend(tabItemInputBinding, { find: function(scope) { - return $(scope).find('ul.sidebar-menu'); + return $(scope).find('.sidebarMenuSelectedTabItem'); }, getValue: function(el) { - var anchor = $(el).find('li:not(.treeview).active').children('a'); - if (anchor.length === 1) - return this._getTabName(anchor); - - return null; + var value = $(el).attr('data-value'); + if (value === "null") return null; + return value; }, setValue: function(el, value) { var self = this; - var anchors = $(el).find('li:not(.treeview)').children('a'); + var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a'); anchors.each(function() { // eslint-disable-line consistent-return if (self._getTabName($(this)) === value) { $(this).tab('show'); + $(el).attr('data-value', self._getTabName($(this))); return false; } }); @@ -179,6 +196,7 @@ $.extend(tabItemInputBinding, { return anchor.attr('data-value'); } }); + Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); //--------------------------------------------------------------------- @@ -225,6 +243,39 @@ $.extend(sidebarCollapsedInputBinding, { Shiny.inputBindings.register(sidebarCollapsedInputBinding, 'shinydashboard.sidebarCollapsedInputBinding'); +//--------------------------------------------------------------------- +// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js + +/* global Shiny */ + +// sidebarmenuExpandedInputBinding +// ------------------------------------------------------------------ +// This keeps tracks of what menuItem (if any) is expanded +var sidebarmenuExpandedInputBinding = new Shiny.InputBinding(); +$.extend(sidebarmenuExpandedInputBinding, { + find: function(scope) { + return $(scope).find('section.sidebar'); + }, + getId: function(el) { + return "sidebarItemExpanded"; + }, + getValue: function(el) { + var $open = $(el).find('li ul.menu-open'); + if ($open.length === 1) return $open.attr('data-expanded'); + else return null; + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarmenuExpandedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarmenuExpandedInputBinding'); + } +}); +Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, + 'shinydashboard.sidebarmenuExpandedInputBinding'); + //--------------------------------------------------------------------- // Source file: ../srcjs/_end.js diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 56ddbf10..678ba31e 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/input_binding_sidebarmenuExpanded.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n // Find all tab links under sidebar-menu even if they don't have a\n // tabName (which is why the second selector is necessary)\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab'],\" +\n \".sidebar-menu li.treeview > a\");\n\n // If any other items are active, deactivate them\n $tablinks.not($(this)).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n var $obj = $('.sidebarMenuSelectedTabItem');\n var inputBinding = $obj.data('shiny-input-binding');\n if (typeof inputBinding !== 'undefined') {\n inputBinding.setValue($obj, $(this).attr('data-value'));\n $obj.trigger('change');\n }\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n $(\".sidebarMenuSelectedTabItem\").attr(\"data-value\",\n $tablinks.first().attr(\"data-value\"));\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n// Whenever we expand a menuItem (to be expandable, it must have children),\n// update the value for the expandedItem's input binding (this is the\n// tabName of the fist subMenuItem inside the menuItem that is currently\n// expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n var $menu = $(this).next();\n // If this menuItem was already open, then clicking on it again,\n // should trigger the \"hidden\" event, so Shiny doesn't worry about\n // it while it's hidden (and vice versa).\n if ($menu.hasClass(\"menu-open\")) $menu.trigger(\"hidden\");\n else if ($menu.hasClass(\"treeview-menu\")) $menu.trigger(\"shown\");\n\n // need to set timeout to account for the slideUp/slideDown animation\n var $obj = $('section.sidebar.shiny-bound-input');\n setTimeout(function() { $obj.trigger('change'); }, 600);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('.sidebarMenuSelectedTabItem');\n },\n getValue: function(el) {\n var value = $(el).attr('data-value');\n if (value === \"null\") return null;\n return value;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\n\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js\n\n/* global Shiny */\n\n// sidebarmenuExpandedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of what menuItem (if any) is expanded\nvar sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"sidebarItemExpanded\";\n },\n getValue: function(el) {\n var $open = $(el).find('li ul.menu-open');\n if ($open.length === 1) return $open.attr('data-expanded');\n else return null;\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file diff --git a/inst/shinydashboard.min.js b/inst/shinydashboard.min.js index af839729..7f7bcd08 100644 --- a/inst/shinydashboard.min.js +++ b/inst/shinydashboard.min.js @@ -1,4 +1,4 @@ /*! shinydashboard 0.5.3.9000 | (c) 2017-2017 RStudio, Inc. | License: GPL-2 | file LICENSE */ -$(function(){var a=function(){var a=$(this),b=a.closest("ul.sidebar-menu"),c=b.find("a[data-toggle='tab']");c.not(a).parent("li").removeClass("active"),b.trigger("change.tabItemInputBinding")};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||a.first().tab("show"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize");var a=$(".main-sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find("ul.sidebar-menu")},getValue:function(a){var b=$(a).find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-collapsed")},setValue:function(a,b){$(a).attr("data-collapsed",b)},toggleValue:function(a){var b=this.getValue(a),c="true"===b?"false":"true";this.setValue(a,c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarCollapsedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarCollapsedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarCollapsedInputBinding")}); +$(function(){var a=function(){var a=$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a");a.not($(this)).parent("li").removeClass("active");var b=$(".sidebarMenuSelectedTabItem"),c=b.data("shiny-input-binding");"undefined"!=typeof c&&(c.setValue(b,$(this).attr("data-value")),b.trigger("change"))};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$(".sidebar-menu a[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||(a.first().tab("show"),$(".sidebarMenuSelectedTabItem").attr("data-value",a.first().attr("data-value"))))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize");var a=$(".main-sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")}),$(document).on("click",".treeview > a",function(){var a=$(this).next();a.hasClass("menu-open")?a.trigger("hidden"):a.hasClass("treeview-menu")&&a.trigger("shown");var b=$("section.sidebar.shiny-bound-input");setTimeout(function(){b.trigger("change")},600)});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find(".sidebarMenuSelectedTabItem")},getValue:function(a){var b=$(a).attr("data-value");return"null"===b?null:b},setValue:function(a,b){var c=this,d=$(a).parent("ul.sidebar-menu").find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),$(a).attr("data-value",c._getTabName($(this))),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-collapsed")},setValue:function(a,b){$(a).attr("data-collapsed",b)},toggleValue:function(a){var b=this.getValue(a),c="true"===b?"false":"true";this.setValue(a,c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarCollapsedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarCollapsedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarCollapsedInputBinding");var f=new Shiny.InputBinding;$.extend(f,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"sidebarItemExpanded"},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.attr("data-expanded"):null},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(f,"shinydashboard.sidebarmenuExpandedInputBinding")}); //# sourceMappingURL=shinydashboard.min.js.map \ No newline at end of file diff --git a/inst/shinydashboard.min.js.map b/inst/shinydashboard.min.js.map index 2a43522f..b7f31bd4 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","window","$obj","inputBinding","toggleValue","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","attr","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","setValue","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\n // Find all tab links under sidebar-menu\n var $tablinks = $sidebarMenu.find(\"a[data-toggle='tab']\");\n\n // If any other items are active, deactivate them\n $tablinks.not($this).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n $sidebarMenu.trigger('change.tabItemInputBinding');\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\"ul.sidebar-menu\").find(\"a\").filter(\"[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('ul.sidebar-menu');\n },\n getValue: function(el) {\n var anchor = $(el).find('li:not(.treeview).active').children('a');\n if (anchor.length === 1)\n return this._getTabName(anchor);\n\n return null;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/input_binding_sidebarmenuExpanded.js"],"names":["$","deactivateOtherTabs","$tablinks","not","this","parent","removeClass","$obj","inputBinding","data","setValue","attr","trigger","document","on","ensureActivatedTab","$startTab","filter","length","tab","hasClass","first","addClass","hide","window","toggleValue","$menu","next","setTimeout","menuOutputBinding","Shiny","OutputBinding","extend","find","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","value","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n // Find all tab links under sidebar-menu even if they don't have a\n // tabName (which is why the second selector is necessary)\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab'],\" +\n \".sidebar-menu li.treeview > a\");\n\n // If any other items are active, deactivate them\n $tablinks.not($(this)).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n var $obj = $('.sidebarMenuSelectedTabItem');\n var inputBinding = $obj.data('shiny-input-binding');\n if (typeof inputBinding !== 'undefined') {\n inputBinding.setValue($obj, $(this).attr('data-value'));\n $obj.trigger('change');\n }\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n $(\".sidebarMenuSelectedTabItem\").attr(\"data-value\",\n $tablinks.first().attr(\"data-value\"));\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n// Whenever we expand a menuItem (to be expandable, it must have children),\n// update the value for the expandedItem's input binding (this is the\n// tabName of the fist subMenuItem inside the menuItem that is currently\n// expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n var $menu = $(this).next();\n // If this menuItem was already open, then clicking on it again,\n // should trigger the \"hidden\" event, so Shiny doesn't worry about\n // it while it's hidden (and vice versa).\n if ($menu.hasClass(\"menu-open\")) $menu.trigger(\"hidden\");\n else if ($menu.hasClass(\"treeview-menu\")) $menu.trigger(\"shown\");\n\n // need to set timeout to account for the slideUp/slideDown animation\n var $obj = $('section.sidebar.shiny-bound-input');\n setTimeout(function() { $obj.trigger('change'); }, 600);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('.sidebarMenuSelectedTabItem');\n },\n getValue: function(el) {\n var value = $(el).attr('data-value');\n if (value === \"null\") return null;\n return value;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\n\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js\n\n/* global Shiny */\n\n// sidebarmenuExpandedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of what menuItem (if any) is expanded\nvar sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"sidebarItemExpanded\";\n },\n getValue: function(el) {\n var $open = $(el).find('li ul.menu-open');\n if ($open.length === 1) return $open.attr('data-expanded');\n else return null;\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n"]} \ No newline at end of file diff --git a/man/sidebarMenu.Rd b/man/sidebarMenu.Rd index 1e04fa4e..cb85f30e 100644 --- a/man/sidebarMenu.Rd +++ b/man/sidebarMenu.Rd @@ -9,7 +9,9 @@ sidebarMenu(..., id = NULL, .list = NULL) menuItem(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "green", - tabName = NULL, href = NULL, newtab = TRUE, selected = NULL) + tabName = NULL, href = NULL, newtab = TRUE, selected = NULL, + expandedName = as.character(gsub("[[:space:]]", "", text)), + startExpanded = FALSE) menuSubItem(text, tabName = NULL, href = NULL, newtab = TRUE, icon = shiny::icon("angle-double-right"), selected = NULL) @@ -49,6 +51,15 @@ browser tab?} \item{selected}{If \code{TRUE}, this \code{menuItem} or \code{menuSubItem} will start selected. If no item have \code{selected=TRUE}, then the first \code{menuItem} will start selected.} + +\item{expandedName}{A unique name given to each \code{menuItem} that serves +to indicate which one (if any) is currently expanded. (This is only applicable +to \code{menuItem}s that have children and it is mostly only useful for +bookmarking state.)} + +\item{startExpanded}{Should this \code{menuItem} be expanded on app startup? +(This is only applicable to \code{menuItem}s that have children, and only +one of these can be expanded at any given time).} } \description{ A \code{dashboardSidebar} can contain a \code{sidebarMenu}. A diff --git a/srcjs/input_binding_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js new file mode 100644 index 00000000..edaaf51d --- /dev/null +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -0,0 +1,29 @@ +/* global Shiny */ + +// sidebarmenuExpandedInputBinding +// ------------------------------------------------------------------ +// This keeps tracks of what menuItem (if any) is expanded +var sidebarmenuExpandedInputBinding = new Shiny.InputBinding(); +$.extend(sidebarmenuExpandedInputBinding, { + find: function(scope) { + return $(scope).find('section.sidebar'); + }, + getId: function(el) { + return "sidebarItemExpanded"; + }, + getValue: function(el) { + var $open = $(el).find('li ul.menu-open'); + if ($open.length === 1) return $open.attr('data-expanded'); + else return null; + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarmenuExpandedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarmenuExpandedInputBinding'); + } +}); +Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, + 'shinydashboard.sidebarmenuExpandedInputBinding'); diff --git a/srcjs/input_binding_tabItem.js b/srcjs/input_binding_tabItem.js index 9335511e..3aa8cbaa 100644 --- a/srcjs/input_binding_tabItem.js +++ b/srcjs/input_binding_tabItem.js @@ -7,21 +7,20 @@ var tabItemInputBinding = new Shiny.InputBinding(); $.extend(tabItemInputBinding, { find: function(scope) { - return $(scope).find('ul.sidebar-menu'); + return $(scope).find('.sidebarMenuSelectedTabItem'); }, getValue: function(el) { - var anchor = $(el).find('li:not(.treeview).active').children('a'); - if (anchor.length === 1) - return this._getTabName(anchor); - - return null; + var value = $(el).attr('data-value'); + if (value === "null") return null; + return value; }, setValue: function(el, value) { var self = this; - var anchors = $(el).find('li:not(.treeview)').children('a'); + var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a'); anchors.each(function() { // eslint-disable-line consistent-return if (self._getTabName($(this)) === value) { $(this).tab('show'); + $(el).attr('data-value', self._getTabName($(this))); return false; } }); @@ -45,4 +44,5 @@ $.extend(tabItemInputBinding, { return anchor.attr('data-value'); } }); + Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index dd03bbc0..306e9716 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -17,6 +17,19 @@ $(document).on("click", ".sidebar-toggle", function() { $obj.trigger('change'); }); +// Whenever we expand a menuItem (to be expandable, it must have children), +// update the value for the expandedItem's input binding (this is the +// tabName of the fist subMenuItem inside the menuItem that is currently +// expanded) $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); + var $menu = $(this).next(); + // If this menuItem was already open, then clicking on it again, + // should trigger the "hidden" event, so Shiny doesn't worry about + // it while it's hidden (and vice versa). + if ($menu.hasClass("menu-open")) $menu.trigger("hidden"); + else if ($menu.hasClass("treeview-menu")) $menu.trigger("shown"); + + // need to set timeout to account for the slideUp/slideDown animation + var $obj = $('section.sidebar.shiny-bound-input'); + setTimeout(function() { $obj.trigger('change'); }, 600); }); diff --git a/srcjs/tabs.js b/srcjs/tabs.js index 63def6f3..4b6570b0 100644 --- a/srcjs/tabs.js +++ b/srcjs/tabs.js @@ -6,28 +6,31 @@ // because they're not designed to be used together for tab panels. This // code ensures that only one item will have the "active" class. var deactivateOtherTabs = function() { - var $this = $(this); - var $sidebarMenu = $this.closest("ul.sidebar-menu"); - - // Find all tab links under sidebar-menu - var $tablinks = $sidebarMenu.find("a[data-toggle='tab']"); + // Find all tab links under sidebar-menu even if they don't have a + // tabName (which is why the second selector is necessary) + var $tablinks = $(".sidebar-menu a[data-toggle='tab']," + + ".sidebar-menu li.treeview > a"); // If any other items are active, deactivate them - $tablinks.not($this).parent("li").removeClass("active"); + $tablinks.not($(this)).parent("li").removeClass("active"); // Trigger event for the tabItemInputBinding - $sidebarMenu.trigger('change.tabItemInputBinding'); + var $obj = $('.sidebarMenuSelectedTabItem'); + var inputBinding = $obj.data('shiny-input-binding'); + if (typeof inputBinding !== 'undefined') { + inputBinding.setValue($obj, $(this).attr('data-value')); + $obj.trigger('change'); + } }; $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', deactivateOtherTabs); - // When document is ready, if there is a sidebar menu with no activated tabs, // activate the one specified by `data-start-selected`, or if that's not // present, the first one. var ensureActivatedTab = function() { - var $tablinks = $("ul.sidebar-menu").find("a").filter("[data-toggle='tab']"); + var $tablinks = $(".sidebar-menu a[data-toggle='tab']"); // If there's a `data-start-selected` attribute and we can find a tab with // that name, activate it. @@ -40,6 +43,8 @@ var ensureActivatedTab = function() { // If we got this far, just activate the first tab. if (! $tablinks.parent("li").hasClass("active") ) { $tablinks.first().tab("show"); + $(".sidebarMenuSelectedTabItem").attr("data-value", + $tablinks.first().attr("data-value")); } }; diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index 8ce893ba..0e9d239a 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -40,6 +40,7 @@ module.exports = function(grunt) { srcdirjs + 'output_binding_menu.js', srcdirjs + 'input_binding_tabItem.js', srcdirjs + 'input_binding_sidebarCollapsed.js', + srcdirjs + 'input_binding_sidebarmenuExpanded.js', srcdirjs + '_end.js' ], dest: destdirjs + 'shinydashboard.js' @@ -110,6 +111,7 @@ module.exports = function(grunt) { srcdirjs + 'output_binding_menu.js', srcdirjs + 'input_binding_tabItem.js', srcdirjs + 'input_binding_sidebarCollapsed.js', + srcdirjs + 'input_binding_sidebarmenuExpanded.js' ] }, From c3a0c59880ccddb738e8718cbcb1b75d111d882f Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 21 Apr 2017 19:07:19 +0100 Subject: [PATCH 08/16] added hack on adminLTE/app.js in order to make the slideUp/slideDown css transitions look reasonable when its content is initially empty (use case is for hidden Shiny outputs that are not rendered until the first time the menuItem is expanded and reveal them -- i.e. first time that trigger("shown") is called) --- inst/AdminLTE/app.js | 6 ++++++ inst/AdminLTE/app.js.map | 2 +- inst/AdminLTE/app.min.js | 2 +- inst/AdminLTE/app.min.js.map | 2 +- srcjs/AdminLTE/README-shiny-mods.md | 11 +++++++++++ srcjs/AdminLTE/app.js | 6 ++++++ 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/inst/AdminLTE/app.js b/inst/AdminLTE/app.js index 3794e378..4df01176 100644 --- a/inst/AdminLTE/app.js +++ b/inst/AdminLTE/app.js @@ -427,6 +427,12 @@ function _init() { //Get the parent li var parent_li = $this.parent("li"); + // shiny-mod (see README-shiny-mods.md) + var shinyOutput = checkElement.find('.shiny-bound-output'); + if (shinyOutput.length !== 0 && shinyOutput.first().html().length === 0) { + shinyOutput.first().html('
'); + } + //Open the target menu and add the menu-open class checkElement.slideDown(animationSpeed, function () { //Add the class active to the parent li diff --git a/inst/AdminLTE/app.js.map b/inst/AdminLTE/app.js.map index 39a26e87..eecfaa73 100644 --- a/inst/AdminLTE/app.js.map +++ b/inst/AdminLTE/app.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../srcjs/AdminLTE/app.js"],"names":[],"mappings":"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","file":"app.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/AdminLTE/app.js\n\n/*! AdminLTE app.js\n * ================\n * Main JS application file for AdminLTE v2. This file\n * should be included in all pages. It controls some layout\n * options and implements exclusive AdminLTE plugins.\n *\n * @Author Almsaeed Studio\n * @Support \n * @Email \n * @version 2.3.11\n * @license MIT \n */\n\n//Make sure jQuery has been loaded before app.js\nif (typeof jQuery === \"undefined\") {\n throw new Error(\"AdminLTE requires jQuery\");\n}\n\n/* AdminLTE\n *\n * @type Object\n * @description $.AdminLTE is the main object for the template's app.\n * It's used for implementing functions and options related\n * to the template. Keeping everything wrapped in an object\n * prevents conflict with other plugins and is a better\n * way to organize our code.\n */\n$.AdminLTE = {};\n\n/* --------------------\n * - AdminLTE Options -\n * --------------------\n * Modify these options to suit your implementation\n */\n$.AdminLTE.options = {\n //Add slimscroll to navbar menus\n //This requires you to load the slimscroll plugin\n //in every page before app.js\n navbarMenuSlimscroll: true,\n navbarMenuSlimscrollWidth: \"3px\", //The width of the scroll bar\n navbarMenuHeight: \"200px\", //The height of the inner menu\n //General animation speed for JS animated elements such as box collapse/expand and\n //sidebar treeview slide up/down. This options accepts an integer as milliseconds,\n //'fast', 'normal', or 'slow'\n animationSpeed: 500,\n //Sidebar push menu toggle button selector\n sidebarToggleSelector: \"[data-toggle='offcanvas']\",\n //Activate sidebar push menu\n sidebarPushMenu: true,\n //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)\n sidebarSlimScroll: true,\n //Enable sidebar expand on hover effect for sidebar mini\n //This option is forced to true if both the fixed layout and sidebar mini\n //are used together\n sidebarExpandOnHover: false,\n //BoxRefresh Plugin\n enableBoxRefresh: true,\n //Bootstrap.js tooltip\n enableBSToppltip: true,\n BSTooltipSelector: \"[data-toggle='tooltip']\",\n //Enable Fast Click. Fastclick.js creates a more\n //native touch experience with touch devices. If you\n //choose to enable the plugin, make sure you load the script\n //before AdminLTE's app.js\n enableFastclick: false,\n //Control Sidebar Tree views\n enableControlTreeView: true,\n //Control Sidebar Options\n enableControlSidebar: true,\n controlSidebarOptions: {\n //Which button should trigger the open/close event\n toggleBtnSelector: \"[data-toggle='control-sidebar']\",\n //The sidebar selector\n selector: \".control-sidebar\",\n //Enable slide over content\n slide: true\n },\n //Box Widget Plugin. Enable this plugin\n //to allow boxes to be collapsed and/or removed\n enableBoxWidget: true,\n //Box Widget plugin options\n boxWidgetOptions: {\n boxWidgetIcons: {\n //Collapse icon\n collapse: 'fa-minus',\n //Open icon\n open: 'fa-plus',\n //Remove icon\n remove: 'fa-times'\n },\n boxWidgetSelectors: {\n //Remove button selector\n remove: '[data-widget=\"remove\"]',\n //Collapse button selector\n collapse: '[data-widget=\"collapse\"]'\n }\n },\n //Direct Chat plugin options\n directChat: {\n //Enable direct chat by default\n enable: true,\n //The button to open and close the chat contacts pane\n contactToggleSelector: '[data-widget=\"chat-pane-toggle\"]'\n },\n //Define the set of colors to use globally around the website\n colors: {\n lightBlue: \"#3c8dbc\",\n red: \"#f56954\",\n green: \"#00a65a\",\n aqua: \"#00c0ef\",\n yellow: \"#f39c12\",\n blue: \"#0073b7\",\n navy: \"#001F3F\",\n teal: \"#39CCCC\",\n olive: \"#3D9970\",\n lime: \"#01FF70\",\n orange: \"#FF851B\",\n fuchsia: \"#F012BE\",\n purple: \"#8E24AA\",\n maroon: \"#D81B60\",\n black: \"#222222\",\n gray: \"#d2d6de\"\n },\n //The standard screen sizes that bootstrap uses.\n //If you change these in the variables.less file, change\n //them here too.\n screenSizes: {\n xs: 480,\n sm: 768,\n md: 992,\n lg: 1200\n }\n};\n\n/* ------------------\n * - Implementation -\n * ------------------\n * The next block of code implements AdminLTE's\n * functions and plugins as specified by the\n * options above.\n */\n$(function () {\n \"use strict\";\n\n //Fix for IE page transitions\n $(\"body\").removeClass(\"hold-transition\");\n\n //Extend options if external options exist\n if (typeof AdminLTEOptions !== \"undefined\") {\n $.extend(true,\n $.AdminLTE.options,\n AdminLTEOptions);\n }\n\n //Easy access to options\n var o = $.AdminLTE.options;\n\n //Set up the object\n _init();\n\n //Activate the layout maker\n $.AdminLTE.layout.activate();\n\n //Enable sidebar tree view controls\n if (o.enableControlTreeView) {\n $.AdminLTE.tree('.sidebar');\n }\n\n //Enable control sidebar\n if (o.enableControlSidebar) {\n $.AdminLTE.controlSidebar.activate();\n }\n\n //Add slimscroll to navbar dropdown\n if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {\n $(\".navbar .menu\").slimscroll({\n height: o.navbarMenuHeight,\n alwaysVisible: false,\n size: o.navbarMenuSlimscrollWidth\n }).css(\"width\", \"100%\");\n }\n\n //Activate sidebar push menu\n if (o.sidebarPushMenu) {\n $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);\n }\n\n //Activate Bootstrap tooltip\n if (o.enableBSToppltip) {\n $('body').tooltip({\n selector: o.BSTooltipSelector,\n container: 'body'\n });\n }\n\n //Activate box widget\n if (o.enableBoxWidget) {\n $.AdminLTE.boxWidget.activate();\n }\n\n //Activate fast click\n if (o.enableFastclick && typeof FastClick != 'undefined') {\n FastClick.attach(document.body);\n }\n\n //Activate direct chat widget\n if (o.directChat.enable) {\n $(document).on('click', o.directChat.contactToggleSelector, function () {\n var box = $(this).parents('.direct-chat').first();\n box.toggleClass('direct-chat-contacts-open');\n });\n }\n\n /*\n * INITIALIZE BUTTON TOGGLE\n * ------------------------\n */\n $('.btn-group[data-toggle=\"btn-toggle\"]').each(function () {\n var group = $(this);\n $(this).find(\".btn\").on('click', function (e) {\n group.find(\".btn.active\").removeClass(\"active\");\n $(this).addClass(\"active\");\n e.preventDefault();\n });\n\n });\n});\n\n/* ----------------------------------\n * - Initialize the AdminLTE Object -\n * ----------------------------------\n * All AdminLTE functions are implemented below.\n */\nfunction _init() {\n 'use strict';\n /* Layout\n * ======\n * Fixes the layout height in case min-height fails.\n *\n * @type Object\n * @usage $.AdminLTE.layout.activate()\n * $.AdminLTE.layout.fix()\n * $.AdminLTE.layout.fixSidebar()\n */\n $.AdminLTE.layout = {\n activate: function () {\n var _this = this;\n _this.fix();\n _this.fixSidebar();\n $('body, html, .wrapper').css('height', 'auto');\n $(window, \".wrapper\").resize(function () {\n _this.fix();\n _this.fixSidebar();\n });\n },\n fix: function () {\n // Remove overflow from .wrapper if layout-boxed exists\n $(\".layout-boxed > .wrapper\").css('overflow', 'hidden');\n //Get window height and the wrapper height\n var footer_height = $('.main-footer').outerHeight() || 0;\n var neg = $('.main-header').outerHeight() + footer_height;\n var window_height = $(window).height();\n var sidebar_height = $(\".sidebar\").height() || 0;\n //Set the min-height of the content and sidebar based on the\n //the height of the document.\n if ($(\"body\").hasClass(\"fixed\")) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - footer_height);\n } else {\n var postSetWidth;\n if (window_height >= sidebar_height) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - neg);\n postSetWidth = window_height - neg;\n } else {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar_height);\n postSetWidth = sidebar_height;\n }\n\n //Fix for the control sidebar height\n var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);\n if (typeof controlSidebar !== \"undefined\") {\n if (controlSidebar.height() > postSetWidth)\n $(\".content-wrapper, .right-side\").css('min-height', controlSidebar.height());\n }\n\n }\n },\n fixSidebar: function () {\n //Make sure the body tag has the .fixed class\n if (!$(\"body\").hasClass(\"fixed\")) {\n if (typeof $.fn.slimScroll != 'undefined') {\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n }\n return;\n } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {\n window.console.error(\"Error: the fixed layout requires the slimscroll plugin!\");\n }\n //Enable slimscroll for fixed layout\n if ($.AdminLTE.options.sidebarSlimScroll) {\n if (typeof $.fn.slimScroll != 'undefined') {\n //Destroy if it exists\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n //Add slimscroll\n $(\".sidebar\").slimScroll({\n height: ($(window).height() - $(\".main-header\").height()) + \"px\",\n color: \"rgba(0,0,0,0.2)\",\n size: \"3px\"\n });\n }\n }\n }\n };\n\n /* PushMenu()\n * ==========\n * Adds the push menu functionality to the sidebar.\n *\n * @type Function\n * @usage: $.AdminLTE.pushMenu(\"[data-toggle='offcanvas']\")\n */\n $.AdminLTE.pushMenu = {\n activate: function (toggleBtn) {\n //Get the screen sizes\n var screenSizes = $.AdminLTE.options.screenSizes;\n\n //Enable sidebar toggle\n $(document).on('click', toggleBtn, function (e) {\n e.preventDefault();\n\n //Enable sidebar push menu\n if ($(window).width() > (screenSizes.sm - 1)) {\n if ($(\"body\").hasClass('sidebar-collapse')) {\n $(\"body\").removeClass('sidebar-collapse').trigger('expanded.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-collapse').trigger('collapsed.pushMenu');\n }\n }\n //Handle sidebar push menu for small screens\n else {\n if ($(\"body\").hasClass('sidebar-open')) {\n $(\"body\").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-open').trigger('expanded.pushMenu');\n }\n }\n });\n\n $(\".content-wrapper\").click(function () {\n //Enable hide menu when clicking on the content-wrapper on small screens\n if ($(window).width() <= (screenSizes.sm - 1) && $(\"body\").hasClass(\"sidebar-open\")) {\n $(\"body\").removeClass('sidebar-open');\n }\n });\n\n //Enable expand on hover for sidebar mini\n if ($.AdminLTE.options.sidebarExpandOnHover\n || ($('body').hasClass('fixed')\n && $('body').hasClass('sidebar-mini'))) {\n this.expandOnHover();\n }\n },\n expandOnHover: function () {\n var _this = this;\n var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;\n //Expand sidebar on hover\n $('.main-sidebar').hover(function () {\n if ($('body').hasClass('sidebar-mini')\n && $(\"body\").hasClass('sidebar-collapse')\n && $(window).width() > screenWidth) {\n _this.expand();\n }\n }, function () {\n if ($('body').hasClass('sidebar-mini')\n && $('body').hasClass('sidebar-expanded-on-hover')\n && $(window).width() > screenWidth) {\n _this.collapse();\n }\n });\n },\n expand: function () {\n $(\"body\").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');\n },\n collapse: function () {\n if ($('body').hasClass('sidebar-expanded-on-hover')) {\n $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');\n }\n }\n };\n\n /* Tree()\n * ======\n * Converts the sidebar into a multilevel\n * tree view menu.\n *\n * @type Function\n * @Usage: $.AdminLTE.tree('.sidebar')\n */\n $.AdminLTE.tree = function (menu) {\n var _this = this;\n var animationSpeed = $.AdminLTE.options.animationSpeed;\n $(document).off('click', menu + ' li a')\n .on('click', menu + ' li a', function (e) {\n //Get the clicked link and the next element\n var $this = $(this);\n var checkElement = $this.next();\n\n //Check if the next element is a menu and is visible\n if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) {\n //Close the menu\n checkElement.slideUp(animationSpeed, function () {\n checkElement.removeClass('menu-open');\n //Fix the layout in case the sidebar stretches over the height of the window\n //_this.layout.fix();\n });\n checkElement.parent(\"li\").removeClass(\"active\");\n }\n //If the menu is not visible\n else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {\n //Get the parent menu\n var parent = $this.parents('ul').first();\n //Close all open menus within the parent\n var ul = parent.find('ul:visible').slideUp(animationSpeed);\n //Remove the menu-open class from the parent\n ul.removeClass('menu-open');\n //Get the parent li\n var parent_li = $this.parent(\"li\");\n\n //Open the target menu and add the menu-open class\n checkElement.slideDown(animationSpeed, function () {\n //Add the class active to the parent li\n checkElement.addClass('menu-open');\n parent.find('li.active').removeClass('active');\n parent_li.addClass('active');\n //Fix the layout in case the sidebar stretches over the height of the window\n _this.layout.fix();\n });\n }\n //if this isn't a link, prevent the page from being redirected\n if (checkElement.is('.treeview-menu')) {\n e.preventDefault();\n }\n });\n };\n\n /* ControlSidebar\n * ==============\n * Adds functionality to the right sidebar\n *\n * @type Object\n * @usage $.AdminLTE.controlSidebar.activate(options)\n */\n $.AdminLTE.controlSidebar = {\n //instantiate the object\n activate: function () {\n //Get the object\n var _this = this;\n //Update options\n var o = $.AdminLTE.options.controlSidebarOptions;\n //Get the sidebar\n var sidebar = $(o.selector);\n //The toggle button\n var btn = $(o.toggleBtnSelector);\n\n //Listen to the click event\n btn.on('click', function (e) {\n e.preventDefault();\n //If the sidebar is not open\n if (!sidebar.hasClass('control-sidebar-open')\n && !$('body').hasClass('control-sidebar-open')) {\n //Open the sidebar\n _this.open(sidebar, o.slide);\n } else {\n _this.close(sidebar, o.slide);\n }\n });\n\n //If the body has a boxed layout, fix the sidebar bg position\n var bg = $(\".control-sidebar-bg\");\n _this._fix(bg);\n\n //If the body has a fixed layout, make the control sidebar fixed\n if ($('body').hasClass('fixed')) {\n _this._fixForFixed(sidebar);\n } else {\n //If the content height is less than the sidebar's height, force max height\n if ($('.content-wrapper, .right-side').height() < sidebar.height()) {\n _this._fixForContent(sidebar);\n }\n }\n },\n //Open the control sidebar\n open: function (sidebar, slide) {\n //Slide over content\n if (slide) {\n sidebar.addClass('control-sidebar-open');\n } else {\n //Push the content by adding the open class to the body instead\n //of the sidebar itself\n $('body').addClass('control-sidebar-open');\n }\n },\n //Close the control sidebar\n close: function (sidebar, slide) {\n if (slide) {\n sidebar.removeClass('control-sidebar-open');\n } else {\n $('body').removeClass('control-sidebar-open');\n }\n },\n _fix: function (sidebar) {\n var _this = this;\n if ($(\"body\").hasClass('layout-boxed')) {\n sidebar.css('position', 'absolute');\n sidebar.height($(\".wrapper\").height());\n if (_this.hasBindedResize) {\n return;\n }\n $(window).resize(function () {\n _this._fix(sidebar);\n });\n _this.hasBindedResize = true;\n } else {\n sidebar.css({\n 'position': 'fixed',\n 'height': 'auto'\n });\n }\n },\n _fixForFixed: function (sidebar) {\n sidebar.css({\n 'position': 'fixed',\n 'max-height': '100%',\n 'overflow': 'auto',\n 'padding-bottom': '50px'\n });\n },\n _fixForContent: function (sidebar) {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar.height());\n }\n };\n\n /* BoxWidget\n * =========\n * BoxWidget is a plugin to handle collapsing and\n * removing boxes from the screen.\n *\n * @type Object\n * @usage $.AdminLTE.boxWidget.activate()\n * Set all your options in the main $.AdminLTE.options object\n */\n $.AdminLTE.boxWidget = {\n selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,\n icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,\n animationSpeed: $.AdminLTE.options.animationSpeed,\n activate: function (_box) {\n var _this = this;\n if (!_box) {\n _box = document; // activate all boxes per default\n }\n //Listen for collapse event triggers\n $(_box).on('click', _this.selectors.collapse, function (e) {\n e.preventDefault();\n _this.collapse($(this));\n });\n\n //Listen for remove event triggers\n $(_box).on('click', _this.selectors.remove, function (e) {\n e.preventDefault();\n _this.remove($(this));\n });\n },\n collapse: function (element) {\n var _this = this;\n //Find the box parent\n var box = element.parents(\".box\").first();\n //Find the body and the footer\n var box_content = box.find(\"> .box-body, > .box-footer, > form >.box-body, > form > .box-footer\");\n if (!box.hasClass(\"collapsed-box\")) {\n //Convert minus into plus\n element.children(\":first\")\n .removeClass(_this.icons.collapse)\n .addClass(_this.icons.open);\n //Hide the content\n box_content.slideUp(_this.animationSpeed, function () {\n box.addClass(\"collapsed-box\");\n box.trigger(\"hidden.bs.collapse\");\n });\n } else {\n //Convert plus into minus\n element.children(\":first\")\n .removeClass(_this.icons.open)\n .addClass(_this.icons.collapse);\n\n // Technically, it should be 'show' which is triggered here, and\n // 'shown' which is triggered later. However, this works better because\n // of the slow expansion transition -- the box would fully expand, and\n // only then trigger 'shown', which then results in an update of the\n // content. This would allow users to see the old content during the\n // expansion.\n box.trigger(\"shown.bs.collapse\");\n\n //Show the content\n box_content.slideDown(_this.animationSpeed, function () {\n box.removeClass(\"collapsed-box\");\n });\n }\n },\n remove: function (element) {\n //Find the box parent\n var box = element.parents(\".box\").first();\n box.slideUp(this.animationSpeed);\n }\n };\n}\n\n/* ------------------\n * - Custom Plugins -\n * ------------------\n * All custom plugins are defined below.\n */\n\n/*\n * BOX REFRESH BUTTON\n * ------------------\n * This is a custom plugin to use with the component BOX. It allows you to add\n * a refresh button to the box. It converts the box's state to a loading state.\n *\n * @type plugin\n * @usage $(\"#box-widget\").boxRefresh( options );\n */\n(function ($) {\n\n \"use strict\";\n\n $.fn.boxRefresh = function (options) {\n\n // Render options\n var settings = $.extend({\n //Refresh button selector\n trigger: \".refresh-btn\",\n //File source to be loaded (e.g: ajax/src.php)\n source: \"\",\n //Callbacks\n onLoadStart: function (box) {\n return box;\n }, //Right after the button has been clicked\n onLoadDone: function (box) {\n return box;\n } //When the source has been loaded\n\n }, options);\n\n //The overlay\n var overlay = $('
');\n\n return this.each(function () {\n //if a source is specified\n if (settings.source === \"\") {\n if (window.console) {\n window.console.log(\"Please specify a source first - boxRefresh()\");\n }\n return;\n }\n //the box\n var box = $(this);\n //the button\n var rBtn = box.find(settings.trigger).first();\n\n //On trigger click\n rBtn.on('click', function (e) {\n e.preventDefault();\n //Add loading overlay\n start(box);\n\n //Perform ajax call\n box.find(\".box-body\").load(settings.source, function () {\n done(box);\n });\n });\n });\n\n function start(box) {\n //Add overlay and loading img\n box.append(overlay);\n\n settings.onLoadStart.call(box);\n }\n\n function done(box) {\n //Remove overlay and loading img\n box.find(overlay).remove();\n\n settings.onLoadDone.call(box);\n }\n\n };\n\n})(jQuery);\n\n/*\n * EXPLICIT BOX CONTROLS\n * -----------------------\n * This is a custom plugin to use with the component BOX. It allows you to activate\n * a box inserted in the DOM after the app.js was loaded, toggle and remove box.\n *\n * @type plugin\n * @usage $(\"#box-widget\").activateBox();\n * @usage $(\"#box-widget\").toggleBox();\n * @usage $(\"#box-widget\").removeBox();\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.activateBox = function () {\n $.AdminLTE.boxWidget.activate(this);\n };\n\n $.fn.toggleBox = function () {\n var button = $($.AdminLTE.boxWidget.selectors.collapse, this);\n $.AdminLTE.boxWidget.collapse(button);\n };\n\n $.fn.removeBox = function () {\n var button = $($.AdminLTE.boxWidget.selectors.remove, this);\n $.AdminLTE.boxWidget.remove(button);\n };\n\n})(jQuery);\n\n/*\n * TODO LIST CUSTOM PLUGIN\n * -----------------------\n * This plugin depends on iCheck plugin for checkbox and radio inputs\n *\n * @type plugin\n * @usage $(\"#todo-widget\").todolist( options );\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.todolist = function (options) {\n // Render options\n var settings = $.extend({\n //When the user checks the input\n onCheck: function (ele) {\n return ele;\n },\n //When the user unchecks the input\n onUncheck: function (ele) {\n return ele;\n }\n }, options);\n\n return this.each(function () {\n\n if (typeof $.fn.iCheck != 'undefined') {\n $('input', this).on('ifChecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onCheck.call(ele);\n });\n\n $('input', this).on('ifUnchecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onUncheck.call(ele);\n });\n } else {\n $('input', this).on('change', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n if ($('input', ele).is(\":checked\")) {\n settings.onCheck.call(ele);\n } else {\n settings.onUncheck.call(ele);\n }\n });\n }\n });\n };\n}(jQuery));\n"]} \ No newline at end of file +{"version":3,"sources":["../../srcjs/AdminLTE/app.js"],"names":[],"mappings":"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","file":"app.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/AdminLTE/app.js\n\n/*! AdminLTE app.js\n * ================\n * Main JS application file for AdminLTE v2. This file\n * should be included in all pages. It controls some layout\n * options and implements exclusive AdminLTE plugins.\n *\n * @Author Almsaeed Studio\n * @Support \n * @Email \n * @version 2.3.11\n * @license MIT \n */\n\n//Make sure jQuery has been loaded before app.js\nif (typeof jQuery === \"undefined\") {\n throw new Error(\"AdminLTE requires jQuery\");\n}\n\n/* AdminLTE\n *\n * @type Object\n * @description $.AdminLTE is the main object for the template's app.\n * It's used for implementing functions and options related\n * to the template. Keeping everything wrapped in an object\n * prevents conflict with other plugins and is a better\n * way to organize our code.\n */\n$.AdminLTE = {};\n\n/* --------------------\n * - AdminLTE Options -\n * --------------------\n * Modify these options to suit your implementation\n */\n$.AdminLTE.options = {\n //Add slimscroll to navbar menus\n //This requires you to load the slimscroll plugin\n //in every page before app.js\n navbarMenuSlimscroll: true,\n navbarMenuSlimscrollWidth: \"3px\", //The width of the scroll bar\n navbarMenuHeight: \"200px\", //The height of the inner menu\n //General animation speed for JS animated elements such as box collapse/expand and\n //sidebar treeview slide up/down. This options accepts an integer as milliseconds,\n //'fast', 'normal', or 'slow'\n animationSpeed: 500,\n //Sidebar push menu toggle button selector\n sidebarToggleSelector: \"[data-toggle='offcanvas']\",\n //Activate sidebar push menu\n sidebarPushMenu: true,\n //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)\n sidebarSlimScroll: true,\n //Enable sidebar expand on hover effect for sidebar mini\n //This option is forced to true if both the fixed layout and sidebar mini\n //are used together\n sidebarExpandOnHover: false,\n //BoxRefresh Plugin\n enableBoxRefresh: true,\n //Bootstrap.js tooltip\n enableBSToppltip: true,\n BSTooltipSelector: \"[data-toggle='tooltip']\",\n //Enable Fast Click. Fastclick.js creates a more\n //native touch experience with touch devices. If you\n //choose to enable the plugin, make sure you load the script\n //before AdminLTE's app.js\n enableFastclick: false,\n //Control Sidebar Tree views\n enableControlTreeView: true,\n //Control Sidebar Options\n enableControlSidebar: true,\n controlSidebarOptions: {\n //Which button should trigger the open/close event\n toggleBtnSelector: \"[data-toggle='control-sidebar']\",\n //The sidebar selector\n selector: \".control-sidebar\",\n //Enable slide over content\n slide: true\n },\n //Box Widget Plugin. Enable this plugin\n //to allow boxes to be collapsed and/or removed\n enableBoxWidget: true,\n //Box Widget plugin options\n boxWidgetOptions: {\n boxWidgetIcons: {\n //Collapse icon\n collapse: 'fa-minus',\n //Open icon\n open: 'fa-plus',\n //Remove icon\n remove: 'fa-times'\n },\n boxWidgetSelectors: {\n //Remove button selector\n remove: '[data-widget=\"remove\"]',\n //Collapse button selector\n collapse: '[data-widget=\"collapse\"]'\n }\n },\n //Direct Chat plugin options\n directChat: {\n //Enable direct chat by default\n enable: true,\n //The button to open and close the chat contacts pane\n contactToggleSelector: '[data-widget=\"chat-pane-toggle\"]'\n },\n //Define the set of colors to use globally around the website\n colors: {\n lightBlue: \"#3c8dbc\",\n red: \"#f56954\",\n green: \"#00a65a\",\n aqua: \"#00c0ef\",\n yellow: \"#f39c12\",\n blue: \"#0073b7\",\n navy: \"#001F3F\",\n teal: \"#39CCCC\",\n olive: \"#3D9970\",\n lime: \"#01FF70\",\n orange: \"#FF851B\",\n fuchsia: \"#F012BE\",\n purple: \"#8E24AA\",\n maroon: \"#D81B60\",\n black: \"#222222\",\n gray: \"#d2d6de\"\n },\n //The standard screen sizes that bootstrap uses.\n //If you change these in the variables.less file, change\n //them here too.\n screenSizes: {\n xs: 480,\n sm: 768,\n md: 992,\n lg: 1200\n }\n};\n\n/* ------------------\n * - Implementation -\n * ------------------\n * The next block of code implements AdminLTE's\n * functions and plugins as specified by the\n * options above.\n */\n$(function () {\n \"use strict\";\n\n //Fix for IE page transitions\n $(\"body\").removeClass(\"hold-transition\");\n\n //Extend options if external options exist\n if (typeof AdminLTEOptions !== \"undefined\") {\n $.extend(true,\n $.AdminLTE.options,\n AdminLTEOptions);\n }\n\n //Easy access to options\n var o = $.AdminLTE.options;\n\n //Set up the object\n _init();\n\n //Activate the layout maker\n $.AdminLTE.layout.activate();\n\n //Enable sidebar tree view controls\n if (o.enableControlTreeView) {\n $.AdminLTE.tree('.sidebar');\n }\n\n //Enable control sidebar\n if (o.enableControlSidebar) {\n $.AdminLTE.controlSidebar.activate();\n }\n\n //Add slimscroll to navbar dropdown\n if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {\n $(\".navbar .menu\").slimscroll({\n height: o.navbarMenuHeight,\n alwaysVisible: false,\n size: o.navbarMenuSlimscrollWidth\n }).css(\"width\", \"100%\");\n }\n\n //Activate sidebar push menu\n if (o.sidebarPushMenu) {\n $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);\n }\n\n //Activate Bootstrap tooltip\n if (o.enableBSToppltip) {\n $('body').tooltip({\n selector: o.BSTooltipSelector,\n container: 'body'\n });\n }\n\n //Activate box widget\n if (o.enableBoxWidget) {\n $.AdminLTE.boxWidget.activate();\n }\n\n //Activate fast click\n if (o.enableFastclick && typeof FastClick != 'undefined') {\n FastClick.attach(document.body);\n }\n\n //Activate direct chat widget\n if (o.directChat.enable) {\n $(document).on('click', o.directChat.contactToggleSelector, function () {\n var box = $(this).parents('.direct-chat').first();\n box.toggleClass('direct-chat-contacts-open');\n });\n }\n\n /*\n * INITIALIZE BUTTON TOGGLE\n * ------------------------\n */\n $('.btn-group[data-toggle=\"btn-toggle\"]').each(function () {\n var group = $(this);\n $(this).find(\".btn\").on('click', function (e) {\n group.find(\".btn.active\").removeClass(\"active\");\n $(this).addClass(\"active\");\n e.preventDefault();\n });\n\n });\n});\n\n/* ----------------------------------\n * - Initialize the AdminLTE Object -\n * ----------------------------------\n * All AdminLTE functions are implemented below.\n */\nfunction _init() {\n 'use strict';\n /* Layout\n * ======\n * Fixes the layout height in case min-height fails.\n *\n * @type Object\n * @usage $.AdminLTE.layout.activate()\n * $.AdminLTE.layout.fix()\n * $.AdminLTE.layout.fixSidebar()\n */\n $.AdminLTE.layout = {\n activate: function () {\n var _this = this;\n _this.fix();\n _this.fixSidebar();\n $('body, html, .wrapper').css('height', 'auto');\n $(window, \".wrapper\").resize(function () {\n _this.fix();\n _this.fixSidebar();\n });\n },\n fix: function () {\n // Remove overflow from .wrapper if layout-boxed exists\n $(\".layout-boxed > .wrapper\").css('overflow', 'hidden');\n //Get window height and the wrapper height\n var footer_height = $('.main-footer').outerHeight() || 0;\n var neg = $('.main-header').outerHeight() + footer_height;\n var window_height = $(window).height();\n var sidebar_height = $(\".sidebar\").height() || 0;\n //Set the min-height of the content and sidebar based on the\n //the height of the document.\n if ($(\"body\").hasClass(\"fixed\")) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - footer_height);\n } else {\n var postSetWidth;\n if (window_height >= sidebar_height) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - neg);\n postSetWidth = window_height - neg;\n } else {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar_height);\n postSetWidth = sidebar_height;\n }\n\n //Fix for the control sidebar height\n var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);\n if (typeof controlSidebar !== \"undefined\") {\n if (controlSidebar.height() > postSetWidth)\n $(\".content-wrapper, .right-side\").css('min-height', controlSidebar.height());\n }\n\n }\n },\n fixSidebar: function () {\n //Make sure the body tag has the .fixed class\n if (!$(\"body\").hasClass(\"fixed\")) {\n if (typeof $.fn.slimScroll != 'undefined') {\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n }\n return;\n } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {\n window.console.error(\"Error: the fixed layout requires the slimscroll plugin!\");\n }\n //Enable slimscroll for fixed layout\n if ($.AdminLTE.options.sidebarSlimScroll) {\n if (typeof $.fn.slimScroll != 'undefined') {\n //Destroy if it exists\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n //Add slimscroll\n $(\".sidebar\").slimScroll({\n height: ($(window).height() - $(\".main-header\").height()) + \"px\",\n color: \"rgba(0,0,0,0.2)\",\n size: \"3px\"\n });\n }\n }\n }\n };\n\n /* PushMenu()\n * ==========\n * Adds the push menu functionality to the sidebar.\n *\n * @type Function\n * @usage: $.AdminLTE.pushMenu(\"[data-toggle='offcanvas']\")\n */\n $.AdminLTE.pushMenu = {\n activate: function (toggleBtn) {\n //Get the screen sizes\n var screenSizes = $.AdminLTE.options.screenSizes;\n\n //Enable sidebar toggle\n $(document).on('click', toggleBtn, function (e) {\n e.preventDefault();\n\n //Enable sidebar push menu\n if ($(window).width() > (screenSizes.sm - 1)) {\n if ($(\"body\").hasClass('sidebar-collapse')) {\n $(\"body\").removeClass('sidebar-collapse').trigger('expanded.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-collapse').trigger('collapsed.pushMenu');\n }\n }\n //Handle sidebar push menu for small screens\n else {\n if ($(\"body\").hasClass('sidebar-open')) {\n $(\"body\").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-open').trigger('expanded.pushMenu');\n }\n }\n });\n\n $(\".content-wrapper\").click(function () {\n //Enable hide menu when clicking on the content-wrapper on small screens\n if ($(window).width() <= (screenSizes.sm - 1) && $(\"body\").hasClass(\"sidebar-open\")) {\n $(\"body\").removeClass('sidebar-open');\n }\n });\n\n //Enable expand on hover for sidebar mini\n if ($.AdminLTE.options.sidebarExpandOnHover\n || ($('body').hasClass('fixed')\n && $('body').hasClass('sidebar-mini'))) {\n this.expandOnHover();\n }\n },\n expandOnHover: function () {\n var _this = this;\n var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;\n //Expand sidebar on hover\n $('.main-sidebar').hover(function () {\n if ($('body').hasClass('sidebar-mini')\n && $(\"body\").hasClass('sidebar-collapse')\n && $(window).width() > screenWidth) {\n _this.expand();\n }\n }, function () {\n if ($('body').hasClass('sidebar-mini')\n && $('body').hasClass('sidebar-expanded-on-hover')\n && $(window).width() > screenWidth) {\n _this.collapse();\n }\n });\n },\n expand: function () {\n $(\"body\").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');\n },\n collapse: function () {\n if ($('body').hasClass('sidebar-expanded-on-hover')) {\n $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');\n }\n }\n };\n\n /* Tree()\n * ======\n * Converts the sidebar into a multilevel\n * tree view menu.\n *\n * @type Function\n * @Usage: $.AdminLTE.tree('.sidebar')\n */\n $.AdminLTE.tree = function (menu) {\n var _this = this;\n var animationSpeed = $.AdminLTE.options.animationSpeed;\n $(document).off('click', menu + ' li a')\n .on('click', menu + ' li a', function (e) {\n //Get the clicked link and the next element\n var $this = $(this);\n var checkElement = $this.next();\n\n //Check if the next element is a menu and is visible\n if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) {\n //Close the menu\n checkElement.slideUp(animationSpeed, function () {\n checkElement.removeClass('menu-open');\n //Fix the layout in case the sidebar stretches over the height of the window\n //_this.layout.fix();\n });\n checkElement.parent(\"li\").removeClass(\"active\");\n }\n //If the menu is not visible\n else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {\n //Get the parent menu\n var parent = $this.parents('ul').first();\n //Close all open menus within the parent\n var ul = parent.find('ul:visible').slideUp(animationSpeed);\n //Remove the menu-open class from the parent\n ul.removeClass('menu-open');\n //Get the parent li\n var parent_li = $this.parent(\"li\");\n\n // shiny-mod (see README-shiny-mods.md)\n var shinyOutput = checkElement.find('.shiny-bound-output');\n if (shinyOutput.length !== 0 && shinyOutput.first().html().length === 0) {\n shinyOutput.first().html('
');\n }\n\n //Open the target menu and add the menu-open class\n checkElement.slideDown(animationSpeed, function () {\n //Add the class active to the parent li\n checkElement.addClass('menu-open');\n parent.find('li.active').removeClass('active');\n parent_li.addClass('active');\n //Fix the layout in case the sidebar stretches over the height of the window\n _this.layout.fix();\n });\n }\n //if this isn't a link, prevent the page from being redirected\n if (checkElement.is('.treeview-menu')) {\n e.preventDefault();\n }\n });\n };\n\n /* ControlSidebar\n * ==============\n * Adds functionality to the right sidebar\n *\n * @type Object\n * @usage $.AdminLTE.controlSidebar.activate(options)\n */\n $.AdminLTE.controlSidebar = {\n //instantiate the object\n activate: function () {\n //Get the object\n var _this = this;\n //Update options\n var o = $.AdminLTE.options.controlSidebarOptions;\n //Get the sidebar\n var sidebar = $(o.selector);\n //The toggle button\n var btn = $(o.toggleBtnSelector);\n\n //Listen to the click event\n btn.on('click', function (e) {\n e.preventDefault();\n //If the sidebar is not open\n if (!sidebar.hasClass('control-sidebar-open')\n && !$('body').hasClass('control-sidebar-open')) {\n //Open the sidebar\n _this.open(sidebar, o.slide);\n } else {\n _this.close(sidebar, o.slide);\n }\n });\n\n //If the body has a boxed layout, fix the sidebar bg position\n var bg = $(\".control-sidebar-bg\");\n _this._fix(bg);\n\n //If the body has a fixed layout, make the control sidebar fixed\n if ($('body').hasClass('fixed')) {\n _this._fixForFixed(sidebar);\n } else {\n //If the content height is less than the sidebar's height, force max height\n if ($('.content-wrapper, .right-side').height() < sidebar.height()) {\n _this._fixForContent(sidebar);\n }\n }\n },\n //Open the control sidebar\n open: function (sidebar, slide) {\n //Slide over content\n if (slide) {\n sidebar.addClass('control-sidebar-open');\n } else {\n //Push the content by adding the open class to the body instead\n //of the sidebar itself\n $('body').addClass('control-sidebar-open');\n }\n },\n //Close the control sidebar\n close: function (sidebar, slide) {\n if (slide) {\n sidebar.removeClass('control-sidebar-open');\n } else {\n $('body').removeClass('control-sidebar-open');\n }\n },\n _fix: function (sidebar) {\n var _this = this;\n if ($(\"body\").hasClass('layout-boxed')) {\n sidebar.css('position', 'absolute');\n sidebar.height($(\".wrapper\").height());\n if (_this.hasBindedResize) {\n return;\n }\n $(window).resize(function () {\n _this._fix(sidebar);\n });\n _this.hasBindedResize = true;\n } else {\n sidebar.css({\n 'position': 'fixed',\n 'height': 'auto'\n });\n }\n },\n _fixForFixed: function (sidebar) {\n sidebar.css({\n 'position': 'fixed',\n 'max-height': '100%',\n 'overflow': 'auto',\n 'padding-bottom': '50px'\n });\n },\n _fixForContent: function (sidebar) {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar.height());\n }\n };\n\n /* BoxWidget\n * =========\n * BoxWidget is a plugin to handle collapsing and\n * removing boxes from the screen.\n *\n * @type Object\n * @usage $.AdminLTE.boxWidget.activate()\n * Set all your options in the main $.AdminLTE.options object\n */\n $.AdminLTE.boxWidget = {\n selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,\n icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,\n animationSpeed: $.AdminLTE.options.animationSpeed,\n activate: function (_box) {\n var _this = this;\n if (!_box) {\n _box = document; // activate all boxes per default\n }\n //Listen for collapse event triggers\n $(_box).on('click', _this.selectors.collapse, function (e) {\n e.preventDefault();\n _this.collapse($(this));\n });\n\n //Listen for remove event triggers\n $(_box).on('click', _this.selectors.remove, function (e) {\n e.preventDefault();\n _this.remove($(this));\n });\n },\n collapse: function (element) {\n var _this = this;\n //Find the box parent\n var box = element.parents(\".box\").first();\n //Find the body and the footer\n var box_content = box.find(\"> .box-body, > .box-footer, > form >.box-body, > form > .box-footer\");\n if (!box.hasClass(\"collapsed-box\")) {\n //Convert minus into plus\n element.children(\":first\")\n .removeClass(_this.icons.collapse)\n .addClass(_this.icons.open);\n //Hide the content\n box_content.slideUp(_this.animationSpeed, function () {\n box.addClass(\"collapsed-box\");\n box.trigger(\"hidden.bs.collapse\");\n });\n } else {\n //Convert plus into minus\n element.children(\":first\")\n .removeClass(_this.icons.open)\n .addClass(_this.icons.collapse);\n\n // Technically, it should be 'show' which is triggered here, and\n // 'shown' which is triggered later. However, this works better because\n // of the slow expansion transition -- the box would fully expand, and\n // only then trigger 'shown', which then results in an update of the\n // content. This would allow users to see the old content during the\n // expansion.\n box.trigger(\"shown.bs.collapse\");\n\n //Show the content\n box_content.slideDown(_this.animationSpeed, function () {\n box.removeClass(\"collapsed-box\");\n });\n }\n },\n remove: function (element) {\n //Find the box parent\n var box = element.parents(\".box\").first();\n box.slideUp(this.animationSpeed);\n }\n };\n}\n\n/* ------------------\n * - Custom Plugins -\n * ------------------\n * All custom plugins are defined below.\n */\n\n/*\n * BOX REFRESH BUTTON\n * ------------------\n * This is a custom plugin to use with the component BOX. It allows you to add\n * a refresh button to the box. It converts the box's state to a loading state.\n *\n * @type plugin\n * @usage $(\"#box-widget\").boxRefresh( options );\n */\n(function ($) {\n\n \"use strict\";\n\n $.fn.boxRefresh = function (options) {\n\n // Render options\n var settings = $.extend({\n //Refresh button selector\n trigger: \".refresh-btn\",\n //File source to be loaded (e.g: ajax/src.php)\n source: \"\",\n //Callbacks\n onLoadStart: function (box) {\n return box;\n }, //Right after the button has been clicked\n onLoadDone: function (box) {\n return box;\n } //When the source has been loaded\n\n }, options);\n\n //The overlay\n var overlay = $('
');\n\n return this.each(function () {\n //if a source is specified\n if (settings.source === \"\") {\n if (window.console) {\n window.console.log(\"Please specify a source first - boxRefresh()\");\n }\n return;\n }\n //the box\n var box = $(this);\n //the button\n var rBtn = box.find(settings.trigger).first();\n\n //On trigger click\n rBtn.on('click', function (e) {\n e.preventDefault();\n //Add loading overlay\n start(box);\n\n //Perform ajax call\n box.find(\".box-body\").load(settings.source, function () {\n done(box);\n });\n });\n });\n\n function start(box) {\n //Add overlay and loading img\n box.append(overlay);\n\n settings.onLoadStart.call(box);\n }\n\n function done(box) {\n //Remove overlay and loading img\n box.find(overlay).remove();\n\n settings.onLoadDone.call(box);\n }\n\n };\n\n})(jQuery);\n\n/*\n * EXPLICIT BOX CONTROLS\n * -----------------------\n * This is a custom plugin to use with the component BOX. It allows you to activate\n * a box inserted in the DOM after the app.js was loaded, toggle and remove box.\n *\n * @type plugin\n * @usage $(\"#box-widget\").activateBox();\n * @usage $(\"#box-widget\").toggleBox();\n * @usage $(\"#box-widget\").removeBox();\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.activateBox = function () {\n $.AdminLTE.boxWidget.activate(this);\n };\n\n $.fn.toggleBox = function () {\n var button = $($.AdminLTE.boxWidget.selectors.collapse, this);\n $.AdminLTE.boxWidget.collapse(button);\n };\n\n $.fn.removeBox = function () {\n var button = $($.AdminLTE.boxWidget.selectors.remove, this);\n $.AdminLTE.boxWidget.remove(button);\n };\n\n})(jQuery);\n\n/*\n * TODO LIST CUSTOM PLUGIN\n * -----------------------\n * This plugin depends on iCheck plugin for checkbox and radio inputs\n *\n * @type plugin\n * @usage $(\"#todo-widget\").todolist( options );\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.todolist = function (options) {\n // Render options\n var settings = $.extend({\n //When the user checks the input\n onCheck: function (ele) {\n return ele;\n },\n //When the user unchecks the input\n onUncheck: function (ele) {\n return ele;\n }\n }, options);\n\n return this.each(function () {\n\n if (typeof $.fn.iCheck != 'undefined') {\n $('input', this).on('ifChecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onCheck.call(ele);\n });\n\n $('input', this).on('ifUnchecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onUncheck.call(ele);\n });\n } else {\n $('input', this).on('change', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n if ($('input', ele).is(\":checked\")) {\n settings.onCheck.call(ele);\n } else {\n settings.onUncheck.call(ele);\n }\n });\n }\n });\n };\n}(jQuery));\n"]} \ No newline at end of file diff --git a/inst/AdminLTE/app.min.js b/inst/AdminLTE/app.min.js index a46917a2..377d604c 100644 --- a/inst/AdminLTE/app.min.js +++ b/inst/AdminLTE/app.min.js @@ -1,2 +1,2 @@ -function _init(){"use strict";$.AdminLTE.layout={activate:function(){var a=this;a.fix(),a.fixSidebar(),$("body, html, .wrapper").css("height","auto"),$(window,".wrapper").resize(function(){a.fix(),a.fixSidebar()})},fix:function(){$(".layout-boxed > .wrapper").css("overflow","hidden");var a=$(".main-footer").outerHeight()||0,b=$(".main-header").outerHeight()+a,c=$(window).height(),d=$(".sidebar").height()||0;if($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height",c-a);else{var e;c>=d?($(".content-wrapper, .right-side").css("min-height",c-b),e=c-b):($(".content-wrapper, .right-side").css("min-height",d),e=d);var f=$($.AdminLTE.options.controlSidebarOptions.selector);"undefined"!=typeof f&&f.height()>e&&$(".content-wrapper, .right-side").css("min-height",f.height())}},fixSidebar:function(){return $("body").hasClass("fixed")?("undefined"==typeof $.fn.slimScroll&&window.console&&window.console.error("Error: the fixed layout requires the slimscroll plugin!"),void($.AdminLTE.options.sidebarSlimScroll&&"undefined"!=typeof $.fn.slimScroll&&($(".sidebar").slimScroll({destroy:!0}).height("auto"),$(".sidebar").slimScroll({height:$(window).height()-$(".main-header").height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"})))):void("undefined"!=typeof $.fn.slimScroll&&$(".sidebar").slimScroll({destroy:!0}).height("auto"))}},$.AdminLTE.pushMenu={activate:function(a){var b=$.AdminLTE.options.screenSizes;$(document).on("click",a,function(a){a.preventDefault(),$(window).width()>b.sm-1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}),$(".content-wrapper").click(function(){$(window).width()<=b.sm-1&&$("body").hasClass("sidebar-open")&&$("body").removeClass("sidebar-open")}),($.AdminLTE.options.sidebarExpandOnHover||$("body").hasClass("fixed")&&$("body").hasClass("sidebar-mini"))&&this.expandOnHover()},expandOnHover:function(){var a=this,b=$.AdminLTE.options.screenSizes.sm-1;$(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-collapse")&&$(window).width()>b&&a.expand()},function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-expanded-on-hover")&&$(window).width()>b&&a.collapse()})},expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")},collapse:function(){$("body").hasClass("sidebar-expanded-on-hover")&&$("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}},$.AdminLTE.tree=function(a){var b=this,c=$.AdminLTE.options.animationSpeed;$(document).off("click",a+" li a").on("click",a+" li a",function(a){var d=$(this),e=d.next();if(e.is(".treeview-menu")&&e.is(":visible")&&!$("body").hasClass("sidebar-collapse"))e.slideUp(c,function(){e.removeClass("menu-open")}),e.parent("li").removeClass("active");else if(e.is(".treeview-menu")&&!e.is(":visible")){var f=d.parents("ul").first(),g=f.find("ul:visible").slideUp(c);g.removeClass("menu-open");var h=d.parent("li");e.slideDown(c,function(){e.addClass("menu-open"),f.find("li.active").removeClass("active"),h.addClass("active"),b.layout.fix()})}e.is(".treeview-menu")&&a.preventDefault()})},$.AdminLTE.controlSidebar={activate:function(){var a=this,b=$.AdminLTE.options.controlSidebarOptions,c=$(b.selector),d=$(b.toggleBtnSelector);d.on("click",function(d){d.preventDefault(),c.hasClass("control-sidebar-open")||$("body").hasClass("control-sidebar-open")?a.close(c,b.slide):a.open(c,b.slide)});var e=$(".control-sidebar-bg");a._fix(e),$("body").hasClass("fixed")?a._fixForFixed(c):$(".content-wrapper, .right-side").height() .box-body, > .box-footer, > form >.box-body, > form > .box-footer");c.hasClass("collapsed-box")?(a.children(":first").removeClass(b.icons.open).addClass(b.icons.collapse),c.trigger("shown.bs.collapse"),d.slideDown(b.animationSpeed,function(){c.removeClass("collapsed-box")})):(a.children(":first").removeClass(b.icons.collapse).addClass(b.icons.open),d.slideUp(b.animationSpeed,function(){c.addClass("collapsed-box"),c.trigger("hidden.bs.collapse")}))},remove:function(a){var b=a.parents(".box").first();b.slideUp(this.animationSpeed)}}}if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");$.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!1,enableControlTreeView:!0,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var a=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),a.enableControlTreeView&&$.AdminLTE.tree(".sidebar"),a.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),a.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:a.navbarMenuHeight,alwaysVisible:!1,size:a.navbarMenuSlimscrollWidth}).css("width","100%"),a.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(a.sidebarToggleSelector),a.enableBSToppltip&&$("body").tooltip({selector:a.BSTooltipSelector,container:"body"}),a.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),a.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),a.directChat.enable&&$(document).on("click",a.directChat.contactToggleSelector,function(){var a=$(this).parents(".direct-chat").first();a.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var a=$(this);$(this).find(".btn").on("click",function(b){a.find(".btn.active").removeClass("active"),$(this).addClass("active"),b.preventDefault()})})}),function(a){"use strict";a.fn.boxRefresh=function(b){function c(a){a.append(f),e.onLoadStart.call(a)}function d(a){a.find(f).remove(),e.onLoadDone.call(a)}var e=a.extend({trigger:".refresh-btn",source:"",onLoadStart:function(a){return a},onLoadDone:function(a){return a}},b),f=a('
');return this.each(function(){if(""===e.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var b=a(this),f=b.find(e.trigger).first();f.on("click",function(a){a.preventDefault(),c(b),b.find(".box-body").load(e.source,function(){d(b)})})})}}(jQuery),function(a){"use strict";a.fn.activateBox=function(){a.AdminLTE.boxWidget.activate(this)},a.fn.toggleBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.collapse,this);a.AdminLTE.boxWidget.collapse(b)},a.fn.removeBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.remove,this);a.AdminLTE.boxWidget.remove(b)}}(jQuery),function(a){"use strict";a.fn.todolist=function(b){var c=a.extend({onCheck:function(a){return a},onUncheck:function(a){return a}},b);return this.each(function(){"undefined"!=typeof a.fn.iCheck?(a("input",this).on("ifChecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onCheck.call(b)}),a("input",this).on("ifUnchecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onUncheck.call(b)})):a("input",this).on("change",function(){var b=a(this).parents("li").first();b.toggleClass("done"),a("input",b).is(":checked")?c.onCheck.call(b):c.onUncheck.call(b)})})}}(jQuery); +function _init(){"use strict";$.AdminLTE.layout={activate:function(){var a=this;a.fix(),a.fixSidebar(),$("body, html, .wrapper").css("height","auto"),$(window,".wrapper").resize(function(){a.fix(),a.fixSidebar()})},fix:function(){$(".layout-boxed > .wrapper").css("overflow","hidden");var a=$(".main-footer").outerHeight()||0,b=$(".main-header").outerHeight()+a,c=$(window).height(),d=$(".sidebar").height()||0;if($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height",c-a);else{var e;c>=d?($(".content-wrapper, .right-side").css("min-height",c-b),e=c-b):($(".content-wrapper, .right-side").css("min-height",d),e=d);var f=$($.AdminLTE.options.controlSidebarOptions.selector);"undefined"!=typeof f&&f.height()>e&&$(".content-wrapper, .right-side").css("min-height",f.height())}},fixSidebar:function(){return $("body").hasClass("fixed")?("undefined"==typeof $.fn.slimScroll&&window.console&&window.console.error("Error: the fixed layout requires the slimscroll plugin!"),void($.AdminLTE.options.sidebarSlimScroll&&"undefined"!=typeof $.fn.slimScroll&&($(".sidebar").slimScroll({destroy:!0}).height("auto"),$(".sidebar").slimScroll({height:$(window).height()-$(".main-header").height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"})))):void("undefined"!=typeof $.fn.slimScroll&&$(".sidebar").slimScroll({destroy:!0}).height("auto"))}},$.AdminLTE.pushMenu={activate:function(a){var b=$.AdminLTE.options.screenSizes;$(document).on("click",a,function(a){a.preventDefault(),$(window).width()>b.sm-1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}),$(".content-wrapper").click(function(){$(window).width()<=b.sm-1&&$("body").hasClass("sidebar-open")&&$("body").removeClass("sidebar-open")}),($.AdminLTE.options.sidebarExpandOnHover||$("body").hasClass("fixed")&&$("body").hasClass("sidebar-mini"))&&this.expandOnHover()},expandOnHover:function(){var a=this,b=$.AdminLTE.options.screenSizes.sm-1;$(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-collapse")&&$(window).width()>b&&a.expand()},function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-expanded-on-hover")&&$(window).width()>b&&a.collapse()})},expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")},collapse:function(){$("body").hasClass("sidebar-expanded-on-hover")&&$("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}},$.AdminLTE.tree=function(a){var b=this,c=$.AdminLTE.options.animationSpeed;$(document).off("click",a+" li a").on("click",a+" li a",function(a){var d=$(this),e=d.next();if(e.is(".treeview-menu")&&e.is(":visible")&&!$("body").hasClass("sidebar-collapse"))e.slideUp(c,function(){e.removeClass("menu-open")}),e.parent("li").removeClass("active");else if(e.is(".treeview-menu")&&!e.is(":visible")){var f=d.parents("ul").first(),g=f.find("ul:visible").slideUp(c);g.removeClass("menu-open");var h=d.parent("li"),i=e.find(".shiny-bound-output");0!==i.length&&0===i.first().html().length&&i.first().html("
"),e.slideDown(c,function(){e.addClass("menu-open"),f.find("li.active").removeClass("active"),h.addClass("active"),b.layout.fix()})}e.is(".treeview-menu")&&a.preventDefault()})},$.AdminLTE.controlSidebar={activate:function(){var a=this,b=$.AdminLTE.options.controlSidebarOptions,c=$(b.selector),d=$(b.toggleBtnSelector);d.on("click",function(d){d.preventDefault(),c.hasClass("control-sidebar-open")||$("body").hasClass("control-sidebar-open")?a.close(c,b.slide):a.open(c,b.slide)});var e=$(".control-sidebar-bg");a._fix(e),$("body").hasClass("fixed")?a._fixForFixed(c):$(".content-wrapper, .right-side").height() .box-body, > .box-footer, > form >.box-body, > form > .box-footer");c.hasClass("collapsed-box")?(a.children(":first").removeClass(b.icons.open).addClass(b.icons.collapse),c.trigger("shown.bs.collapse"),d.slideDown(b.animationSpeed,function(){c.removeClass("collapsed-box")})):(a.children(":first").removeClass(b.icons.collapse).addClass(b.icons.open),d.slideUp(b.animationSpeed,function(){c.addClass("collapsed-box"),c.trigger("hidden.bs.collapse")}))},remove:function(a){var b=a.parents(".box").first();b.slideUp(this.animationSpeed)}}}if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");$.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!1,enableControlTreeView:!0,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var a=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),a.enableControlTreeView&&$.AdminLTE.tree(".sidebar"),a.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),a.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:a.navbarMenuHeight,alwaysVisible:!1,size:a.navbarMenuSlimscrollWidth}).css("width","100%"),a.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(a.sidebarToggleSelector),a.enableBSToppltip&&$("body").tooltip({selector:a.BSTooltipSelector,container:"body"}),a.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),a.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),a.directChat.enable&&$(document).on("click",a.directChat.contactToggleSelector,function(){var a=$(this).parents(".direct-chat").first();a.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var a=$(this);$(this).find(".btn").on("click",function(b){a.find(".btn.active").removeClass("active"),$(this).addClass("active"),b.preventDefault()})})}),function(a){"use strict";a.fn.boxRefresh=function(b){function c(a){a.append(f),e.onLoadStart.call(a)}function d(a){a.find(f).remove(),e.onLoadDone.call(a)}var e=a.extend({trigger:".refresh-btn",source:"",onLoadStart:function(a){return a},onLoadDone:function(a){return a}},b),f=a('
');return this.each(function(){if(""===e.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var b=a(this),f=b.find(e.trigger).first();f.on("click",function(a){a.preventDefault(),c(b),b.find(".box-body").load(e.source,function(){d(b)})})})}}(jQuery),function(a){"use strict";a.fn.activateBox=function(){a.AdminLTE.boxWidget.activate(this)},a.fn.toggleBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.collapse,this);a.AdminLTE.boxWidget.collapse(b)},a.fn.removeBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.remove,this);a.AdminLTE.boxWidget.remove(b)}}(jQuery),function(a){"use strict";a.fn.todolist=function(b){var c=a.extend({onCheck:function(a){return a},onUncheck:function(a){return a}},b);return this.each(function(){"undefined"!=typeof a.fn.iCheck?(a("input",this).on("ifChecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onCheck.call(b)}),a("input",this).on("ifUnchecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onUncheck.call(b)})):a("input",this).on("change",function(){var b=a(this).parents("li").first();b.toggleClass("done"),a("input",b).is(":checked")?c.onCheck.call(b):c.onUncheck.call(b)})})}}(jQuery); //# sourceMappingURL=app.min.js.map \ No newline at end of file diff --git a/inst/AdminLTE/app.min.js.map b/inst/AdminLTE/app.min.js.map index bb7079f4..93c78bbf 100644 --- a/inst/AdminLTE/app.min.js.map +++ b/inst/AdminLTE/app.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../srcjs/AdminLTE/app.js"],"names":["_init","$","AdminLTE","layout","activate","_this","this","fix","fixSidebar","css","window","resize","footer_height","outerHeight","neg","window_height","height","sidebar_height","hasClass","postSetWidth","controlSidebar","options","controlSidebarOptions","selector","fn","slimScroll","console","error","sidebarSlimScroll","destroy","color","size","pushMenu","toggleBtn","screenSizes","document","on","e","preventDefault","width","sm","removeClass","trigger","addClass","click","sidebarExpandOnHover","expandOnHover","screenWidth","hover","expand","collapse","tree","menu","animationSpeed","off","$this","checkElement","next","is","slideUp","parent","parents","first","ul","find","parent_li","slideDown","o","sidebar","btn","toggleBtnSelector","close","slide","open","bg","_fix","_fixForFixed","_fixForContent","hasBindedResize","position","max-height","overflow","padding-bottom","boxWidget","selectors","boxWidgetOptions","boxWidgetSelectors","icons","boxWidgetIcons","_box","remove","element","box","box_content","children","jQuery","Error","navbarMenuSlimscroll","navbarMenuSlimscrollWidth","navbarMenuHeight","sidebarToggleSelector","sidebarPushMenu","enableBoxRefresh","enableBSToppltip","BSTooltipSelector","enableFastclick","enableControlTreeView","enableControlSidebar","enableBoxWidget","directChat","enable","contactToggleSelector","colors","lightBlue","red","green","aqua","yellow","blue","navy","teal","olive","lime","orange","fuchsia","purple","maroon","black","gray","xs","md","lg","AdminLTEOptions","extend","slimscroll","alwaysVisible","tooltip","container","FastClick","attach","body","toggleClass","each","group","boxRefresh","start","append","overlay","settings","onLoadStart","call","done","onLoadDone","source","log","rBtn","load","activateBox","toggleBox","button","removeBox","todolist","onCheck","ele","onUncheck","iCheck"],"mappings":"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","file":"app.min.js"} \ No newline at end of file +{"version":3,"sources":["../../srcjs/AdminLTE/app.js"],"names":["_init","$","AdminLTE","layout","activate","_this","this","fix","fixSidebar","css","window","resize","footer_height","outerHeight","neg","window_height","height","sidebar_height","hasClass","postSetWidth","controlSidebar","options","controlSidebarOptions","selector","fn","slimScroll","console","error","sidebarSlimScroll","destroy","color","size","pushMenu","toggleBtn","screenSizes","document","on","e","preventDefault","width","sm","removeClass","trigger","addClass","click","sidebarExpandOnHover","expandOnHover","screenWidth","hover","expand","collapse","tree","menu","animationSpeed","off","$this","checkElement","next","is","slideUp","parent","parents","first","ul","find","parent_li","shinyOutput","length","html","slideDown","o","sidebar","btn","toggleBtnSelector","close","slide","open","bg","_fix","_fixForFixed","_fixForContent","hasBindedResize","position","max-height","overflow","padding-bottom","boxWidget","selectors","boxWidgetOptions","boxWidgetSelectors","icons","boxWidgetIcons","_box","remove","element","box","box_content","children","jQuery","Error","navbarMenuSlimscroll","navbarMenuSlimscrollWidth","navbarMenuHeight","sidebarToggleSelector","sidebarPushMenu","enableBoxRefresh","enableBSToppltip","BSTooltipSelector","enableFastclick","enableControlTreeView","enableControlSidebar","enableBoxWidget","directChat","enable","contactToggleSelector","colors","lightBlue","red","green","aqua","yellow","blue","navy","teal","olive","lime","orange","fuchsia","purple","maroon","black","gray","xs","md","lg","AdminLTEOptions","extend","slimscroll","alwaysVisible","tooltip","container","FastClick","attach","body","toggleClass","each","group","boxRefresh","start","append","overlay","settings","onLoadStart","call","done","onLoadDone","source","log","rBtn","load","activateBox","toggleBox","button","removeBox","todolist","onCheck","ele","onUncheck","iCheck"],"mappings":"AAyOA,QAASA,SACP,YAUAC,GAAEC,SAASC,QACTC,SAAU,WACR,GAAIC,GAAQC,IACZD,GAAME,MACNF,EAAMG,aACNP,EAAE,wBAAwBQ,IAAI,SAAU,QACxCR,EAAES,OAAQ,YAAYC,OAAO,WAC3BN,EAAME,MACNF,EAAMG,gBAGVD,IAAK,WAEHN,EAAE,4BAA4BQ,IAAI,WAAY,SAE9C,IAAIG,GAAgBX,EAAE,gBAAgBY,eAAiB,EACnDC,EAAMb,EAAE,gBAAgBY,cAAgBD,EACxCG,EAAgBd,EAAES,QAAQM,SAC1BC,EAAiBhB,EAAE,YAAYe,UAAY,CAG/C,IAAIf,EAAE,QAAQiB,SAAS,SACrBjB,EAAE,iCAAiCQ,IAAI,aAAcM,EAAgBH,OAChE,CACL,GAAIO,EACAJ,IAAiBE,GACnBhB,EAAE,iCAAiCQ,IAAI,aAAcM,EAAgBD,GACrEK,EAAeJ,EAAgBD,IAE/Bb,EAAE,iCAAiCQ,IAAI,aAAcQ,GACrDE,EAAeF,EAIjB,IAAIG,GAAiBnB,EAAEA,EAAEC,SAASmB,QAAQC,sBAAsBC,SAClC,oBAAnBH,IACLA,EAAeJ,SAAWG,GAC5BlB,EAAE,iCAAiCQ,IAAI,aAAcW,EAAeJ,YAK5ER,WAAY,WAEV,MAAKP,GAAE,QAAQiB,SAAS,UAKa,mBAAnBjB,GAAEuB,GAAGC,YAA6Bf,OAAOgB,SACzDhB,OAAOgB,QAAQC,MAAM,gEAGnB1B,EAAEC,SAASmB,QAAQO,mBACS,mBAAnB3B,GAAEuB,GAAGC,aAEdxB,EAAE,YAAYwB,YAAYI,SAAS,IAAOb,OAAO,QAEjDf,EAAE,YAAYwB,YACZT,OAASf,EAAES,QAAQM,SAAWf,EAAE,gBAAgBe,SAAY,KAC5Dc,MAAO,kBACPC,KAAM,gBAhBoB,mBAAnB9B,GAAEuB,GAAGC,YACdxB,EAAE,YAAYwB,YAAYI,SAAS,IAAOb,OAAO,WA6BzDf,EAAEC,SAAS8B,UACT5B,SAAU,SAAU6B,GAElB,GAAIC,GAAcjC,EAAEC,SAASmB,QAAQa,WAGrCjC,GAAEkC,UAAUC,GAAG,QAASH,EAAW,SAAUI,GAC3CA,EAAEC,iBAGErC,EAAES,QAAQ6B,QAAWL,EAAYM,GAAK,EACpCvC,EAAE,QAAQiB,SAAS,oBACrBjB,EAAE,QAAQwC,YAAY,oBAAoBC,QAAQ,qBAElDzC,EAAE,QAAQ0C,SAAS,oBAAoBD,QAAQ,sBAK7CzC,EAAE,QAAQiB,SAAS,gBACrBjB,EAAE,QAAQwC,YAAY,gBAAgBA,YAAY,oBAAoBC,QAAQ,sBAE9EzC,EAAE,QAAQ0C,SAAS,gBAAgBD,QAAQ,uBAKjDzC,EAAE,oBAAoB2C,MAAM,WAEtB3C,EAAES,QAAQ6B,SAAYL,EAAYM,GAAK,GAAMvC,EAAE,QAAQiB,SAAS,iBAClEjB,EAAE,QAAQwC,YAAY,mBAKtBxC,EAAEC,SAASmB,QAAQwB,sBACjB5C,EAAE,QAAQiB,SAAS,UACpBjB,EAAE,QAAQiB,SAAS,kBACtBZ,KAAKwC,iBAGTA,cAAe,WACb,GAAIzC,GAAQC,KACRyC,EAAc9C,EAAEC,SAASmB,QAAQa,YAAYM,GAAK,CAEtDvC,GAAE,iBAAiB+C,MAAM,WACnB/C,EAAE,QAAQiB,SAAS,iBAClBjB,EAAE,QAAQiB,SAAS,qBACnBjB,EAAES,QAAQ6B,QAAUQ,GACvB1C,EAAM4C,UAEP,WACGhD,EAAE,QAAQiB,SAAS,iBAClBjB,EAAE,QAAQiB,SAAS,8BACnBjB,EAAES,QAAQ6B,QAAUQ,GACvB1C,EAAM6C,cAIZD,OAAQ,WACNhD,EAAE,QAAQwC,YAAY,oBAAoBE,SAAS,8BAErDO,SAAU,WACJjD,EAAE,QAAQiB,SAAS,8BACrBjB,EAAE,QAAQwC,YAAY,6BAA6BE,SAAS,sBAalE1C,EAAEC,SAASiD,KAAO,SAAUC,GAC1B,GAAI/C,GAAQC,KACR+C,EAAiBpD,EAAEC,SAASmB,QAAQgC,cACxCpD,GAAEkC,UAAUmB,IAAI,QAASF,EAAO,SAC7BhB,GAAG,QAASgB,EAAO,QAAS,SAAUf,GAErC,GAAIkB,GAAQtD,EAAEK,MACVkD,EAAeD,EAAME,MAGzB,IAAKD,EAAaE,GAAG,mBAAuBF,EAAaE,GAAG,cAAkBzD,EAAE,QAAQiB,SAAS,oBAE/FsC,EAAaG,QAAQN,EAAgB,WACnCG,EAAaf,YAAY,eAI3Be,EAAaI,OAAO,MAAMnB,YAAY,cAGnC,IAAKe,EAAaE,GAAG,oBAAwBF,EAAaE,GAAG,YAAc,CAE9E,GAAIE,GAASL,EAAMM,QAAQ,MAAMC,QAE7BC,EAAKH,EAAOI,KAAK,cAAcL,QAAQN,EAE3CU,GAAGtB,YAAY,YAEf,IAAIwB,GAAYV,EAAMK,OAAO,MAGzBM,EAAcV,EAAaQ,KAAK,sBACT,KAAvBE,EAAYC,QAAsD,IAAtCD,EAAYJ,QAAQM,OAAOD,QACzDD,EAAYJ,QAAQM,KAAK,SAI3BZ,EAAaa,UAAUhB,EAAgB,WAErCG,EAAab,SAAS,aACtBiB,EAAOI,KAAK,aAAavB,YAAY,UACrCwB,EAAUtB,SAAS,UAEnBtC,EAAMF,OAAOI,QAIbiD,EAAaE,GAAG,mBAClBrB,EAAEC,oBAYVrC,EAAEC,SAASkB,gBAEThB,SAAU,WAER,GAAIC,GAAQC,KAERgE,EAAIrE,EAAEC,SAASmB,QAAQC,sBAEvBiD,EAAUtE,EAAEqE,EAAE/C,UAEdiD,EAAMvE,EAAEqE,EAAEG,kBAGdD,GAAIpC,GAAG,QAAS,SAAUC,GACxBA,EAAEC,iBAEGiC,EAAQrD,SAAS,yBAChBjB,EAAE,QAAQiB,SAAS,wBAIvBb,EAAMqE,MAAMH,EAASD,EAAEK,OAFvBtE,EAAMuE,KAAKL,EAASD,EAAEK,QAO1B,IAAIE,GAAK5E,EAAE,sBACXI,GAAMyE,KAAKD,GAGP5E,EAAE,QAAQiB,SAAS,SACrBb,EAAM0E,aAAaR,GAGftE,EAAE,iCAAiCe,SAAWuD,EAAQvD,UACxDX,EAAM2E,eAAeT,IAK3BK,KAAM,SAAUL,EAASI,GAEnBA,EACFJ,EAAQ5B,SAAS,wBAIjB1C,EAAE,QAAQ0C,SAAS,yBAIvB+B,MAAO,SAAUH,EAASI,GACpBA,EACFJ,EAAQ9B,YAAY,wBAEpBxC,EAAE,QAAQwC,YAAY,yBAG1BqC,KAAM,SAAUP,GACd,GAAIlE,GAAQC,IACZ,IAAIL,EAAE,QAAQiB,SAAS,gBAAiB,CAGtC,GAFAqD,EAAQ9D,IAAI,WAAY,YACxB8D,EAAQvD,OAAOf,EAAE,YAAYe,UACzBX,EAAM4E,gBACR,MAEFhF,GAAES,QAAQC,OAAO,WACfN,EAAMyE,KAAKP,KAEblE,EAAM4E,iBAAkB,MAExBV,GAAQ9D,KACNyE,SAAY,QACZlE,OAAU,UAIhB+D,aAAc,SAAUR,GACtBA,EAAQ9D,KACNyE,SAAY,QACZC,aAAc,OACdC,SAAY,OACZC,iBAAkB,UAGtBL,eAAgB,SAAUT,GACxBtE,EAAE,iCAAiCQ,IAAI,aAAc8D,EAAQvD,YAajEf,EAAEC,SAASoF,WACTC,UAAWtF,EAAEC,SAASmB,QAAQmE,iBAAiBC,mBAC/CC,MAAOzF,EAAEC,SAASmB,QAAQmE,iBAAiBG,eAC3CtC,eAAgBpD,EAAEC,SAASmB,QAAQgC,eACnCjD,SAAU,SAAUwF,GAClB,GAAIvF,GAAQC,IACPsF,KACHA,EAAOzD,UAGTlC,EAAE2F,GAAMxD,GAAG,QAAS/B,EAAMkF,UAAUrC,SAAU,SAAUb,GACtDA,EAAEC,iBACFjC,EAAM6C,SAASjD,EAAEK,SAInBL,EAAE2F,GAAMxD,GAAG,QAAS/B,EAAMkF,UAAUM,OAAQ,SAAUxD,GACpDA,EAAEC,iBACFjC,EAAMwF,OAAO5F,EAAEK,UAGnB4C,SAAU,SAAU4C,GAClB,GAAIzF,GAAQC,KAERyF,EAAMD,EAAQjC,QAAQ,QAAQC,QAE9BkC,EAAcD,EAAI/B,KAAK,uEACtB+B,GAAI7E,SAAS,kBAYhB4E,EAAQG,SAAS,UACdxD,YAAYpC,EAAMqF,MAAMd,MACxBjC,SAAStC,EAAMqF,MAAMxC,UAQxB6C,EAAIrD,QAAQ,qBAGZsD,EAAY3B,UAAUhE,EAAMgD,eAAgB,WAC1C0C,EAAItD,YAAY,qBAxBlBqD,EAAQG,SAAS,UACdxD,YAAYpC,EAAMqF,MAAMxC,UACxBP,SAAStC,EAAMqF,MAAMd,MAExBoB,EAAYrC,QAAQtD,EAAMgD,eAAgB,WACxC0C,EAAIpD,SAAS,iBACboD,EAAIrD,QAAQ,0BAsBlBmD,OAAQ,SAAUC,GAEhB,GAAIC,GAAMD,EAAQjC,QAAQ,QAAQC,OAClCiC,GAAIpC,QAAQrD,KAAK+C,kBAzlBvB,GAAsB,mBAAX6C,QACT,KAAM,IAAIC,OAAM,2BAYlBlG,GAAEC,YAOFD,EAAEC,SAASmB,SAIT+E,sBAAsB,EACtBC,0BAA2B,MAC3BC,iBAAkB,QAIlBjD,eAAgB,IAEhBkD,sBAAuB,4BAEvBC,iBAAiB,EAEjB5E,mBAAmB,EAInBiB,sBAAsB,EAEtB4D,kBAAkB,EAElBC,kBAAkB,EAClBC,kBAAmB,0BAKnBC,iBAAiB,EAEjBC,uBAAuB,EAEvBC,sBAAsB,EACtBxF,uBAEEmD,kBAAmB,kCAEnBlD,SAAU,mBAEVoD,OAAO,GAIToC,iBAAiB,EAEjBvB,kBACEG,gBAEEzC,SAAU,WAEV0B,KAAM,UAENiB,OAAQ,YAEVJ,oBAEEI,OAAQ,yBAER3C,SAAU,6BAId8D,YAEEC,QAAQ,EAERC,sBAAuB,oCAGzBC,QACEC,UAAW,UACXC,IAAK,UACLC,MAAO,UACPC,KAAM,UACNC,OAAQ,UACRC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,MAAO,UACPC,KAAM,UACNC,OAAQ,UACRC,QAAS,UACTC,OAAQ,UACRC,OAAQ,UACRC,MAAO,UACPC,KAAM,WAKRjG,aACEkG,GAAI,IACJ5F,GAAI,IACJ6F,GAAI,IACJC,GAAI,OAWRrI,EAAE,WACA,YAGAA,GAAE,QAAQwC,YAAY,mBAGS,mBAApB8F,kBACTtI,EAAEuI,QAAO,EACPvI,EAAEC,SAASmB,QACXkH,gBAIJ,IAAIjE,GAAIrE,EAAEC,SAASmB,OAGnBrB,SAGAC,EAAEC,SAASC,OAAOC,WAGdkE,EAAEuC,uBACJ5G,EAAEC,SAASiD,KAAK,YAIdmB,EAAEwC,sBACJ7G,EAAEC,SAASkB,eAAehB,WAIxBkE,EAAE8B,sBAAkD,mBAAnBnG,GAAEuB,GAAGiH,YACxCxI,EAAE,iBAAiBwI,YACjBzH,OAAQsD,EAAEgC,iBACVoC,eAAe,EACf3G,KAAMuC,EAAE+B,4BACP5F,IAAI,QAAS,QAId6D,EAAEkC,iBACJvG,EAAEC,SAAS8B,SAAS5B,SAASkE,EAAEiC,uBAI7BjC,EAAEoC,kBACJzG,EAAE,QAAQ0I,SACRpH,SAAU+C,EAAEqC,kBACZiC,UAAW,SAKXtE,EAAEyC,iBACJ9G,EAAEC,SAASoF,UAAUlF,WAInBkE,EAAEsC,iBAAuC,mBAAbiC,YAC9BA,UAAUC,OAAO3G,SAAS4G,MAIxBzE,EAAE0C,WAAWC,QACfhH,EAAEkC,UAAUC,GAAG,QAASkC,EAAE0C,WAAWE,sBAAuB,WAC1D,GAAInB,GAAM9F,EAAEK,MAAMuD,QAAQ,gBAAgBC,OAC1CiC,GAAIiD,YAAY,+BAQpB/I,EAAE,wCAAwCgJ,KAAK,WAC7C,GAAIC,GAAQjJ,EAAEK,KACdL,GAAEK,MAAM0D,KAAK,QAAQ5B,GAAG,QAAS,SAAUC,GACzC6G,EAAMlF,KAAK,eAAevB,YAAY,UACtCxC,EAAEK,MAAMqC,SAAS,UACjBN,EAAEC,uBA6ZR,SAAWrC,GAET,YAEAA,GAAEuB,GAAG2H,WAAa,SAAU9H,GA+C1B,QAAS+H,GAAMrD,GAEbA,EAAIsD,OAAOC,GAEXC,EAASC,YAAYC,KAAK1D,GAG5B,QAAS2D,GAAK3D,GAEZA,EAAI/B,KAAKsF,GAASzD,SAElB0D,EAASI,WAAWF,KAAK1D,GAvD3B,GAAIwD,GAAWtJ,EAAEuI,QAEf9F,QAAS,eAETkH,OAAQ,GAERJ,YAAa,SAAUzD,GACrB,MAAOA,IAET4D,WAAY,SAAU5D,GACpB,MAAOA,KAGR1E,GAGCiI,EAAUrJ,EAAE,uEAEhB,OAAOK,MAAK2I,KAAK,WAEf,GAAwB,KAApBM,EAASK,OAIX,YAHIlJ,OAAOgB,SACThB,OAAOgB,QAAQmI,IAAI,gDAKvB,IAAI9D,GAAM9F,EAAEK,MAERwJ,EAAO/D,EAAI/B,KAAKuF,EAAS7G,SAASoB,OAGtCgG,GAAK1H,GAAG,QAAS,SAAUC,GACzBA,EAAEC,iBAEF8G,EAAMrD,GAGNA,EAAI/B,KAAK,aAAa+F,KAAKR,EAASK,OAAQ,WAC1CF,EAAK3D,WAqBZG,QAaH,SAAWjG,GAET,YAEAA,GAAEuB,GAAGwI,YAAc,WACjB/J,EAAEC,SAASoF,UAAUlF,SAASE,OAGhCL,EAAEuB,GAAGyI,UAAY,WACf,GAAIC,GAASjK,EAAEA,EAAEC,SAASoF,UAAUC,UAAUrC,SAAU5C,KACxDL,GAAEC,SAASoF,UAAUpC,SAASgH,IAGhCjK,EAAEuB,GAAG2I,UAAY,WACf,GAAID,GAASjK,EAAEA,EAAEC,SAASoF,UAAUC,UAAUM,OAAQvF,KACtDL,GAAEC,SAASoF,UAAUO,OAAOqE,KAG7BhE,QAUF,SAAUjG,GAET,YAEAA,GAAEuB,GAAG4I,SAAW,SAAU/I,GAExB,GAAIkI,GAAWtJ,EAAEuI,QAEf6B,QAAS,SAAUC,GACjB,MAAOA,IAGTC,UAAW,SAAUD,GACnB,MAAOA,KAERjJ,EAEH,OAAOf,MAAK2I,KAAK,WAEW,mBAAfhJ,GAAEuB,GAAGgJ,QACdvK,EAAE,QAASK,MAAM8B,GAAG,YAAa,WAC/B,GAAIkI,GAAMrK,EAAEK,MAAMuD,QAAQ,MAAMC,OAChCwG,GAAItB,YAAY,QAChBO,EAASc,QAAQZ,KAAKa,KAGxBrK,EAAE,QAASK,MAAM8B,GAAG,cAAe,WACjC,GAAIkI,GAAMrK,EAAEK,MAAMuD,QAAQ,MAAMC,OAChCwG,GAAItB,YAAY,QAChBO,EAASgB,UAAUd,KAAKa,MAG1BrK,EAAE,QAASK,MAAM8B,GAAG,SAAU,WAC5B,GAAIkI,GAAMrK,EAAEK,MAAMuD,QAAQ,MAAMC,OAChCwG,GAAItB,YAAY,QACZ/I,EAAE,QAASqK,GAAK5G,GAAG,YACrB6F,EAASc,QAAQZ,KAAKa,GAEtBf,EAASgB,UAAUd,KAAKa,SAMlCpE","file":"app.min.js"} \ No newline at end of file diff --git a/srcjs/AdminLTE/README-shiny-mods.md b/srcjs/AdminLTE/README-shiny-mods.md index 5998d463..fc6f4812 100644 --- a/srcjs/AdminLTE/README-shiny-mods.md +++ b/srcjs/AdminLTE/README-shiny-mods.md @@ -3,3 +3,14 @@ This branch of AdminLTE contains the following changes from the stock version, t * The box collapse function triggers 'shown' and 'hidden' events, so that Shiny knows when outputs are visible or not. See https://github.com/rstudio/shinydashboard/issues/42 for a test app (must re-apply commit 73f6027 when updating to newer version of Admin LTE). * In AdminLTE.css, the fonts are fetched from the local host, instead of from Google fonts (must re-apply commits e9e63d1 and 9ccb12d when updating to newer version of Admin LTE). + +* Add the following code chunk to app.js (see commit #???): + +```js +var shinyOutput = checkElement.find('.shiny-bound-output'); +if (shinyOutput.length !== 0 && shinyOutput.first().html().length === 0) { + shinyOutput.first().html('
'); +} +``` + +This is inserted in the event listener for clicks on the sidebar menu items (right before app.js does a `slideDown()` on the clicked menuItem). The point is to enter a blank line (if there is no other content) inside the outputs, so the `slideDown()` animation looks reasonable. diff --git a/srcjs/AdminLTE/app.js b/srcjs/AdminLTE/app.js index 90f82bb2..7fbcf579 100755 --- a/srcjs/AdminLTE/app.js +++ b/srcjs/AdminLTE/app.js @@ -424,6 +424,12 @@ function _init() { //Get the parent li var parent_li = $this.parent("li"); + // shiny-mod (see README-shiny-mods.md) + var shinyOutput = checkElement.find('.shiny-bound-output'); + if (shinyOutput.length !== 0 && shinyOutput.first().html().length === 0) { + shinyOutput.first().html('
'); + } + //Open the target menu and add the menu-open class checkElement.slideDown(animationSpeed, function () { //Add the class active to the parent li From b125233119763efc25223bfce42239266a4ccb0a Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 21 Apr 2017 23:48:15 +0100 Subject: [PATCH 09/16] added manual tests for bookmarking and the shown/hidden events that happen on the sidebar --- tests-manual/dynamic-sidebar-bookmarking.R | 120 +++++++++++++++++++++ tests-manual/sidebar-bookmarking.R | 115 ++++++++++++++++++++ tests-manual/trigger-shown-sidebar.R | 39 +++++++ 3 files changed, 274 insertions(+) create mode 100644 tests-manual/dynamic-sidebar-bookmarking.R create mode 100644 tests-manual/sidebar-bookmarking.R create mode 100644 tests-manual/trigger-shown-sidebar.R diff --git a/tests-manual/dynamic-sidebar-bookmarking.R b/tests-manual/dynamic-sidebar-bookmarking.R new file mode 100644 index 00000000..4404aa49 --- /dev/null +++ b/tests-manual/dynamic-sidebar-bookmarking.R @@ -0,0 +1,120 @@ +# Run this app (with "live" URL bookmarking) to make sure that the sidebar state +# (collapsed/expanded state of the sidebar itself; selected menuItem and; if +# applicable, the expanded menuItem) + +library(shinydashboard) +library(shiny) +library(threejs) + +options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 4601) + +ui <- function(request) { + dashboardPage( + dashboardHeader(title = "Testing dynamic sidebar bookmarking"), + dashboardSidebar( + uiOutput("sidebarControls"), + sidebarMenuOutput("menu") + ), + dashboardBody( + tabItems( + tabItem("front", + h3("Click through the different tabs to see different content") + ), + tabItem("models1", + h3("Here's a linear model"), + verbatimTextOutput("models1") + ), + tabItem("models2", + h3("Here's a logistic regression"), + verbatimTextOutput("models2") + ), + tabItem("plots1", + h3("Here's a 2D plot"), + plotOutput("plots1") + ), + tabItem("plots2", + h3("Here's a 3D plot"), + scatterplotThreeOutput('plots2') + ), + tabItem("tables", + h3("Here's a table"), + tableOutput("tbl") + ) + ) + ) + ) +} + + +server <- function(input, output, session) { + output$menu <- renderMenu({ + sidebarMenu(id = "smenu", + menuItem("Frontpage", tabName = "front"), + menuItem("Models", + menuSubItem("Linear model", "models1"), + menuSubItem("Logistic regression", "models2") + ), + menuItem("Plots", + helpText("This is help text"), + menuSubItem("Scatterplot", "plots1"), + menuSubItem("3D graph", "plots2") + ), + menuItem("Tables", tabName = "tables") + ) + }) + output$sidebarControls <- renderUI({ + req(input$smenu) + if (input$smenu %in% c("models1", "models2", "plots1")) { + tagList( + selectInput("xaxis", "X axis", names(mtcars), selected = input$xaxis), + selectInput("yaxis", "Y axis", names(mtcars), selected = input$yaxis) + ) + } else if (input$smenu == "plots2") { + tagList( + selectInput("xaxis", "X axis", names(mtcars), selected = input$xaxis), + selectInput("yaxis", "Y axis", names(mtcars), selected = input$yaxis), + selectInput("zaxis", "Z axis", names(mtcars), selected = input$zaxis) + ) + } else NULL + }) + + formula <- reactive({ + req(input$yaxis, input$xaxis) + as.formula(paste(input$yaxis, input$xaxis, sep = " ~ ")) + }) + + output$models1 <- renderPrint({ + summary(glm(formula(), data = mtcars), family = "linear") + }) + + output$models2 <- renderPrint({ + summary(glm(formula(), data = mtcars), family = "binomial") + }) + + output$plots1 <- renderPlot({ + plot(formula(), data = mtcars) + }) + + output$plots2 <- renderScatterplotThree({ + x <- mtcars[[input$xaxis]] + y <- mtcars[[input$yaxis]] + z <- mtcars[[input$zaxis]] + scatterplot3js(x, y, z) + }) + + output$tbl <- renderTable({ + mtcars + }) + + observe({ + reactiveValuesToList(input) + session$doBookmark() + }) + onBookmarked(function(url) { + updateQueryString(url) + }) + +} + +enableBookmarking("url") +shinyApp(ui, server) diff --git a/tests-manual/sidebar-bookmarking.R b/tests-manual/sidebar-bookmarking.R new file mode 100644 index 00000000..8604e7fd --- /dev/null +++ b/tests-manual/sidebar-bookmarking.R @@ -0,0 +1,115 @@ +# Run this app (with "live" URL bookmarking) to make sure that the sidebar state +# (collapsed/expanded state of the sidebar itself; selected menuItem and; if +# applicable, the expanded menuItem) + +library(shinydashboard) +library(shiny) +library(threejs) + +options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 4601) + +ui <- function(request) { + dashboardPage( + dashboardHeader(title = "Testing sidebar bookmarkability"), + dashboardSidebar( + uiOutput("sidebarControls"), + sidebarMenu(id = "smenu", + menuItem(strong("Frontpage"), tabName = "front"), + menuItem("Models", + menuSubItem("Linear model", "models1"), + menuSubItem("Logistic regression", "models2") + ), + menuItem("Plots", + helpText("This is help text"), + menuSubItem("Scatterplot", "plots1"), + menuSubItem("3D graph", "plots2") + ), + menuItem("Tables", tabName = "tables") + ) + ), + dashboardBody( + tabItems( + tabItem("front", + h3("Click through the different tabs to see different content") + ), + tabItem("models1", + h3("Here's a linear model"), + verbatimTextOutput("models1") + ), + tabItem("models2", + h3("Here's a logistic regression"), + verbatimTextOutput("models2") + ), + tabItem("plots1", + h3("Here's a 2D plot"), + plotOutput("plots1") + ), + tabItem("plots2", + h3("Here's a 3D plot"), + scatterplotThreeOutput('plots2') + ), + tabItem("tables", + h3("Here's a table"), + tableOutput("tbl") + ) + ) + ) + ) +} +server <- function(input, output, session) { + output$sidebarControls <- renderUI({ + req(input$smenu) + if (input$smenu %in% c("models1", "models2", "plots1")) { + tagList( + selectInput("xaxis", "X axis", names(mtcars), selected = input$xaxis), + selectInput("yaxis", "Y axis", names(mtcars), selected = input$yaxis) + ) + } else if (input$smenu == "plots2") { + tagList( + selectInput("xaxis", "X axis", names(mtcars), selected = input$xaxis), + selectInput("yaxis", "Y axis", names(mtcars), selected = input$yaxis), + selectInput("zaxis", "Z axis", names(mtcars), selected = input$zaxis) + ) + } else NULL + }) + + formula <- reactive({ + req(input$yaxis, input$xaxis) + as.formula(paste(input$yaxis, input$xaxis, sep = " ~ ")) + }) + + output$models1 <- renderPrint({ + summary(glm(formula(), data = mtcars), family = "linear") + }) + + output$models2 <- renderPrint({ + summary(glm(formula(), data = mtcars), family = "binomial") + }) + + output$plots1 <- renderPlot({ + plot(formula(), data = mtcars) + }) + + output$plots2 <- renderScatterplotThree({ + x <- mtcars[[input$xaxis]] + y <- mtcars[[input$yaxis]] + z <- mtcars[[input$zaxis]] + scatterplot3js(x, y, z) + }) + + output$tbl <- renderTable({ + mtcars + }) + + observe({ + reactiveValuesToList(input) + session$doBookmark() + }) + onBookmarked(function(url) { + updateQueryString(url) + }) + +} + +enableBookmarking("url") +shinyApp(ui, server) diff --git a/tests-manual/trigger-shown-sidebar.R b/tests-manual/trigger-shown-sidebar.R new file mode 100644 index 00000000..f7a2c24d --- /dev/null +++ b/tests-manual/trigger-shown-sidebar.R @@ -0,0 +1,39 @@ +# Run this app to test that Shiny outputs that are initally hidden inside +# menuItems become visible ( trigger("shown) ) after we expand the respective +# menuItem. + +library(shiny) +library(shinydashboard) + +options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 9000) + +ui <- function(req) { + dashboardPage( + dashboardHeader(), + dashboardSidebar( + sidebarMenu(id = "smenu", + menuItem("Menu Item 1", tabName = "tab1", "text1", menuSubItem("name", tabName = "tabName")), + menuItem("Menu Item 2", tabName = "tab2", textOutput("text2"), startExpanded = FALSE, + expandedName = "expanded") + ) + ), + dashboardBody( + tabItems(tabItem("tabName", h3("This is the only content"))) + ) + ) +} + +server <- function(input, output, session) { + output$text2 <- renderText("text2") + + observe({ + reactiveValuesToList(input) + session$doBookmark() + }) + onBookmarked(function(url) { + updateQueryString(url) + }) +} + +enableBookmarking("url") +shinyApp(ui = ui, server = server) From 7f6bc3dd1238a05cf96d91a1c050f759214ba765 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 25 Apr 2017 17:28:54 +0100 Subject: [PATCH 10/16] update NEWS --- NEWS.md | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/NEWS.md b/NEWS.md index 1c9352fb..ef63c7bc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,32 @@ -shinydashboard 0.5.3.9000 +shinydashboard 0.6 ========================= +This release of shinydashboard was aimed at both fixing bugs and also bringing the package up to speed with users' requests and Shiny itself (especially fully bringing [bookmarkable state](https://shiny.rstudio.com/articles/bookmarking-state.html) to shinydashboard's sidebar). In addition to the changes listed below, we also added a [new "Behavior" section to the shinydashboard website](https://rstudio.github.io/shinydashboard/behavior.html) to explain this release's two biggest new features. + +## Full changelog + +### New features + +* Address [#179](https://github.com/rstudio/shinydashboard/issues/179) support for bookmarking the expanded/collapsed state of the whole sidebar. (commit [e71c93f](https://github.com/rstudio/shinydashboard/pull/199/commits/e71c93fa7a71f229e725efd4a7867e431cd57679)) + +* Added Shiny input to keep track of which sidebar `menuItem` is expanded (if any), which makes bookmarking the exact state of the sidebar trivial. (commit [6901b90](https://github.com/rstudio/shinydashboard/pull/199/commits/6901b90b8c866b89d02514cfc01fdfab88175602)) + +### Minor new features and improvements + * Addressed [#165](https://github.com/rstudio/shinydashboard/issues/165): added a new optional argument, called `headerText` to the `dropdownMenu()` function. If provided by the user, this text (instead of the default) will be shown on the header of the menu (only visible when the menu is expanded). See `?dropdownMenu` for more details. [#207](https://github.com/rstudio/shinydashboard/pull/207) +* Split JS files. (commit [ea91503](https://github.com/rstudio/shinydashboard/pull/199/commits/ea915038ae2126f48c15e3aac41782a22b16c506)). More updates to Gruntfile and structure. (commit [4e80616](https://github.com/rstudio/shinydashboard/pull/199/commits/4e80616c5b3aa0dc73022dc815288b5ba7c35be0)) + +* Better shown/hidden mechanic for Shiny inputs inside collapsible `menuItem`s. (commit [6901b90](https://github.com/rstudio/shinydashboard/pull/199/commits/6901b90b8c866b89d02514cfc01fdfab88175602)) + +* Added hack on adminLTE/app.js in order to make the `slideUp`/`slideDown` css transitions look reasonable when its content is initially empty (use case is for hidden Shiny outputs that are not rendered until the first time the `menuItem` is expanded and reveal them -- i.e. first time that `trigger("shown")` is called). (commit [25725a6](https://github.com/rstudio/shinydashboard/pull/199/commits/25725a67ce3dd841786dd82b0e46624c6a7d4722)) + +* Added manual tests for bookmarking and the shown/hidden events that happen on the sidebar. (commit [9e3e55d](https://github.com/rstudio/shinydashboard/pull/199/commits/9e3e55de8cc63d4bdd179251cd53eeb845441d3d)) + +### Bug fixes + +* Fixed [#71](https://github.com/rstudio/shinydashboard/issues/71) and [#87](https://github.com/rstudio/shinydashboard/issues/87): detect and enforce selected tab for dynamic sidebar menus by calling `ensureActivatedTab()` for these. (commit [9b88a79](https://github.com/rstudio/shinydashboard/pull/199/commits/9b88a790df058432165ca3b483b5bbfe1d267326)) + * Fixed [#127](https://github.com/rstudio/shinydashboard/issues/127) and [#177](https://github.com/rstudio/shinydashboard/issues/177): previously, if `dashboardSidebar()` was called with an explicit `width` parameter, mobile rendering would look weird (the sidebar wouldn't completely disappear when it was collapsed, and content in the dashboard body would be hidden under the still-visible sidebar). ([#204](https://github.com/rstudio/shinydashboard/pull/204)) * Fixed [#79](https://github.com/rstudio/shinydashboard/issues/79): Re-enable slight css transition when the sidebar is expanded/collapsed. ([#205](https://github.com/rstudio/shinydashboard/pull/205)). @@ -15,10 +39,14 @@ shinydashboard 0.5.3.9000 * Fixed [#62](https://github.com/rstudio/shinydashboard/issues/62): make images resize when the sidebar collapses/expands. [#185](https://github.com/rstudio/shinydashboard/pull/185) -* Addressed [#178](https://github.com/rstudio/shinydashboard/issues/178): switch from `npm` to `yarn`. Also upgraded all yarn packages to the `latest` tag (all major changes). [#184](https://github.com/rstudio/shinydashboard/pull/184) - * Fixed [#176](https://github.com/rstudio/shinydashboard/issues/176) (making buttons look good on the sidebar) by giving Shiny action buttons and links some margin space. ([#182](https://github.com/rstudio/shinydashboard/pull/182)) +### Library updates + +* Update documentation to newest version of roxygen. (commit [#541d3c1](https://github.com/rstudio/shinydashboard/pull/199/commits/541d3c13467446c8e89b178d95b0984729559059)) + +* Addressed [#178](https://github.com/rstudio/shinydashboard/issues/178): switch from `npm` to `yarn`. Also upgraded all yarn packages to the `latest` tag (all major changes). [#184](https://github.com/rstudio/shinydashboard/pull/184) + * Updated to AdminLTE 2.3.11. ([#181](https://github.com/rstudio/shinydashboard/pull/181)) shinydashboard 0.5.3 From 3ba387c94a32ce95e3dc633dcbdafe434747045e Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Mon, 15 May 2017 20:55:54 +0100 Subject: [PATCH 11/16] coerce result of input$sidebarCollapsed to a logical --- inst/shinydashboard.js | 4 ++-- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarCollapsed.js | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 8bd4eec9..b526dec4 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -217,14 +217,14 @@ $.extend(sidebarCollapsedInputBinding, { return "sidebarCollapsed"; }, getValue: function(el) { - return $(el).attr("data-collapsed"); + return $(el).attr("data-collapsed") === "true"; }, setValue: function(el, value) { $(el).attr("data-collapsed", value); }, toggleValue: function(el) { var current = this.getValue(el); - var newVal = (current === "true") ? "false" : "true"; + var newVal = current ? "false" : "true"; this.setValue(el, newVal); }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 678ba31e..1ac0fbb1 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/input_binding_sidebarmenuExpanded.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n // Find all tab links under sidebar-menu even if they don't have a\n // tabName (which is why the second selector is necessary)\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab'],\" +\n \".sidebar-menu li.treeview > a\");\n\n // If any other items are active, deactivate them\n $tablinks.not($(this)).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n var $obj = $('.sidebarMenuSelectedTabItem');\n var inputBinding = $obj.data('shiny-input-binding');\n if (typeof inputBinding !== 'undefined') {\n inputBinding.setValue($obj, $(this).attr('data-value'));\n $obj.trigger('change');\n }\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n $(\".sidebarMenuSelectedTabItem\").attr(\"data-value\",\n $tablinks.first().attr(\"data-value\"));\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n// Whenever we expand a menuItem (to be expandable, it must have children),\n// update the value for the expandedItem's input binding (this is the\n// tabName of the fist subMenuItem inside the menuItem that is currently\n// expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n var $menu = $(this).next();\n // If this menuItem was already open, then clicking on it again,\n // should trigger the \"hidden\" event, so Shiny doesn't worry about\n // it while it's hidden (and vice versa).\n if ($menu.hasClass(\"menu-open\")) $menu.trigger(\"hidden\");\n else if ($menu.hasClass(\"treeview-menu\")) $menu.trigger(\"shown\");\n\n // need to set timeout to account for the slideUp/slideDown animation\n var $obj = $('section.sidebar.shiny-bound-input');\n setTimeout(function() { $obj.trigger('change'); }, 600);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('.sidebarMenuSelectedTabItem');\n },\n getValue: function(el) {\n var value = $(el).attr('data-value');\n if (value === \"null\") return null;\n return value;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\n\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js\n\n/* global Shiny */\n\n// sidebarmenuExpandedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of what menuItem (if any) is expanded\nvar sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"sidebarItemExpanded\";\n },\n getValue: function(el) {\n var $open = $(el).find('li ul.menu-open');\n if ($open.length === 1) return $open.attr('data-expanded');\n else return null;\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/input_binding_sidebarmenuExpanded.js","../srcjs/_end.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n // Find all tab links under sidebar-menu even if they don't have a\n // tabName (which is why the second selector is necessary)\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab'],\" +\n \".sidebar-menu li.treeview > a\");\n\n // If any other items are active, deactivate them\n $tablinks.not($(this)).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n var $obj = $('.sidebarMenuSelectedTabItem');\n var inputBinding = $obj.data('shiny-input-binding');\n if (typeof inputBinding !== 'undefined') {\n inputBinding.setValue($obj, $(this).attr('data-value'));\n $obj.trigger('change');\n }\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n $(\".sidebarMenuSelectedTabItem\").attr(\"data-value\",\n $tablinks.first().attr(\"data-value\"));\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n// Whenever we expand a menuItem (to be expandable, it must have children),\n// update the value for the expandedItem's input binding (this is the\n// tabName of the fist subMenuItem inside the menuItem that is currently\n// expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n var $menu = $(this).next();\n // If this menuItem was already open, then clicking on it again,\n // should trigger the \"hidden\" event, so Shiny doesn't worry about\n // it while it's hidden (and vice versa).\n if ($menu.hasClass(\"menu-open\")) $menu.trigger(\"hidden\");\n else if ($menu.hasClass(\"treeview-menu\")) $menu.trigger(\"shown\");\n\n // need to set timeout to account for the slideUp/slideDown animation\n var $obj = $('section.sidebar.shiny-bound-input');\n setTimeout(function() { $obj.trigger('change'); }, 600);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('.sidebarMenuSelectedTabItem');\n },\n getValue: function(el) {\n var value = $(el).attr('data-value');\n if (value === \"null\") return null;\n return value;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\n\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\") === \"true\";\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = current ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js\n\n/* global Shiny */\n\n// sidebarmenuExpandedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of what menuItem (if any) is expanded\nvar sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"sidebarItemExpanded\";\n },\n getValue: function(el) {\n var $open = $(el).find('li ul.menu-open');\n if ($open.length === 1) return $open.attr('data-expanded');\n else return null;\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n});\n"]} \ No newline at end of file diff --git a/inst/shinydashboard.min.js b/inst/shinydashboard.min.js index 7f7bcd08..57d7c5e3 100644 --- a/inst/shinydashboard.min.js +++ b/inst/shinydashboard.min.js @@ -1,4 +1,4 @@ /*! shinydashboard 0.5.3.9000 | (c) 2017-2017 RStudio, Inc. | License: GPL-2 | file LICENSE */ -$(function(){var a=function(){var a=$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a");a.not($(this)).parent("li").removeClass("active");var b=$(".sidebarMenuSelectedTabItem"),c=b.data("shiny-input-binding");"undefined"!=typeof c&&(c.setValue(b,$(this).attr("data-value")),b.trigger("change"))};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$(".sidebar-menu a[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||(a.first().tab("show"),$(".sidebarMenuSelectedTabItem").attr("data-value",a.first().attr("data-value"))))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize");var a=$(".main-sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")}),$(document).on("click",".treeview > a",function(){var a=$(this).next();a.hasClass("menu-open")?a.trigger("hidden"):a.hasClass("treeview-menu")&&a.trigger("shown");var b=$("section.sidebar.shiny-bound-input");setTimeout(function(){b.trigger("change")},600)});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find(".sidebarMenuSelectedTabItem")},getValue:function(a){var b=$(a).attr("data-value");return"null"===b?null:b},setValue:function(a,b){var c=this,d=$(a).parent("ul.sidebar-menu").find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),$(a).attr("data-value",c._getTabName($(this))),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-collapsed")},setValue:function(a,b){$(a).attr("data-collapsed",b)},toggleValue:function(a){var b=this.getValue(a),c="true"===b?"false":"true";this.setValue(a,c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarCollapsedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarCollapsedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarCollapsedInputBinding");var f=new Shiny.InputBinding;$.extend(f,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"sidebarItemExpanded"},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.attr("data-expanded"):null},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(f,"shinydashboard.sidebarmenuExpandedInputBinding")}); +$(function(){var a=function(){var a=$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a");a.not($(this)).parent("li").removeClass("active");var b=$(".sidebarMenuSelectedTabItem"),c=b.data("shiny-input-binding");"undefined"!=typeof c&&(c.setValue(b,$(this).attr("data-value")),b.trigger("change"))};$(document).on("shown.bs.tab",'.sidebar-menu a[data-toggle="tab"]',a);var b=function(){var a=$(".sidebar-menu a[data-toggle='tab']"),b=a.filter("[data-start-selected='1']");return 0!==b.length?void b.tab("show"):void(a.parent("li").hasClass("active")||(a.first().tab("show"),$(".sidebarMenuSelectedTabItem").attr("data-value",a.first().attr("data-value"))))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize");var a=$(".main-sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")}),$(document).on("click",".treeview > a",function(){var a=$(this).next();a.hasClass("menu-open")?a.trigger("hidden"):a.hasClass("treeview-menu")&&a.trigger("shown");var b=$("section.sidebar.shiny-bound-input");setTimeout(function(){b.trigger("change")},600)});var c=new Shiny.OutputBinding;$.extend(c,{find:function(a){return $(a).find(".shinydashboard-menu-output")},onValueError:function(a,b){Shiny.unbindAll(a),this.renderError(a,b)},renderValue:function(a,c){Shiny.unbindAll(a);var d,e=[];if(null!==c){"string"==typeof c?d=c:"object"==typeof c&&(d=c.html,e=c.deps);var f=$($.parseHTML(d));Shiny.renderHtml(f.html(),a,e),a.className="shinydashboard-menu-output shiny-bound-output "+f.attr("class"),Shiny.initializeInputs(a),Shiny.bindAll(a),b()}}}),Shiny.outputBindings.register(c,"shinydashboard.menuOutputBinding");var d=new Shiny.InputBinding;$.extend(d,{find:function(a){return $(a).find(".sidebarMenuSelectedTabItem")},getValue:function(a){var b=$(a).attr("data-value");return"null"===b?null:b},setValue:function(a,b){var c=this,d=$(a).parent("ul.sidebar-menu").find("li:not(.treeview)").children("a");d.each(function(){if(c._getTabName($(this))===b)return $(this).tab("show"),$(a).attr("data-value",c._getTabName($(this))),!1})},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.tabItemInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".tabItemInputBinding")},_getTabName:function(a){return a.attr("data-value")}}),Shiny.inputBindings.register(d,"shinydashboard.tabItemInput");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return"true"===$(a).attr("data-collapsed")},setValue:function(a,b){$(a).attr("data-collapsed",b)},toggleValue:function(a){var b=this.getValue(a),c=b?"false":"true";this.setValue(a,c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarCollapsedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarCollapsedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarCollapsedInputBinding");var f=new Shiny.InputBinding;$.extend(f,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"sidebarItemExpanded"},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.attr("data-expanded"):null},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(f,"shinydashboard.sidebarmenuExpandedInputBinding")}); //# sourceMappingURL=shinydashboard.min.js.map \ No newline at end of file diff --git a/inst/shinydashboard.min.js.map b/inst/shinydashboard.min.js.map index b7f31bd4..7f5e9752 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/input_binding_sidebarmenuExpanded.js"],"names":["$","deactivateOtherTabs","$tablinks","not","this","parent","removeClass","$obj","inputBinding","data","setValue","attr","trigger","document","on","ensureActivatedTab","$startTab","filter","length","tab","hasClass","first","addClass","hide","window","toggleValue","$menu","next","setTimeout","menuOutputBinding","Shiny","OutputBinding","extend","find","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","value","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n // Find all tab links under sidebar-menu even if they don't have a\n // tabName (which is why the second selector is necessary)\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab'],\" +\n \".sidebar-menu li.treeview > a\");\n\n // If any other items are active, deactivate them\n $tablinks.not($(this)).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n var $obj = $('.sidebarMenuSelectedTabItem');\n var inputBinding = $obj.data('shiny-input-binding');\n if (typeof inputBinding !== 'undefined') {\n inputBinding.setValue($obj, $(this).attr('data-value'));\n $obj.trigger('change');\n }\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n $(\".sidebarMenuSelectedTabItem\").attr(\"data-value\",\n $tablinks.first().attr(\"data-value\"));\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n// Whenever we expand a menuItem (to be expandable, it must have children),\n// update the value for the expandedItem's input binding (this is the\n// tabName of the fist subMenuItem inside the menuItem that is currently\n// expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n var $menu = $(this).next();\n // If this menuItem was already open, then clicking on it again,\n // should trigger the \"hidden\" event, so Shiny doesn't worry about\n // it while it's hidden (and vice versa).\n if ($menu.hasClass(\"menu-open\")) $menu.trigger(\"hidden\");\n else if ($menu.hasClass(\"treeview-menu\")) $menu.trigger(\"shown\");\n\n // need to set timeout to account for the slideUp/slideDown animation\n var $obj = $('section.sidebar.shiny-bound-input');\n setTimeout(function() { $obj.trigger('change'); }, 600);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('.sidebarMenuSelectedTabItem');\n },\n getValue: function(el) {\n var value = $(el).attr('data-value');\n if (value === \"null\") return null;\n return value;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\n\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"true\") ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js\n\n/* global Shiny */\n\n// sidebarmenuExpandedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of what menuItem (if any) is expanded\nvar sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"sidebarItemExpanded\";\n },\n getValue: function(el) {\n var $open = $(el).find('li ul.menu-open');\n if ($open.length === 1) return $open.attr('data-expanded');\n else return null;\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/tabs.js","../srcjs/sidebar.js","../srcjs/output_binding_menu.js","../srcjs/input_binding_tabItem.js","../srcjs/input_binding_sidebarCollapsed.js","../srcjs/input_binding_sidebarmenuExpanded.js"],"names":["$","deactivateOtherTabs","$tablinks","not","this","parent","removeClass","$obj","inputBinding","data","setValue","attr","trigger","document","on","ensureActivatedTab","$startTab","filter","length","tab","hasClass","first","addClass","hide","window","toggleValue","$menu","next","setTimeout","menuOutputBinding","Shiny","OutputBinding","extend","find","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","value","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/tabs.js\n\n// This function handles a special case in the AdminLTE sidebar: when there\n// is a sidebar-menu with items, and one of those items has sub-items, and\n// they are used for tab navigation. Normally, if one of the items is\n// selected and then a sub-item is clicked, both the item and sub-item will\n// retain the \"active\" class, so they will both be highlighted. This happens\n// because they're not designed to be used together for tab panels. This\n// code ensures that only one item will have the \"active\" class.\nvar deactivateOtherTabs = function() {\n // Find all tab links under sidebar-menu even if they don't have a\n // tabName (which is why the second selector is necessary)\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab'],\" +\n \".sidebar-menu li.treeview > a\");\n\n // If any other items are active, deactivate them\n $tablinks.not($(this)).parent(\"li\").removeClass(\"active\");\n\n // Trigger event for the tabItemInputBinding\n var $obj = $('.sidebarMenuSelectedTabItem');\n var inputBinding = $obj.data('shiny-input-binding');\n if (typeof inputBinding !== 'undefined') {\n inputBinding.setValue($obj, $(this).attr('data-value'));\n $obj.trigger('change');\n }\n};\n\n$(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle=\"tab\"]',\n deactivateOtherTabs);\n\n// When document is ready, if there is a sidebar menu with no activated tabs,\n// activate the one specified by `data-start-selected`, or if that's not\n// present, the first one.\nvar ensureActivatedTab = function() {\n var $tablinks = $(\".sidebar-menu a[data-toggle='tab']\");\n\n // If there's a `data-start-selected` attribute and we can find a tab with\n // that name, activate it.\n var $startTab = $tablinks.filter(\"[data-start-selected='1']\");\n if ($startTab.length !== 0) {\n $startTab.tab(\"show\");\n return;\n }\n\n // If we got this far, just activate the first tab.\n if (! $tablinks.parent(\"li\").hasClass(\"active\") ) {\n $tablinks.first().tab(\"show\");\n $(\".sidebarMenuSelectedTabItem\").attr(\"data-value\",\n $tablinks.first().attr(\"data-value\"));\n }\n};\n\nensureActivatedTab();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/sidebar.js\n\n// Optionally disable sidebar (set through the `disable` argument\n// to the `dashboardSidebar` function)\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (so images are responsive and resize)\n $(window).trigger(\"resize\");\n\n // 2) Update the value for the sidebar's input binding\n var $obj = $('.main-sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n});\n\n// Whenever we expand a menuItem (to be expandable, it must have children),\n// update the value for the expandedItem's input binding (this is the\n// tabName of the fist subMenuItem inside the menuItem that is currently\n// expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n var $menu = $(this).next();\n // If this menuItem was already open, then clicking on it again,\n // should trigger the \"hidden\" event, so Shiny doesn't worry about\n // it while it's hidden (and vice versa).\n if ($menu.hasClass(\"menu-open\")) $menu.trigger(\"hidden\");\n else if ($menu.hasClass(\"treeview-menu\")) $menu.trigger(\"shown\");\n\n // need to set timeout to account for the slideUp/slideDown animation\n var $obj = $('section.sidebar.shiny-bound-input');\n setTimeout(function() { $obj.trigger('change'); }, 600);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_menu.js\n\n/* global Shiny */\n\n// menuOutputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.htmlOutputBinding, but instead of putting the result in a\n// wrapper div, it replaces the origin DOM element with the new DOM elements,\n// copying over the ID and class.\nvar menuOutputBinding = new Shiny.OutputBinding();\n$.extend(menuOutputBinding, {\n find: function(scope) {\n return $(scope).find('.shinydashboard-menu-output');\n },\n onValueError: function(el, err) {\n Shiny.unbindAll(el);\n this.renderError(el, err);\n },\n renderValue: function(el, data) {\n Shiny.unbindAll(el);\n\n var html;\n var dependencies = [];\n if (data === null) {\n return;\n } else if (typeof(data) === 'string') {\n html = data;\n } else if (typeof(data) === 'object') {\n html = data.html;\n dependencies = data.deps;\n }\n\n var $html = $($.parseHTML(html));\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), el, dependencies);\n\n // Extract class of wrapper, and add them to the wrapper element\n el.className = 'shinydashboard-menu-output shiny-bound-output ' +\n $html.attr('class');\n\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab(); // eslint-disable-line\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabItem.js\n\n/* global Shiny */\n\n// tabItemInputBinding\n// ------------------------------------------------------------------\n// Based on Shiny.tabItemInputBinding, but customized for tabItems in\n// shinydashboard, which have a slightly different structure.\nvar tabItemInputBinding = new Shiny.InputBinding();\n$.extend(tabItemInputBinding, {\n find: function(scope) {\n return $(scope).find('.sidebarMenuSelectedTabItem');\n },\n getValue: function(el) {\n var value = $(el).attr('data-value');\n if (value === \"null\") return null;\n return value;\n },\n setValue: function(el, value) {\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() { // eslint-disable-line consistent-return\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n }\n });\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n // This event is triggered by deactivateOtherTabs, which is triggered by\n // shown. The deactivation of other tabs must occur before Shiny gets the\n // input value.\n $(el).on('change.tabItemInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.tabItemInputBinding');\n },\n _getTabName: function(anchor) {\n return anchor.attr('data-value');\n }\n});\n\nShiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarCollapsed.js\n\n/* global Shiny */\n\n// sidebarCollapsedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of whether the sidebar is expanded (default)\n// or collapsed\nvar sidebarCollapsedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarCollapsedInputBinding, {\n find: function(scope) {\n return $(scope).find('.main-sidebar').first();\n },\n getId: function(el) {\n return \"sidebarCollapsed\";\n },\n getValue: function(el) {\n return $(el).attr(\"data-collapsed\") === \"true\";\n },\n setValue: function(el, value) {\n $(el).attr(\"data-collapsed\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = current ? \"false\" : \"true\";\n this.setValue(el, newVal);\n },\n receiveMessage: function(el, data) {\n if (data.hasOwnProperty('value'))\n this.setValue(el, data.value);\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarCollapsedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarCollapsedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_sidebarmenuExpanded.js\n\n/* global Shiny */\n\n// sidebarmenuExpandedInputBinding\n// ------------------------------------------------------------------\n// This keeps tracks of what menuItem (if any) is expanded\nvar sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n$.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"sidebarItemExpanded\";\n },\n getValue: function(el) {\n var $open = $(el).find('li ul.menu-open');\n if ($open.length === 1) return $open.attr('data-expanded');\n else return null;\n },\n subscribe: function(el, callback) {\n $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n});\nShiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n"]} \ No newline at end of file diff --git a/srcjs/input_binding_sidebarCollapsed.js b/srcjs/input_binding_sidebarCollapsed.js index aa7b0c0b..6d7c7b79 100644 --- a/srcjs/input_binding_sidebarCollapsed.js +++ b/srcjs/input_binding_sidebarCollapsed.js @@ -13,14 +13,14 @@ $.extend(sidebarCollapsedInputBinding, { return "sidebarCollapsed"; }, getValue: function(el) { - return $(el).attr("data-collapsed"); + return $(el).attr("data-collapsed") === "true"; }, setValue: function(el, value) { $(el).attr("data-collapsed", value); }, toggleValue: function(el) { var current = this.getValue(el); - var newVal = (current === "true") ? "false" : "true"; + var newVal = current ? "false" : "true"; this.setValue(el, newVal); }, receiveMessage: function(el, data) { From 742a4cc257706dbade37288c4c38f09ad664e7a1 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Mon, 15 May 2017 21:15:56 +0100 Subject: [PATCH 12/16] r side (see previous commit) --- R/dashboardSidebar.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 3595873b..1fdc534a 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -120,8 +120,8 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # If we're restoring a bookmarked app, this holds the value of whether or not the # sidebar was collapsed. If this is not the case, the default is whatever the user # specified in the `collapsed` argument. - dataValue <- shiny::restoreInput(id = "sidebarCollapsed", - default = if (collapsed) "true" else "false") + dataValue <- shiny::restoreInput(id = "sidebarCollapsed", default = collapsed) + dataValueString <- if (dataValue) "true" else "false" # The expanded/collapsed state of the sidebar is actually set by adding a # class to the body (not to the sidebar). However, it makes sense for the @@ -129,7 +129,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # just passed through (as the `data-collapsed` attribute) to the # `dashboardPage()` function tags$aside( - class = "main-sidebar", `data-collapsed` = dataValue, custom_css, + class = "main-sidebar", `data-collapsed` = dataValueString, custom_css, tags$section( class = "sidebar", `data-disable` = if (disable) 1 else NULL, From 4475eb6f3d6a977c08ced31353ac038931af9e38 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Mon, 15 May 2017 21:47:26 +0100 Subject: [PATCH 13/16] news --- NEWS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS.md b/NEWS.md index ef63c7bc..a6802ecd 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ shinydashboard 0.6 This release of shinydashboard was aimed at both fixing bugs and also bringing the package up to speed with users' requests and Shiny itself (especially fully bringing [bookmarkable state](https://shiny.rstudio.com/articles/bookmarking-state.html) to shinydashboard's sidebar). In addition to the changes listed below, we also added a [new "Behavior" section to the shinydashboard website](https://rstudio.github.io/shinydashboard/behavior.html) to explain this release's two biggest new features. + ## Full changelog ### New features From 1da2dc9121969f4a022480b26e9cded42518404f Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 16 May 2017 17:49:17 +0100 Subject: [PATCH 14/16] Closes #209: Re-enabling slight css transitions had caused an unwanted animation when `disable = TRUE` inside dashboardSidebar() --- R/dashboardSidebar.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 1fdc534a..9375b13f 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -121,6 +121,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # sidebar was collapsed. If this is not the case, the default is whatever the user # specified in the `collapsed` argument. dataValue <- shiny::restoreInput(id = "sidebarCollapsed", default = collapsed) + if (disable) dataValue <- TRUE dataValueString <- if (dataValue) "true" else "false" # The expanded/collapsed state of the sidebar is actually set by adding a From 460fa7781e4dc254518520f0d75c081b56e4b876 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 16 May 2017 17:55:12 +0100 Subject: [PATCH 15/16] added right ref to shiny-mods README --- srcjs/AdminLTE/README-shiny-mods.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcjs/AdminLTE/README-shiny-mods.md b/srcjs/AdminLTE/README-shiny-mods.md index fc6f4812..5c6a6d34 100644 --- a/srcjs/AdminLTE/README-shiny-mods.md +++ b/srcjs/AdminLTE/README-shiny-mods.md @@ -4,7 +4,7 @@ This branch of AdminLTE contains the following changes from the stock version, t * In AdminLTE.css, the fonts are fetched from the local host, instead of from Google fonts (must re-apply commits e9e63d1 and 9ccb12d when updating to newer version of Admin LTE). -* Add the following code chunk to app.js (see commit #???): +* Add the following code chunk to app.js (see commit c3a0c59): ```js var shinyOutput = checkElement.find('.shiny-bound-output'); From cded9e8b9bec1784a3ba16ead560ba7c47d5138d Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 16 May 2017 19:59:28 +0100 Subject: [PATCH 16/16] add explanatory comment --- R/dashboardSidebar.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 9375b13f..1f6be3fc 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -121,7 +121,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # sidebar was collapsed. If this is not the case, the default is whatever the user # specified in the `collapsed` argument. dataValue <- shiny::restoreInput(id = "sidebarCollapsed", default = collapsed) - if (disable) dataValue <- TRUE + if (disable) dataValue <- TRUE # this is a workaround to fix #209 dataValueString <- if (dataValue) "true" else "false" # The expanded/collapsed state of the sidebar is actually set by adding a