From 1ae32a3fd090d7cdd93d680a805a9d8db419bae1 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Feb 2017 17:06:08 +0000 Subject: [PATCH 01/43] bookmarking attempt --- R/dashboardSidebar.R | 5 +++- inst/shinydashboard.js | 55 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 338a1be2..d9419eb2 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -121,7 +121,10 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # 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"), + tags$aside( + id = "main-sidebar-id", + class = paste("main-sidebar", if (collapsed) "start-collapsed"), + `data-value` = if (collapsed) "collapsed" else "expanded", custom_css, tags$section( class = "sidebar", diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index c9b6db1d..49469988 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -49,16 +49,29 @@ $(function() { ensureActivatedTab(); + // sendMessage to sidebar when we programmatically disable it + // (this ensure that the sidebar has the correct value) + var updateSidebarVal = function(newVal) { + var $obj = $('.shiny-bound-input#main-sidebar-id'); + var inputBinding = $obj.data('shiny-input-binding'); + alert($obj.attr('data-value')); + if (!newVal) inputBinding.toggleValue($obj); + else inputBinding.setValue($obj, newVal); + alert($obj.attr('data-value')); + }; + // Optionally disable sidebar if ($("section.sidebar").data("disable")) { $("body").addClass("sidebar-collapse"); + updateSidebarVal("collapsed"); $(".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() { + $(document).on("click", ".sidebar-toggle", function() { $(window).trigger("resize"); + updateSidebarVal(); }); $(document).on("click", ".treeview > a", function() { @@ -158,4 +171,44 @@ $(function() { Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); + + // sidebarInputBinding + // ------------------------------------------------------------------ + var sidebarInputBinding = new Shiny.InputBinding(); + $.extend(sidebarInputBinding, { + find: function(scope) { + return $(scope).find('#main-sidebar-id'); + }, + getValue: function(el) { + return $(el).attr("data-value"); + // if ($('body').hasClass('sidebar-collapse')) return 'collapsed'; + // else return 'expanded'; + }, + setValue: function(el, value) { + $(el).attr("data-value", value); + // if (value === 'collapsed') $('body').addClass('sidebar-collapse'); + // else $('body').removeClass('sidebar-collapse'); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + this.setValue(el, newVal); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarInputBinding'); + } + }); + Shiny.inputBindings.register(sidebarInputBinding, + 'shinydashboard.sidebarInputBinding'); + + }); From 9321379a17fc9e242b7b570f06fc67173a3db0ac Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Feb 2017 20:21:15 +0000 Subject: [PATCH 02/43] expanded/collapsed state of sidebar --- R/dashboardPage.R | 6 +- R/dashboardSidebar.R | 12 ++-- inst/shinydashboard.js | 137 ++++++++++++++++++++++++++++++++++------- 3 files changed, 128 insertions(+), 27 deletions(-) diff --git a/R/dashboardPage.R b/R/dashboardPage.R index 40e78fea..2d9ded94 100644 --- a/R/dashboardPage.R +++ b/R/dashboardPage.R @@ -59,7 +59,11 @@ dashboardPage <- function(header, sidebar, body, title = NULL, # 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]] + # collapsed <- "start-collapsed" %in% strsplit(sidebar$attribs$class, " ")[[1]] + + # if the sidebar has the attribute `data-value = "collapsed"`, it means that + # the user set the `collapsed` argument of `dashboardSidebar` to TRUE + collapsed <- "collapsed" %in% strsplit(sidebar$attribs$`data-value`, " ")[[1]] addDeps( tags$body( diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index d9419eb2..58cd2ce2 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -117,14 +117,18 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL ')))) } + dataValue <- restoreInput(id = "appSidebar", + default = if (collapsed) "collapsed" else "expanded") + # 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 + # just passed through (also as the `data-value`) to the `dashboardPage()` + # function tags$aside( - id = "main-sidebar-id", - class = paste("main-sidebar", if (collapsed) "start-collapsed"), - `data-value` = if (collapsed) "collapsed" else "expanded", + id = "appSidebar", + class = paste("main-sidebar"), + `data-value` = dataValue, custom_css, tags$section( class = "sidebar", diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 49469988..7f8e7846 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -51,19 +51,26 @@ $(function() { // sendMessage to sidebar when we programmatically disable it // (this ensure that the sidebar has the correct value) - var updateSidebarVal = function(newVal) { - var $obj = $('.shiny-bound-input#main-sidebar-id'); + var updateSidebarVal = function() { + var $obj = $('.shiny-bound-input.main-sidebar'); var inputBinding = $obj.data('shiny-input-binding'); - alert($obj.attr('data-value')); - if (!newVal) inputBinding.toggleValue($obj); - else inputBinding.setValue($obj, newVal); - alert($obj.attr('data-value')); + inputBinding.toggleValue($obj); + $obj.trigger('change'); + + }; + + var updateItemExpanded = function(val) { + var $obj = $('section.sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.setValue($obj, val); + $obj.trigger('change'); + }; + // Optionally disable sidebar if ($("section.sidebar").data("disable")) { $("body").addClass("sidebar-collapse"); - updateSidebarVal("collapsed"); $(".navbar > .sidebar-toggle").hide(); } @@ -74,7 +81,19 @@ $(function() { updateSidebarVal(); }); - $(document).on("click", ".treeview > a", function() { + + // ... + $(document).on("click", "a[href^='#shiny-tab-']", function() { + console.log(this); + if ($(this).parent().hasClass('treeview')) { + updateItemExpanded($(this).attr('href').substring(1)); + } + }); + + // var dataExpanded = $("section.sidebar").attr("data-expanded"); + // updateItemExpanded(dataExpanded); + + $(document).on("click", ".treeview > a", function() { $(this).next(".treeview-menu").trigger("shown"); }); @@ -171,23 +190,99 @@ $(function() { Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); + // 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 "itemExpanded"; + // return $('ul.sidebar-menu').attr('id') + "Expanded"; + }, + + /* */ + initialize: function(el) { + // if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + $(this).trigger('change'); + }, + /* */ - // sidebarInputBinding + // the value is the href of the open menuItem (or NULL if there's + // no open menuItem) + getValue: function(el) { + var $expanded = $(el).find('li ul.menu-open'); + if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); + else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + else return null; + }, + setValue: function(el, value) { + // first hide everything + var $uls = $('.treeview-menu'); + //$uls.each(function() { + //$ul.removeClass('menu-open'); + //$ul.hide(); + //}); + // then show the appropriate menu + if (value !== null) { + var $ul = $('a[href="#' + value + '"]').next(); + $ul.addClass('menu-open'); + $ul.show(); + } + /* + var $ul = $('a[href="' + value + '"').next(); + if (value === "open") { + $ul.addClass('menu-open'); + $ul.show(); + } else { + $ul.removeClass('menu-open'); + $ul.hide(); + } + */ + }, + /* + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "open") ? "closed" : "open"; + this.setValue(el, newVal); + }, + */ + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarmenuExpandedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarmenuExpandedInputBinding'); + } + }); + Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, + 'shinydashboard.sidebarmenuExpandedInputBinding'); + + + // sidebarCollapsedInputBinding // ------------------------------------------------------------------ - var sidebarInputBinding = new Shiny.InputBinding(); - $.extend(sidebarInputBinding, { + // 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-id'); + return $(scope).find('.main-sidebar').first(); + }, + getId: function(el) { + return "sidebarCollapsed"; }, getValue: function(el) { return $(el).attr("data-value"); - // if ($('body').hasClass('sidebar-collapse')) return 'collapsed'; - // else return 'expanded'; }, setValue: function(el, value) { $(el).attr("data-value", value); - // if (value === 'collapsed') $('body').addClass('sidebar-collapse'); - // else $('body').removeClass('sidebar-collapse'); }, toggleValue: function(el) { var current = this.getValue(el); @@ -199,16 +294,14 @@ $(function() { this.setValue(el, data.value); }, subscribe: function(el, callback) { - $(el).on('change.sidebarInputBinding', function() { + $(el).on('change.sidebarCollapsedInputBinding', function() { callback(); }); }, unsubscribe: function(el) { - $(el).off('.sidebarInputBinding'); + $(el).off('.sidebarCollapsedInputBinding'); } }); - Shiny.inputBindings.register(sidebarInputBinding, - 'shinydashboard.sidebarInputBinding'); - - + Shiny.inputBindings.register(sidebarCollapsedInputBinding, + 'shinydashboard.sidebarCollapsedInputBinding'); }); From 80d93992daaa2a66d4228f6e2c3da61260029b54 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Feb 2017 20:31:44 +0000 Subject: [PATCH 03/43] updated comments --- R/dashboardPage.R | 4 ---- R/dashboardSidebar.R | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/R/dashboardPage.R b/R/dashboardPage.R index 2d9ded94..0adc66de 100644 --- a/R/dashboardPage.R +++ b/R/dashboardPage.R @@ -57,10 +57,6 @@ 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-value = "collapsed"`, it means that # the user set the `collapsed` argument of `dashboardSidebar` to TRUE collapsed <- "collapsed" %in% strsplit(sidebar$attribs$`data-value`, " ")[[1]] diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 58cd2ce2..f8e368db 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -123,8 +123,8 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # 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 the `data-value`) to the `dashboardPage()` - # function + # just passed through (as the `data-value` attribute) to the + # `dashboardPage()` function tags$aside( id = "appSidebar", class = paste("main-sidebar"), From f9ad190ffd33dfd89a5415d6646699acc100f715 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Mon, 27 Feb 2017 17:33:07 +0000 Subject: [PATCH 04/43] added optional id to sidebar --- R/dashboardSidebar.R | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index f8e368db..377a19e9 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -60,7 +60,8 @@ #' ) #' } #' @export -dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FALSE) { +dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FALSE, + id = "appSidebar") { width <- validateCssUnit(width) # Set up custom CSS for custom width @@ -117,7 +118,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL ')))) } - dataValue <- restoreInput(id = "appSidebar", + dataValue <- restoreInput(id = id, default = if (collapsed) "collapsed" else "expanded") # The expanded/collapsed state of the sidebar is actually set by adding a @@ -126,7 +127,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # just passed through (as the `data-value` attribute) to the # `dashboardPage()` function tags$aside( - id = "appSidebar", + id = id, class = paste("main-sidebar"), `data-value` = dataValue, custom_css, From c6c8838f1907f47d58414f44486f33914558e3a3 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 3 Mar 2017 02:29:42 +0000 Subject: [PATCH 05/43] expanded state --- R/dashboardSidebar.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 377a19e9..93649179 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -60,8 +60,8 @@ #' ) #' } #' @export -dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FALSE, - id = "appSidebar") { +dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FALSE#, id = "main-sidebar" + ) { width <- validateCssUnit(width) # Set up custom CSS for custom width @@ -118,7 +118,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL ')))) } - dataValue <- restoreInput(id = id, + dataValue <- restoreInput(id = "sidebarCollapsed", default = if (collapsed) "collapsed" else "expanded") # The expanded/collapsed state of the sidebar is actually set by adding a @@ -127,7 +127,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # just passed through (as the `data-value` attribute) to the # `dashboardPage()` function tags$aside( - id = id, + #id = id, class = paste("main-sidebar"), `data-value` = dataValue, custom_css, From a41a3bb70990a642f8d9b43f701a0a32f18c31ff Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 3 Mar 2017 06:26:10 +0000 Subject: [PATCH 06/43] restore input for expanded menuItem --- R/dashboardSidebar.R | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 93649179..2714cb4d 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -121,6 +121,8 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL dataValue <- restoreInput(id = "sidebarCollapsed", default = if (collapsed) "collapsed" else "expanded") + # dataExpanded <- restoreInput(id = "itemExpanded", default = NULL) + # 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 @@ -134,6 +136,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL tags$section( class = "sidebar", `data-disable` = if (disable) 1 else NULL, + # `data-expanded` = dataExpanded, list(...) ) ) @@ -402,6 +405,10 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr ) } + dataExpanded <- restoreInput(id = "itemExpanded", default = "") + cls <- if (dataExpanded == paste0("shiny-tab-", tabName)) " menu-open" else "" + display <- if (cls != "") "block" else "none" + tags$li(class = "treeview", a(href = href, icon, @@ -411,7 +418,7 @@ 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", cls), style = paste0("display: ", display) , subItems)) ) } From 18845050a7210e9aed2da336d80bd4b3894bbf55 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Mon, 6 Mar 2017 19:09:29 +0000 Subject: [PATCH 07/43] handle NULL value for dataExpanded state of sidebarMenu --- R/dashboardSidebar.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 2714cb4d..95d202c6 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -405,7 +405,7 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr ) } - dataExpanded <- restoreInput(id = "itemExpanded", default = "") + dataExpanded <- restoreInput(id = "itemExpanded", default = "") %OR% "" # prevent this from being NULL cls <- if (dataExpanded == paste0("shiny-tab-", tabName)) " menu-open" else "" display <- if (cls != "") "block" else "none" From 4ae4b3ac6ef93bffc97fd1015a629f1a5bcc1e42 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Mon, 6 Mar 2017 23:10:17 +0000 Subject: [PATCH 08/43] Divided JS code into chunks --- NEWS.md | 4 + R/deps.R | 4 +- inst/AdminLTE/AdminLTE.min.css | 2 +- inst/AdminLTE/_all-skins.min.css | 2 +- inst/AdminLTE/app.js | 5 + inst/AdminLTE/app.js.map | 1 + inst/AdminLTE/app.min.js.map | 2 +- inst/shinydashboard.js | 5 + inst/shinydashboard.js.map | 1 + 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/shinydashboard-part.js | 307 +++++++ tools/Gruntfile.js | 83 +- tools/package.json | 1 + tools/yarn.lock | 9 +- 17 files changed, 1195 insertions(+), 18 deletions(-) mode change 100755 => 100644 inst/AdminLTE/app.js create mode 100644 inst/AdminLTE/app.js.map create mode 100644 inst/shinydashboard.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 create mode 100644 srcjs/shinydashboard-part.js diff --git a/NEWS.md b/NEWS.md index 76283095..b5dab9d0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,10 @@ shinydashboard 0.5.3.9000 ========================= +* 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 sidebars. ([#189](https://github.com/rstudio/shinydashboard/pull/189)) + +* Divided JS code into chunks. + * 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)). 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/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":"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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 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 7f8e7846..5a92a5dc 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -1,3 +1,6 @@ +//--------------------------------------------------------------------- +// Source file: ../srcjs/shinydashboard-part.js + /* jshint browser:true, jquery:true, indent:2 */ /* global Shiny */ @@ -305,3 +308,5 @@ $(function() { Shiny.inputBindings.register(sidebarCollapsedInputBinding, 'shinydashboard.sidebarCollapsedInputBinding'); }); + +//# 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..4dcbe92d --- /dev/null +++ b/inst/shinydashboard.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../srcjs/shinydashboard-part.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\n\n$(function() {\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\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..f4380d96 --- /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();var c=function(){var a=$(".shiny-bound-input.main-sidebar"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")},d=function(a){var b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");c.setValue(b,a),b.trigger("change")};$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize"),c()}),$(document).on("click","a[href^='#shiny-tab-']",function(){console.log(this),$(this).parent().hasClass("treeview")&&d($(this).attr("href").substring(1))}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var e=new Shiny.OutputBinding;$.extend(e,{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(e,"shinydashboard.menuOutputBinding");var f=new Shiny.InputBinding;$.extend(f,{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(f,"shinydashboard.tabItemInput");var g=new Shiny.InputBinding;$.extend(g,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){$(".treeview-menu");if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(g,"shinydashboard.sidebarmenuExpandedInputBinding");var h=new Shiny.InputBinding;$.extend(h,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"==b?"expanded":"collapsed";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(h,"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 new file mode 100644 index 00000000..ae1b693e --- /dev/null +++ b/inst/shinydashboard.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../srcjs/shinydashboard-part.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","updateSidebarVal","$obj","inputBinding","data","toggleValue","updateItemExpanded","val","setValue","addClass","hide","window","console","log","attr","substring","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarmenuExpandedInputBinding","getId","initialize","$expanded","prev","$ul","show","sidebarCollapsedInputBinding","current","newVal"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\n\n$(function() {\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n});\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/shinydashboard-part.js b/srcjs/shinydashboard-part.js new file mode 100644 index 00000000..7f8e7846 --- /dev/null +++ b/srcjs/shinydashboard-part.js @@ -0,0 +1,307 @@ +/* jshint browser:true, jquery:true, indent:2 */ +/* global Shiny */ + +$(function() { + // 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(); + + // sendMessage to sidebar when we programmatically disable it + // (this ensure that the sidebar has the correct value) + var updateSidebarVal = function() { + var $obj = $('.shiny-bound-input.main-sidebar'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.toggleValue($obj); + $obj.trigger('change'); + + }; + + var updateItemExpanded = function(val) { + var $obj = $('section.sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.setValue($obj, val); + $obj.trigger('change'); + + }; + + + // 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"); + updateSidebarVal(); + }); + + + // ... + $(document).on("click", "a[href^='#shiny-tab-']", function() { + console.log(this); + if ($(this).parent().hasClass('treeview')) { + updateItemExpanded($(this).attr('href').substring(1)); + } + }); + + // var dataExpanded = $("section.sidebar").attr("data-expanded"); + // updateItemExpanded(dataExpanded); + + $(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); + }); + + // 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"); + + + // 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'); + + + // 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 "itemExpanded"; + // return $('ul.sidebar-menu').attr('id') + "Expanded"; + }, + + /* */ + initialize: function(el) { + // if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + $(this).trigger('change'); + }, + /* */ + + // the value is the href of the open menuItem (or NULL if there's + // no open menuItem) + getValue: function(el) { + var $expanded = $(el).find('li ul.menu-open'); + if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); + else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + else return null; + }, + setValue: function(el, value) { + // first hide everything + var $uls = $('.treeview-menu'); + //$uls.each(function() { + //$ul.removeClass('menu-open'); + //$ul.hide(); + //}); + // then show the appropriate menu + if (value !== null) { + var $ul = $('a[href="#' + value + '"]').next(); + $ul.addClass('menu-open'); + $ul.show(); + } + /* + var $ul = $('a[href="' + value + '"').next(); + if (value === "open") { + $ul.addClass('menu-open'); + $ul.show(); + } else { + $ul.removeClass('menu-open'); + $ul.hide(); + } + */ + }, + /* + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "open") ? "closed" : "open"; + this.setValue(el, newVal); + }, + */ + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarmenuExpandedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarmenuExpandedInputBinding'); + } + }); + Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, + 'shinydashboard.sidebarmenuExpandedInputBinding'); + + + // 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-value"); + }, + setValue: function(el, value) { + $(el).attr("data-value", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + 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/tools/Gruntfile.js b/tools/Gruntfile.js index 663ddda2..706e4632 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -1,27 +1,82 @@ module.exports = function(grunt) { - var srcdir = '../inst/'; + var srcdirjs = '../srcjs/'; + var srcdircss = '../inst/'; + var destdirjs = '../inst/'; + var destdircss = '../inst/'; 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) { + return '//---------------------------------------------------------------------\n' + + '// Source file: ' + filepath + '\n\n' + src; + }, + sourceMap: true + }, + shinydashboard: { + src: [ + srcdirjs + 'shinydashboard-part.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: srcdir + '/AdminLTE/app.js', - dest: srcdir + '/AdminLTE/app.min.js' + src: srcdirjs + '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: destdircss + '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: destdircss + 'AdminLTE/_all-skins.min.css' } }, @@ -29,15 +84,13 @@ module.exports = function(grunt) { options: { force: true // Don't abort if there are JSHint warnings }, - shinydashboard: { - src: srcdir + '/shinydashboard.js', - } + shinydashboard: ['*.js'].map(function(el) { return srcdirjs + el; }) }, 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 %>'], @@ -51,12 +104,16 @@ 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']); + // --------------------------------------------------------------------------- + // Utility functions + // --------------------------------------------------------------------------- // Return an object which merges information from package.json and the // DESCRIPTION file. 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/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 5dcac26384afd58a937d7663a6339755844daf0d Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 7 Mar 2017 00:10:44 +0000 Subject: [PATCH 09/43] create js skeleton --- inst/shinydashboard.js | 10 +++++++++- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/_end.js | 1 + srcjs/_start.js | 1 + srcjs/shinydashboard-part.js | 2 -- tools/Gruntfile.js | 12 +++++++----- 7 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 srcjs/_end.js create mode 100644 srcjs/_start.js diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 5a92a5dc..a8f1d17f 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -1,10 +1,14 @@ +//--------------------------------------------------------------------- +// Source file: ../srcjs/_start.js + +$(function() { + //--------------------------------------------------------------------- // Source file: ../srcjs/shinydashboard-part.js /* jshint browser:true, jquery:true, indent:2 */ /* global Shiny */ -$(function() { // 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 @@ -307,6 +311,10 @@ $(function() { }); Shiny.inputBindings.register(sidebarCollapsedInputBinding, 'shinydashboard.sidebarCollapsedInputBinding'); + +//--------------------------------------------------------------------- +// 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 index 4dcbe92d..f7252fe8 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/shinydashboard-part.js"],"names":[],"mappings":"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","file":"shinydashboard.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\n\n$(function() {\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.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/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.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.map b/inst/shinydashboard.min.js.map index ae1b693e..9739b69b 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/shinydashboard-part.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","updateSidebarVal","$obj","inputBinding","data","toggleValue","updateItemExpanded","val","setValue","addClass","hide","window","console","log","attr","substring","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarmenuExpandedInputBinding","getId","initialize","$expanded","prev","$ul","show","sidebarCollapsedInputBinding","current","newVal"],"mappings":"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","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\n\n$(function() {\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n});\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","updateSidebarVal","$obj","inputBinding","data","toggleValue","updateItemExpanded","val","setValue","addClass","hide","window","console","log","attr","substring","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarmenuExpandedInputBinding","getId","initialize","$expanded","prev","$ul","show","sidebarCollapsedInputBinding","current","newVal"],"mappings":";;AAGAA,EAAE,WCUA,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,IAIA,IAAIO,GAAmB,WACrB,GAAIC,GAAOtB,EAAA,mCACPuB,EAAeD,EAAKE,KAAI,sBAC5BD,GAAaE,YAAWH,GACxBA,EAAKX,QAAO,WAIVe,EAAqB,SAASC,GAChC,GAAIL,GAAOtB,EAAA,qCACPuB,EAAeD,EAAKE,KAAI,sBAC5BD,GAAaK,SAAQN,EAAOK,GAC5BL,EAAKX,QAAO,UAMXX,GAAA,mBAAsBwB,KAAI,aAC3BxB,EAAA,QAAU6B,SAAQ,oBAClB7B,EAAA,6BAA+B8B,QAKjC9B,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAE+B,QAAQpB,QAAO,UACjBU,MAKFrB,EAAEY,UAAUC,GAAE,QAAU,yBAA0B,WAChDmB,QAAQC,IAAI9B,MACTH,EAAGG,MAAMM,SAASU,SAAQ,aAC3BO,EAAkB1B,EAAGG,MAAM+B,KAAI,QAASC,UAAU,MAOtDnC,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMiC,KAAI,kBAAmBzB,QAAO,UAQxC,IAAI0B,GAAoB,GAAIC,OAAMC,aAClCvC,GAAEwC,OAAOH,GACP9B,KAAM,SAASkC,GACb,MAAOzC,GAAEyC,GAAOlC,KAAI,gCAEtBmC,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChBxC,KAAK2C,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAInB,GACxBc,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATzB,EAAJ,CAE4B,gBAAX,GACfwB,EAAOxB,EACmB,gBAAX,KACfwB,EAAOxB,EAAKwB,KACZC,EAAezB,EAAK0B,KAGtB,IAAIC,GAAQnD,EAAAA,EAAIoD,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMjB,KAAI,SAEzBI,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,OAGlBL,MAAMmB,eAAeC,SAASrB,EACA,mCAO9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpC5D,GAAEwC,OAAOmB,GACPpD,KAAM,SAASkC,GACb,MAAOzC,GAAEyC,GAAOlC,KAAI,oBAEtBsD,SAAU,SAASlB,GACjB,GAAImB,GAAS9D,EAAE2C,GAAIpC,KAAI,4BAA6BwD,SAAQ,IAC5D,OAAsB,KAAlBD,EAAO7C,OACFd,KAAK6D,YAAYF,GAEnB,MAETlC,SAAU,SAASe,EAAIsB,GACrB,GAAIC,GAAO/D,KACPgE,EAAUnE,EAAE2C,GAAIpC,KAAI,qBAAsBwD,SAAQ,IACtDI,GAAQC,KAAK,WACX,GAAIF,EAAKF,YAAWhE,EAAGG,SAAW8D,EAEhC,MADAjE,GAAEG,MAAMe,IAAG,SACJ,KAIbmD,eAAgB,SAAS1B,EAAInB,GACvBA,EAAK8C,eAAc,UACrBnE,KAAKyB,SAASe,EAAInB,EAAKyC,QAE3BM,UAAW,SAAS5B,EAAI6B,GAItBxE,EAAE2C,GAAI9B,GAAE,6BAA+B,WACrC2D,OAGJC,YAAa,SAAS9B,GACpB3C,EAAE2C,GAAI+B,IAAG,yBAEXV,YAAa,SAASF,GACpB,MAAOA,GAAO5B,KAAI,iBAGtBI,MAAMqC,cAAcjB,SAASC,EAAqB,8BAMlD,IAAIiB,GAAkC,GAAItC,OAAMsB,YAChD5D,GAAEwC,OAAOoC,GACPrE,KAAM,SAASkC,GACb,MAAOzC,GAAEyC,GAAOlC,KAAI,oBAEtBsE,MAAO,SAASlC,GACd,MAAO,gBAKTmC,WAAY,SAASnC,GAEnB3C,EAAEG,MAAMQ,QAAO,WAMjBkD,SAAU,SAASlB,GACjB,GAAIoC,GAAY/E,EAAE2C,GAAIpC,KAAI,kBAC1B,OAAyB,KAAtBwE,EAAW9D,OAAqB8D,EAAUC,OAAO9C,KAAI,QAASC,UAAU,GACnEnC,EAAG2C,GAAIT,KAAI,iBAA0BlC,EAAE2C,GAAIT,KAAI,iBAC3C,MAEdN,SAAU,SAASe,EAAIsB,GAEVjE,EAAA,iBAMX,IAAc,OAAViE,EAAgB,CAClB,GAAIgB,GAAMjF,EAAA,YAAgBiE,EAAQ,MAAM7B,MACxC6C,GAAIpD,SAAQ,aACZoD,EAAIC,SAoBRb,eAAgB,SAAS1B,EAAInB,GACvBA,EAAK8C,eAAc,UACrBnE,KAAKyB,SAASe,EAAInB,EAAKyC,QAE3BM,UAAW,SAAS5B,EAAI6B,GACtBxE,EAAE2C,GAAI9B,GAAE,yCAA2C,WACjD2D,OAGJC,YAAa,SAAS9B,GACpB3C,EAAE2C,GAAI+B,IAAG,uCAGbpC,MAAMqC,cAAcjB,SAASkB,EAC3B,iDAOF,IAAIO,GAA+B,GAAI7C,OAAMsB,YAC7C5D,GAAEwC,OAAO2C,GACP5E,KAAM,SAASkC,GACb,MAAOzC,GAAEyC,GAAOlC,KAAI,iBAAkBa,SAExCyD,MAAO,SAASlC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAO3C,GAAE2C,GAAIT,KAAI,eAEnBN,SAAU,SAASe,EAAIsB,GACrBjE,EAAE2C,GAAIT,KAAI,aAAe+B,IAE3BxC,YAAa,SAASkB,GACpB,GAAIyC,GAAUjF,KAAK0D,SAASlB,GACxB0C,EAAqB,aAAXD,EAA0B,WAAa,WACrDjF,MAAKyB,SAASe,EAAI0C,IAEpBhB,eAAgB,SAAS1B,EAAInB,GACvBA,EAAK8C,eAAc,UACrBnE,KAAKyB,SAASe,EAAInB,EAAKyC,QAE3BM,UAAW,SAAS5B,EAAI6B,GACtBxE,EAAE2C,GAAI9B,GAAE,sCAAwC,WAC9C2D,OAGJC,YAAa,SAAS9B,GACpB3C,EAAE2C,GAAI+B,IAAG,oCAGbpC,MAAMqC,cAAcjB,SAASyB,EAC3B","file":"shinydashboard.min.js","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n$(function() {\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\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/shinydashboard-part.js b/srcjs/shinydashboard-part.js index 7f8e7846..e811134a 100644 --- a/srcjs/shinydashboard-part.js +++ b/srcjs/shinydashboard-part.js @@ -1,7 +1,6 @@ /* jshint browser:true, jquery:true, indent:2 */ /* global Shiny */ -$(function() { // 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 @@ -304,4 +303,3 @@ $(function() { }); Shiny.inputBindings.register(sidebarCollapsedInputBinding, 'shinydashboard.sidebarCollapsedInputBinding'); -}); diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index 706e4632..0cb8aa83 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -34,7 +34,9 @@ module.exports = function(grunt) { }, shinydashboard: { src: [ - srcdirjs + 'shinydashboard-part.js' + srcdirjs + '_start.js', + srcdirjs + 'shinydashboard-part.js', + srcdirjs + '_end.js' ], dest: destdirjs + 'shinydashboard.js' }, @@ -84,17 +86,17 @@ module.exports = function(grunt) { options: { force: true // Don't abort if there are JSHint warnings }, - shinydashboard: ['*.js'].map(function(el) { return srcdirjs + el; }) + shinydashboard: destdirjs + "shinydashboard.js", }, watch: { shinydashboard: { files: '<%= concat.shinydashboard.src %>', - tasks: ['newer:concat:shinydashboard', 'newer:uglify:shinydashboard', 'newer:jshint:shinydashboard'] + tasks: ['concat:shinydashboard', 'uglify:shinydashboard', 'jshint:shinydashboard'] }, adminlte: { files: ['<%= uglify.adminlte.src %>', '<%= cssmin.adminlte.src %>'], - tasks: ['newer:uglify:adminlte', 'newer:cssmin:adminlte'] + tasks: ['uglify:adminlte', 'cssmin:adminlte'] } } }); @@ -108,7 +110,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-newer'); - grunt.registerTask('default', ['newer:concat', 'newer:uglify', 'newer:cssmin', 'newer:jshint']); + grunt.registerTask('default', ['concat', 'uglify', 'cssmin', 'jshint']); // --------------------------------------------------------------------------- From 30e5b005cdb64c266f5d10182e0a1c0acf84ca1f Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 7 Mar 2017 18:16:41 +0000 Subject: [PATCH 10/43] substitute jshint by eslint --- tools/Gruntfile.js | 29 +- tools/package.json | 3 + tools/yarn.lock | 706 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 718 insertions(+), 20 deletions(-) diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index 0cb8aa83..ed2e950b 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -82,11 +82,30 @@ module.exports = function(grunt) { } }, - jshint: { + eslint: { options: { - force: true // Don't abort if there are JSHint warnings + parser: 'babel-eslint', + format: require('eslint-stylish-mapped'), + extends: 'eslint:recommended', + rules: { + "consistent-return": 1, + "dot-location": [1, "property"], + "eqeqeq": 1, + // "no-shadow": 1, + "no-undef": 1, + "no-unused-vars": [1, {"args": "none"}], + "guard-for-in": 1, + // "no-use-before-define": [1, {"functions": false}], + "semi": [1, "always"] + }, + envs: [ + "es6", + "browser", + "jquery" + ], + globals: ["strftime"] }, - shinydashboard: destdirjs + "shinydashboard.js", + shinydashboard: [destdirjs + "shinydashboard.js"] }, watch: { @@ -104,13 +123,13 @@ 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', ['concat', 'uglify', 'cssmin', 'jshint']); + grunt.registerTask('default', ['concat', 'eslint', 'uglify', 'cssmin']); // --------------------------------------------------------------------------- diff --git a/tools/package.json b/tools/package.json index 1bf5a535..d4fd255b 100644 --- a/tools/package.json +++ b/tools/package.json @@ -1,11 +1,14 @@ { "devDependencies": { + "babel-eslint": "^7.1.1", + "eslint-stylish-mapped": "^1.0.0", "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", "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..997ba0f0 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.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.4.tgz#ebf3a55d4b132ea60ff5847ae85d2ef069960b45" + 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,14 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +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 +65,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 +87,64 @@ 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, babel-code-frame@^6.22.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" + +babel-eslint@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.1.tgz#8a6a884f085aa7060af69cfc77341c2f99370fb2" + dependencies: + babel-code-frame "^6.16.0" + babel-traverse "^6.15.0" + babel-types "^6.15.0" + babylon "^6.13.0" + lodash.pickby "^4.6.0" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-traverse@^6.15.0: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.23.0" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.15.0, babel-types@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.13.0, babylon@^6.15.0: + version "6.16.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" + 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 +193,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 +225,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 +235,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 +270,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 +290,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.4.6: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -171,6 +308,10 @@ content-type@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -181,6 +322,12 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + 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 +339,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, debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: @@ -202,6 +349,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 +360,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@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + 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 +429,191 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: + version "0.10.12" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" + dependencies: + d "^0.1.1" + es5-ext "^0.10.7" + es6-symbol "3" + +es6-map@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-set "~0.1.3" + es6-symbol "~3.1.0" + event-emitter "~0.3.4" + +es6-set@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-symbol "3" + event-emitter "~0.3.4" + +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + +es6-weak-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + dependencies: + d "^0.1.1" + es5-ext "^0.10.8" + es6-iterator "2" + es6-symbol "3" + 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-stylish-mapped@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-stylish-mapped/-/eslint-stylish-mapped-1.0.0.tgz#3cf9386ccaaadcac8a0a995aa71e88880bb4e218" + dependencies: + chalk "^1.0.0" + source-map "^0.4.2" + text-table "^0.2.0" + +eslint@^3.0.0: + version "3.17.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.17.1.tgz#b80ae12d9c406d858406fccda627afce33ea10ea" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + escope "^3.6.0" + espree "^3.4.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" +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.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.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" + dependencies: + d "~0.1.1" + es5-ext "~0.10.7" + 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 +627,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 +654,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 +672,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.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 +683,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.3, 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 +704,21 @@ glob@~5.0.0: once "^1.3.0" path-is-absolute "^1.0.0" +globals@^9.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 +782,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 +896,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.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.4.tgz#4055e03596729a8fabe45a43c100ad5ed815c4e8" + +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 +921,34 @@ 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" + +invariant@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + 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 +969,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 +1022,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 +1030,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 +1054,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 +1078,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" @@ -626,6 +1099,10 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +lodash.pickby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + lodash@3.7.x: version "3.7.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" @@ -634,7 +1111,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.2.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" @@ -646,6 +1123,12 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -701,14 +1184,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 +1257,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 +1300,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 +1326,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 +1345,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 +1401,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" @@ -872,6 +1422,10 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" +regenerator-runtime@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" + repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -882,17 +1436,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 +1474,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,14 +1492,32 @@ 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.6" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" + 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" +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -940,6 +1540,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 +1571,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 +1585,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, 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" @@ -981,10 +1623,24 @@ tiny-lr@^0.2.1: parseurl "~1.3.0" qs "~5.1.0" +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + 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 +1677,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 +1718,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 22ebfd0de18ea6c6251790b5e9002a1db99f9b4e Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 7 Mar 2017 18:45:00 +0000 Subject: [PATCH 11/43] clean up and comment code --- inst/shinydashboard.js | 531 +++++++++++++++----------------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/shinydashboard-part.js | 541 +++++++++++++++------------------ 5 files changed, 498 insertions(+), 580 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index a8f1d17f..e5c63025 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -6,311 +6,270 @@ $(function() { //--------------------------------------------------------------------- // Source file: ../srcjs/shinydashboard-part.js -/* jshint browser:true, jquery:true, indent:2 */ /* global Shiny */ - // 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(); - // sendMessage to sidebar when we programmatically disable it - // (this ensure that the sidebar has the correct value) - var updateSidebarVal = function() { - var $obj = $('.shiny-bound-input.main-sidebar'); - var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.toggleValue($obj); - $obj.trigger('change'); +// Optionally disable sidebar +if ($("section.sidebar").data("disable")) { + $("body").addClass("sidebar-collapse"); + $(".navbar > .sidebar-toggle").hide(); +} - }; +// Trigger "shown" event for elements that only become visible after +// the corresponding menuItem is expanded (otherwise, Shiny will still +// think they're hidden and not render them) +$(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); +}); - var updateItemExpanded = function(val) { +// Whenever the sidebar expand/collapse button is clicked: +// * Trigger the resize event (this allows images to be +// responsive and resize themselves) +// * Update the value for the sidebar's input binding +$(document).on("click", ".sidebar-toggle", function() { + $(window).trigger("resize"); + var $obj = $('.main-sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.toggleValue($obj); + $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 menuItem that is currently expanded) +$(document).on("click", "a[href^='#shiny-tab-']", function() { + if ($(this).parent().hasClass('treeview')) { var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, val); + inputBinding.setValue($obj, $(this).attr('href').substring(1)); $obj.trigger('change'); - - }; - - - // 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"); - updateSidebarVal(); - }); - - - // ... - $(document).on("click", "a[href^='#shiny-tab-']", function() { - console.log(this); - if ($(this).parent().hasClass('treeview')) { - updateItemExpanded($(this).attr('href').substring(1)); +// 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 dataExpanded = $("section.sidebar").attr("data-expanded"); - // updateItemExpanded(dataExpanded); - - $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); - }); - - // 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"); - - - // 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'); - - - // 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 "itemExpanded"; - // return $('ul.sidebar-menu').attr('id') + "Expanded"; - }, - - /* */ - initialize: function(el) { - // if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - $(this).trigger('change'); - }, - /* */ - - // the value is the href of the open menuItem (or NULL if there's - // no open menuItem) - getValue: function(el) { - var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); - else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - else return null; - }, - setValue: function(el, value) { - // first hide everything - var $uls = $('.treeview-menu'); - //$uls.each(function() { - //$ul.removeClass('menu-open'); - //$ul.hide(); - //}); - // then show the appropriate menu - if (value !== null) { - var $ul = $('a[href="#' + value + '"]').next(); - $ul.addClass('menu-open'); - $ul.show(); - } - /* - var $ul = $('a[href="' + value + '"').next(); - if (value === "open") { - $ul.addClass('menu-open'); - $ul.show(); - } else { - $ul.removeClass('menu-open'); - $ul.hide(); + Shiny.initializeInputs(el); + Shiny.bindAll(el); + } +}); +Shiny.outputBindings.register(menuOutputBinding, + "shinydashboard.menuOutputBinding"); + + +// 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; } - */ - }, - /* - toggleValue: function(el) { - var current = this.getValue(el); - var newVal = (current == "open") ? "closed" : "open"; - this.setValue(el, newVal); - }, - */ - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); - }, - subscribe: function(el, callback) { - $(el).on('change.sidebarmenuExpandedInputBinding', function() { - callback(); - }); - }, - unsubscribe: function(el) { - $(el).off('.sidebarmenuExpandedInputBinding'); - } - }); - Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, - 'shinydashboard.sidebarmenuExpandedInputBinding'); - - - // 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-value"); - }, - setValue: function(el, value) { - $(el).attr("data-value", value); - }, - toggleValue: function(el) { - var current = this.getValue(el); - var newVal = (current == "collapsed") ? "expanded" : "collapsed"; - 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'); + }); + }, + 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'); + + +// 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 "itemExpanded"; + }, + // needed so we set the appropriate value for bookmarked apps on startup + initialize: function(el) { + $(this).trigger('change'); + }, + // the value is the href of the open menuItem (or NULL if there's + // no open menuItem) + getValue: function(el) { + var $expanded = $(el).find('li ul.menu-open'); + if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); + else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + else return null; + }, + setValue: function(el, value) { + if (value !== null) { + var $ul = $('a[href="#' + value + '"]').next(); + $ul.addClass('menu-open'); + $ul.show(); } - }); - Shiny.inputBindings.register(sidebarCollapsedInputBinding, - 'shinydashboard.sidebarCollapsedInputBinding'); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarmenuExpandedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarmenuExpandedInputBinding'); + } +}); +Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, + 'shinydashboard.sidebarmenuExpandedInputBinding'); + + +// 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-value"); + }, + setValue: function(el, value) { + $(el).attr("data-value", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + 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 f7252fe8..c1469930 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.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/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.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/shinydashboard-part.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/shinydashboard-part.js\n\n/* global Shiny */\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// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\n});\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\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() {\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\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 f4380d96..4b0bc718 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();var c=function(){var a=$(".shiny-bound-input.main-sidebar"),b=a.data("shiny-input-binding");b.toggleValue(a),a.trigger("change")},d=function(a){var b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");c.setValue(b,a),b.trigger("change")};$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".sidebar-toggle",function(){$(window).trigger("resize"),c()}),$(document).on("click","a[href^='#shiny-tab-']",function(){console.log(this),$(this).parent().hasClass("treeview")&&d($(this).attr("href").substring(1))}),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")});var e=new Shiny.OutputBinding;$.extend(e,{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(e,"shinydashboard.menuOutputBinding");var f=new Shiny.InputBinding;$.extend(f,{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(f,"shinydashboard.tabItemInput");var g=new Shiny.InputBinding;$.extend(g,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){$(".treeview-menu");if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(g,"shinydashboard.sidebarmenuExpandedInputBinding");var h=new Shiny.InputBinding;$.extend(h,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"==b?"expanded":"collapsed";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(h,"shinydashboard.sidebarCollapsedInputBinding")}); +$(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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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","a[href^='#shiny-tab-']",function(){if($(this).parent().hasClass("treeview")){var a=$("section.sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.setValue(a,$(this).attr("href").substring(1)),a.trigger("change")}});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");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarmenuExpandedInputBinding");var f=new Shiny.InputBinding;$.extend(f,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"==b?"expanded":"collapsed";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(f,"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 9739b69b..9a0d8a9c 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.js"],"names":["$","deactivateOtherTabs","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","updateSidebarVal","$obj","inputBinding","data","toggleValue","updateItemExpanded","val","setValue","addClass","hide","window","console","log","attr","substring","next","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarmenuExpandedInputBinding","getId","initialize","$expanded","prev","$ul","show","sidebarCollapsedInputBinding","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/shinydashboard-part.js\n\n/* jshint browser:true, jquery:true, indent:2 */\n/* global Shiny */\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 // sendMessage to sidebar when we programmatically disable it\n // (this ensure that the sidebar has the correct value)\n var updateSidebarVal = function() {\n var $obj = $('.shiny-bound-input.main-sidebar');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.toggleValue($obj);\n $obj.trigger('change');\n\n };\n\n var updateItemExpanded = function(val) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, val);\n $obj.trigger('change');\n\n };\n\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 updateSidebarVal();\n });\n\n\n // ...\n $(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n console.log(this);\n if ($(this).parent().hasClass('treeview')) {\n updateItemExpanded($(this).attr('href').substring(1));\n }\n });\n\n // var dataExpanded = $(\"section.sidebar\").attr(\"data-expanded\");\n // updateItemExpanded(dataExpanded);\n\n $(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n });\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\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\n // sidebarmenuExpandedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of what menuItem (if any) is expanded\n var sidebarmenuExpandedInputBinding = new Shiny.InputBinding();\n $.extend(sidebarmenuExpandedInputBinding, {\n find: function(scope) {\n return $(scope).find('section.sidebar');\n },\n getId: function(el) {\n return \"itemExpanded\";\n // return $('ul.sidebar-menu').attr('id') + \"Expanded\";\n },\n\n /* */\n initialize: function(el) {\n // if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n $(this).trigger('change');\n },\n /* */\n\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n // first hide everything\n var $uls = $('.treeview-menu');\n //$uls.each(function() {\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //});\n // then show the appropriate menu\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\n }\n /*\n var $ul = $('a[href=\"' + value + '\"').next();\n if (value === \"open\") {\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul.removeClass('menu-open');\n $ul.hide();\n }\n */\n },\n /*\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"open\") ? \"closed\" : \"open\";\n this.setValue(el, newVal);\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 $(el).on('change.sidebarmenuExpandedInputBinding', function() {\n callback();\n });\n },\n unsubscribe: function(el) {\n $(el).off('.sidebarmenuExpandedInputBinding');\n }\n });\n Shiny.inputBindings.register(sidebarmenuExpandedInputBinding,\n 'shinydashboard.sidebarmenuExpandedInputBinding');\n\n\n // sidebarCollapsedInputBinding\n // ------------------------------------------------------------------\n // This keeps tracks of whether the sidebar is expanded (default)\n // or collapsed\n var 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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 });\n Shiny.inputBindings.register(sidebarCollapsedInputBinding,\n 'shinydashboard.sidebarCollapsedInputBinding');\n"]} \ No newline at end of file +{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.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","next","window","$obj","inputBinding","toggleValue","setValue","attr","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarmenuExpandedInputBinding","getId","initialize","$expanded","prev","$ul","show","sidebarCollapsedInputBinding","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/shinydashboard-part.js\n\n/* global Shiny */\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// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\n});\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\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() {\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\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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/shinydashboard-part.js b/srcjs/shinydashboard-part.js index e811134a..a3df4dbd 100644 --- a/srcjs/shinydashboard-part.js +++ b/srcjs/shinydashboard-part.js @@ -1,305 +1,264 @@ -/* jshint browser:true, jquery:true, indent:2 */ /* global Shiny */ - // 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(); - - // sendMessage to sidebar when we programmatically disable it - // (this ensure that the sidebar has the correct value) - var updateSidebarVal = function() { - var $obj = $('.shiny-bound-input.main-sidebar'); - var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.toggleValue($obj); - $obj.trigger('change'); - - }; +// 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; + } - var updateItemExpanded = function(val) { + // If we got this far, just activate the first tab. + if (! $tablinks.parent("li").hasClass("active") ) { + $tablinks.first().tab("show"); + } +}; + +ensureActivatedTab(); + +// Optionally disable sidebar +if ($("section.sidebar").data("disable")) { + $("body").addClass("sidebar-collapse"); + $(".navbar > .sidebar-toggle").hide(); +} + +// Trigger "shown" event for elements that only become visible after +// the corresponding menuItem is expanded (otherwise, Shiny will still +// think they're hidden and not render them) +$(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); +}); + +// Whenever the sidebar expand/collapse button is clicked: +// * Trigger the resize event (this allows images to be +// responsive and resize themselves) +// * Update the value for the sidebar's input binding +$(document).on("click", ".sidebar-toggle", function() { + $(window).trigger("resize"); + var $obj = $('.main-sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.toggleValue($obj); + $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 menuItem that is currently expanded) +$(document).on("click", "a[href^='#shiny-tab-']", function() { + if ($(this).parent().hasClass('treeview')) { var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, val); + inputBinding.setValue($obj, $(this).attr('href').substring(1)); $obj.trigger('change'); - - }; - - - // 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"); - updateSidebarVal(); - }); - - - // ... - $(document).on("click", "a[href^='#shiny-tab-']", function() { - console.log(this); - if ($(this).parent().hasClass('treeview')) { - updateItemExpanded($(this).attr('href').substring(1)); - } - }); - - // var dataExpanded = $("section.sidebar").attr("data-expanded"); - // updateItemExpanded(dataExpanded); - - $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); - }); - - // 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"); - - - // 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'); +}); + +// 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; } - }); - Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); + var $html = $($.parseHTML(html)); - // 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 "itemExpanded"; - // return $('ul.sidebar-menu').attr('id') + "Expanded"; - }, + // Convert the inner contents to HTML, and pass to renderHtml + Shiny.renderHtml($html.html(), el, dependencies); - /* */ - initialize: function(el) { - // if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - $(this).trigger('change'); - }, - /* */ + // Extract class of wrapper, and add them to the wrapper element + el.className = 'shinydashboard-menu-output shiny-bound-output ' + + $html.attr('class'); - // the value is the href of the open menuItem (or NULL if there's - // no open menuItem) - getValue: function(el) { - var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); - else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - else return null; - }, - setValue: function(el, value) { - // first hide everything - var $uls = $('.treeview-menu'); - //$uls.each(function() { - //$ul.removeClass('menu-open'); - //$ul.hide(); - //}); - // then show the appropriate menu - if (value !== null) { - var $ul = $('a[href="#' + value + '"]').next(); - $ul.addClass('menu-open'); - $ul.show(); - } - /* - var $ul = $('a[href="' + value + '"').next(); - if (value === "open") { - $ul.addClass('menu-open'); - $ul.show(); - } else { - $ul.removeClass('menu-open'); - $ul.hide(); + Shiny.initializeInputs(el); + Shiny.bindAll(el); + } +}); +Shiny.outputBindings.register(menuOutputBinding, + "shinydashboard.menuOutputBinding"); + + +// 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; } - */ - }, - /* - toggleValue: function(el) { - var current = this.getValue(el); - var newVal = (current == "open") ? "closed" : "open"; - this.setValue(el, newVal); - }, - */ - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); - }, - subscribe: function(el, callback) { - $(el).on('change.sidebarmenuExpandedInputBinding', function() { - callback(); - }); - }, - unsubscribe: function(el) { - $(el).off('.sidebarmenuExpandedInputBinding'); - } - }); - Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, - 'shinydashboard.sidebarmenuExpandedInputBinding'); - - - // 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-value"); - }, - setValue: function(el, value) { - $(el).attr("data-value", value); - }, - toggleValue: function(el) { - var current = this.getValue(el); - var newVal = (current == "collapsed") ? "expanded" : "collapsed"; - 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'); + }); + }, + 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'); + + +// 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 "itemExpanded"; + }, + // needed so we set the appropriate value for bookmarked apps on startup + initialize: function(el) { + $(this).trigger('change'); + }, + // the value is the href of the open menuItem (or NULL if there's + // no open menuItem) + getValue: function(el) { + var $expanded = $(el).find('li ul.menu-open'); + if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); + else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + else return null; + }, + setValue: function(el, value) { + if (value !== null) { + var $ul = $('a[href="#' + value + '"]').next(); + $ul.addClass('menu-open'); + $ul.show(); } - }); - Shiny.inputBindings.register(sidebarCollapsedInputBinding, - 'shinydashboard.sidebarCollapsedInputBinding'); + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + subscribe: function(el, callback) { + $(el).on('change.sidebarmenuExpandedInputBinding', function() { + callback(); + }); + }, + unsubscribe: function(el) { + $(el).off('.sidebarmenuExpandedInputBinding'); + } +}); +Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, + 'shinydashboard.sidebarmenuExpandedInputBinding'); + + +// 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-value"); + }, + setValue: function(el, value) { + $(el).attr("data-value", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + 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'); From b6372c906a579f1ebb0b7b5b185844811088f7a3 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 7 Mar 2017 18:57:38 +0000 Subject: [PATCH 12/43] actually split the JS code into different files --- inst/shinydashboard.js | 104 ++++---- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarCollapsed.js | 40 ++++ srcjs/input_binding_sidebarmenuExpanded.js | 47 ++++ srcjs/input_binding_tabItem.js | 48 ++++ srcjs/output_binding_menu.js | 45 ++++ srcjs/shinydashboard-part.js | 264 --------------------- srcjs/sidebar.js | 36 +++ srcjs/tabs.js | 46 ++++ tools/Gruntfile.js | 7 +- 12 files changed, 332 insertions(+), 311 deletions(-) create mode 100644 srcjs/input_binding_sidebarCollapsed.js create mode 100644 srcjs/input_binding_sidebarmenuExpanded.js create mode 100644 srcjs/input_binding_tabItem.js create mode 100644 srcjs/output_binding_menu.js delete mode 100644 srcjs/shinydashboard-part.js create mode 100644 srcjs/sidebar.js create mode 100644 srcjs/tabs.js diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index e5c63025..aea516d9 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -4,9 +4,7 @@ $(function() { //--------------------------------------------------------------------- -// Source file: ../srcjs/shinydashboard-part.js - -/* global Shiny */ +// 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 @@ -55,6 +53,9 @@ var ensureActivatedTab = function() { ensureActivatedTab(); +//--------------------------------------------------------------------- +// Source file: ../srcjs/sidebar.js + // Optionally disable sidebar if ($("section.sidebar").data("disable")) { $("body").addClass("sidebar-collapse"); @@ -92,6 +93,11 @@ $(document).on("click", "a[href^='#shiny-tab-']", function() { } }); +//--------------------------------------------------------------------- +// Source file: ../srcjs/output_binding_menu.js + +/* global Shiny */ + // menuOutputBinding // ------------------------------------------------------------------ // Based on Shiny.htmlOutputBinding, but instead of putting the result in a @@ -136,6 +142,10 @@ $.extend(menuOutputBinding, { Shiny.outputBindings.register(menuOutputBinding, "shinydashboard.menuOutputBinding"); +//--------------------------------------------------------------------- +// Source file: ../srcjs/input_binding_tabItem.js + +/* global Shiny */ // tabItemInputBinding // ------------------------------------------------------------------ @@ -184,6 +194,54 @@ $.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-value"); + }, + setValue: function(el, value) { + $(el).attr("data-value", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + 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/input_binding_sidebarmenuExpanded.js + +/* global Shiny */ // sidebarmenuExpandedInputBinding // ------------------------------------------------------------------ @@ -231,46 +289,6 @@ $.extend(sidebarmenuExpandedInputBinding, { Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, 'shinydashboard.sidebarmenuExpandedInputBinding'); - -// 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-value"); - }, - setValue: function(el, value) { - $(el).attr("data-value", value); - }, - toggleValue: function(el) { - var current = this.getValue(el); - var newVal = (current == "collapsed") ? "expanded" : "collapsed"; - 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 c1469930..bf76e67a 100644 --- a/inst/shinydashboard.js.map +++ b/inst/shinydashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.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/shinydashboard-part.js\n\n/* global Shiny */\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// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\n});\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\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() {\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\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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() {\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 4b0bc718..80eff8eb 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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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","a[href^='#shiny-tab-']",function(){if($(this).parent().hasClass("treeview")){var a=$("section.sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.setValue(a,$(this).attr("href").substring(1)),a.trigger("change")}});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");var e=new Shiny.InputBinding;$.extend(e,{find:function(a){return $(a).find("section.sidebar")},getId:function(a){return"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},subscribe:function(a,b){$(a).on("change.sidebarmenuExpandedInputBinding",function(){b()})},unsubscribe:function(a){$(a).off(".sidebarmenuExpandedInputBinding")}}),Shiny.inputBindings.register(e,"shinydashboard.sidebarmenuExpandedInputBinding");var f=new Shiny.InputBinding;$.extend(f,{find:function(a){return $(a).find(".main-sidebar").first()},getId:function(a){return"sidebarCollapsed"},getValue:function(a){return $(a).attr("data-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"==b?"expanded":"collapsed";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(f,"shinydashboard.sidebarCollapsedInputBinding")}); +$(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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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","a[href^='#shiny-tab-']",function(){if($(this).parent().hasClass("treeview")){var a=$("section.sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.setValue(a,$(this).attr("href").substring(1)),a.trigger("change")}});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");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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"==b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 9a0d8a9c..64d77aa0 100644 --- a/inst/shinydashboard.min.js.map +++ b/inst/shinydashboard.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../srcjs/_start.js","../srcjs/shinydashboard-part.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","next","window","$obj","inputBinding","toggleValue","setValue","attr","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarmenuExpandedInputBinding","getId","initialize","$expanded","prev","$ul","show","sidebarCollapsedInputBinding","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/shinydashboard-part.js\n\n/* global Shiny */\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// Optionally disable sidebar\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\n});\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\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() {\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\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","setValue","attr","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","prev","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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() {\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 new file mode 100644 index 00000000..8153c7b8 --- /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-value"); + }, + setValue: function(el, value) { + $(el).attr("data-value", value); + }, + toggleValue: function(el) { + var current = this.getValue(el); + var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + 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/input_binding_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js new file mode 100644 index 00000000..62d303cb --- /dev/null +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -0,0 +1,47 @@ +/* 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 "itemExpanded"; + }, + // needed so we set the appropriate value for bookmarked apps on startup + initialize: function(el) { + $(this).trigger('change'); + }, + // the value is the href of the open menuItem (or NULL if there's + // no open menuItem) + getValue: function(el) { + var $expanded = $(el).find('li ul.menu-open'); + if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); + else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); + else return null; + }, + setValue: function(el, value) { + if (value !== null) { + var $ul = $('a[href="#' + value + '"]').next(); + $ul.addClass('menu-open'); + $ul.show(); + } + }, + receiveMessage: function(el, data) { + if (data.hasOwnProperty('value')) + this.setValue(el, data.value); + }, + 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 new file mode 100644 index 00000000..bd7913de --- /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..047893cc --- /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/shinydashboard-part.js b/srcjs/shinydashboard-part.js deleted file mode 100644 index a3df4dbd..00000000 --- a/srcjs/shinydashboard-part.js +++ /dev/null @@ -1,264 +0,0 @@ -/* global Shiny */ - -// 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(); - -// Optionally disable sidebar -if ($("section.sidebar").data("disable")) { - $("body").addClass("sidebar-collapse"); - $(".navbar > .sidebar-toggle").hide(); -} - -// Trigger "shown" event for elements that only become visible after -// the corresponding menuItem is expanded (otherwise, Shiny will still -// think they're hidden and not render them) -$(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); -}); - -// Whenever the sidebar expand/collapse button is clicked: -// * Trigger the resize event (this allows images to be -// responsive and resize themselves) -// * Update the value for the sidebar's input binding -$(document).on("click", ".sidebar-toggle", function() { - $(window).trigger("resize"); - var $obj = $('.main-sidebar.shiny-bound-input'); - var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.toggleValue($obj); - $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 menuItem that is currently expanded) -$(document).on("click", "a[href^='#shiny-tab-']", function() { - if ($(this).parent().hasClass('treeview')) { - var $obj = $('section.sidebar.shiny-bound-input'); - var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, $(this).attr('href').substring(1)); - $obj.trigger('change'); - } -}); - -// 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"); - - -// 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'); - - -// 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 "itemExpanded"; - }, - // needed so we set the appropriate value for bookmarked apps on startup - initialize: function(el) { - $(this).trigger('change'); - }, - // the value is the href of the open menuItem (or NULL if there's - // no open menuItem) - getValue: function(el) { - var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); - else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - else return null; - }, - setValue: function(el, value) { - if (value !== null) { - var $ul = $('a[href="#' + value + '"]').next(); - $ul.addClass('menu-open'); - $ul.show(); - } - }, - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); - }, - subscribe: function(el, callback) { - $(el).on('change.sidebarmenuExpandedInputBinding', function() { - callback(); - }); - }, - unsubscribe: function(el) { - $(el).off('.sidebarmenuExpandedInputBinding'); - } -}); -Shiny.inputBindings.register(sidebarmenuExpandedInputBinding, - 'shinydashboard.sidebarmenuExpandedInputBinding'); - - -// 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-value"); - }, - setValue: function(el, value) { - $(el).attr("data-value", value); - }, - toggleValue: function(el) { - var current = this.getValue(el); - var newVal = (current == "collapsed") ? "expanded" : "collapsed"; - 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 new file mode 100644 index 00000000..f547ff49 --- /dev/null +++ b/srcjs/sidebar.js @@ -0,0 +1,36 @@ +// Optionally disable sidebar +if ($("section.sidebar").data("disable")) { + $("body").addClass("sidebar-collapse"); + $(".navbar > .sidebar-toggle").hide(); +} + +// Trigger "shown" event for elements that only become visible after +// the corresponding menuItem is expanded (otherwise, Shiny will still +// think they're hidden and not render them) +$(document).on("click", ".treeview > a", function() { + $(this).next(".treeview-menu").trigger("shown"); +}); + +// Whenever the sidebar expand/collapse button is clicked: +// * Trigger the resize event (this allows images to be +// responsive and resize themselves) +// * Update the value for the sidebar's input binding +$(document).on("click", ".sidebar-toggle", function() { + $(window).trigger("resize"); + var $obj = $('.main-sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.toggleValue($obj); + $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 menuItem that is currently expanded) +$(document).on("click", "a[href^='#shiny-tab-']", function() { + if ($(this).parent().hasClass('treeview')) { + var $obj = $('section.sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + inputBinding.setValue($obj, $(this).attr('href').substring(1)); + $obj.trigger('change'); + } +}); diff --git a/srcjs/tabs.js b/srcjs/tabs.js new file mode 100644 index 00000000..63def6f3 --- /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 ed2e950b..04903397 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -35,7 +35,12 @@ module.exports = function(grunt) { shinydashboard: { src: [ srcdirjs + '_start.js', - srcdirjs + 'shinydashboard-part.js', + srcdirjs + 'tabs.js', + srcdirjs + 'sidebar.js', + 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' From d05c8cb45836076bd5e0c13f0054e6875ea5f226 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 8 Mar 2017 15:10:29 +0000 Subject: [PATCH 13/43] fix error alerted by eslint, clean up eslint in gruntfie, remove obsolete yarn dependencies --- inst/shinydashboard.js | 6 +- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarCollapsed.js | 2 +- srcjs/input_binding_tabItem.js | 4 +- tools/Gruntfile.js | 8 - tools/package.json | 3 - tools/yarn.lock | 229 ++---------------------- 9 files changed, 21 insertions(+), 237 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index aea516d9..64e8169a 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -163,14 +163,14 @@ $.extend(tabItemInputBinding, { return null; }, - setValue: function(el, value) { + setValue: function(el, value) { // eslint-disable-line consistent-return 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; - } + } else return true; }); }, receiveMessage: function(el, data) { @@ -219,7 +219,7 @@ $.extend(sidebarCollapsedInputBinding, { }, toggleValue: function(el) { var current = this.getValue(el); - var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + var newVal = (current === "collapsed") ? "expanded" : "collapsed"; this.setValue(el, newVal); }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index bf76e67a..81a8a387 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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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() {\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 80eff8eb..8fc87728 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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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","a[href^='#shiny-tab-']",function(){if($(this).parent().hasClass("treeview")){var a=$("section.sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.setValue(a,$(this).attr("href").substring(1)),a.trigger("change")}});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");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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"==b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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=$(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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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","a[href^='#shiny-tab-']",function(){if($(this).parent().hasClass("treeview")){var a=$("section.sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.setValue(a,$(this).attr("href").substring(1)),a.trigger("change")}});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 64d77aa0..106331f2 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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","setValue","attr","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","prev","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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() {\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current == \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","setValue","attr","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","prev","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 8153c7b8..07de7e8f 100644 --- a/srcjs/input_binding_sidebarCollapsed.js +++ b/srcjs/input_binding_sidebarCollapsed.js @@ -20,7 +20,7 @@ $.extend(sidebarCollapsedInputBinding, { }, toggleValue: function(el) { var current = this.getValue(el); - var newVal = (current == "collapsed") ? "expanded" : "collapsed"; + var newVal = (current === "collapsed") ? "expanded" : "collapsed"; this.setValue(el, newVal); }, receiveMessage: function(el, data) { diff --git a/srcjs/input_binding_tabItem.js b/srcjs/input_binding_tabItem.js index bd7913de..8046467b 100644 --- a/srcjs/input_binding_tabItem.js +++ b/srcjs/input_binding_tabItem.js @@ -16,14 +16,14 @@ $.extend(tabItemInputBinding, { return null; }, - setValue: function(el, value) { + setValue: function(el, value) { // eslint-disable-line consistent-return 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; - } + } else return true; }); }, receiveMessage: function(el, data) { diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index 04903397..1e29539d 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -89,22 +89,17 @@ module.exports = function(grunt) { eslint: { options: { - parser: 'babel-eslint', - format: require('eslint-stylish-mapped'), extends: 'eslint:recommended', rules: { "consistent-return": 1, "dot-location": [1, "property"], "eqeqeq": 1, - // "no-shadow": 1, "no-undef": 1, "no-unused-vars": [1, {"args": "none"}], "guard-for-in": 1, - // "no-use-before-define": [1, {"functions": false}], "semi": [1, "always"] }, envs: [ - "es6", "browser", "jquery" ], @@ -125,7 +120,6 @@ module.exports = function(grunt) { } }); - grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-eslint'); @@ -133,7 +127,6 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-newer'); - grunt.registerTask('default', ['concat', 'eslint', 'uglify', 'cssmin']); @@ -171,4 +164,3 @@ module.exports = function(grunt) { return txt; } }; - diff --git a/tools/package.json b/tools/package.json index d4fd255b..a4b9826d 100644 --- a/tools/package.json +++ b/tools/package.json @@ -1,11 +1,8 @@ { "devDependencies": { - "babel-eslint": "^7.1.1", - "eslint-stylish-mapped": "^1.0.0", "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", "grunt-contrib-watch": "^1.0.0", "grunt-eslint": "^19.0.0", diff --git a/tools/yarn.lock b/tools/yarn.lock index 997ba0f0..db9055cf 100644 --- a/tools/yarn.lock +++ b/tools/yarn.lock @@ -39,10 +39,6 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -87,7 +83,7 @@ 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, babel-code-frame@^6.22.0: +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: @@ -95,56 +91,6 @@ babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-eslint@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.1.tgz#8a6a884f085aa7060af69cfc77341c2f99370fb2" - dependencies: - babel-code-frame "^6.16.0" - babel-traverse "^6.15.0" - babel-types "^6.15.0" - babylon "^6.13.0" - lodash.pickby "^4.6.0" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-runtime@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-traverse@^6.15.0: - version "6.23.1" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" - dependencies: - babel-code-frame "^6.22.0" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.23.0" - babylon "^6.15.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.15.0, babel-types@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" - dependencies: - babel-runtime "^6.22.0" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babylon@^6.13.0, babylon@^6.15.0: - version "6.16.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" - balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -255,13 +201,6 @@ 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" - dependencies: - exit "0.1.2" - glob "^7.1.1" - cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -298,20 +237,10 @@ concat-stream@^1.4.1, concat-stream@^1.4.6: readable-stream "^2.2.2" typedarray "^0.0.6" -console-browserify@1.1.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - content-type@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" -core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -328,10 +257,6 @@ d@^0.1.1, d@~0.1.1: dependencies: es5-ext "~0.10.2" -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - dateformat@~1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" @@ -339,7 +264,7 @@ dateformat@~1.0.12: get-stdin "^4.0.1" meow "^3.3.0" -debug@^2.1.1, debug@^2.2.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: @@ -383,46 +308,10 @@ doctrine@^1.2.2: 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" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domutils@1.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - error-ex@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" @@ -494,14 +383,6 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-stylish-mapped@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-stylish-mapped/-/eslint-stylish-mapped-1.0.0.tgz#3cf9386ccaaadcac8a0a995aa71e88880bb4e218" - dependencies: - chalk "^1.0.0" - source-map "^0.4.2" - text-table "^0.2.0" - eslint@^3.0.0: version "3.17.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.17.1.tgz#b80ae12d9c406d858406fccda627afce33ea10ea" @@ -586,7 +467,7 @@ 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: +exit@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -672,7 +553,7 @@ getobject@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c" -glob@^7.0.0, glob@^7.1.1, glob@~7.1.1: +glob@^7.0.0, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -704,7 +585,7 @@ glob@~5.0.0: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^9.0.0, globals@^9.14.0: +globals@^9.14.0: version "9.16.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" @@ -755,14 +636,6 @@ grunt-contrib-cssmin@^2.0.0: clean-css "~4.0.3" maxmin "^1.1.0" -grunt-contrib-jshint@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz#369d909b2593c40e8be79940b21340850c7939ac" - dependencies: - chalk "^1.1.1" - hooker "^0.2.3" - jshint "~2.9.4" - grunt-contrib-uglify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-2.1.0.tgz#b3ff028da47483787f19f0b232b7a1b51212fd85" @@ -863,7 +736,7 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -hooker@^0.2.3, hooker@~0.2.3: +hooker@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" @@ -871,16 +744,6 @@ hosted-git-info@^2.1.4: version "2.2.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" -htmlparser2@3.8.x: - version "3.8.3" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" - dependencies: - domelementtype "1" - domhandler "2.3" - domutils "1.5" - entities "1.0" - readable-stream "1.1" - http-errors@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" @@ -943,12 +806,6 @@ interpret@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" -invariant@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -1018,10 +875,6 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -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: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -1041,19 +894,6 @@ js-yaml@^3.5.1, js-yaml@~3.5.2: argparse "^1.0.2" esprima "^2.6.0" -jshint@~2.9.4: - version "2.9.4" - resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.4.tgz#5e3ba97848d5290273db514aee47fe24cf592934" - dependencies: - cli "~1.0.0" - console-browserify "1.1.x" - exit "0.1.x" - htmlparser2 "3.8.x" - lodash "3.7.x" - minimatch "~3.0.2" - 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" @@ -1099,36 +939,22 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash.pickby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" - -lodash@3.7.x: - version "3.7.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" - 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.0.0, lodash@^4.2.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" - -lodash@~4.3.0: +lodash@^4.0.0, lodash@~4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.3.0.tgz#efd9c4a6ec53f3b05412429915c3e4824e4d25a4" +lodash@^4.3.0, lodash@~4.16.4: + version "4.16.6" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -1380,15 +1206,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" @@ -1422,10 +1239,6 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -regenerator-runtime@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" - repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -1488,10 +1301,6 @@ rx-lite@^3.1.2: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -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.6" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" @@ -1512,12 +1321,6 @@ 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" -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -1581,10 +1384,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -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" @@ -1604,7 +1403,7 @@ table@^3.7.8: slice-ansi "0.0.4" string-width "^2.0.0" -text-table@^0.2.0, text-table@~0.2.0: +text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -1623,10 +1422,6 @@ tiny-lr@^0.2.1: parseurl "~1.3.0" qs "~5.1.0" -to-fast-properties@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" - trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" From 3d5da309b87cf5bf827979a142e7f780fc695d33 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 8 Mar 2017 15:11:53 +0000 Subject: [PATCH 14/43] gruntfile: only build files that have changed (using 'grunt-newer') --- tools/Gruntfile.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index 1e29539d..fa8dc324 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -111,11 +111,11 @@ module.exports = function(grunt) { watch: { shinydashboard: { files: '<%= concat.shinydashboard.src %>', - tasks: ['concat:shinydashboard', 'uglify:shinydashboard', 'jshint:shinydashboard'] + tasks: ['newer:concat:shinydashboard', 'newer:uglify:shinydashboard', 'newer:jshint:shinydashboard'] }, adminlte: { files: ['<%= uglify.adminlte.src %>', '<%= cssmin.adminlte.src %>'], - tasks: ['uglify:adminlte', 'cssmin:adminlte'] + tasks: ['newer:uglify:adminlte', 'newer:cssmin:adminlte'] } } }); @@ -127,7 +127,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-newer'); - grunt.registerTask('default', ['concat', 'eslint', 'uglify', 'cssmin']); + grunt.registerTask('default', ['newer:concat', 'newer:eslint', 'newer:uglify', 'newer:cssmin']); // --------------------------------------------------------------------------- From 478489de31f46ac5dd8c5690bfdace8cec9b73be Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 14:17:56 +0000 Subject: [PATCH 15/43] don't require parent tab to have a tabname --- R/dashboardSidebar.R | 11 ++++------- inst/shinydashboard.js | 20 +++++++++++++------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarmenuExpanded.js | 13 +++++++++---- srcjs/sidebar.js | 7 ++++--- 7 files changed, 33 insertions(+), 24 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 95d202c6..065308ae 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -118,11 +118,9 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL ')))) } - dataValue <- restoreInput(id = "sidebarCollapsed", + dataValue <- shiny::restoreInput(id = "sidebarCollapsed", default = if (collapsed) "collapsed" else "expanded") - # dataExpanded <- restoreInput(id = "itemExpanded", default = NULL) - # 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 @@ -405,8 +403,8 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr ) } - dataExpanded <- restoreInput(id = "itemExpanded", default = "") %OR% "" # prevent this from being NULL - cls <- if (dataExpanded == paste0("shiny-tab-", tabName)) " menu-open" else "" + dataExpanded <- shiny::restoreInput(id = "itemExpanded", default = "") %OR% "" # prevent this from being NULL + cls <- if (dataExpanded != "" && any(grepl(dataExpanded, subItems))) " menu-open" else "" display <- if (cls != "") "block" else "none" tags$li(class = "treeview", @@ -425,8 +423,7 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr #' @rdname sidebarMenu #' @export menuSubItem <- function(text, tabName = NULL, href = NULL, newtab = TRUE, - icon = shiny::icon("angle-double-right"), selected = NULL) -{ + icon = shiny::icon("angle-double-right"), selected = NULL) { if (!is.null(href) && !is.null(tabName)) { stop("Can't specify both href and tabName") diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 64e8169a..8d6e4c0a 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -84,11 +84,12 @@ $(document).on("click", ".sidebar-toggle", function() { // 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 menuItem that is currently expanded) -$(document).on("click", "a[href^='#shiny-tab-']", function() { - if ($(this).parent().hasClass('treeview')) { +$(document).on("click", ".treeview > a", function() { + if ($(this).next().hasClass("treeview-menu")) { + var id = $(this).next().find('a').attr('href').substring(1); var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, $(this).attr('href').substring(1)); + inputBinding.setValue($obj, id); $obj.trigger('change'); } }); @@ -262,13 +263,18 @@ $.extend(sidebarmenuExpandedInputBinding, { // no open menuItem) getValue: function(el) { var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); - else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - else return null; + if ($expanded.length === 1) { + return $expanded.find('a').attr('href').substring(1); + } else if ($(el).attr("data-expanded")) { + return $(el).attr("data-expanded"); + } else { + return null; + } }, setValue: function(el, value) { if (value !== null) { - var $ul = $('a[href="#' + value + '"]').next(); + var firstChild = 'a[href="#' + value + '"]'; + var $ul = $(firstChild).parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); } diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 81a8a387..01c9e3d2 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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n if ($(this).next().hasClass(\"treeview-menu\")) {\n var id = $(this).next().find('a').attr('href').substring(1);\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, id);\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 8fc87728..765a5348 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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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","a[href^='#shiny-tab-']",function(){if($(this).parent().hasClass("treeview")){var a=$("section.sidebar.shiny-bound-input"),b=a.data("shiny-input-binding");b.setValue(a,$(this).attr("href").substring(1)),a.trigger("change")}});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.prev().attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c=$('a[href="#'+b+'"]').next();c.addClass("menu-open"),c.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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=$(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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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(){if($(this).next().hasClass("treeview-menu")){var a=$(this).next().find("a").attr("href").substring(1),b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");c.setValue(b,a),b.trigger("change")}});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 106331f2..d5246eba 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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","setValue","attr","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","prev","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \"a[href^='#shiny-tab-']\", function() {\n if ($(this).parent().hasClass('treeview')) {\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, $(this).attr('href').substring(1));\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1);\n else if ($(el).attr(\"data-expanded\")) return $(el).attr(\"data-expanded\");\n else return null;\n },\n setValue: function(el, value) {\n if (value !== null) {\n var $ul = $('a[href=\"#' + value + '\"]').next();\n $ul.addClass('menu-open');\n $ul.show();\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 $(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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","id","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n if ($(this).next().hasClass(\"treeview-menu\")) {\n var id = $(this).next().find('a').attr('href').substring(1);\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, id);\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\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 $(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_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index 62d303cb..e44493cb 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -19,13 +19,18 @@ $.extend(sidebarmenuExpandedInputBinding, { // no open menuItem) getValue: function(el) { var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) return $expanded.prev().attr('href').substring(1); - else if ($(el).attr("data-expanded")) return $(el).attr("data-expanded"); - else return null; + if ($expanded.length === 1) { + return $expanded.find('a').attr('href').substring(1); + } else if ($(el).attr("data-expanded")) { + return $(el).attr("data-expanded"); + } else { + return null; + } }, setValue: function(el, value) { if (value !== null) { - var $ul = $('a[href="#' + value + '"]').next(); + var firstChild = 'a[href="#' + value + '"]'; + var $ul = $(firstChild).parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); } diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index f547ff49..aa3a616c 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -26,11 +26,12 @@ $(document).on("click", ".sidebar-toggle", function() { // 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 menuItem that is currently expanded) -$(document).on("click", "a[href^='#shiny-tab-']", function() { - if ($(this).parent().hasClass('treeview')) { +$(document).on("click", ".treeview > a", function() { + if ($(this).next().hasClass("treeview-menu")) { + var id = $(this).next().find('a').attr('href').substring(1); var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, $(this).attr('href').substring(1)); + inputBinding.setValue($obj, id); $obj.trigger('change'); } }); From 429f4f05f6c1a5ad7d98c85efb7ea7cc6ba8427a Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 16:27:49 +0000 Subject: [PATCH 16/43] trigger hide event when we click on an already expanded menuItem --- R/dashboardSidebar.R | 6 +----- inst/shinydashboard.js | 21 ++++++++++++++++----- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarmenuExpanded.js | 4 ++++ srcjs/sidebar.js | 17 ++++++++++++----- 7 files changed, 36 insertions(+), 18 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 065308ae..2664c344 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -60,8 +60,7 @@ #' ) #' } #' @export -dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FALSE#, id = "main-sidebar" - ) { +dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FALSE) { width <- validateCssUnit(width) # Set up custom CSS for custom width @@ -127,14 +126,12 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # just passed through (as the `data-value` attribute) to the # `dashboardPage()` function tags$aside( - #id = id, class = paste("main-sidebar"), `data-value` = dataValue, custom_css, tags$section( class = "sidebar", `data-disable` = if (disable) 1 else NULL, - # `data-expanded` = dataExpanded, list(...) ) ) @@ -444,7 +441,6 @@ menuSubItem <- function(text, tabName = NULL, href = NULL, newtab = TRUE, target <- "_blank" } - tags$li( a(href = href, `data-toggle` = if (isTabItem) "tab", diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 8d6e4c0a..f0e1691d 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -83,15 +83,22 @@ $(document).on("click", ".sidebar-toggle", function() { // 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 menuItem that is currently expanded) +// tabName of the fist subMenuItem inside the menuItem that is currently +// expanded) $(document).on("click", ".treeview > a", function() { - if ($(this).next().hasClass("treeview-menu")) { - var id = $(this).next().find('a').attr('href').substring(1); var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, id); + var value; + + // If this menuItem was already open, then clicking on it again, + // should update the input binding back to null + if ($(this).next().hasClass("menu-open")) { + value = null + } else if ($(this).next().hasClass("treeview-menu")) { + value = $(this).next().find('a').attr('href').substring(1); + } + inputBinding.setValue($obj, value); $obj.trigger('change'); - } }); //--------------------------------------------------------------------- @@ -277,6 +284,10 @@ $.extend(sidebarmenuExpandedInputBinding, { var $ul = $(firstChild).parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); + } else { + var $ul = $(el).find('li ul.menu-open'); + $ul.removeClass('menu-open'); + $ul.hide(); } }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 01c9e3d2..36e16b14 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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n if ($(this).next().hasClass(\"treeview-menu\")) {\n var id = $(this).next().find('a').attr('href').substring(1);\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, id);\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\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 $(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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 765a5348..d0c1a5e6 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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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(){if($(this).next().hasClass("treeview-menu")){var a=$(this).next().find("a").attr("href").substring(1),b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");c.setValue(b,a),b.trigger("change")}});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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=$(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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 d5246eba..ef8f5d3f 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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","id","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","value","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 menuItem that is currently expanded)\n$(document).on(\"click\", \".treeview > a\", function() {\n if ($(this).next().hasClass(\"treeview-menu\")) {\n var id = $(this).next().find('a').attr('href').substring(1);\n var $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n inputBinding.setValue($obj, id);\n $obj.trigger('change');\n }\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\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 $(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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index e44493cb..4daa7f83 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -33,6 +33,10 @@ $.extend(sidebarmenuExpandedInputBinding, { var $ul = $(firstChild).parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); + } else { + var $ul = $(el).find('li ul.menu-open'); + $ul.removeClass('menu-open'); + $ul.hide(); } }, receiveMessage: function(el, data) { diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index aa3a616c..5c3cd766 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -25,13 +25,20 @@ $(document).on("click", ".sidebar-toggle", function() { // 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 menuItem that is currently expanded) +// tabName of the fist subMenuItem inside the menuItem that is currently +// expanded) $(document).on("click", ".treeview > a", function() { - if ($(this).next().hasClass("treeview-menu")) { - var id = $(this).next().find('a').attr('href').substring(1); var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); - inputBinding.setValue($obj, id); + var value; + + // If this menuItem was already open, then clicking on it again, + // should update the input binding back to null + if ($(this).next().hasClass("menu-open")) { + value = null + } else if ($(this).next().hasClass("treeview-menu")) { + value = $(this).next().find('a').attr('href').substring(1); + } + inputBinding.setValue($obj, value); $obj.trigger('change'); - } }); From b8c421cb2d4929df51f29a8d2f60ce329bb33bc1 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 16:31:26 +0000 Subject: [PATCH 17/43] semicolon --- inst/shinydashboard.js | 2 +- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/sidebar.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index f0e1691d..0eb68fdc 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -93,7 +93,7 @@ $(document).on("click", ".treeview > a", function() { // If this menuItem was already open, then clicking on it again, // should update the input binding back to null if ($(this).next().hasClass("menu-open")) { - value = null + value = null; } else if ($(this).next().hasClass("treeview-menu")) { value = $(this).next().find('a').attr('href').substring(1); } diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 36e16b14..1cb5ec5b 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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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.map b/inst/shinydashboard.min.js.map index ef8f5d3f..ee0935d9 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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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\nif ($(\"section.sidebar\").data(\"disable\")) {\n $(\"body\").addClass(\"sidebar-collapse\");\n $(\".navbar > .sidebar-toggle\").hide();\n}\n\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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,QAMjCvB,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMqB,KAAI,kBAAmBb,QAAO,WAOxCX,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAEyB,QAAQd,QAAO,SACjB,IAAIe,GAAO1B,EAAA,mCACP2B,EAAeD,EAAKL,KAAI,sBAC5BM,GAAaC,YAAWF,GACxBA,EAAKf,QAAO,YAOdX,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACrC,GAEIgB,GAFAH,EAAO1B,EAAA,qCACP2B,EAAeD,EAAKL,KAAI,sBAKzBrB,GAAGG,MAAMqB,OAAOL,SAAQ,aACzBU,EAAQ,KACA7B,EAAGG,MAAMqB,OAAOL,SAAQ,mBAChCU,EAAQ7B,EAAEG,MAAMqB,OAAOjB,KAAI,KAAMuB,KAAI,QAASC,UAAU,IAE1DJ,EAAaK,SAAQN,EAAOG,GAC5BH,EAAKf,QAAO,WCnChB,IAAIsB,GAAoB,GAAIC,OAAMC,aAClCnC,GAAEoC,OAAOH,GACP1B,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,gCAEtB+B,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChBpC,KAAKuC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIlB,GACxBa,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATxB,EAAJ,CAE4B,gBAAX,GACfuB,EAAOvB,EACmB,gBAAX,KACfuB,EAAOvB,EAAKuB,KACZC,EAAexB,EAAKyB,KAGtB,IAAIC,GAAQ/C,EAAAA,EAAIgD,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMjB,KAAI,SAEzBI,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,OAGlBL,MAAMmB,eAAeC,SAASrB,EACA,mCCtC9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpCxD,GAAEoC,OAAOmB,GACPhD,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,oBAEtBkD,SAAU,SAASlB,GACjB,GAAImB,GAAS1D,EAAEuC,GAAIhC,KAAI,4BAA6BoD,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOzC,OACFd,KAAKyD,YAAYF,GAEnB,MAET1B,SAAU,SAASO,EAAIV,GACrB,GAAIgC,GAAO1D,KACP2D,EAAU9D,EAAEuC,GAAIhC,KAAI,qBAAsBoD,SAAQ,IACtDG,GAAQC,KAAK,WACX,MAAIF,GAAKD,YAAW5D,EAAGG,SAAW0B,IAChC7B,EAAEG,MAAMe,IAAG,SACJ,MAIb8C,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GAItBnE,EAAEuC,GAAI1B,GAAE,6BAA+B,WACrCsD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,yBAEXT,YAAa,SAASF,GACpB,MAAOA,GAAO5B,KAAI,iBAGtBI,MAAMoC,cAAchB,SAASC,EAAqB,8BCzClD,IAAIgB,GAA+B,GAAIrC,OAAMsB,YAC7CxD,GAAEoC,OAAOmC,GACPhE,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,iBAAkBa,SAExCoD,MAAO,SAASjC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAOvC,GAAEuC,GAAIT,KAAI,eAEnBE,SAAU,SAASO,EAAIV,GACrB7B,EAAEuC,GAAIT,KAAI,aAAeD,IAE3BD,YAAa,SAASW,GACpB,GAAIkC,GAAUtE,KAAKsD,SAASlB,GACxBmC,EAAsB,cAAZD,EAA2B,WAAa,WACtDtE,MAAK6B,SAASO,EAAImC,IAEpBV,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GACtBnE,EAAEuC,GAAI1B,GAAE,sCAAwC,WAC9CsD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,oCAGbnC,MAAMoC,cAAchB,SAASiB,EAC3B,8CClCF,IAAII,GAAkC,GAAIzC,OAAMsB,YAChDxD,GAAEoC,OAAOuC,GACPpE,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,oBAEtBiE,MAAO,SAASjC,GACd,MAAO,gBAGTqC,WAAY,SAASrC,GACnBvC,EAAEG,MAAMQ,QAAO,WAIjB8C,SAAU,SAASlB,GACjB,GAAIsC,GAAY7E,EAAEuC,GAAIhC,KAAI,kBAC1B,OAAyB,KAAtBsE,EAAW5D,OACL4D,EAAUtE,KAAI,KAAMuB,KAAI,QAASC,UAAU,GAC1C/B,EAAGuC,GAAIT,KAAI,iBACZ9B,EAAEuC,GAAIT,KAAI,iBAEV,MAGXE,SAAU,SAASO,EAAIV,GACrB,GAAc,OAAVA,EAAgB,CAClB,GAAIiD,GAAa,YAAcjD,EAAQ,KACnCkD,EAAM/E,EAAE8E,GAAYrE,SAASA,OAAM,iBACvCsE,GAAIzD,SAAQ,aACZyD,EAAIC,WACC,CACL,GAAID,GAAM/E,EAAEuC,GAAIhC,KAAI,kBACpBwE,GAAIrE,YAAW,aACfqE,EAAIxD,SAGRyC,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GACtBnE,EAAEuC,GAAI1B,GAAE,yCAA2C,WACjDsD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,uCAGbnC,MAAMoC,cAAchB,SAASqB,EAC3B","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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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/sidebar.js b/srcjs/sidebar.js index 5c3cd766..6308a65c 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -35,7 +35,7 @@ $(document).on("click", ".treeview > a", function() { // If this menuItem was already open, then clicking on it again, // should update the input binding back to null if ($(this).next().hasClass("menu-open")) { - value = null + value = null; } else if ($(this).next().hasClass("treeview-menu")) { value = $(this).next().find('a').attr('href').substring(1); } From 6fef03d6c8db293e1b1ae74249e7a4c0a74d2a8a Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 18:58:21 +0000 Subject: [PATCH 18/43] correct scrsjs directory for future AdminLTE updates --- tools/updateAdminLTE.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) From cd2e068d521b76c6b39d7a33363c2031dc69a890 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 19:02:30 +0000 Subject: [PATCH 19/43] add crnjs folder to rbuildignore --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 349d6839..e3d23331 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,6 +1,7 @@ ^.*\.Rproj$ ^\.Rproj\.user$ ^tools$ +^scrjs$ ^tests-manual$ ^\.travis\.yml$ ^appveyor\.yml$ From 9c2f2272b2cdda9aba9241eb51afacd6a79c33c8 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 23:05:13 +0000 Subject: [PATCH 20/43] add manual test app --- .Rbuildignore | 2 +- tests-manual/sidebar-bookmarking.R | 116 +++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 tests-manual/sidebar-bookmarking.R diff --git a/.Rbuildignore b/.Rbuildignore index e3d23331..66645d0d 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,7 +1,7 @@ ^.*\.Rproj$ ^\.Rproj\.user$ ^tools$ -^scrjs$ +^srcjs$ ^tests-manual$ ^\.travis\.yml$ ^appveyor\.yml$ diff --git a/tests-manual/sidebar-bookmarking.R b/tests-manual/sidebar-bookmarking.R new file mode 100644 index 00000000..6db655b2 --- /dev/null +++ b/tests-manual/sidebar-bookmarking.R @@ -0,0 +1,116 @@ +# 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) + +ui <- function(request) { + dashboardPage( + dashboardHeader(title = "Testing sidebar bookmarkability"), + dashboardSidebar( + uiOutput("sidebarControls"), + 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") + ) + ), + 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) { + + data <- function() mtcars + + output$sidebarControls <- renderUI({ + if (input$smenu %in% c("models1", "models2", "plots1")) { + tagList( + selectInput("xaxis", "X axis", names(data()), selected = input$xaxis), + selectInput("yaxis", "Y axis", names(data()), selected = input$yaxis) + ) + } else if (input$smenu == "plots2") { + tagList( + selectInput("xaxis", "X axis", names(data()), selected = input$xaxis), + selectInput("yaxis", "Y axis", names(data()), selected = input$yaxis), + selectInput("zaxis", "Z axis", names(data()), selected = input$zaxis) + ) + } + }) + + formula <- reactive({ + req(input$yaxis, input$xaxis) + as.formula(paste(input$yaxis, input$xaxis, sep = " ~ ")) + }) + + output$models1 <- renderPrint({ + summary(glm(formula(), data = data()), family = "linear") + }) + + output$models2 <- renderPrint({ + summary(glm(formula(), data = data()), family = "binomial") + }) + + output$plots1 <- renderPlot({ + plot(formula(), data = data()) + }) + + output$plots2 <- renderScatterplotThree({ + x <- data()[[input$xaxis]] + y <- data()[[input$yaxis]] + z <- data()[[input$zaxis]] + scatterplot3js(x, y, z) + }) + + output$tbl <- renderTable({ + data() + }) + + observe({ + # Trigger this observer every time an input changes + reactiveValuesToList(input) + session$doBookmark() + }) + onBookmarked(function(url) { + updateQueryString(url) + }) + +} + +enableBookmarking("url") +shinyApp(ui, server) From 2c6f02410cfcf46cc494bc54c14737a6d014072c Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 9 Mar 2017 23:29:10 +0000 Subject: [PATCH 21/43] indentation --- srcjs/sidebar.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index 6308a65c..59e28262 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -28,17 +28,17 @@ $(document).on("click", ".sidebar-toggle", function() { // tabName of the fist subMenuItem inside the menuItem that is currently // expanded) $(document).on("click", ".treeview > a", function() { - var $obj = $('section.sidebar.shiny-bound-input'); - var inputBinding = $obj.data('shiny-input-binding'); - var value; + var $obj = $('section.sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + var value; - // If this menuItem was already open, then clicking on it again, - // should update the input binding back to null - if ($(this).next().hasClass("menu-open")) { - value = null; - } else if ($(this).next().hasClass("treeview-menu")) { - value = $(this).next().find('a').attr('href').substring(1); - } - inputBinding.setValue($obj, value); - $obj.trigger('change'); + // If this menuItem was already open, then clicking on it again, + // should update the input binding back to null + if ($(this).next().hasClass("menu-open")) { + value = null; + } else if ($(this).next().hasClass("treeview-menu")) { + value = $(this).next().find('a').attr('href').substring(1); + } + inputBinding.setValue($obj, value); + $obj.trigger('change'); }); From 8fa3f5a67d641fa1a647573e46b92588d2ad8aa8 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 10 Mar 2017 01:02:35 +0000 Subject: [PATCH 22/43] fix tabs --- inst/shinydashboard.js | 34 ++++++++++++++++++---------------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/output_binding_menu.js | 1 + srcjs/tabs.js | 7 ++++--- 6 files changed, 26 insertions(+), 22 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 0eb68fdc..93a6cd25 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -17,8 +17,10 @@ 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"); @@ -30,7 +32,6 @@ var deactivateOtherTabs = function() { $(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. @@ -86,19 +87,19 @@ $(document).on("click", ".sidebar-toggle", function() { // tabName of the fist subMenuItem inside the menuItem that is currently // expanded) $(document).on("click", ".treeview > a", function() { - var $obj = $('section.sidebar.shiny-bound-input'); - var inputBinding = $obj.data('shiny-input-binding'); - var value; - - // If this menuItem was already open, then clicking on it again, - // should update the input binding back to null - if ($(this).next().hasClass("menu-open")) { - value = null; - } else if ($(this).next().hasClass("treeview-menu")) { - value = $(this).next().find('a').attr('href').substring(1); - } - inputBinding.setValue($obj, value); - $obj.trigger('change'); + var $obj = $('section.sidebar.shiny-bound-input'); + var inputBinding = $obj.data('shiny-input-binding'); + var value; + + // If this menuItem was already open, then clicking on it again, + // should update the input binding back to null + if ($(this).next().hasClass("menu-open")) { + value = null; + } else if ($(this).next().hasClass("treeview-menu")) { + value = $(this).next().find('a').attr('href').substring(1); + } + inputBinding.setValue($obj, value); + $obj.trigger('change'); }); //--------------------------------------------------------------------- @@ -145,6 +146,7 @@ $.extend(menuOutputBinding, { Shiny.initializeInputs(el); Shiny.bindAll(el); + ensureActivatedTab(); } }); Shiny.outputBindings.register(menuOutputBinding, diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 1cb5ec5b..dfe5f8ab 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":"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,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;AAC3E,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;AAC1E,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;AACrE,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;AAC3E,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;AAC5E,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;AACxE,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;AAChE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACtB,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;AACtD;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;AAC1C,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;AAC5D;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI;AACnD,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,GAAG;AAC1D;AACA,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB;AAC9C,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,mBAAmB,GAAG;AACrD,EAAE;AACF;AACA,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;AACpE,eAAe,mBAAmB,EAAE;AACpC;AACA;AACA,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;AAC7E,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;AACxE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,EAAE,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;AAC/E;AACA,EAAE,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;AAC5E,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5B,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK;AAChE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG;AAC1B,IAAI,MAAM,CAAC;AACX,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACrD,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG;AAClC,EAAE,CAAC;AACH,EAAE;AACF;AACA,kBAAkB,GAAG;;AChDrB,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE;AACnC;AACA,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;AAC7B,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3C,EAAE,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG;AACzC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG;AACxC,CAAC;AACD;AACA,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;AACpE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;AACtE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrD,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,GAAG;AAClD,GAAG;AACH;AACA,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;AAC1D,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAC1D,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;AACzC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AACxD,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;AAC9B,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;AAClD,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;AACtD,EAAE,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE;AACjC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG;AACzB,GAAG;AACH;AACA,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC3E,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACrE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS;AACxE,EAAE,CAAC,QAAQ,CAAC;AACZ,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrD,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;AACtD,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;AACxD,IAAI,GAAG,CAAC,KAAK,CAAC;AACd;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AACpE,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACnD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC/C,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AAC1D,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE;AACjE,IAAI,CAAC;AACL,IAAI,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;AACvC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG;AAC3B,GAAG;;AC9CH,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,EAAE;AAC/C;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,iBAAiB;AACpB,EAAE,CAAC,kEAAkE;AACrE,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;AAC3E,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;AAC7E,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG;AAClD,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG;AACxD,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;AACxB;AACA,IAAI,GAAG,CAAC,IAAI,CAAC;AACb,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,MAAM,MAAM,CAAC;AACb,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClB,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,GAAG;AACrC;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU;AACjE,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE;AACrD;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AACpE,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;AACvC;AACA,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE;AAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;AACtB,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAChD,8BAA8B,CAAC,cAAc,CAAC,iBAAiB,GAAG;;AC/ClE,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,EAAE;AACjD;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,mBAAmB;AACtB,EAAE,CAAC,kEAAkE;AACrE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrE,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;AAC7D,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AACnD,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;AAC5C,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG;AACtE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACtC;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;AAC1E,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC,GAAG;AAChE,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG;AAC5B,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;AAC5E,IAAI,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;AAC7E,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACnB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG;AACjB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,mBAAmB,GAAG;AACtC,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG;AACrC,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG;;AClDjF,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,8BAA8B,CAAC,EAAE;AAC1D;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,4BAA4B;AAC/B,EAAE,CAAC,kEAAkE;AACrE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;AACjE,EAAE,CAAC,EAAE,CAAC,SAAS;AACf,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AAC5D,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG;AAClD,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG;AACpC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AACtE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChE,MAAM,QAAQ,GAAG;AACjB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,4BAA4B,GAAG;AAC/C,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,4BAA4B,CAAC;AAC1D,EAAE,CAAC,cAAc,CAAC,4BAA4B,GAAG;;AC1CjD,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,iCAAiC,CAAC,EAAE;AAC7D;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,+BAA+B;AAClC,EAAE,CAAC,kEAAkE;AACrE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ;AAC1D,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AAC/D,EAAE,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG;AAC5C,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,CAAC,YAAY,EAAE;AAC1B,EAAE,EAAE;AACJ,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AAC1E,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG;AAC9B,EAAE,EAAE;AACJ,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACnE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG;AAClD,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE;AAC3D,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC7C,MAAM,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG;AACzC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;AAClD,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI,GAAG;AAChE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG;AAChC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG;AACjB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG;AAC9C,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,GAAG;AACnC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG;AACjB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,+BAA+B,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnE,MAAM,QAAQ,GAAG;AACjB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,+BAA+B,GAAG;AAClD,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,+BAA+B,CAAC;AAC7D,EAAE,CAAC,cAAc,CAAC,+BAA+B,GAAG;;AC1DpD,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.\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\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 $sidebarMenu.trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 d0c1a5e6..7936554d 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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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=$(this),b=a.closest("ul.sidebar-menu"),c=$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a");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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 ee0935d9..c40851b8 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","$this","this","$sidebarMenu","closest","$tablinks","find","not","parent","removeClass","trigger","document","on","ensureActivatedTab","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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,QAMjCvB,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACvCb,EAAEG,MAAMqB,KAAI,kBAAmBb,QAAO,WAOxCX,EAAEY,UAAUC,GAAE,QAAU,kBAAmB,WACzCb,EAAEyB,QAAQd,QAAO,SACjB,IAAIe,GAAO1B,EAAA,mCACP2B,EAAeD,EAAKL,KAAI,sBAC5BM,GAAaC,YAAWF,GACxBA,EAAKf,QAAO,YAOdX,EAAEY,UAAUC,GAAE,QAAU,gBAAiB,WACrC,GAEIgB,GAFAH,EAAO1B,EAAA,qCACP2B,EAAeD,EAAKL,KAAI,sBAKzBrB,GAAGG,MAAMqB,OAAOL,SAAQ,aACzBU,EAAQ,KACA7B,EAAGG,MAAMqB,OAAOL,SAAQ,mBAChCU,EAAQ7B,EAAEG,MAAMqB,OAAOjB,KAAI,KAAMuB,KAAI,QAASC,UAAU,IAE1DJ,EAAaK,SAAQN,EAAOG,GAC5BH,EAAKf,QAAO,WCnChB,IAAIsB,GAAoB,GAAIC,OAAMC,aAClCnC,GAAEoC,OAAOH,GACP1B,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,gCAEtB+B,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChBpC,KAAKuC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIlB,GACxBa,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATxB,EAAJ,CAE4B,gBAAX,GACfuB,EAAOvB,EACmB,gBAAX,KACfuB,EAAOvB,EAAKuB,KACZC,EAAexB,EAAKyB,KAGtB,IAAIC,GAAQ/C,EAAAA,EAAIgD,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMjB,KAAI,SAEzBI,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,OAGlBL,MAAMmB,eAAeC,SAASrB,EACA,mCCtC9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpCxD,GAAEoC,OAAOmB,GACPhD,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,oBAEtBkD,SAAU,SAASlB,GACjB,GAAImB,GAAS1D,EAAEuC,GAAIhC,KAAI,4BAA6BoD,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOzC,OACFd,KAAKyD,YAAYF,GAEnB,MAET1B,SAAU,SAASO,EAAIV,GACrB,GAAIgC,GAAO1D,KACP2D,EAAU9D,EAAEuC,GAAIhC,KAAI,qBAAsBoD,SAAQ,IACtDG,GAAQC,KAAK,WACX,MAAIF,GAAKD,YAAW5D,EAAGG,SAAW0B,IAChC7B,EAAEG,MAAMe,IAAG,SACJ,MAIb8C,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GAItBnE,EAAEuC,GAAI1B,GAAE,6BAA+B,WACrCsD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,yBAEXT,YAAa,SAASF,GACpB,MAAOA,GAAO5B,KAAI,iBAGtBI,MAAMoC,cAAchB,SAASC,EAAqB,8BCzClD,IAAIgB,GAA+B,GAAIrC,OAAMsB,YAC7CxD,GAAEoC,OAAOmC,GACPhE,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,iBAAkBa,SAExCoD,MAAO,SAASjC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAOvC,GAAEuC,GAAIT,KAAI,eAEnBE,SAAU,SAASO,EAAIV,GACrB7B,EAAEuC,GAAIT,KAAI,aAAeD,IAE3BD,YAAa,SAASW,GACpB,GAAIkC,GAAUtE,KAAKsD,SAASlB,GACxBmC,EAAsB,cAAZD,EAA2B,WAAa,WACtDtE,MAAK6B,SAASO,EAAImC,IAEpBV,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GACtBnE,EAAEuC,GAAI1B,GAAE,sCAAwC,WAC9CsD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,oCAGbnC,MAAMoC,cAAchB,SAASiB,EAC3B,8CClCF,IAAII,GAAkC,GAAIzC,OAAMsB,YAChDxD,GAAEoC,OAAOuC,GACPpE,KAAM,SAAS8B,GACb,MAAOrC,GAAEqC,GAAO9B,KAAI,oBAEtBiE,MAAO,SAASjC,GACd,MAAO,gBAGTqC,WAAY,SAASrC,GACnBvC,EAAEG,MAAMQ,QAAO,WAIjB8C,SAAU,SAASlB,GACjB,GAAIsC,GAAY7E,EAAEuC,GAAIhC,KAAI,kBAC1B,OAAyB,KAAtBsE,EAAW5D,OACL4D,EAAUtE,KAAI,KAAMuB,KAAI,QAASC,UAAU,GAC1C/B,EAAGuC,GAAIT,KAAI,iBACZ9B,EAAEuC,GAAIT,KAAI,iBAEV,MAGXE,SAAU,SAASO,EAAIV,GACrB,GAAc,OAAVA,EAAgB,CAClB,GAAIiD,GAAa,YAAcjD,EAAQ,KACnCkD,EAAM/E,EAAE8E,GAAYrE,SAASA,OAAM,iBACvCsE,GAAIzD,SAAQ,aACZyD,EAAIC,WACC,CACL,GAAID,GAAM/E,EAAEuC,GAAIhC,KAAI,kBACpBwE,GAAIrE,YAAW,aACfqE,EAAIxD,SAGRyC,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GACtBnE,EAAEuC,GAAI1B,GAAE,yCAA2C,WACjDsD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,uCAGbnC,MAAMoC,cAAchB,SAASqB,EAC3B","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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","$this","this","$sidebarMenu","closest","$tablinks","not","parent","removeClass","trigger","document","on","ensureActivatedTab","find","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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 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 $sidebarMenu.trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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/output_binding_menu.js b/srcjs/output_binding_menu.js index 047893cc..a7be0657 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(); } }); Shiny.outputBindings.register(menuOutputBinding, diff --git a/srcjs/tabs.js b/srcjs/tabs.js index 63def6f3..5af7a1e2 100644 --- a/srcjs/tabs.js +++ b/srcjs/tabs.js @@ -9,8 +9,10 @@ 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"); @@ -22,7 +24,6 @@ var deactivateOtherTabs = function() { $(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. From 2719f0f9b5bde5bb4dff0b04b0865dcf1027112b Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 10 Mar 2017 01:02:55 +0000 Subject: [PATCH 23/43] update test app --- tests-manual/sidebar-bookmarking.R | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tests-manual/sidebar-bookmarking.R b/tests-manual/sidebar-bookmarking.R index 6db655b2..b30df897 100644 --- a/tests-manual/sidebar-bookmarking.R +++ b/tests-manual/sidebar-bookmarking.R @@ -6,6 +6,8 @@ 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"), @@ -55,22 +57,20 @@ ui <- function(request) { ) } server <- function(input, output, session) { - - data <- function() mtcars - output$sidebarControls <- renderUI({ + req(input$smenu) if (input$smenu %in% c("models1", "models2", "plots1")) { tagList( - selectInput("xaxis", "X axis", names(data()), selected = input$xaxis), - selectInput("yaxis", "Y axis", names(data()), selected = input$yaxis) + 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(data()), selected = input$xaxis), - selectInput("yaxis", "Y axis", names(data()), selected = input$yaxis), - selectInput("zaxis", "Z axis", names(data()), selected = input$zaxis) + 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({ @@ -79,26 +79,26 @@ server <- function(input, output, session) { }) output$models1 <- renderPrint({ - summary(glm(formula(), data = data()), family = "linear") + summary(glm(formula(), data = mtcars), family = "linear") }) output$models2 <- renderPrint({ - summary(glm(formula(), data = data()), family = "binomial") + summary(glm(formula(), data = mtcars), family = "binomial") }) output$plots1 <- renderPlot({ - plot(formula(), data = data()) + plot(formula(), data = mtcars) }) output$plots2 <- renderScatterplotThree({ - x <- data()[[input$xaxis]] - y <- data()[[input$yaxis]] - z <- data()[[input$zaxis]] + x <- mtcars[[input$xaxis]] + y <- mtcars[[input$yaxis]] + z <- mtcars[[input$zaxis]] scatterplot3js(x, y, z) }) output$tbl <- renderTable({ - data() + mtcars }) observe({ From ae29153326fc105620aaa6f92c6d98fa5c7c3760 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Fri, 10 Mar 2017 20:16:51 +0000 Subject: [PATCH 24/43] dynamic sidebar fix --- R/dashboardSidebar.R | 5 +- inst/shinydashboard.js | 10 +- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_tabItem.js | 6 +- srcjs/output_binding_menu.js | 2 + srcjs/tabs.js | 2 +- tests-manual/dynamic-sidebar-bookmarking.R | 121 +++++++++++++++++++++ 9 files changed, 140 insertions(+), 12 deletions(-) create mode 100644 tests-manual/dynamic-sidebar-bookmarking.R diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 2664c344..ae6b81a0 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -336,10 +336,13 @@ sidebarMenu <- function(..., id = NULL, .list = NULL) { } } + div <- div(id = id, class = "sidebarMenuSelectedTabItem") + # 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)) + ul <- do.call(tags$ul, c(id = paste0("sidebar-menu-", id), class = "sidebar-menu", items)) + div(div, ul) } #' @rdname sidebarMenu diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 93a6cd25..30ecb0f9 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -26,7 +26,7 @@ var deactivateOtherTabs = function() { $tablinks.not($this).parent("li").removeClass("active"); // Trigger event for the tabItemInputBinding - $sidebarMenu.trigger('change.tabItemInputBinding'); + $('.sidebarMenuSelectedTabItem').trigger('change.tabItemInputBinding'); }; $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', @@ -137,6 +137,8 @@ $.extend(menuOutputBinding, { var $html = $($.parseHTML(html)); + //$(el).append('
'); + // Convert the inner contents to HTML, and pass to renderHtml Shiny.renderHtml($html.html(), el, dependencies); @@ -164,10 +166,10 @@ 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'); + var anchor = $(el).next('ul.sidebar-menu').find('li:not(.treeview).active').children('a'); if (anchor.length === 1) return this._getTabName(anchor); @@ -175,7 +177,7 @@ $.extend(tabItemInputBinding, { }, setValue: function(el, value) { // eslint-disable-line consistent-return var self = this; - var anchors = $(el).find('li:not(.treeview)').children('a'); + var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a'); anchors.each(function() { if (self._getTabName($(this)) === value) { $(this).tab('show'); diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index dfe5f8ab..95fc054d 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 var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\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 $sidebarMenu.trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\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 $('.sidebarMenuSelectedTabItem').trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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 //$(el).append('
');\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();\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 anchor = $(el).next('ul.sidebar-menu').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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 7936554d..6d263ad8 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=$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a");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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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=$(this),b=(a.closest("ul.sidebar-menu"),$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a"));b.not(a).parent("li").removeClass("active"),$(".sidebarMenuSelectedTabItem").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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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).next("ul.sidebar-menu").find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).next("ul.sidebar-menu").find("li:not(.treeview)").children("a");d.each(function(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 c40851b8..65c8711b 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","$this","this","$sidebarMenu","closest","$tablinks","not","parent","removeClass","trigger","document","on","ensureActivatedTab","find","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WACxB,GAAIC,GAAQF,EAAEG,MACVC,EAAeF,EAAMG,QAAO,mBAI5BC,EAAYN,EAAA,mEAIhBM,GAAUC,IAAGL,GAAQM,OAAM,MAAOC,YAAW,UAG7CL,EAAaM,QAAO,8BAGtBV,GAAEW,UAAUC,GAAE,eAAiB,qCAChBX,EAKf,IAAIY,GAAqB,WACvB,GAAIP,GAAYN,EAAA,mBAAqBc,KAAI,KAAMC,OAAM,uBAIjDC,EAAYV,EAAUS,OAAM,4BAChC,OAAyB,KAAtBC,EAAWC,WACZD,GAAUE,IAAG,aAKTZ,EAAUE,OAAM,MAAOW,SAAQ,WACnCb,EAAUc,QAAQF,IAAG,SAIzBL,KC7CGb,EAAA,mBAAsBqB,KAAI,aAC3BrB,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAMjCvB,EAAEW,UAAUC,GAAE,QAAU,gBAAiB,WACvCZ,EAAEG,MAAMqB,KAAI,kBAAmBd,QAAO,WAOxCV,EAAEW,UAAUC,GAAE,QAAU,kBAAmB,WACzCZ,EAAEyB,QAAQf,QAAO,SACjB,IAAIgB,GAAO1B,EAAA,mCACP2B,EAAeD,EAAKL,KAAI,sBAC5BM,GAAaC,YAAWF,GACxBA,EAAKhB,QAAO,YAOdV,EAAEW,UAAUC,GAAE,QAAU,gBAAiB,WACvC,GAEIiB,GAFAH,EAAO1B,EAAA,qCACP2B,EAAeD,EAAKL,KAAI,sBAKzBrB,GAAGG,MAAMqB,OAAOL,SAAQ,aACzBU,EAAQ,KACA7B,EAAGG,MAAMqB,OAAOL,SAAQ,mBAChCU,EAAQ7B,EAAEG,MAAMqB,OAAOV,KAAI,KAAMgB,KAAI,QAASC,UAAU,IAE1DJ,EAAaK,SAAQN,EAAOG,GAC5BH,EAAKhB,QAAO,WCnCd,IAAIuB,GAAoB,GAAIC,OAAMC,aAClCnC,GAAEoC,OAAOH,GACPnB,KAAM,SAASuB,GACb,MAAOrC,GAAEqC,GAAOvB,KAAI,gCAEtBwB,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChBpC,KAAKuC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAIlB,GACxBa,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATxB,EAAJ,CAE4B,gBAAX,GACfuB,EAAOvB,EACmB,gBAAX,KACfuB,EAAOvB,EAAKuB,KACZC,EAAexB,EAAKyB,KAGtB,IAAIC,GAAQ/C,EAAAA,EAAIgD,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMjB,KAAI,SAEzBI,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,GACd1B,QAGJqB,MAAMmB,eAAeC,SAASrB,EACA,mCCvC9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpCxD,GAAEoC,OAAOmB,GACPzC,KAAM,SAASuB,GACb,MAAOrC,GAAEqC,GAAOvB,KAAI,oBAEtB2C,SAAU,SAASlB,GACjB,GAAImB,GAAS1D,EAAEuC,GAAIzB,KAAI,4BAA6B6C,SAAQ,IAC5D,OAAsB,KAAlBD,EAAOzC,OACFd,KAAKyD,YAAYF,GAEnB,MAET1B,SAAU,SAASO,EAAIV,GACrB,GAAIgC,GAAO1D,KACP2D,EAAU9D,EAAEuC,GAAIzB,KAAI,qBAAsB6C,SAAQ,IACtDG,GAAQC,KAAK,WACX,MAAIF,GAAKD,YAAW5D,EAAGG,SAAW0B,IAChC7B,EAAEG,MAAMe,IAAG,SACJ,MAIb8C,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GAItBnE,EAAEuC,GAAI3B,GAAE,6BAA+B,WACrCuD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,yBAEXT,YAAa,SAASF,GACpB,MAAOA,GAAO5B,KAAI,iBAGtBI,MAAMoC,cAAchB,SAASC,EAAqB,8BCzClD,IAAIgB,GAA+B,GAAIrC,OAAMsB,YAC7CxD,GAAEoC,OAAOmC,GACPzD,KAAM,SAASuB,GACb,MAAOrC,GAAEqC,GAAOvB,KAAI,iBAAkBM,SAExCoD,MAAO,SAASjC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAOvC,GAAEuC,GAAIT,KAAI,eAEnBE,SAAU,SAASO,EAAIV,GACrB7B,EAAEuC,GAAIT,KAAI,aAAeD,IAE3BD,YAAa,SAASW,GACpB,GAAIkC,GAAUtE,KAAKsD,SAASlB,GACxBmC,EAAsB,cAAZD,EAA2B,WAAa,WACtDtE,MAAK6B,SAASO,EAAImC,IAEpBV,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GACtBnE,EAAEuC,GAAI3B,GAAE,sCAAwC,WAC9CuD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,oCAGbnC,MAAMoC,cAAchB,SAASiB,EAC3B,8CClCF,IAAII,GAAkC,GAAIzC,OAAMsB,YAChDxD,GAAEoC,OAAOuC,GACP7D,KAAM,SAASuB,GACb,MAAOrC,GAAEqC,GAAOvB,KAAI,oBAEtB0D,MAAO,SAASjC,GACd,MAAO,gBAGTqC,WAAY,SAASrC,GACnBvC,EAAEG,MAAMO,QAAO,WAIjB+C,SAAU,SAASlB,GACjB,GAAIsC,GAAY7E,EAAEuC,GAAIzB,KAAI,kBAC1B,OAAyB,KAAtB+D,EAAW5D,OACL4D,EAAU/D,KAAI,KAAMgB,KAAI,QAASC,UAAU,GAC1C/B,EAAGuC,GAAIT,KAAI,iBACZ9B,EAAEuC,GAAIT,KAAI,iBAEV,MAGXE,SAAU,SAASO,EAAIV,GACrB,GAAc,OAAVA,EAAgB,CAClB,GAAIiD,GAAa,YAAcjD,EAAQ,KACnCkD,EAAM/E,EAAE8E,GAAYtE,SAASA,OAAM,iBACvCuE,GAAIzD,SAAQ,aACZyD,EAAIC,WACC,CACL,GAAID,GAAM/E,EAAEuC,GAAIzB,KAAI,kBACpBiE,GAAItE,YAAW,aACfsE,EAAIxD,SAGRyC,eAAgB,SAASzB,EAAIlB,GACvBA,EAAK4C,eAAc,UACrB9D,KAAK6B,SAASO,EAAIlB,EAAKQ,QAE3BqC,UAAW,SAAS3B,EAAI4B,GACtBnE,EAAEuC,GAAI3B,GAAE,yCAA2C,WACjDuD,OAGJC,YAAa,SAAS7B,GACpBvC,EAAEuC,GAAI8B,IAAG,uCAGbnC,MAAMoC,cAAchB,SAASqB,EAC3B","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 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 $sidebarMenu.trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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) { // eslint-disable-line consistent-return\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 } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","$this","this","$tablinks","closest","not","parent","removeClass","trigger","document","on","ensureActivatedTab","find","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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 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 $('.sidebarMenuSelectedTabItem').trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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 //$(el).append('
');\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();\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 anchor = $(el).next('ul.sidebar-menu').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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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_tabItem.js b/srcjs/input_binding_tabItem.js index 8046467b..ed8c6591 100644 --- a/srcjs/input_binding_tabItem.js +++ b/srcjs/input_binding_tabItem.js @@ -7,10 +7,10 @@ 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'); + var anchor = $(el).next('ul.sidebar-menu').find('li:not(.treeview).active').children('a'); if (anchor.length === 1) return this._getTabName(anchor); @@ -18,7 +18,7 @@ $.extend(tabItemInputBinding, { }, setValue: function(el, value) { // eslint-disable-line consistent-return var self = this; - var anchors = $(el).find('li:not(.treeview)').children('a'); + var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a'); anchors.each(function() { if (self._getTabName($(this)) === value) { $(this).tab('show'); diff --git a/srcjs/output_binding_menu.js b/srcjs/output_binding_menu.js index a7be0657..1645ba6d 100644 --- a/srcjs/output_binding_menu.js +++ b/srcjs/output_binding_menu.js @@ -30,6 +30,8 @@ $.extend(menuOutputBinding, { var $html = $($.parseHTML(html)); + //$(el).append('
'); + // Convert the inner contents to HTML, and pass to renderHtml Shiny.renderHtml($html.html(), el, dependencies); diff --git a/srcjs/tabs.js b/srcjs/tabs.js index 5af7a1e2..456aed45 100644 --- a/srcjs/tabs.js +++ b/srcjs/tabs.js @@ -18,7 +18,7 @@ var deactivateOtherTabs = function() { $tablinks.not($this).parent("li").removeClass("active"); // Trigger event for the tabItemInputBinding - $sidebarMenu.trigger('change.tabItemInputBinding'); + $('.sidebarMenuSelectedTabItem').trigger('change.tabItemInputBinding'); }; $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', diff --git a/tests-manual/dynamic-sidebar-bookmarking.R b/tests-manual/dynamic-sidebar-bookmarking.R new file mode 100644 index 00000000..676dcbad --- /dev/null +++ b/tests-manual/dynamic-sidebar-bookmarking.R @@ -0,0 +1,121 @@ +# 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( + 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({ + # Trigger this observer every time an input changes + reactiveValuesToList(input) + session$doBookmark() + }) + onBookmarked(function(url) { + updateQueryString(url) + }) + +} + +enableBookmarking("url") +shinyApp(ui, server) + +shinyApp(ui, server) From 92e99fbc9eb51c4f0d61fbf9996d557f07d009cf Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 00:32:43 +0000 Subject: [PATCH 25/43] updated examples --- tests-manual/dynamic-sidebar-bookmarking.R | 3 +- tests-manual/sidebar-bookmarking.R | 43 ++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/tests-manual/dynamic-sidebar-bookmarking.R b/tests-manual/dynamic-sidebar-bookmarking.R index 676dcbad..cf3ca6dc 100644 --- a/tests-manual/dynamic-sidebar-bookmarking.R +++ b/tests-manual/dynamic-sidebar-bookmarking.R @@ -12,6 +12,7 @@ ui <- function(request) { dashboardPage( dashboardHeader(title = "Testing dynamic sidebar bookmarking"), dashboardSidebar( + uiOutput("sidebarControls"), sidebarMenuOutput("menu") ), dashboardBody( @@ -44,6 +45,7 @@ ui <- function(request) { ) } + server <- function(input, output, session) { output$menu <- renderMenu({ sidebarMenu(id = "smenu", @@ -118,4 +120,3 @@ server <- function(input, output, session) { enableBookmarking("url") shinyApp(ui, server) -shinyApp(ui, server) diff --git a/tests-manual/sidebar-bookmarking.R b/tests-manual/sidebar-bookmarking.R index b30df897..02ee3e20 100644 --- a/tests-manual/sidebar-bookmarking.R +++ b/tests-manual/sidebar-bookmarking.R @@ -114,3 +114,46 @@ server <- function(input, output, session) { enableBookmarking("url") shinyApp(ui, server) + + +# # options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 4601) +# # +# # library(shiny) +# # library(shinydashboard) +# # +# # ui <- function(req) { +# # dashboardPage( +# # dashboardHeader(title = "Dynamic sidebar"), +# # dashboardSidebar( +# # sidebarMenuOutput("menu") +# # # sidebarMenu(id = "smenu", +# # # menuItem("Menu item", tabName = "tab1", icon = icon("calendar")) +# # # ) +# # ), +# # dashboardBody( +# # tabItems( +# # tabItem("tab1", "This is tab 1") +# # ) +# # ) +# # ) +# # } +# # +# # server <- function(input, output, session) { +# # output$menu <- renderMenu({ +# # sidebarMenu(id = "smenu", +# # menuItem("Menu item", tabName = "tab1", icon = icon("calendar")) +# # ) +# # }) +# # +# # observe({ +# # # Trigger this observer every time an input changes +# # reactiveValuesToList(input) +# # session$doBookmark() +# # }) +# # onBookmarked(function(url) { +# # updateQueryString(url) +# # }) +# # } +# # +# # enableBookmarking("url") +# # shinyApp(ui, server) From 1bd012925a3ef9a2a86cbf8000554d2bc822e9bc Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 00:34:44 +0000 Subject: [PATCH 26/43] updated tabItemInputBinding to be a div inside the menu ul --- R/dashboardSidebar.R | 7 ++- inst/shinydashboard.js | 83 ++++++++++++++++++++++++++++------ inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_tabItem.js | 14 +++--- srcjs/output_binding_menu.js | 2 - srcjs/tabs.js | 14 +++--- 8 files changed, 89 insertions(+), 37 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index ae6b81a0..b5617084 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -334,15 +334,14 @@ sidebarMenu <- function(..., id = NULL, .list = NULL) { item }) } + items[[length(items) + 1]] <- div(id = id, + class = "sidebarMenuSelectedTabItem", `data-value` = selectedTabName %OR% "null") } - div <- div(id = id, class = "sidebarMenuSelectedTabItem") - # 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. - ul <- do.call(tags$ul, c(id = paste0("sidebar-menu-", id), class = "sidebar-menu", items)) - div(div, ul) + do.call(tags$ul, c(class = "sidebar-menu", items)) } #' @rdname sidebarMenu diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 30ecb0f9..00d4b6ae 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -14,19 +14,21 @@ $(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 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 - $('.sidebarMenuSelectedTabItem').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"]', @@ -36,7 +38,7 @@ $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', // 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. @@ -137,8 +139,6 @@ $.extend(menuOutputBinding, { var $html = $($.parseHTML(html)); - //$(el).append('
'); - // Convert the inner contents to HTML, and pass to renderHtml Shiny.renderHtml($html.html(), el, dependencies); @@ -146,6 +146,7 @@ $.extend(menuOutputBinding, { el.className = 'shinydashboard-menu-output shiny-bound-output ' + $html.attr('class'); + //Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); Shiny.initializeInputs(el); Shiny.bindAll(el); ensureActivatedTab(); @@ -154,6 +155,58 @@ $.extend(menuOutputBinding, { Shiny.outputBindings.register(menuOutputBinding, "shinydashboard.menuOutputBinding"); + +/* + +// 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)); + + $(el).append('
'); + + // Convert the inner contents to HTML, and pass to renderHtml + Shiny.renderHtml($html.html(), $(el).find('.shinydashboard-menu-output-child'), 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); + ensureActivatedTab(); + } +}); +Shiny.outputBindings.register(menuOutputBinding, + "shinydashboard.menuOutputBinding"); + +*/ + //--------------------------------------------------------------------- // Source file: ../srcjs/input_binding_tabItem.js @@ -169,20 +222,19 @@ $.extend(tabItemInputBinding, { return $(scope).find('.sidebarMenuSelectedTabItem'); }, getValue: function(el) { - var anchor = $(el).next('ul.sidebar-menu').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) { // eslint-disable-line consistent-return var self = this; - var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a'); + var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a'); anchors.each(function() { if (self._getTabName($(this)) === value) { $(this).tab('show'); + $(el).attr('data-value', self._getTabName($(this))); return false; - } else return true; + } else return null; }); }, receiveMessage: function(el, data) { @@ -204,6 +256,7 @@ $.extend(tabItemInputBinding, { return anchor.attr('data-value'); } }); + Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); //--------------------------------------------------------------------- diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 95fc054d..b1303d2a 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 var $this = $(this);\n var $sidebarMenu = $this.closest(\"ul.sidebar-menu\");\n\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 $('.sidebarMenuSelectedTabItem').trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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 //$(el).append('
');\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();\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 anchor = $(el).next('ul.sidebar-menu').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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n\n/*\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 $(el).append('
');\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), $(el).find('.shinydashboard-menu-output-child'), 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();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n*/\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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n } else return null;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 6d263ad8..d376b4e3 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"),$(".sidebar-menu a[data-toggle='tab'],.sidebar-menu li.treeview > a"));b.not(a).parent("li").removeClass("active"),$(".sidebarMenuSelectedTabItem").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",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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).next("ul.sidebar-menu").find("li:not(.treeview).active").children("a");return 1===b.length?this._getTabName(b):null},setValue:function(a,b){var c=this,d=$(a).next("ul.sidebar-menu").find("li:not(.treeview)").children("a");d.each(function(){return c._getTabName($(this))!==b||($(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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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(){return c._getTabName($(this))===b?($(this).tab("show"),$(a).attr("data-value",c._getTabName($(this))),!1):null})},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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 65c8711b..6b7c6348 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","$this","this","$tablinks","closest","not","parent","removeClass","trigger","document","on","ensureActivatedTab","find","filter","$startTab","length","tab","hasClass","first","data","addClass","hide","next","window","$obj","inputBinding","toggleValue","value","attr","substring","setValue","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","anchor","children","_getTabName","self","anchors","each","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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 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 $('.sidebarMenuSelectedTabItem').trigger('change.tabItemInputBinding');\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 = $(\"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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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 //$(el).append('
');\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();\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 anchor = $(el).next('ul.sidebar-menu').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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n return false;\n } else return true;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","next","window","toggleValue","value","find","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n\n/*\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 $(el).append('
');\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), $(el).find('.shinydashboard-menu-output-child'), 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();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n*/\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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n } else return null;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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_tabItem.js b/srcjs/input_binding_tabItem.js index ed8c6591..f7853407 100644 --- a/srcjs/input_binding_tabItem.js +++ b/srcjs/input_binding_tabItem.js @@ -10,20 +10,19 @@ $.extend(tabItemInputBinding, { return $(scope).find('.sidebarMenuSelectedTabItem'); }, getValue: function(el) { - var anchor = $(el).next('ul.sidebar-menu').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) { // eslint-disable-line consistent-return var self = this; - var anchors = $(el).next('ul.sidebar-menu').find('li:not(.treeview)').children('a'); + var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a'); anchors.each(function() { if (self._getTabName($(this)) === value) { $(this).tab('show'); + $(el).attr('data-value', self._getTabName($(this))); return false; - } else return true; + } else return null; }); }, receiveMessage: function(el, data) { @@ -45,4 +44,5 @@ $.extend(tabItemInputBinding, { 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 1645ba6d..a7be0657 100644 --- a/srcjs/output_binding_menu.js +++ b/srcjs/output_binding_menu.js @@ -30,8 +30,6 @@ $.extend(menuOutputBinding, { var $html = $($.parseHTML(html)); - //$(el).append('
'); - // Convert the inner contents to HTML, and pass to renderHtml Shiny.renderHtml($html.html(), el, dependencies); diff --git a/srcjs/tabs.js b/srcjs/tabs.js index 456aed45..5807f9e0 100644 --- a/srcjs/tabs.js +++ b/srcjs/tabs.js @@ -6,19 +6,21 @@ // 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 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 - $('.sidebarMenuSelectedTabItem').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"]', @@ -28,7 +30,7 @@ $(document).on('shown.bs.tab', '.sidebar-menu a[data-toggle="tab"]', // 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. From 641a5cee23b79259ed4928f7a347d58d9ef83dbd Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 02:42:38 +0000 Subject: [PATCH 27/43] addressed most of Winston's feedback --- R/dashboardSidebar.R | 18 ++-- R/utils.R | 26 ++++-- inst/shinydashboard.js | 95 +++++----------------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarmenuExpanded.js | 34 ++++---- srcjs/input_binding_tabItem.js | 6 +- srcjs/sidebar.js | 2 +- 9 files changed, 75 insertions(+), 112 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index b5617084..51bdcd30 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -126,9 +126,7 @@ dashboardSidebar <- function(..., disable = FALSE, width = NULL, collapsed = FAL # just passed through (as the `data-value` attribute) to the # `dashboardPage()` function tags$aside( - class = paste("main-sidebar"), - `data-value` = dataValue, - custom_css, + class = "main-sidebar", `data-value` = dataValue, custom_css, tags$section( class = "sidebar", `data-disable` = if (disable) 1 else NULL, @@ -402,9 +400,14 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr ) } - dataExpanded <- shiny::restoreInput(id = "itemExpanded", default = "") %OR% "" # prevent this from being NULL - cls <- if (dataExpanded != "" && any(grepl(dataExpanded, subItems))) " menu-open" else "" - display <- if (cls != "") "block" else "none" + # This is... + dataExpanded <- shiny::restoreInput(id = "sidebarItemExpanded", default = "") %OR% "" # prevent this from being NULL + + # does any subMenuItem have the the attribute `data-value` equal to the dataExpanded variable? + isExpanded <- dataExpanded != "" && any(unlist(lapply(subItems, findAttribute, "data-value", dataExpanded))) + + cls <- if (isExpanded) " menu-open" else "" + display <- if (isExpanded) "block" else "none" tags$li(class = "treeview", a(href = href, @@ -415,7 +418,8 @@ 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 = paste0("treeview-menu", cls), style = paste0("display: ", display) , subItems)) + do.call(tags$ul, c(class = paste0("treeview-menu", cls), + style = paste0("display: ", display), subItems)) ) } diff --git a/R/utils.R b/R/utils.R index 4f56b558..d1bd7aab 100644 --- a/R/utils.R +++ b/R/utils.R @@ -16,7 +16,7 @@ tagAssert <- function(tag, type = NULL, class = NULL, allowUI = TRUE) { # Skip dynamic output elements if (allowUI && (hasCssClass(tag, "shiny-html-output") || - hasCssClass(tag, "shinydashboard-menu-output"))) { + hasCssClass(tag, "shinydashboard-menu-output"))) { return() } @@ -53,7 +53,7 @@ validateColor <- function(color) { } stop("Invalid color: ", color, ". Valid colors are: ", - paste(validColors, collapse = ", "), ".") + paste(validColors, collapse = ", "), ".") } #' Valid colors @@ -84,8 +84,8 @@ validateColor <- function(color) { #' #' @keywords internal validColors <- c("red", "yellow", "aqua", "blue", "light-blue", "green", - "navy", "teal", "olive", "lime", "orange", "fuchsia", - "purple", "maroon", "black") + "navy", "teal", "olive", "lime", "orange", "fuchsia", + "purple", "maroon", "black") # Returns TRUE if a status is valid; throws error otherwise. @@ -96,7 +96,7 @@ validateStatus <- function(status) { } stop("Invalid status: ", status, ". Valid statuses are: ", - paste(validStatuses, collapse = ", "), ".") + paste(validStatuses, collapse = ", "), ".") } @@ -198,3 +198,19 @@ tagMatches <- function(item, ..., id = NULL, name = NULL, class = NULL) { TRUE } + + +findAttribute <- function(x, attribute, value) { + if (is.atomic(x)) return(FALSE) + + if (!is.null(x$attribs[[attribute]])) { + if (identical(x$attribs[[attribute]], value)) return(TRUE) + else return(FALSE) + } + + if (length(x$children) > 0) { + return(any(unlist(lapply(x$children, findAttribute, attribute, value)))) + } + + return(FALSE) +} diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 00d4b6ae..db805eac 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -98,7 +98,7 @@ $(document).on("click", ".treeview > a", function() { if ($(this).next().hasClass("menu-open")) { value = null; } else if ($(this).next().hasClass("treeview-menu")) { - value = $(this).next().find('a').attr('href').substring(1); + value = $(this).next().find('a').attr('data-value'); } inputBinding.setValue($obj, value); $obj.trigger('change'); @@ -146,7 +146,6 @@ $.extend(menuOutputBinding, { el.className = 'shinydashboard-menu-output shiny-bound-output ' + $html.attr('class'); - //Shiny.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput'); Shiny.initializeInputs(el); Shiny.bindAll(el); ensureActivatedTab(); @@ -155,58 +154,6 @@ $.extend(menuOutputBinding, { Shiny.outputBindings.register(menuOutputBinding, "shinydashboard.menuOutputBinding"); - -/* - -// 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)); - - $(el).append('
'); - - // Convert the inner contents to HTML, and pass to renderHtml - Shiny.renderHtml($html.html(), $(el).find('.shinydashboard-menu-output-child'), 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); - ensureActivatedTab(); - } -}); -Shiny.outputBindings.register(menuOutputBinding, - "shinydashboard.menuOutputBinding"); - -*/ - //--------------------------------------------------------------------- // Source file: ../srcjs/input_binding_tabItem.js @@ -226,15 +173,15 @@ $.extend(tabItemInputBinding, { if (value === "null") return null; return value; }, - setValue: function(el, value) { // eslint-disable-line consistent-return + setValue: function(el, value) { var self = this; var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a'); - anchors.each(function() { + 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; - } else return null; + } }); }, receiveMessage: function(el, data) { @@ -317,32 +264,30 @@ $.extend(sidebarmenuExpandedInputBinding, { return $(scope).find('section.sidebar'); }, getId: function(el) { - return "itemExpanded"; + return "sidebarItemExpanded"; }, - // needed so we set the appropriate value for bookmarked apps on startup - initialize: function(el) { - $(this).trigger('change'); - }, - // the value is the href of the open menuItem (or NULL if there's - // no open menuItem) getValue: function(el) { - var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) { - return $expanded.find('a').attr('href').substring(1); - } else if ($(el).attr("data-expanded")) { - return $(el).attr("data-expanded"); - } else { - return null; - } + var $open = $(el).find('li ul.menu-open'); + if ($open.length === 1) return $open.find('a').attr('data-value'); + else return null; // no menuItem is expanded }, setValue: function(el, value) { + /* + var $anchor = $('.sidebar-menu li a'); + if (value !== null) + $anchor = $('a[data-value="' + value + '"]').parent().parent().prev('a'); + console.log($anchor); + $(document).trigger("click", $anchor); + */ + + var $ul; if (value !== null) { - var firstChild = 'a[href="#' + value + '"]'; - var $ul = $(firstChild).parent().parent('.treeview-menu'); + var $firstChild = $('a[data-value="' + value + '"]'); + $ul = $firstChild.parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); } else { - var $ul = $(el).find('li ul.menu-open'); + $ul = $(el).find('li ul.menu-open'); $ul.removeClass('menu-open'); $ul.hide(); } diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index b1303d2a..6ba1a87c 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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n\n/*\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 $(el).append('
');\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), $(el).find('.shinydashboard-menu-output-child'), 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();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n*/\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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n } else return null;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 d376b4e3..d092ab32 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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("href").substring(1)),c.setValue(b,a),b.trigger("change")});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(){return c._getTabName($(this))===b?($(this).tab("show"),$(a).attr("data-value",c._getTabName($(this))),!1):null})},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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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"itemExpanded"},initialize:function(a){$(this).trigger("change")},getValue:function(a){var b=$(a).find("li ul.menu-open");return 1===b.length?b.find("a").attr("href").substring(1):$(a).attr("data-expanded")?$(a).attr("data-expanded"):null},setValue:function(a,b){if(null!==b){var c='a[href="#'+b+'"]',d=$(c).parent().parent(".treeview-menu");d.addClass("menu-open"),d.show()}else{var d=$(a).find("li ul.menu-open");d.removeClass("menu-open"),d.hide()}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 6b7c6348..172cd609 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","next","window","toggleValue","value","find","substring","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","initialize","$expanded","firstChild","$ul","show"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WAGxB,GAAIC,GAAYF,EAAA,mEAIhBE,GAAUC,IAAGH,EAAGI,OAAOC,OAAM,MAAOC,YAAW,SAG/C,IAAIC,GAAOP,EAAA,+BACPQ,EAAeD,EAAKE,KAAI,sBACA,oBAAjBD,KACTA,EAAaE,SAAQH,EAAOP,EAAEI,MAAMO,KAAI,eACxCJ,EAAKK,QAAO,WAIhBZ,GAAEa,UAAUC,GAAE,eAAiB,qCAChBb,EAKf,IAAIc,GAAqB,WACvB,GAAIb,GAAYF,EAAA,sCAIZgB,EAAYd,EAAUe,OAAM,4BAChC,OAAyB,KAAtBD,EAAWE,WACZF,GAAUG,IAAG,aAKTjB,EAAUG,OAAM,MAAOe,SAAQ,WACnClB,EAAUmB,QAAQF,IAAG,SAIzBJ,KC/CGf,EAAA,mBAAsBS,KAAI,aAC3BT,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAMjCvB,EAAEa,UAAUC,GAAE,QAAU,gBAAiB,WACvCd,EAAEI,MAAMoB,KAAI,kBAAmBZ,QAAO,WAOxCZ,EAAEa,UAAUC,GAAE,QAAU,kBAAmB,WACzCd,EAAEyB,QAAQb,QAAO,SACjB,IAAIL,GAAOP,EAAA,mCACPQ,EAAeD,EAAKE,KAAI,sBAC5BD,GAAakB,YAAWnB,GACxBA,EAAKK,QAAO,YAOdZ,EAAEa,UAAUC,GAAE,QAAU,gBAAiB,WACvC,GAEIa,GAFApB,EAAOP,EAAA,qCACPQ,EAAeD,EAAKE,KAAI,sBAKzBT,GAAGI,MAAMoB,OAAOJ,SAAQ,aACzBO,EAAQ,KACA3B,EAAGI,MAAMoB,OAAOJ,SAAQ,mBAChCO,EAAQ3B,EAAEI,MAAMoB,OAAOI,KAAI,KAAMjB,KAAI,QAASkB,UAAU,IAE1DrB,EAAaE,SAAQH,EAAOoB,GAC5BpB,EAAKK,QAAO,WCnCd,IAAIkB,GAAoB,GAAIC,OAAMC,aAClChC,GAAEiC,OAAOH,GACPF,KAAM,SAASM,GACb,MAAOlC,GAAEkC,GAAON,KAAI,gCAEtBO,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChBhC,KAAKmC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAI3B,GACxBsB,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAATjC,EAAJ,CAE4B,gBAAX,GACfgC,EAAOhC,EACmB,gBAAX,KACfgC,EAAOhC,EAAKgC,KACZC,EAAejC,EAAKkC,KAGtB,IAAIC,GAAQ5C,EAAAA,EAAI6C,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMjC,KAAI,SAGzBoB,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,GACdrB,QAGJgB,MAAMmB,eAAeC,SAASrB,EACA,mCCxC9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpCrD,GAAEiC,OAAOmB,GACPxB,KAAM,SAASM,GACb,MAAOlC,GAAEkC,GAAON,KAAI,gCAEtB0B,SAAU,SAASlB,GACjB,GAAIT,GAAQ3B,EAAEoC,GAAIzB,KAAI,aACtB,OAAc,SAAVgB,EAAyB,KACtBA,GAETjB,SAAU,SAAS0B,EAAIT,GACrB,GAAI4B,GAAOnD,KACPoD,EAAUxD,EAAEoC,GAAI/B,OAAM,mBAAoBuB,KAAI,qBAAsB6B,SAAQ,IAChFD,GAAQE,KAAK,WACX,MAAIH,GAAKI,YAAW3D,EAAGI,SAAWuB,GAChC3B,EAAEI,MAAMe,IAAG,QACXnB,EAAEoC,GAAIzB,KAAI,aAAe4C,EAAKI,YAAW3D,EAAGI,SACrC,GACK,QAGlBwD,eAAgB,SAASxB,EAAI3B,GACvBA,EAAKoD,eAAc,UACrBzD,KAAKM,SAAS0B,EAAI3B,EAAKkB,QAE3BmC,UAAW,SAAS1B,EAAI2B,GAItB/D,EAAEoC,GAAItB,GAAE,6BAA+B,WACrCiD,OAGJC,YAAa,SAAS5B,GACpBpC,EAAEoC,GAAI6B,IAAG,yBAEXN,YAAa,SAASO,GACpB,MAAOA,GAAOvD,KAAI,iBAItBoB,MAAMoC,cAAchB,SAASC,EAAqB,8BCzClD,IAAIgB,GAA+B,GAAIrC,OAAMsB,YAC7CrD,GAAEiC,OAAOmC,GACPxC,KAAM,SAASM,GACb,MAAOlC,GAAEkC,GAAON,KAAI,iBAAkBP,SAExCgD,MAAO,SAASjC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAOpC,GAAEoC,GAAIzB,KAAI,eAEnBD,SAAU,SAAS0B,EAAIT,GACrB3B,EAAEoC,GAAIzB,KAAI,aAAegB,IAE3BD,YAAa,SAASU,GACpB,GAAIkC,GAAUlE,KAAKkD,SAASlB,GACxBmC,EAAsB,cAAZD,EAA2B,WAAa,WACtDlE,MAAKM,SAAS0B,EAAImC,IAEpBX,eAAgB,SAASxB,EAAI3B,GACvBA,EAAKoD,eAAc,UACrBzD,KAAKM,SAAS0B,EAAI3B,EAAKkB,QAE3BmC,UAAW,SAAS1B,EAAI2B,GACtB/D,EAAEoC,GAAItB,GAAE,sCAAwC,WAC9CiD,OAGJC,YAAa,SAAS5B,GACpBpC,EAAEoC,GAAI6B,IAAG,oCAGblC,MAAMoC,cAAchB,SAASiB,EAC3B,8CClCF,IAAII,GAAkC,GAAIzC,OAAMsB,YAChDrD,GAAEiC,OAAOuC,GACP5C,KAAM,SAASM,GACb,MAAOlC,GAAEkC,GAAON,KAAI,oBAEtByC,MAAO,SAASjC,GACd,MAAO,gBAGTqC,WAAY,SAASrC,GACnBpC,EAAEI,MAAMQ,QAAO,WAIjB0C,SAAU,SAASlB,GACjB,GAAIsC,GAAY1E,EAAEoC,GAAIR,KAAI,kBAC1B,OAAyB,KAAtB8C,EAAWxD,OACLwD,EAAU9C,KAAI,KAAMjB,KAAI,QAASkB,UAAU,GAC1C7B,EAAGoC,GAAIzB,KAAI,iBACZX,EAAEoC,GAAIzB,KAAI,iBAEV,MAGXD,SAAU,SAAS0B,EAAIT,GACrB,GAAc,OAAVA,EAAgB,CAClB,GAAIgD,GAAa,YAAchD,EAAQ,KACnCiD,EAAM5E,EAAE2E,GAAYtE,SAASA,OAAM,iBACvCuE,GAAItD,SAAQ,aACZsD,EAAIC,WACC,CACL,GAAID,GAAM5E,EAAEoC,GAAIR,KAAI,kBACpBgD,GAAItE,YAAW,aACfsE,EAAIrD,SAGRqC,eAAgB,SAASxB,EAAI3B,GACvBA,EAAKoD,eAAc,UACrBzD,KAAKM,SAAS0B,EAAI3B,EAAKkB,QAE3BmC,UAAW,SAAS1B,EAAI2B,GACtB/D,EAAEoC,GAAItB,GAAE,yCAA2C,WACjDiD,OAGJC,YAAa,SAAS5B,GACpBpC,EAAEoC,GAAI6B,IAAG,uCAGblC,MAAMoC,cAAchB,SAASqB,EAC3B","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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('href').substring(1);\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.inputBindings.register(tabItemInputBinding, 'shinydashboard.tabItemInput');\n Shiny.initializeInputs(el);\n Shiny.bindAll(el);\n ensureActivatedTab();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n\n/*\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 $(el).append('
');\n\n // Convert the inner contents to HTML, and pass to renderHtml\n Shiny.renderHtml($html.html(), $(el).find('.shinydashboard-menu-output-child'), 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();\n }\n});\nShiny.outputBindings.register(menuOutputBinding,\n \"shinydashboard.menuOutputBinding\");\n\n*/\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) { // eslint-disable-line consistent-return\n var self = this;\n var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a');\n anchors.each(function() {\n if (self._getTabName($(this)) === value) {\n $(this).tab('show');\n $(el).attr('data-value', self._getTabName($(this)));\n return false;\n } else return null;\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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 \"itemExpanded\";\n },\n // needed so we set the appropriate value for bookmarked apps on startup\n initialize: function(el) {\n $(this).trigger('change');\n },\n // the value is the href of the open menuItem (or NULL if there's\n // no open menuItem)\n getValue: function(el) {\n var $expanded = $(el).find('li ul.menu-open');\n if ($expanded.length === 1) {\n return $expanded.find('a').attr('href').substring(1);\n } else if ($(el).attr(\"data-expanded\")) {\n return $(el).attr(\"data-expanded\");\n } else {\n return null;\n }\n },\n setValue: function(el, value) {\n if (value !== null) {\n var firstChild = 'a[href=\"#' + value + '\"]';\n var $ul = $(firstChild).parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n var $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","next","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index 4daa7f83..e35ab1c1 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -9,32 +9,30 @@ $.extend(sidebarmenuExpandedInputBinding, { return $(scope).find('section.sidebar'); }, getId: function(el) { - return "itemExpanded"; + return "sidebarItemExpanded"; }, - // needed so we set the appropriate value for bookmarked apps on startup - initialize: function(el) { - $(this).trigger('change'); - }, - // the value is the href of the open menuItem (or NULL if there's - // no open menuItem) getValue: function(el) { - var $expanded = $(el).find('li ul.menu-open'); - if ($expanded.length === 1) { - return $expanded.find('a').attr('href').substring(1); - } else if ($(el).attr("data-expanded")) { - return $(el).attr("data-expanded"); - } else { - return null; - } + var $open = $(el).find('li ul.menu-open'); + if ($open.length === 1) return $open.find('a').attr('data-value'); + else return null; // no menuItem is expanded }, setValue: function(el, value) { + /* + var $anchor = $('.sidebar-menu li a'); + if (value !== null) + $anchor = $('a[data-value="' + value + '"]').parent().parent().prev('a'); + console.log($anchor); + $(document).trigger("click", $anchor); + */ + + var $ul; if (value !== null) { - var firstChild = 'a[href="#' + value + '"]'; - var $ul = $(firstChild).parent().parent('.treeview-menu'); + var $firstChild = $('a[data-value="' + value + '"]'); + $ul = $firstChild.parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); } else { - var $ul = $(el).find('li ul.menu-open'); + $ul = $(el).find('li ul.menu-open'); $ul.removeClass('menu-open'); $ul.hide(); } diff --git a/srcjs/input_binding_tabItem.js b/srcjs/input_binding_tabItem.js index f7853407..3aa8cbaa 100644 --- a/srcjs/input_binding_tabItem.js +++ b/srcjs/input_binding_tabItem.js @@ -14,15 +14,15 @@ $.extend(tabItemInputBinding, { if (value === "null") return null; return value; }, - setValue: function(el, value) { // eslint-disable-line consistent-return + setValue: function(el, value) { var self = this; var anchors = $(el).parent('ul.sidebar-menu').find('li:not(.treeview)').children('a'); - anchors.each(function() { + 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; - } else return null; + } }); }, receiveMessage: function(el, data) { diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index 59e28262..e07d1117 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -37,7 +37,7 @@ $(document).on("click", ".treeview > a", function() { if ($(this).next().hasClass("menu-open")) { value = null; } else if ($(this).next().hasClass("treeview-menu")) { - value = $(this).next().find('a').attr('href').substring(1); + value = $(this).next().find('a').attr('data-value'); } inputBinding.setValue($obj, value); $obj.trigger('change'); From 4ab8176db6704da469435f7044f28c5a3368c769 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 16:34:15 +0000 Subject: [PATCH 28/43] some commenting, some cleaning --- R/dashboardSidebar.R | 25 +++++++----- R/utils.R | 23 ++++++----- tests-manual/dynamic-sidebar-bookmarking.R | 2 - tests-manual/sidebar-bookmarking.R | 44 ---------------------- 4 files changed, 29 insertions(+), 65 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 51bdcd30..692ceea6 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -400,14 +400,17 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr ) } - # This is... - dataExpanded <- shiny::restoreInput(id = "sidebarItemExpanded", default = "") %OR% "" # prevent this from being NULL - - # does any subMenuItem have the the attribute `data-value` equal to the dataExpanded variable? - isExpanded <- dataExpanded != "" && any(unlist(lapply(subItems, findAttribute, "data-value", dataExpanded))) - - cls <- if (isExpanded) " menu-open" else "" - display <- if (isExpanded) "block" else "none" + # 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. + dataExpanded <- shiny::restoreInput(id = "sidebarItemExpanded", default = "") %OR% "" + + # If `dataExpanded` is not the empty string, we need to check that there is a subMenuItem + # in the list of `subItems` that actually has a `data-value` attribute equal to `dataExpanded` + isExpanded <- nzchar(dataExpanded) && + any(unlist(lapply(subItems, findAttribute, "data-value", dataExpanded))) tags$li(class = "treeview", a(href = href, @@ -418,8 +421,10 @@ 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 = paste0("treeview-menu", cls), - style = paste0("display: ", display), subItems)) + do.call(tags$ul, c( + class = paste0("treeview-menu", if (isExpanded) " menu-open" else ""), + style = paste0("display: ", if (isExpanded) "block" else "none"), + subItems)) ) } diff --git a/R/utils.R b/R/utils.R index d1bd7aab..d1fe49b0 100644 --- a/R/utils.R +++ b/R/utils.R @@ -199,18 +199,23 @@ tagMatches <- function(item, ..., id = NULL, name = NULL, class = NULL) { TRUE } - -findAttribute <- function(x, attribute, value) { - if (is.atomic(x)) return(FALSE) - - if (!is.null(x$attribs[[attribute]])) { - if (identical(x$attribs[[attribute]], value)) return(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) { - return(any(unlist(lapply(x$children, findAttribute, attribute, value)))) + if (length(x$children) > 0) { # recursion + return(any(unlist(lapply(x$children, findAttribute, attr, val)))) } - return(FALSE) + return(FALSE) # found no attribute called `attr` } diff --git a/tests-manual/dynamic-sidebar-bookmarking.R b/tests-manual/dynamic-sidebar-bookmarking.R index cf3ca6dc..4404aa49 100644 --- a/tests-manual/dynamic-sidebar-bookmarking.R +++ b/tests-manual/dynamic-sidebar-bookmarking.R @@ -107,7 +107,6 @@ server <- function(input, output, session) { }) observe({ - # Trigger this observer every time an input changes reactiveValuesToList(input) session$doBookmark() }) @@ -119,4 +118,3 @@ server <- function(input, output, session) { enableBookmarking("url") shinyApp(ui, server) - diff --git a/tests-manual/sidebar-bookmarking.R b/tests-manual/sidebar-bookmarking.R index 02ee3e20..aa930215 100644 --- a/tests-manual/sidebar-bookmarking.R +++ b/tests-manual/sidebar-bookmarking.R @@ -102,7 +102,6 @@ server <- function(input, output, session) { }) observe({ - # Trigger this observer every time an input changes reactiveValuesToList(input) session$doBookmark() }) @@ -114,46 +113,3 @@ server <- function(input, output, session) { enableBookmarking("url") shinyApp(ui, server) - - -# # options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 4601) -# # -# # library(shiny) -# # library(shinydashboard) -# # -# # ui <- function(req) { -# # dashboardPage( -# # dashboardHeader(title = "Dynamic sidebar"), -# # dashboardSidebar( -# # sidebarMenuOutput("menu") -# # # sidebarMenu(id = "smenu", -# # # menuItem("Menu item", tabName = "tab1", icon = icon("calendar")) -# # # ) -# # ), -# # dashboardBody( -# # tabItems( -# # tabItem("tab1", "This is tab 1") -# # ) -# # ) -# # ) -# # } -# # -# # server <- function(input, output, session) { -# # output$menu <- renderMenu({ -# # sidebarMenu(id = "smenu", -# # menuItem("Menu item", tabName = "tab1", icon = icon("calendar")) -# # ) -# # }) -# # -# # observe({ -# # # Trigger this observer every time an input changes -# # reactiveValuesToList(input) -# # session$doBookmark() -# # }) -# # onBookmarked(function(url) { -# # updateQueryString(url) -# # }) -# # } -# # -# # enableBookmarking("url") -# # shinyApp(ui, server) From 0c6335535e24a0b1dcd6ab7e016c6f7e70df7914 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 18:15:45 +0000 Subject: [PATCH 29/43] changed value of sidebarCollapsed to be "true"/"false", instead of the more verbose (and redundant) "collpased"/"expanded" --- R/dashboardPage.R | 4 ++-- R/dashboardSidebar.R | 9 ++++++--- inst/shinydashboard.js | 6 +++--- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarCollapsed.js | 6 +++--- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/R/dashboardPage.R b/R/dashboardPage.R index 0adc66de..97a50c3a 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 attribute `data-value = "collapsed"`, it means that + # if the sidebar has the attribute `data-collapsed = "true"`, it means that # the user set the `collapsed` argument of `dashboardSidebar` to TRUE - collapsed <- "collapsed" %in% strsplit(sidebar$attribs$`data-value`, " ")[[1]] + collapsed <- "true" %in% strsplit(sidebar$attribs$`data-collapsed`, " ")[[1]] addDeps( tags$body( diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index 692ceea6..c89b3718 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -117,16 +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) "collapsed" else "expanded") + 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 (as the `data-value` attribute) to the + # just passed through (as the `data-collapsed` attribute) to the # `dashboardPage()` function tags$aside( - class = "main-sidebar", `data-value` = dataValue, custom_css, + 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 db805eac..d51938ac 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -224,14 +224,14 @@ $.extend(sidebarCollapsedInputBinding, { return "sidebarCollapsed"; }, getValue: function(el) { - return $(el).attr("data-value"); + return $(el).attr("data-collapsed"); }, setValue: function(el, value) { - $(el).attr("data-value", value); + $(el).attr("data-collapsed", value); }, toggleValue: function(el) { var current = this.getValue(el); - var newVal = (current === "collapsed") ? "expanded" : "collapsed"; + var newVal = (current === "true") ? "false" : "true"; this.setValue(el, newVal); }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 6ba1a87c..86af49c7 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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 d092ab32..04e5bfbb 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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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-value")},setValue:function(a,b){$(a).attr("data-value",b)},toggleValue:function(a){var b=this.getValue(a),c="collapsed"===b?"expanded":"collapsed";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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 172cd609..4b234deb 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","next","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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-value\");\n },\n setValue: function(el, value) {\n $(el).attr(\"data-value\", value);\n },\n toggleValue: function(el) {\n var current = this.getValue(el);\n var newVal = (current === \"collapsed\") ? \"expanded\" : \"collapsed\";\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","next","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 07de7e8f..aa7b0c0b 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-value"); + return $(el).attr("data-collapsed"); }, setValue: function(el, value) { - $(el).attr("data-value", value); + $(el).attr("data-collapsed", value); }, toggleValue: function(el) { var current = this.getValue(el); - var newVal = (current === "collapsed") ? "expanded" : "collapsed"; + var newVal = (current === "true") ? "false" : "true"; this.setValue(el, newVal); }, receiveMessage: function(el, data) { From 6635e011a30c87eed1ce44dc31a97e32b24aeb47 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 18:31:13 +0000 Subject: [PATCH 30/43] more commenting, undo unintended changes (to identation mostly) --- R/dashboardSidebar.R | 7 ++++++- R/utils.R | 10 +++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index c89b3718..ff14e8a3 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -335,6 +335,9 @@ 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") } @@ -434,7 +437,8 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr #' @rdname sidebarMenu #' @export menuSubItem <- function(text, tabName = NULL, href = NULL, newtab = TRUE, - icon = shiny::icon("angle-double-right"), selected = NULL) { + icon = shiny::icon("angle-double-right"), selected = NULL) +{ if (!is.null(href) && !is.null(tabName)) { stop("Can't specify both href and tabName") @@ -455,6 +459,7 @@ menuSubItem <- function(text, tabName = NULL, href = NULL, newtab = TRUE, target <- "_blank" } + tags$li( a(href = href, `data-toggle` = if (isTabItem) "tab", diff --git a/R/utils.R b/R/utils.R index d1fe49b0..5f7563ab 100644 --- a/R/utils.R +++ b/R/utils.R @@ -16,7 +16,7 @@ tagAssert <- function(tag, type = NULL, class = NULL, allowUI = TRUE) { # Skip dynamic output elements if (allowUI && (hasCssClass(tag, "shiny-html-output") || - hasCssClass(tag, "shinydashboard-menu-output"))) { + hasCssClass(tag, "shinydashboard-menu-output"))) { return() } @@ -53,7 +53,7 @@ validateColor <- function(color) { } stop("Invalid color: ", color, ". Valid colors are: ", - paste(validColors, collapse = ", "), ".") + paste(validColors, collapse = ", "), ".") } #' Valid colors @@ -84,8 +84,8 @@ validateColor <- function(color) { #' #' @keywords internal validColors <- c("red", "yellow", "aqua", "blue", "light-blue", "green", - "navy", "teal", "olive", "lime", "orange", "fuchsia", - "purple", "maroon", "black") + "navy", "teal", "olive", "lime", "orange", "fuchsia", + "purple", "maroon", "black") # Returns TRUE if a status is valid; throws error otherwise. @@ -96,7 +96,7 @@ validateStatus <- function(status) { } stop("Invalid status: ", status, ". Valid statuses are: ", - paste(validStatuses, collapse = ", "), ".") + paste(validStatuses, collapse = ", "), ".") } From b38448ec1ba6ab70b29629b4e3c63afaa1fd87c0 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Tue, 14 Mar 2017 18:34:57 +0000 Subject: [PATCH 31/43] do better than ugly looking hacks --- R/dashboardPage.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/dashboardPage.R b/R/dashboardPage.R index 97a50c3a..e35c9eca 100644 --- a/R/dashboardPage.R +++ b/R/dashboardPage.R @@ -59,7 +59,7 @@ dashboardPage <- function(header, sidebar, body, title = NULL, # if the sidebar has the attribute `data-collapsed = "true"`, it means that # the user set the `collapsed` argument of `dashboardSidebar` to TRUE - collapsed <- "true" %in% strsplit(sidebar$attribs$`data-collapsed`, " ")[[1]] + collapsed <- findAttribute(sidebar, "data-collapsed", "true") addDeps( tags$body( From 97dc51238a5be38f8b314d1b0c6d5f85b9af57c4 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 15 Mar 2017 02:04:10 +0000 Subject: [PATCH 32/43] apply eslint to the srcjs documents, not the already concatenated file --- tools/Gruntfile.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/Gruntfile.js b/tools/Gruntfile.js index fa8dc324..0e9d239a 100644 --- a/tools/Gruntfile.js +++ b/tools/Gruntfile.js @@ -105,7 +105,14 @@ module.exports = function(grunt) { ], globals: ["strftime"] }, - shinydashboard: [destdirjs + "shinydashboard.js"] + shinydashboard: [ + srcdirjs + 'tabs.js', + srcdirjs + 'sidebar.js', + srcdirjs + 'output_binding_menu.js', + srcdirjs + 'input_binding_tabItem.js', + srcdirjs + 'input_binding_sidebarCollapsed.js', + srcdirjs + 'input_binding_sidebarmenuExpanded.js' + ] }, watch: { From a1933384b0c8601df262dfdab0cea67fb853e648 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 15 Mar 2017 18:42:47 +0000 Subject: [PATCH 33/43] edge case --- R/dashboardSidebar.R | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index ff14e8a3..c83c5b2a 100644 --- a/R/dashboardSidebar.R +++ b/R/dashboardSidebar.R @@ -270,7 +270,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 +283,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 @@ -429,7 +432,7 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr # selected items to restore. do.call(tags$ul, c( class = paste0("treeview-menu", if (isExpanded) " menu-open" else ""), - style = paste0("display: ", if (isExpanded) "block" else "none"), + style = paste0("display: ", if (isExpanded) "block;" else "none;"), subItems)) ) } From 0205dee775a85a7e193013575af1e0c72dc92e1d Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 15 Mar 2017 18:49:46 +0000 Subject: [PATCH 34/43] eslint nit --- srcjs/output_binding_menu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcjs/output_binding_menu.js b/srcjs/output_binding_menu.js index a7be0657..3d5175a2 100644 --- a/srcjs/output_binding_menu.js +++ b/srcjs/output_binding_menu.js @@ -39,7 +39,7 @@ $.extend(menuOutputBinding, { Shiny.initializeInputs(el); Shiny.bindAll(el); - ensureActivatedTab(); + ensureActivatedTab(); // eslint-disable-line } }); Shiny.outputBindings.register(menuOutputBinding, From c8820c5e8a4ed2b388334ba96a46f6a01853fca4 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 15 Mar 2017 18:51:33 +0000 Subject: [PATCH 35/43] all manner of failed attempts to trigger shown/hidden events in a less than awful way --- inst/AdminLTE/app.js | 4 ++ inst/AdminLTE/app.js.map | 2 +- inst/AdminLTE/app.min.js.map | 2 +- inst/shinydashboard.js | 56 ++++++++++++++++++---- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/AdminLTE/app.js | 4 ++ srcjs/input_binding_sidebarmenuExpanded.js | 14 ++++-- srcjs/sidebar.js | 40 ++++++++++++++-- 10 files changed, 106 insertions(+), 22 deletions(-) diff --git a/inst/AdminLTE/app.js b/inst/AdminLTE/app.js index 3794e378..6b67eef7 100644 --- a/inst/AdminLTE/app.js +++ b/inst/AdminLTE/app.js @@ -413,6 +413,8 @@ function _init() { checkElement.removeClass('menu-open'); //Fix the layout in case the sidebar stretches over the height of the window //_this.layout.fix(); + //checkElement.trigger("hidden"); + //checkElement.trigger("slideUp"); }); checkElement.parent("li").removeClass("active"); } @@ -427,6 +429,8 @@ function _init() { //Get the parent li var parent_li = $this.parent("li"); + //checkElement.trigger("slideDown"); + //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..cfb38eee 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 //checkElement.trigger(\"hidden\");\n //checkElement.trigger(\"slideUp\");\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 //checkElement.trigger(\"slideDown\");\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 bb7079f4..2a17693a 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","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 d51938ac..b4de5ba5 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -59,25 +59,29 @@ 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 "shown" event for elements that only become visible after // the corresponding menuItem is expanded (otherwise, Shiny will still // think they're hidden and not render them) $(document).on("click", ".treeview > a", function() { $(this).next(".treeview-menu").trigger("shown"); }); +*/ // Whenever the sidebar expand/collapse button is clicked: -// * Trigger the resize event (this allows images to be -// responsive and resize themselves) -// * Update the value for the sidebar's input binding $(document).on("click", ".sidebar-toggle", function() { + // 1) Trigger the resize event (this allows images to be + // responsive and resize themselves) $(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); @@ -92,17 +96,45 @@ $(document).on("click", ".treeview > a", function() { var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); var value; + var $menu = $(this).next(".treeview-menu"); + //if ($(this).next('ul.treeview-menu').text() === "") $(this).next('ul.treeview-menu').text(" "); + //console.log( $(this).next('ul.treeview-menu').text(" ")); // If this menuItem was already open, then clicking on it again, // should update the input binding back to null if ($(this).next().hasClass("menu-open")) { value = null; + //$menu.hide(500, function() { $menu.trigger("hidden"); }); + //$menu.trigger("hidden"); + //$(this).next(".treeview-menu").trigger("hidden"); } else if ($(this).next().hasClass("treeview-menu")) { value = $(this).next().find('a').attr('data-value'); + console.log(value); + //$menu.show(500, function() { $menu.trigger("shown"); }); + //$(this).trigger("shown"); + //$menu.trigger("shown"); + //$(this).next(".treeview-menu").trigger("shown"); } inputBinding.setValue($obj, value); $obj.trigger('change'); + //if (value === null) $(this).next(".treeview-menu").trigger("hidden"); + //else $(this).trigger("shown"); +}); + +/* +$(document).on("slideDown", ".treeview-menu", function() { + console.log("shown"); + $(this).trigger("shown"); +}); + + +$(document).on("slideUp", ".treeview-menu", function() { + console.log("hidden"); + $(this).trigger("hidden"); }); +*/ + + //--------------------------------------------------------------------- // Source file: ../srcjs/output_binding_menu.js @@ -148,7 +180,7 @@ $.extend(menuOutputBinding, { Shiny.initializeInputs(el); Shiny.bindAll(el); - ensureActivatedTab(); + ensureActivatedTab(); // eslint-disable-line } }); Shiny.outputBindings.register(menuOutputBinding, @@ -284,12 +316,18 @@ $.extend(sidebarmenuExpandedInputBinding, { if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); $ul = $firstChild.parent().parent('.treeview-menu'); - $ul.addClass('menu-open'); - $ul.show(); + $(document).trigger('click', '.sidebar li a[data-value="' + value + '"]'); + //$ul.trigger("shown"); + //$ul.addClass('menu-open'); + //$ul.show(); } else { $ul = $(el).find('li ul.menu-open'); - $ul.removeClass('menu-open'); - $ul.hide(); + var $anchor = $ul.prev('a'); + //console.log($ul) + $(document).trigger('click', $anchor); + //$ul.removeClass('menu-open'); + //$ul.hide(); + //$ul.trigger("hidden"); } }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 86af49c7..0e86e6a3 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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n var $menu = $(this).next(\".treeview-menu\");\n //if ($(this).next('ul.treeview-menu').text() === \"\") $(this).next('ul.treeview-menu').text(\" \");\n //console.log( $(this).next('ul.treeview-menu').text(\" \"));\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n //$menu.hide(500, function() { $menu.trigger(\"hidden\"); });\n //$menu.trigger(\"hidden\");\n //$(this).next(\".treeview-menu\").trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n console.log(value);\n //$menu.show(500, function() { $menu.trigger(\"shown\"); });\n //$(this).trigger(\"shown\");\n //$menu.trigger(\"shown\");\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\n //if (value === null) $(this).next(\".treeview-menu\").trigger(\"hidden\");\n //else $(this).trigger(\"shown\");\n});\n\n/*\n$(document).on(\"slideDown\", \".treeview-menu\", function() {\n console.log(\"shown\");\n $(this).trigger(\"shown\");\n});\n\n\n$(document).on(\"slideUp\", \".treeview-menu\", function() {\n console.log(\"hidden\");\n $(this).trigger(\"hidden\");\n});\n*/\n\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $(document).trigger('click', '.sidebar li a[data-value=\"' + value + '\"]');\n //$ul.trigger(\"shown\");\n //$ul.addClass('menu-open');\n //$ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n var $anchor = $ul.prev('a');\n //console.log($ul)\n $(document).trigger('click', $anchor);\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //$ul.trigger(\"hidden\");\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 $(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 04e5bfbb..78a9e07b 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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next(".treeview-menu");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value"),console.log(a)),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),$(document).trigger("click",'.sidebar li a[data-value="'+b+'"]')}else{c=$(a).find("li ul.menu-open");var e=c.prev("a");$(document).trigger("click",e)}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 4b234deb..bad315ef 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","next","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WAGxB,GAAIC,GAAYF,EAAA,mEAIhBE,GAAUC,IAAGH,EAAGI,OAAOC,OAAM,MAAOC,YAAW,SAG/C,IAAIC,GAAOP,EAAA,+BACPQ,EAAeD,EAAKE,KAAI,sBACA,oBAAjBD,KACTA,EAAaE,SAAQH,EAAOP,EAAEI,MAAMO,KAAI,eACxCJ,EAAKK,QAAO,WAIhBZ,GAAEa,UAAUC,GAAE,eAAiB,qCAChBb,EAKf,IAAIc,GAAqB,WACvB,GAAIb,GAAYF,EAAA,sCAIZgB,EAAYd,EAAUe,OAAM,4BAChC,OAAyB,KAAtBD,EAAWE,WACZF,GAAUG,IAAG,aAKTjB,EAAUG,OAAM,MAAOe,SAAQ,WACnClB,EAAUmB,QAAQF,IAAG,SAIzBJ,KC/CGf,EAAA,mBAAsBS,KAAI,aAC3BT,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAMjCvB,EAAEa,UAAUC,GAAE,QAAU,gBAAiB,WACvCd,EAAEI,MAAMoB,KAAI,kBAAmBZ,QAAO,WAOxCZ,EAAEa,UAAUC,GAAE,QAAU,kBAAmB,WACzCd,EAAEyB,QAAQb,QAAO,SACjB,IAAIL,GAAOP,EAAA,mCACPQ,EAAeD,EAAKE,KAAI,sBAC5BD,GAAakB,YAAWnB,GACxBA,EAAKK,QAAO,YAOdZ,EAAEa,UAAUC,GAAE,QAAU,gBAAiB,WACvC,GAEIa,GAFApB,EAAOP,EAAA,qCACPQ,EAAeD,EAAKE,KAAI,sBAKzBT,GAAGI,MAAMoB,OAAOJ,SAAQ,aACzBO,EAAQ,KACA3B,EAAGI,MAAMoB,OAAOJ,SAAQ,mBAChCO,EAAQ3B,EAAEI,MAAMoB,OAAOI,KAAI,KAAMjB,KAAI,eAEvCH,EAAaE,SAAQH,EAAOoB,GAC5BpB,EAAKK,QAAO,WCnCd,IAAIiB,GAAoB,GAAIC,OAAMC,aAClC/B,GAAEgC,OAAOH,GACPD,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,gCAEtBM,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChB/B,KAAKkC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAI1B,GACxBqB,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAAThC,EAAJ,CAE4B,gBAAX,GACf+B,EAAO/B,EACmB,gBAAX,KACf+B,EAAO/B,EAAK+B,KACZC,EAAehC,EAAKiC,KAGtB,IAAIC,GAAQ3C,EAAAA,EAAI4C,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMhC,KAAI,SAEzBmB,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,GACdpB,QAGJe,MAAMmB,eAAeC,SAASrB,EACA,mCCvC9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpCpD,GAAEgC,OAAOmB,GACPvB,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,gCAEtByB,SAAU,SAASlB,GACjB,GAAIR,GAAQ3B,EAAEmC,GAAIxB,KAAI,aACtB,OAAc,SAAVgB,EAAyB,KACtBA,GAETjB,SAAU,SAASyB,EAAIR,GACrB,GAAI2B,GAAOlD,KACPmD,EAAUvD,EAAEmC,GAAI9B,OAAM,mBAAoBuB,KAAI,qBAAsB4B,SAAQ,IAChFD,GAAQE,KAAK,WACX,GAAIH,EAAKI,YAAW1D,EAAGI,SAAWuB,EAGhC,MAFA3B,GAAEI,MAAMe,IAAG,QACXnB,EAAEmC,GAAIxB,KAAI,aAAe2C,EAAKI,YAAW1D,EAAGI,SACrC,KAIbuD,eAAgB,SAASxB,EAAI1B,GACvBA,EAAKmD,eAAc,UACrBxD,KAAKM,SAASyB,EAAI1B,EAAKkB,QAE3BkC,UAAW,SAAS1B,EAAI2B,GAItB9D,EAAEmC,GAAIrB,GAAE,6BAA+B,WACrCgD,OAGJC,YAAa,SAAS5B,GACpBnC,EAAEmC,GAAI6B,IAAG,yBAEXN,YAAa,SAASO,GACpB,MAAOA,GAAOtD,KAAI,iBAItBmB,MAAMoC,cAAchB,SAASC,EAAqB,8BCzClD,IAAIgB,GAA+B,GAAIrC,OAAMsB,YAC7CpD,GAAEgC,OAAOmC,GACPvC,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,iBAAkBP,SAExC+C,MAAO,SAASjC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAOnC,GAAEmC,GAAIxB,KAAI,mBAEnBD,SAAU,SAASyB,EAAIR,GACrB3B,EAAEmC,GAAIxB,KAAI,iBAAmBgB,IAE/BD,YAAa,SAASS,GACpB,GAAIkC,GAAUjE,KAAKiD,SAASlB,GACxBmC,EAAsB,SAAZD,EAAsB,QAAU,MAC9CjE,MAAKM,SAASyB,EAAImC,IAEpBX,eAAgB,SAASxB,EAAI1B,GACvBA,EAAKmD,eAAc,UACrBxD,KAAKM,SAASyB,EAAI1B,EAAKkB,QAE3BkC,UAAW,SAAS1B,EAAI2B,GACtB9D,EAAEmC,GAAIrB,GAAE,sCAAwC,WAC9CgD,OAGJC,YAAa,SAAS5B,GACpBnC,EAAEmC,GAAI6B,IAAG,oCAGblC,MAAMoC,cAAchB,SAASiB,EAC3B,8CClCF,IAAII,GAAkC,GAAIzC,OAAMsB,YAChDpD,GAAEgC,OAAOuC,GACP3C,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,oBAEtBwC,MAAO,SAASjC,GACd,MAAO,uBAETkB,SAAU,SAASlB,GACjB,GAAIqC,GAAQxE,EAAEmC,GAAIP,KAAI,kBACtB,OAAqB,KAAlB4C,EAAOtD,OAAqBsD,EAAM5C,KAAI,KAAMjB,KAAI,cACvC,MAEdD,SAAU,SAASyB,EAAIR,GASrB,GAAI8C,EACJ,IAAc,OAAV9C,EAAgB,CAClB,GAAI+C,GAAc1E,EAAA,iBAAqB2B,EAAQ,KAC/C8C,GAAMC,EAAYrE,SAASA,OAAM,kBACjCoE,EAAInD,SAAQ,aACZmD,EAAIE,WAEJF,GAAMzE,EAAEmC,GAAIP,KAAI,mBAChB6C,EAAInE,YAAW,aACfmE,EAAIlD,QAGRoC,eAAgB,SAASxB,EAAI1B,GACvBA,EAAKmD,eAAc,UACrBxD,KAAKM,SAASyB,EAAI1B,EAAKkB,QAE3BkC,UAAW,SAAS1B,EAAI2B,GACtB9D,EAAEmC,GAAIrB,GAAE,yCAA2C,WACjDgD,OAGJC,YAAa,SAAS5B,GACpBnC,EAAEmC,GAAI6B,IAAG,uCAGblC,MAAMoC,cAAchB,SAASqB,EAC3B","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 }\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 \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n\n// Whenever the sidebar expand/collapse button is clicked:\n// * Trigger the resize event (this allows images to be\n// responsive and resize themselves)\n// * Update the value for the sidebar's input binding\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n $(window).trigger(\"resize\");\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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();\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","value","next","find","console","log","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","$anchor","prev"],"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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n var $menu = $(this).next(\".treeview-menu\");\n //if ($(this).next('ul.treeview-menu').text() === \"\") $(this).next('ul.treeview-menu').text(\" \");\n //console.log( $(this).next('ul.treeview-menu').text(\" \"));\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n //$menu.hide(500, function() { $menu.trigger(\"hidden\"); });\n //$menu.trigger(\"hidden\");\n //$(this).next(\".treeview-menu\").trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n console.log(value);\n //$menu.show(500, function() { $menu.trigger(\"shown\"); });\n //$(this).trigger(\"shown\");\n //$menu.trigger(\"shown\");\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\n //if (value === null) $(this).next(\".treeview-menu\").trigger(\"hidden\");\n //else $(this).trigger(\"shown\");\n});\n\n/*\n$(document).on(\"slideDown\", \".treeview-menu\", function() {\n console.log(\"shown\");\n $(this).trigger(\"shown\");\n});\n\n\n$(document).on(\"slideUp\", \".treeview-menu\", function() {\n console.log(\"hidden\");\n $(this).trigger(\"hidden\");\n});\n*/\n\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $(document).trigger('click', '.sidebar li a[data-value=\"' + value + '\"]');\n //$ul.trigger(\"shown\");\n //$ul.addClass('menu-open');\n //$ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n var $anchor = $ul.prev('a');\n //console.log($ul)\n $(document).trigger('click', $anchor);\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //$ul.trigger(\"hidden\");\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 $(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/AdminLTE/app.js b/srcjs/AdminLTE/app.js index 90f82bb2..dfbf63ed 100755 --- a/srcjs/AdminLTE/app.js +++ b/srcjs/AdminLTE/app.js @@ -410,6 +410,8 @@ function _init() { checkElement.removeClass('menu-open'); //Fix the layout in case the sidebar stretches over the height of the window //_this.layout.fix(); + //checkElement.trigger("hidden"); + //checkElement.trigger("slideUp"); }); checkElement.parent("li").removeClass("active"); } @@ -424,6 +426,8 @@ function _init() { //Get the parent li var parent_li = $this.parent("li"); + //checkElement.trigger("slideDown"); + //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/srcjs/input_binding_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index e35ab1c1..eb298152 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -29,12 +29,18 @@ $.extend(sidebarmenuExpandedInputBinding, { if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); $ul = $firstChild.parent().parent('.treeview-menu'); - $ul.addClass('menu-open'); - $ul.show(); + $(document).trigger('click', '.sidebar li a[data-value="' + value + '"]'); + //$ul.trigger("shown"); + //$ul.addClass('menu-open'); + //$ul.show(); } else { $ul = $(el).find('li ul.menu-open'); - $ul.removeClass('menu-open'); - $ul.hide(); + var $anchor = $ul.prev('a'); + //console.log($ul) + $(document).trigger('click', $anchor); + //$ul.removeClass('menu-open'); + //$ul.hide(); + //$ul.trigger("hidden"); } }, receiveMessage: function(el, data) { diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index e07d1117..fe3267ee 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -1,22 +1,26 @@ -// 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 "shown" event for elements that only become visible after // the corresponding menuItem is expanded (otherwise, Shiny will still // think they're hidden and not render them) $(document).on("click", ".treeview > a", function() { $(this).next(".treeview-menu").trigger("shown"); }); +*/ // Whenever the sidebar expand/collapse button is clicked: -// * Trigger the resize event (this allows images to be -// responsive and resize themselves) -// * Update the value for the sidebar's input binding $(document).on("click", ".sidebar-toggle", function() { + // 1) Trigger the resize event (this allows images to be + // responsive and resize themselves) $(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); @@ -31,14 +35,42 @@ $(document).on("click", ".treeview > a", function() { var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); var value; + var $menu = $(this).next(".treeview-menu"); + //if ($(this).next('ul.treeview-menu').text() === "") $(this).next('ul.treeview-menu').text(" "); + //console.log( $(this).next('ul.treeview-menu').text(" ")); // If this menuItem was already open, then clicking on it again, // should update the input binding back to null if ($(this).next().hasClass("menu-open")) { value = null; + //$menu.hide(500, function() { $menu.trigger("hidden"); }); + //$menu.trigger("hidden"); + //$(this).next(".treeview-menu").trigger("hidden"); } else if ($(this).next().hasClass("treeview-menu")) { value = $(this).next().find('a').attr('data-value'); + console.log(value); + //$menu.show(500, function() { $menu.trigger("shown"); }); + //$(this).trigger("shown"); + //$menu.trigger("shown"); + //$(this).next(".treeview-menu").trigger("shown"); } inputBinding.setValue($obj, value); $obj.trigger('change'); + //if (value === null) $(this).next(".treeview-menu").trigger("hidden"); + //else $(this).trigger("shown"); +}); + +/* +$(document).on("slideDown", ".treeview-menu", function() { + console.log("shown"); + $(this).trigger("shown"); +}); + + +$(document).on("slideUp", ".treeview-menu", function() { + console.log("hidden"); + $(this).trigger("hidden"); }); +*/ + + From e4a34e678ac3d0f9113e2fdb52a67326c1d613fa Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Wed, 15 Mar 2017 19:25:16 +0000 Subject: [PATCH 36/43] remove insanity --- inst/AdminLTE/app.js | 4 --- inst/AdminLTE/app.js.map | 2 +- inst/AdminLTE/app.min.js.map | 2 +- inst/shinydashboard.js | 42 +++------------------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/AdminLTE/app.js | 4 --- srcjs/input_binding_sidebarmenuExpanded.js | 14 +++----- srcjs/sidebar.js | 28 --------------- 10 files changed, 13 insertions(+), 89 deletions(-) diff --git a/inst/AdminLTE/app.js b/inst/AdminLTE/app.js index 6b67eef7..3794e378 100644 --- a/inst/AdminLTE/app.js +++ b/inst/AdminLTE/app.js @@ -413,8 +413,6 @@ function _init() { checkElement.removeClass('menu-open'); //Fix the layout in case the sidebar stretches over the height of the window //_this.layout.fix(); - //checkElement.trigger("hidden"); - //checkElement.trigger("slideUp"); }); checkElement.parent("li").removeClass("active"); } @@ -429,8 +427,6 @@ function _init() { //Get the parent li var parent_li = $this.parent("li"); - //checkElement.trigger("slideDown"); - //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 cfb38eee..39a26e87 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 //checkElement.trigger(\"hidden\");\n //checkElement.trigger(\"slideUp\");\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 //checkElement.trigger(\"slideDown\");\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 //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 2a17693a..bb7079f4 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","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 b4de5ba5..5d2d4493 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -96,46 +96,18 @@ $(document).on("click", ".treeview > a", function() { var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); var value; - var $menu = $(this).next(".treeview-menu"); - //if ($(this).next('ul.treeview-menu').text() === "") $(this).next('ul.treeview-menu').text(" "); - //console.log( $(this).next('ul.treeview-menu').text(" ")); // If this menuItem was already open, then clicking on it again, // should update the input binding back to null if ($(this).next().hasClass("menu-open")) { value = null; - //$menu.hide(500, function() { $menu.trigger("hidden"); }); - //$menu.trigger("hidden"); - //$(this).next(".treeview-menu").trigger("hidden"); } else if ($(this).next().hasClass("treeview-menu")) { value = $(this).next().find('a').attr('data-value'); - console.log(value); - //$menu.show(500, function() { $menu.trigger("shown"); }); - //$(this).trigger("shown"); - //$menu.trigger("shown"); - //$(this).next(".treeview-menu").trigger("shown"); } inputBinding.setValue($obj, value); $obj.trigger('change'); - //if (value === null) $(this).next(".treeview-menu").trigger("hidden"); - //else $(this).trigger("shown"); }); -/* -$(document).on("slideDown", ".treeview-menu", function() { - console.log("shown"); - $(this).trigger("shown"); -}); - - -$(document).on("slideUp", ".treeview-menu", function() { - console.log("hidden"); - $(this).trigger("hidden"); -}); -*/ - - - //--------------------------------------------------------------------- // Source file: ../srcjs/output_binding_menu.js @@ -316,18 +288,12 @@ $.extend(sidebarmenuExpandedInputBinding, { if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); $ul = $firstChild.parent().parent('.treeview-menu'); - $(document).trigger('click', '.sidebar li a[data-value="' + value + '"]'); - //$ul.trigger("shown"); - //$ul.addClass('menu-open'); - //$ul.show(); + $ul.addClass('menu-open'); + $ul.show(); } else { $ul = $(el).find('li ul.menu-open'); - var $anchor = $ul.prev('a'); - //console.log($ul) - $(document).trigger('click', $anchor); - //$ul.removeClass('menu-open'); - //$ul.hide(); - //$ul.trigger("hidden"); + $ul.removeClass('menu-open'); + $ul.hide(); } }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 0e86e6a3..a8db4b61 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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n var $menu = $(this).next(\".treeview-menu\");\n //if ($(this).next('ul.treeview-menu').text() === \"\") $(this).next('ul.treeview-menu').text(\" \");\n //console.log( $(this).next('ul.treeview-menu').text(\" \"));\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n //$menu.hide(500, function() { $menu.trigger(\"hidden\"); });\n //$menu.trigger(\"hidden\");\n //$(this).next(\".treeview-menu\").trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n console.log(value);\n //$menu.show(500, function() { $menu.trigger(\"shown\"); });\n //$(this).trigger(\"shown\");\n //$menu.trigger(\"shown\");\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\n //if (value === null) $(this).next(\".treeview-menu\").trigger(\"hidden\");\n //else $(this).trigger(\"shown\");\n});\n\n/*\n$(document).on(\"slideDown\", \".treeview-menu\", function() {\n console.log(\"shown\");\n $(this).trigger(\"shown\");\n});\n\n\n$(document).on(\"slideUp\", \".treeview-menu\", function() {\n console.log(\"hidden\");\n $(this).trigger(\"hidden\");\n});\n*/\n\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $(document).trigger('click', '.sidebar li a[data-value=\"' + value + '\"]');\n //$ul.trigger(\"shown\");\n //$ul.addClass('menu-open');\n //$ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n var $anchor = $ul.prev('a');\n //console.log($ul)\n $(document).trigger('click', $anchor);\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //$ul.trigger(\"hidden\");\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 $(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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 78a9e07b..81b4ee70 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"))};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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next(".treeview-menu");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value"),console.log(a)),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),$(document).trigger("click",'.sidebar li a[data-value="'+b+'"]')}else{c=$(a).find("li ul.menu-open");var e=c.prev("a");$(document).trigger("click",e)}},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 bad315ef..841d8314 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","value","next","find","console","log","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","$anchor","prev"],"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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n var $menu = $(this).next(\".treeview-menu\");\n //if ($(this).next('ul.treeview-menu').text() === \"\") $(this).next('ul.treeview-menu').text(\" \");\n //console.log( $(this).next('ul.treeview-menu').text(\" \"));\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n //$menu.hide(500, function() { $menu.trigger(\"hidden\"); });\n //$menu.trigger(\"hidden\");\n //$(this).next(\".treeview-menu\").trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n console.log(value);\n //$menu.show(500, function() { $menu.trigger(\"shown\"); });\n //$(this).trigger(\"shown\");\n //$menu.trigger(\"shown\");\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\n //if (value === null) $(this).next(\".treeview-menu\").trigger(\"hidden\");\n //else $(this).trigger(\"shown\");\n});\n\n/*\n$(document).on(\"slideDown\", \".treeview-menu\", function() {\n console.log(\"shown\");\n $(this).trigger(\"shown\");\n});\n\n\n$(document).on(\"slideUp\", \".treeview-menu\", function() {\n console.log(\"hidden\");\n $(this).trigger(\"hidden\");\n});\n*/\n\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $(document).trigger('click', '.sidebar li a[data-value=\"' + value + '\"]');\n //$ul.trigger(\"shown\");\n //$ul.addClass('menu-open');\n //$ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n var $anchor = $ul.prev('a');\n //console.log($ul)\n $(document).trigger('click', $anchor);\n //$ul.removeClass('menu-open');\n //$ul.hide();\n //$ul.trigger(\"hidden\");\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 $(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","value","next","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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/AdminLTE/app.js b/srcjs/AdminLTE/app.js index dfbf63ed..90f82bb2 100755 --- a/srcjs/AdminLTE/app.js +++ b/srcjs/AdminLTE/app.js @@ -410,8 +410,6 @@ function _init() { checkElement.removeClass('menu-open'); //Fix the layout in case the sidebar stretches over the height of the window //_this.layout.fix(); - //checkElement.trigger("hidden"); - //checkElement.trigger("slideUp"); }); checkElement.parent("li").removeClass("active"); } @@ -426,8 +424,6 @@ function _init() { //Get the parent li var parent_li = $this.parent("li"); - //checkElement.trigger("slideDown"); - //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/srcjs/input_binding_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index eb298152..e35ab1c1 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -29,18 +29,12 @@ $.extend(sidebarmenuExpandedInputBinding, { if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); $ul = $firstChild.parent().parent('.treeview-menu'); - $(document).trigger('click', '.sidebar li a[data-value="' + value + '"]'); - //$ul.trigger("shown"); - //$ul.addClass('menu-open'); - //$ul.show(); + $ul.addClass('menu-open'); + $ul.show(); } else { $ul = $(el).find('li ul.menu-open'); - var $anchor = $ul.prev('a'); - //console.log($ul) - $(document).trigger('click', $anchor); - //$ul.removeClass('menu-open'); - //$ul.hide(); - //$ul.trigger("hidden"); + $ul.removeClass('menu-open'); + $ul.hide(); } }, receiveMessage: function(el, data) { diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index fe3267ee..2f1151e8 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -35,42 +35,14 @@ $(document).on("click", ".treeview > a", function() { var $obj = $('section.sidebar.shiny-bound-input'); var inputBinding = $obj.data('shiny-input-binding'); var value; - var $menu = $(this).next(".treeview-menu"); - //if ($(this).next('ul.treeview-menu').text() === "") $(this).next('ul.treeview-menu').text(" "); - //console.log( $(this).next('ul.treeview-menu').text(" ")); // If this menuItem was already open, then clicking on it again, // should update the input binding back to null if ($(this).next().hasClass("menu-open")) { value = null; - //$menu.hide(500, function() { $menu.trigger("hidden"); }); - //$menu.trigger("hidden"); - //$(this).next(".treeview-menu").trigger("hidden"); } else if ($(this).next().hasClass("treeview-menu")) { value = $(this).next().find('a').attr('data-value'); - console.log(value); - //$menu.show(500, function() { $menu.trigger("shown"); }); - //$(this).trigger("shown"); - //$menu.trigger("shown"); - //$(this).next(".treeview-menu").trigger("shown"); } inputBinding.setValue($obj, value); $obj.trigger('change'); - //if (value === null) $(this).next(".treeview-menu").trigger("hidden"); - //else $(this).trigger("shown"); }); - -/* -$(document).on("slideDown", ".treeview-menu", function() { - console.log("shown"); - $(this).trigger("shown"); -}); - - -$(document).on("slideUp", ".treeview-menu", function() { - console.log("hidden"); - $(this).trigger("hidden"); -}); -*/ - - From 4075a3eea25855e1527e88dfcdb7fdf89aedac54 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 16 Mar 2017 05:57:52 +0000 Subject: [PATCH 37/43] more futile attempts --- inst/shinydashboard.js | 25 +++++++++++++++++----- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarmenuExpanded.js | 8 +++++++ srcjs/sidebar.js | 17 ++++++++++----- 6 files changed, 43 insertions(+), 13 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 5d2d4493..8d9babe6 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -66,19 +66,26 @@ if ($("section.sidebar").data("disable")) { $(".navbar > .sidebar-toggle").hide(); } -/* + // Trigger "shown" event for elements that only become visible after // the corresponding menuItem is expanded (otherwise, Shiny will still // think they're hidden and not render them) $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); + + //$(this).next(".treeview-menu").trigger("shown"); + + var $ul = $(this).next(".treeview-menu"); + $ul.slideDown(500, function (e) { + $ul.addClass('menu-open'); + $ul.trigger('shown'); + //e.stop + }); }); -*/ + // Whenever the sidebar expand/collapse button is clicked: $(document).on("click", ".sidebar-toggle", function() { - // 1) Trigger the resize event (this allows images to be - // responsive and resize themselves) + // 1) Trigger the resize event (so images are responsive and resize) $(window).trigger("resize"); // 2) Update the value for the sidebar's input binding @@ -290,6 +297,14 @@ $.extend(sidebarmenuExpandedInputBinding, { $ul = $firstChild.parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); + + // $(document).trigger("click", $firstChild); + /* + $ul.slideDown(500, function () { + $ul.addClass('menu-open'); + $ul.trigger('shown'); + }); + */ } else { $ul = $(el).find('li ul.menu-open'); $ul.removeClass('menu-open'); diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index a8db4b61..b3a01229 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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n\n var $ul = $(this).next(\".treeview-menu\");\n $ul.slideDown(500, function (e) {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n //e.stop\n });\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n\n // $(document).trigger(\"click\", $firstChild);\n /*\n $ul.slideDown(500, function () {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n });\n */\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 81b4ee70..2f489a9f 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"))};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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){var a=$(this).next(".treeview-menu");a.slideDown(500,function(b){a.addClass("menu-open"),a.trigger("shown")})}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 841d8314..94b909da 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","value","next","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"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 }\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/*\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\n*/\n\n// Whenever the sidebar expand/collapse button is clicked:\n$(document).on(\"click\", \".sidebar-toggle\", function() {\n // 1) Trigger the resize event (this allows images to be\n // responsive and resize themselves)\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","$ul","next","slideDown","e","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$firstChild","show"],"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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n\n var $ul = $(this).next(\".treeview-menu\");\n $ul.slideDown(500, function (e) {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n //e.stop\n });\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n\n // $(document).trigger(\"click\", $firstChild);\n /*\n $ul.slideDown(500, function () {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n });\n */\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index e35ab1c1..6ef3c5fd 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -31,6 +31,14 @@ $.extend(sidebarmenuExpandedInputBinding, { $ul = $firstChild.parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); + + // $(document).trigger("click", $firstChild); + /* + $ul.slideDown(500, function () { + $ul.addClass('menu-open'); + $ul.trigger('shown'); + }); + */ } else { $ul = $(el).find('li ul.menu-open'); $ul.removeClass('menu-open'); diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index 2f1151e8..e5b2618d 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -5,19 +5,26 @@ if ($("section.sidebar").data("disable")) { $(".navbar > .sidebar-toggle").hide(); } -/* + // Trigger "shown" event for elements that only become visible after // the corresponding menuItem is expanded (otherwise, Shiny will still // think they're hidden and not render them) $(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); + + //$(this).next(".treeview-menu").trigger("shown"); + + var $ul = $(this).next(".treeview-menu"); + $ul.slideDown(500, function (e) { + $ul.addClass('menu-open'); + $ul.trigger('shown'); + //e.stop + }); }); -*/ + // Whenever the sidebar expand/collapse button is clicked: $(document).on("click", ".sidebar-toggle", function() { - // 1) Trigger the resize event (this allows images to be - // responsive and resize themselves) + // 1) Trigger the resize event (so images are responsive and resize) $(window).trigger("resize"); // 2) Update the value for the sidebar's input binding From af43ed2370249666866ad463f7eabe440c1419ce Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 16 Mar 2017 06:49:20 +0000 Subject: [PATCH 38/43] back to normal; add another manuel test app to show the struggle --- inst/shinydashboard.js | 26 +-------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarmenuExpanded.js | 16 ----- srcjs/sidebar.js | 10 +--- tests-manual/trigger-shown-sidebar.R | 68 ++++++++++++++++++++++ 7 files changed, 73 insertions(+), 53 deletions(-) create mode 100644 tests-manual/trigger-shown-sidebar.R diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 8d9babe6..78b7d15f 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -71,15 +71,7 @@ if ($("section.sidebar").data("disable")) { // the corresponding menuItem is expanded (otherwise, Shiny will still // think they're hidden and not render them) $(document).on("click", ".treeview > a", function() { - - //$(this).next(".treeview-menu").trigger("shown"); - - var $ul = $(this).next(".treeview-menu"); - $ul.slideDown(500, function (e) { - $ul.addClass('menu-open'); - $ul.trigger('shown'); - //e.stop - }); + $(this).next(".treeview-menu").trigger("shown"); }); @@ -283,28 +275,12 @@ $.extend(sidebarmenuExpandedInputBinding, { else return null; // no menuItem is expanded }, setValue: function(el, value) { - /* - var $anchor = $('.sidebar-menu li a'); - if (value !== null) - $anchor = $('a[data-value="' + value + '"]').parent().parent().prev('a'); - console.log($anchor); - $(document).trigger("click", $anchor); - */ - var $ul; if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); $ul = $firstChild.parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); - - // $(document).trigger("click", $firstChild); - /* - $ul.slideDown(500, function () { - $ul.addClass('menu-open'); - $ul.trigger('shown'); - }); - */ } else { $ul = $(el).find('li ul.menu-open'); $ul.removeClass('menu-open'); diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index b3a01229..59ee84ee 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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n\n var $ul = $(this).next(\".treeview-menu\");\n $ul.slideDown(500, function (e) {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n //e.stop\n });\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n\n // $(document).trigger(\"click\", $firstChild);\n /*\n $ul.slideDown(500, function () {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n });\n */\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 2f489a9f..04e5bfbb 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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){var a=$(this).next(".treeview-menu");a.slideDown(500,function(b){a.addClass("menu-open"),a.trigger("shown")})}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 94b909da..31fc1bfc 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","$ul","next","slideDown","e","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$firstChild","show"],"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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n\n //$(this).next(\".treeview-menu\").trigger(\"shown\");\n\n var $ul = $(this).next(\".treeview-menu\");\n $ul.slideDown(500, function (e) {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n //e.stop\n });\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n /*\n var $anchor = $('.sidebar-menu li a');\n if (value !== null)\n $anchor = $('a[data-value=\"' + value + '\"]').parent().parent().prev('a');\n console.log($anchor);\n $(document).trigger(\"click\", $anchor);\n */\n\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n\n // $(document).trigger(\"click\", $firstChild);\n /*\n $ul.slideDown(500, function () {\n $ul.addClass('menu-open');\n $ul.trigger('shown');\n });\n */\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","next","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index 6ef3c5fd..7942d07a 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -17,28 +17,12 @@ $.extend(sidebarmenuExpandedInputBinding, { else return null; // no menuItem is expanded }, setValue: function(el, value) { - /* - var $anchor = $('.sidebar-menu li a'); - if (value !== null) - $anchor = $('a[data-value="' + value + '"]').parent().parent().prev('a'); - console.log($anchor); - $(document).trigger("click", $anchor); - */ - var $ul; if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); $ul = $firstChild.parent().parent('.treeview-menu'); $ul.addClass('menu-open'); $ul.show(); - - // $(document).trigger("click", $firstChild); - /* - $ul.slideDown(500, function () { - $ul.addClass('menu-open'); - $ul.trigger('shown'); - }); - */ } else { $ul = $(el).find('li ul.menu-open'); $ul.removeClass('menu-open'); diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index e5b2618d..968a5f24 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -10,15 +10,7 @@ if ($("section.sidebar").data("disable")) { // the corresponding menuItem is expanded (otherwise, Shiny will still // think they're hidden and not render them) $(document).on("click", ".treeview > a", function() { - - //$(this).next(".treeview-menu").trigger("shown"); - - var $ul = $(this).next(".treeview-menu"); - $ul.slideDown(500, function (e) { - $ul.addClass('menu-open'); - $ul.trigger('shown'); - //e.stop - }); + $(this).next(".treeview-menu").trigger("shown"); }); diff --git a/tests-manual/trigger-shown-sidebar.R b/tests-manual/trigger-shown-sidebar.R new file mode 100644 index 00000000..d7a45541 --- /dev/null +++ b/tests-manual/trigger-shown-sidebar.R @@ -0,0 +1,68 @@ +# Run this app to test that Shiny outputs that are initally hidden inside +# menuItems become visible ( trigger("shown) ) after we expand the respective +# menuItem. Currently, this doesn't look exactly pretty, but it does work. +# +# ------------------------------------------------------------------------------ +# +# Aside from being ugly, this app also shows another unfortunate side effect +# of the hacky code for the trigger("shown) of Shiny outputs. Which is that +# the ensureActivatedTab() function does not work on app startup if the only +# tabNamed things are initially hidden inside the menuItem parents. +# +# To see this, go to this app URL: +# http://127.0.0.1:4601/?_inputs_&sidebarCollapsed=%22false%22&sidebarItemExpanded=%22tabName%22&smenu=null +# You will see that even though `smenu` is "null" the `name` tab (menuSubItem) +# appears highlighted, as it should be if the ensureActivatedTab() function is +# doing its job. +# But if you do this "manually", even though you get the *SAME* bookmarked URL, +# you don't see the `name` tab highlighted...: +# 1) Go to http://127.0.0.1:4601/ +# 2) Click on the "Menu Item 1" to expand it +# 3) Check with abadonment and dismay that the URL looks the same as above, +# but that the `name` tab is *NOT* highlighted +# 4) Regain some faith and hope through the fact that at least the content +# ("This is the only content") always appears, so while something if off +# with ensureActivatedTab(), it's still doing its most important job, +# which is to display some/any content on the dashboardBody if there is +# a menuItem or menuSubItem anywhere in the dashboardSidebar with a +# tabName and a corresponding tabItem anywhere in the dashboardBody +# +# ------------------------------------------------------------------------------ +# +# This also shows that you can only bookmark the expanded menuItem *IF* at least +# one of its children is a menuSubItem *with* a tabName. + +library(shiny) +library(shinydashboard) + +options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 4601) + +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")) + ) + ), + 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 e4a9f1d26fd761ed4bd18b6dca3d14588b850991 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 01:09:42 +0000 Subject: [PATCH 39/43] better hiding/showing --- inst/AdminLTE/app.js | 6 ++++ inst/AdminLTE/app.js.map | 2 +- inst/AdminLTE/app.min.js | 2 +- inst/AdminLTE/app.min.js.map | 2 +- inst/shinydashboard.js | 32 +++++++++------------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/AdminLTE/README-shiny-mods.md | 11 ++++++++ srcjs/AdminLTE/app.js | 6 ++++ srcjs/input_binding_sidebarmenuExpanded.js | 12 +++----- srcjs/sidebar.js | 20 ++++++-------- tests-manual/sidebar-bookmarking.R | 2 +- 13 files changed, 56 insertions(+), 45 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":"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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 78b7d15f..6ac05771 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -66,15 +66,6 @@ if ($("section.sidebar").data("disable")) { $(".navbar > .sidebar-toggle").hide(); } - -// Trigger "shown" event for elements that only become visible after -// the corresponding menuItem is expanded (otherwise, Shiny will still -// think they're hidden and not render them) -$(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); -}); - - // 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) @@ -97,13 +88,20 @@ $(document).on("click", ".treeview > a", function() { var value; // If this menuItem was already open, then clicking on it again, - // should update the input binding back to null + // should update the input binding back to null. It should also + // trigger the "hidden" event, so Shiny doesn't worry about it + // while it's hidden. if ($(this).next().hasClass("menu-open")) { value = null; + $(this).next().trigger("hidden"); } else if ($(this).next().hasClass("treeview-menu")) { + // If this menuItem was closed, clicking on it should update the + // input binding back to the correct value. It should also trigger + // the "shown" event, so Shiny can interact with it. value = $(this).next().find('a').attr('data-value'); + $(this).next().trigger("shown"); } - inputBinding.setValue($obj, value); + inputBinding.setValue($obj, value, this); $obj.trigger('change'); }); @@ -274,17 +272,13 @@ $.extend(sidebarmenuExpandedInputBinding, { if ($open.length === 1) return $open.find('a').attr('data-value'); else return null; // no menuItem is expanded }, - setValue: function(el, value) { - var $ul; + setValue: function(el, value, clicked) { + clicked = (typeof clicked !== 'undefined') ? clicked : null; if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); - $ul = $firstChild.parent().parent('.treeview-menu'); - $ul.addClass('menu-open'); - $ul.show(); + $(document).trigger('click', $firstChild); } else { - $ul = $(el).find('li ul.menu-open'); - $ul.removeClass('menu-open'); - $ul.hide(); + $(document).trigger('click', clicked); } }, receiveMessage: function(el, data) { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 59ee84ee..b8b88609 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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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 }\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null. It should also\n // trigger the \"hidden\" event, so Shiny doesn't worry about it\n // while it's hidden.\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n $(this).next().trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n // If this menuItem was closed, clicking on it should update the\n // input binding back to the correct value. It should also trigger\n // the \"shown\" event, so Shiny can interact with it.\n value = $(this).next().find('a').attr('data-value');\n $(this).next().trigger(\"shown\");\n }\n inputBinding.setValue($obj, value, this);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value, clicked) {\n clicked = (typeof clicked !== 'undefined') ? clicked : null;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $(document).trigger('click', $firstChild);\n } else {\n $(document).trigger('click', clicked);\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 $(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 04e5bfbb..0fdd0dcc 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"))};b(),$("section.sidebar").data("disable")&&($("body").addClass("sidebar-collapse"),$(".navbar > .sidebar-toggle").hide()),$(document).on("click",".treeview > a",function(){$(this).next(".treeview-menu").trigger("shown")}),$(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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?a=null:$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value")),c.setValue(b,a),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b){var c;if(null!==b){var d=$('a[data-value="'+b+'"]');c=d.parent().parent(".treeview-menu"),c.addClass("menu-open"),c.show()}else c=$(a).find("li ul.menu-open"),c.removeClass("menu-open"),c.hide()},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?(a=null,$(this).next().trigger("hidden")):$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value"),$(this).next().trigger("shown")),c.setValue(b,a,this),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b,c){if(c="undefined"!=typeof c?c:null,null!==b){var d=$('a[data-value="'+b+'"]');$(document).trigger("click",d)}else $(document).trigger("click",c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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 31fc1bfc..89f04f2f 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","next","window","toggleValue","value","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","$ul","$firstChild","show"],"mappings":";;AAGAA,EAAE,WCOF,GAAIC,GAAsB,WAGxB,GAAIC,GAAYF,EAAA,mEAIhBE,GAAUC,IAAGH,EAAGI,OAAOC,OAAM,MAAOC,YAAW,SAG/C,IAAIC,GAAOP,EAAA,+BACPQ,EAAeD,EAAKE,KAAI,sBACA,oBAAjBD,KACTA,EAAaE,SAAQH,EAAOP,EAAEI,MAAMO,KAAI,eACxCJ,EAAKK,QAAO,WAIhBZ,GAAEa,UAAUC,GAAE,eAAiB,qCAChBb,EAKf,IAAIc,GAAqB,WACvB,GAAIb,GAAYF,EAAA,sCAIZgB,EAAYd,EAAUe,OAAM,4BAChC,OAAyB,KAAtBD,EAAWE,WACZF,GAAUG,IAAG,aAKTjB,EAAUG,OAAM,MAAOe,SAAQ,WACnClB,EAAUmB,QAAQF,IAAG,SAIzBJ,KC9CGf,EAAA,mBAAsBS,KAAI,aAC3BT,EAAA,QAAUsB,SAAQ,oBAClBtB,EAAA,6BAA+BuB,QAOjCvB,EAAEa,UAAUC,GAAE,QAAU,gBAAiB,WACvCd,EAAEI,MAAMoB,KAAI,kBAAmBZ,QAAO,WAKxCZ,EAAEa,UAAUC,GAAE,QAAU,kBAAmB,WAEzCd,EAAEyB,QAAQb,QAAO,SAGjB,IAAIL,GAAOP,EAAA,mCACPQ,EAAeD,EAAKE,KAAI,sBAC5BD,GAAakB,YAAWnB,GACxBA,EAAKK,QAAO,YAOdZ,EAAEa,UAAUC,GAAE,QAAU,gBAAiB,WACvC,GAEIa,GAFApB,EAAOP,EAAA,qCACPQ,EAAeD,EAAKE,KAAI,sBAKzBT,GAAGI,MAAMoB,OAAOJ,SAAQ,aACzBO,EAAQ,KACA3B,EAAGI,MAAMoB,OAAOJ,SAAQ,mBAChCO,EAAQ3B,EAAEI,MAAMoB,OAAOI,KAAI,KAAMjB,KAAI,eAEvCH,EAAaE,SAAQH,EAAOoB,GAC5BpB,EAAKK,QAAO,WCtCd,IAAIiB,GAAoB,GAAIC,OAAMC,aAClC/B,GAAEgC,OAAOH,GACPD,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,gCAEtBM,aAAc,SAASC,EAAIC,GACzBN,MAAMO,UAAUF,GAChB/B,KAAKkC,YAAYH,EAAIC,IAEvBG,YAAa,SAASJ,EAAI1B,GACxBqB,MAAMO,UAAUF,EAEhB,IAAIK,GACAC,IACJ,IAAa,OAAThC,EAAJ,CAE4B,gBAAX,GACf+B,EAAO/B,EACmB,gBAAX,KACf+B,EAAO/B,EAAK+B,KACZC,EAAehC,EAAKiC,KAGtB,IAAIC,GAAQ3C,EAAAA,EAAI4C,UAAUJ,GAG1BV,OAAMe,WAAUF,EAAOH,OAAQL,EAAIM,GAGnCN,EAAGW,UAAY,iDACAH,EAAMhC,KAAI,SAEzBmB,MAAMiB,iBAAiBZ,GACvBL,MAAMkB,QAAQb,GACdpB,QAGJe,MAAMmB,eAAeC,SAASrB,EACA,mCCvC9B,IAAIsB,GAAsB,GAAIrB,OAAMsB,YACpCpD,GAAEgC,OAAOmB,GACPvB,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,gCAEtByB,SAAU,SAASlB,GACjB,GAAIR,GAAQ3B,EAAEmC,GAAIxB,KAAI,aACtB,OAAc,SAAVgB,EAAyB,KACtBA,GAETjB,SAAU,SAASyB,EAAIR,GACrB,GAAI2B,GAAOlD,KACPmD,EAAUvD,EAAEmC,GAAI9B,OAAM,mBAAoBuB,KAAI,qBAAsB4B,SAAQ,IAChFD,GAAQE,KAAK,WACX,GAAIH,EAAKI,YAAW1D,EAAGI,SAAWuB,EAGhC,MAFA3B,GAAEI,MAAMe,IAAG,QACXnB,EAAEmC,GAAIxB,KAAI,aAAe2C,EAAKI,YAAW1D,EAAGI,SACrC,KAIbuD,eAAgB,SAASxB,EAAI1B,GACvBA,EAAKmD,eAAc,UACrBxD,KAAKM,SAASyB,EAAI1B,EAAKkB,QAE3BkC,UAAW,SAAS1B,EAAI2B,GAItB9D,EAAEmC,GAAIrB,GAAE,6BAA+B,WACrCgD,OAGJC,YAAa,SAAS5B,GACpBnC,EAAEmC,GAAI6B,IAAG,yBAEXN,YAAa,SAASO,GACpB,MAAOA,GAAOtD,KAAI,iBAItBmB,MAAMoC,cAAchB,SAASC,EAAqB,8BCzClD,IAAIgB,GAA+B,GAAIrC,OAAMsB,YAC7CpD,GAAEgC,OAAOmC,GACPvC,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,iBAAkBP,SAExC+C,MAAO,SAASjC,GACd,MAAO,oBAETkB,SAAU,SAASlB,GACjB,MAAOnC,GAAEmC,GAAIxB,KAAI,mBAEnBD,SAAU,SAASyB,EAAIR,GACrB3B,EAAEmC,GAAIxB,KAAI,iBAAmBgB,IAE/BD,YAAa,SAASS,GACpB,GAAIkC,GAAUjE,KAAKiD,SAASlB,GACxBmC,EAAsB,SAAZD,EAAsB,QAAU,MAC9CjE,MAAKM,SAASyB,EAAImC,IAEpBX,eAAgB,SAASxB,EAAI1B,GACvBA,EAAKmD,eAAc,UACrBxD,KAAKM,SAASyB,EAAI1B,EAAKkB,QAE3BkC,UAAW,SAAS1B,EAAI2B,GACtB9D,EAAEmC,GAAIrB,GAAE,sCAAwC,WAC9CgD,OAGJC,YAAa,SAAS5B,GACpBnC,EAAEmC,GAAI6B,IAAG,oCAGblC,MAAMoC,cAAchB,SAASiB,EAC3B,8CClCF,IAAII,GAAkC,GAAIzC,OAAMsB,YAChDpD,GAAEgC,OAAOuC,GACP3C,KAAM,SAASK,GACb,MAAOjC,GAAEiC,GAAOL,KAAI,oBAEtBwC,MAAO,SAASjC,GACd,MAAO,uBAETkB,SAAU,SAASlB,GACjB,GAAIqC,GAAQxE,EAAEmC,GAAIP,KAAI,kBACtB,OAAqB,KAAlB4C,EAAOtD,OAAqBsD,EAAM5C,KAAI,KAAMjB,KAAI,cACvC,MAEdD,SAAU,SAASyB,EAAIR,GACrB,GAAI8C,EACJ,IAAc,OAAV9C,EAAgB,CAClB,GAAI+C,GAAc1E,EAAA,iBAAqB2B,EAAQ,KAC/C8C,GAAMC,EAAYrE,SAASA,OAAM,kBACjCoE,EAAInD,SAAQ,aACZmD,EAAIE,WAEJF,GAAMzE,EAAEmC,GAAIP,KAAI,mBAChB6C,EAAInE,YAAW,aACfmE,EAAIlD,QAGRoC,eAAgB,SAASxB,EAAI1B,GACvBA,EAAKmD,eAAc,UACrBxD,KAAKM,SAASyB,EAAI1B,EAAKkB,QAE3BkC,UAAW,SAAS1B,EAAI2B,GACtB9D,EAAEmC,GAAIrB,GAAE,yCAA2C,WACjDgD,OAGJC,YAAa,SAAS5B,GACpBnC,EAAEmC,GAAI6B,IAAG,uCAGblC,MAAMoC,cAAchB,SAASqB,EAC3B","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 }\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\n// Trigger \"shown\" event for elements that only become visible after\n// the corresponding menuItem is expanded (otherwise, Shiny will still\n// think they're hidden and not render them)\n$(document).on(\"click\", \".treeview > a\", function() {\n $(this).next(\".treeview-menu\").trigger(\"shown\");\n});\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n value = $(this).next().find('a').attr('data-value');\n }\n inputBinding.setValue($obj, value);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value) {\n var $ul;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $ul = $firstChild.parent().parent('.treeview-menu');\n $ul.addClass('menu-open');\n $ul.show();\n } else {\n $ul = $(el).find('li ul.menu-open');\n $ul.removeClass('menu-open');\n $ul.hide();\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 $(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","value","next","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","clicked","$firstChild"],"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 }\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null. It should also\n // trigger the \"hidden\" event, so Shiny doesn't worry about it\n // while it's hidden.\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n $(this).next().trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n // If this menuItem was closed, clicking on it should update the\n // input binding back to the correct value. It should also trigger\n // the \"shown\" event, so Shiny can interact with it.\n value = $(this).next().find('a').attr('data-value');\n $(this).next().trigger(\"shown\");\n }\n inputBinding.setValue($obj, value, this);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value, clicked) {\n clicked = (typeof clicked !== 'undefined') ? clicked : null;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $(document).trigger('click', $firstChild);\n } else {\n $(document).trigger('click', clicked);\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 $(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/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 diff --git a/srcjs/input_binding_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index 7942d07a..5b4e50eb 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -16,17 +16,13 @@ $.extend(sidebarmenuExpandedInputBinding, { if ($open.length === 1) return $open.find('a').attr('data-value'); else return null; // no menuItem is expanded }, - setValue: function(el, value) { - var $ul; + setValue: function(el, value, clicked) { + clicked = (typeof clicked !== 'undefined') ? clicked : null; if (value !== null) { var $firstChild = $('a[data-value="' + value + '"]'); - $ul = $firstChild.parent().parent('.treeview-menu'); - $ul.addClass('menu-open'); - $ul.show(); + $(document).trigger('click', $firstChild); } else { - $ul = $(el).find('li ul.menu-open'); - $ul.removeClass('menu-open'); - $ul.hide(); + $(document).trigger('click', clicked); } }, receiveMessage: function(el, data) { diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index 968a5f24..2d99ab9c 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -5,15 +5,6 @@ if ($("section.sidebar").data("disable")) { $(".navbar > .sidebar-toggle").hide(); } - -// Trigger "shown" event for elements that only become visible after -// the corresponding menuItem is expanded (otherwise, Shiny will still -// think they're hidden and not render them) -$(document).on("click", ".treeview > a", function() { - $(this).next(".treeview-menu").trigger("shown"); -}); - - // 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) @@ -36,12 +27,19 @@ $(document).on("click", ".treeview > a", function() { var value; // If this menuItem was already open, then clicking on it again, - // should update the input binding back to null + // should update the input binding back to null. It should also + // trigger the "hidden" event, so Shiny doesn't worry about it + // while it's hidden. if ($(this).next().hasClass("menu-open")) { value = null; + $(this).next().trigger("hidden"); } else if ($(this).next().hasClass("treeview-menu")) { + // If this menuItem was closed, clicking on it should update the + // input binding back to the correct value. It should also trigger + // the "shown" event, so Shiny can interact with it. value = $(this).next().find('a').attr('data-value'); + $(this).next().trigger("shown"); } - inputBinding.setValue($obj, value); + inputBinding.setValue($obj, value, this); $obj.trigger('change'); }); diff --git a/tests-manual/sidebar-bookmarking.R b/tests-manual/sidebar-bookmarking.R index aa930215..d629146e 100644 --- a/tests-manual/sidebar-bookmarking.R +++ b/tests-manual/sidebar-bookmarking.R @@ -14,7 +14,7 @@ ui <- function(request) { dashboardSidebar( uiOutput("sidebarControls"), sidebarMenu(id = "smenu", - menuItem("Frontpage", tabName = "front"), + menuItem(strong("Frontpage"), tabName = "front"), menuItem("Models", menuSubItem("Linear model", "models1"), menuSubItem("Logistic regression", "models2") From 201b767686146559586b50f087df98ce65c1e231 Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 02:22:21 +0000 Subject: [PATCH 40/43] added expandedName and startExpanded params to menuItem() --- R/dashboardSidebar.R | 22 ++++++++--- inst/shinydashboard.js | 45 ++++++---------------- inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/input_binding_sidebarmenuExpanded.js | 17 +------- srcjs/sidebar.js | 28 +++++--------- 7 files changed, 41 insertions(+), 77 deletions(-) diff --git a/R/dashboardSidebar.R b/R/dashboardSidebar.R index c83c5b2a..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 @@ -354,7 +361,9 @@ sidebarMenu <- function(..., id = NULL, .list = NULL) { #' @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") @@ -414,12 +423,12 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr # 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. - dataExpanded <- shiny::restoreInput(id = "sidebarItemExpanded", default = "") %OR% "" + default <- if (startExpanded) expandedName else "" + dataExpanded <- shiny::restoreInput(id = "sidebarItemExpanded", default) %OR% "" - # If `dataExpanded` is not the empty string, we need to check that there is a subMenuItem - # in the list of `subItems` that actually has a `data-value` attribute equal to `dataExpanded` - isExpanded <- nzchar(dataExpanded) && - any(unlist(lapply(subItems, findAttribute, "data-value", dataExpanded))) + # 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, @@ -433,6 +442,7 @@ menuItem <- function(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "gr 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 6ac05771..52287c9e 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -83,26 +83,16 @@ $(document).on("click", ".sidebar-toggle", function() { // tabName of the fist subMenuItem inside the menuItem that is currently // expanded) $(document).on("click", ".treeview > a", function() { - var $obj = $('section.sidebar.shiny-bound-input'); - var inputBinding = $obj.data('shiny-input-binding'); - var value; - + var $menu = $(this).next(); // If this menuItem was already open, then clicking on it again, - // should update the input binding back to null. It should also - // trigger the "hidden" event, so Shiny doesn't worry about it - // while it's hidden. - if ($(this).next().hasClass("menu-open")) { - value = null; - $(this).next().trigger("hidden"); - } else if ($(this).next().hasClass("treeview-menu")) { - // If this menuItem was closed, clicking on it should update the - // input binding back to the correct value. It should also trigger - // the "shown" event, so Shiny can interact with it. - value = $(this).next().find('a').attr('data-value'); - $(this).next().trigger("shown"); - } - inputBinding.setValue($obj, value, this); - $obj.trigger('change'); + // 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); }); //--------------------------------------------------------------------- @@ -269,21 +259,8 @@ $.extend(sidebarmenuExpandedInputBinding, { }, getValue: function(el) { var $open = $(el).find('li ul.menu-open'); - if ($open.length === 1) return $open.find('a').attr('data-value'); - else return null; // no menuItem is expanded - }, - setValue: function(el, value, clicked) { - clicked = (typeof clicked !== 'undefined') ? clicked : null; - if (value !== null) { - var $firstChild = $('a[data-value="' + value + '"]'); - $(document).trigger('click', $firstChild); - } else { - $(document).trigger('click', clicked); - } - }, - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); + if ($open.length === 1) return $open.attr('data-expanded'); + else return null; }, subscribe: function(el, callback) { $(el).on('change.sidebarmenuExpandedInputBinding', function() { diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index b8b88609..2d48870f 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 }\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null. It should also\n // trigger the \"hidden\" event, so Shiny doesn't worry about it\n // while it's hidden.\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n $(this).next().trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n // If this menuItem was closed, clicking on it should update the\n // input binding back to the correct value. It should also trigger\n // the \"shown\" event, so Shiny can interact with it.\n value = $(this).next().find('a').attr('data-value');\n $(this).next().trigger(\"shown\");\n }\n inputBinding.setValue($obj, value, this);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value, clicked) {\n clicked = (typeof clicked !== 'undefined') ? clicked : null;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $(document).trigger('click', $firstChild);\n } else {\n $(document).trigger('click', clicked);\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 $(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":"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,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;AAC3E,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;AAC1E,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;AACrE,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;AAC3E,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;AAC5E,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;AACxE,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;AAChE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC;AAC5D,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;AACrC;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI;AACnD,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,GAAG;AAC5D;AACA,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB;AAC9C,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,0BAA0B,GAAG;AAC9C,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;AACtD,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5C,IAAI,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI;AAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG;AAC3B,EAAE,CAAC;AACH,EAAE;AACF;AACA,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;AACpE,eAAe,mBAAmB,EAAE;AACpC;AACA,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;AAC7E,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;AACxE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;AAC1D;AACA,EAAE,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;AAC5E,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5B,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK;AAChE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG;AAC1B,IAAI,MAAM,CAAC;AACX,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACrD,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG;AAClC,EAAE,CAAC;AACH,EAAE;AACF;AACA,kBAAkB,GAAG;;ACnDrB,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE;AACnC;AACA,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ;AACjE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;AACtC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3C,EAAE,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG;AACzC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG;AACxC,CAAC;AACD;AACA,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;AAC1D,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AACtE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;AAC9B;AACA,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AACxD,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;AAClD,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;AACtD,EAAE,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE;AACjC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG;AACzB,GAAG;AACH;AACA,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC3E,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACrE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS;AACxE,EAAE,CAAC,QAAQ,CAAC;AACZ,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrD,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG;AAC7B,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AAClE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACpE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG;AAC3D,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG;AACnE;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS;AACvE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;AACpD,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;AAC1D,GAAG;;ACrCH,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,EAAE;AAC/C;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,iBAAiB;AACpB,EAAE,CAAC,kEAAkE;AACrE,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;AAC3E,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;AAC7E,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG;AAClD,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG;AACxD,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;AACxB;AACA,IAAI,GAAG,CAAC,IAAI,CAAC;AACb,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,MAAM,MAAM,CAAC;AACb,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClB,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,GAAG;AACrC;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU;AACjE,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE;AACrD;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AACpE,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;AACvC;AACA,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE;AAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;AACtB,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;AAChD,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAChD,8BAA8B,CAAC,cAAc,CAAC,iBAAiB,GAAG;;AChDlE,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,EAAE;AACjD;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,mBAAmB;AACtB,EAAE,CAAC,kEAAkE;AACrE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrE,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;AAC7D,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AACnD,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,0BAA0B,GAAG;AACxD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG;AACzC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC,GAAG;AAC1F,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;AACtE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG;AAC5B,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI;AAC5D,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;AAC5E,IAAI,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;AAC7E,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACnB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG;AACjB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,mBAAmB,GAAG;AACtC,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG;AACrC,EAAE,CAAC;AACH,GAAG;AACH;AACA,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG;;AClDjF,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,8BAA8B,CAAC,EAAE;AAC1D;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,4BAA4B;AAC/B,EAAE,CAAC,kEAAkE;AACrE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;AACjE,EAAE,CAAC,EAAE,CAAC,SAAS;AACf,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AAC5D,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG;AAClD,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,GAAG;AACxC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG;AACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChE,MAAM,QAAQ,GAAG;AACjB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,4BAA4B,GAAG;AAC/C,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,4BAA4B,CAAC;AAC1D,EAAE,CAAC,cAAc,CAAC,4BAA4B,GAAG;;AC1CjD,uEAAuE;AACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,iCAAiC,CAAC,EAAE;AAC7D;AACA,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB;AACA,EAAE,CAAC,+BAA+B;AAClC,EAAE,CAAC,kEAAkE;AACrE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ;AAC1D,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;AAC/D,EAAE,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG;AAC5C,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,CAAC,CAAC,mBAAmB,EAAE;AACjC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG;AAC9C,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG;AAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,+BAA+B,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnE,MAAM,QAAQ,GAAG;AACjB,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,+BAA+B,GAAG;AAClD,EAAE,CAAC;AACH,GAAG;AACH,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,+BAA+B,CAAC;AAC7D,EAAE,CAAC,cAAc,CAAC,+BAA+B,GAAG;;AC/BpD,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.\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 }\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 0fdd0dcc..869d5c03 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"))};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,b=$("section.sidebar.shiny-bound-input"),c=b.data("shiny-input-binding");$(this).next().hasClass("menu-open")?(a=null,$(this).next().trigger("hidden")):$(this).next().hasClass("treeview-menu")&&(a=$(this).next().find("a").attr("data-value"),$(this).next().trigger("shown")),c.setValue(b,a,this),b.trigger("change")});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.find("a").attr("data-value"):null},setValue:function(a,b,c){if(c="undefined"!=typeof c?c:null,null!==b){var d=$('a[data-value="'+b+'"]');$(document).trigger("click",d)}else $(document).trigger("click",c)},receiveMessage:function(a,b){b.hasOwnProperty("value")&&this.setValue(a,b.value)},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"))};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 89f04f2f..455a49fc 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","value","next","find","menuOutputBinding","Shiny","OutputBinding","extend","scope","onValueError","el","err","unbindAll","renderError","renderValue","html","dependencies","deps","$html","parseHTML","renderHtml","className","initializeInputs","bindAll","outputBindings","register","tabItemInputBinding","InputBinding","getValue","self","anchors","children","each","_getTabName","receiveMessage","hasOwnProperty","subscribe","callback","unsubscribe","off","anchor","inputBindings","sidebarCollapsedInputBinding","getId","current","newVal","sidebarmenuExpandedInputBinding","$open","clicked","$firstChild"],"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 }\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 $obj = $('section.sidebar.shiny-bound-input');\n var inputBinding = $obj.data('shiny-input-binding');\n var value;\n\n // If this menuItem was already open, then clicking on it again,\n // should update the input binding back to null. It should also\n // trigger the \"hidden\" event, so Shiny doesn't worry about it\n // while it's hidden.\n if ($(this).next().hasClass(\"menu-open\")) {\n value = null;\n $(this).next().trigger(\"hidden\");\n } else if ($(this).next().hasClass(\"treeview-menu\")) {\n // If this menuItem was closed, clicking on it should update the\n // input binding back to the correct value. It should also trigger\n // the \"shown\" event, so Shiny can interact with it.\n value = $(this).next().find('a').attr('data-value');\n $(this).next().trigger(\"shown\");\n }\n inputBinding.setValue($obj, value, this);\n $obj.trigger('change');\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.find('a').attr('data-value');\n else return null; // no menuItem is expanded\n },\n setValue: function(el, value, clicked) {\n clicked = (typeof clicked !== 'undefined') ? clicked : null;\n if (value !== null) {\n var $firstChild = $('a[data-value=\"' + value + '\"]');\n $(document).trigger('click', $firstChild);\n } else {\n $(document).trigger('click', clicked);\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 $(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 }\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/srcjs/input_binding_sidebarmenuExpanded.js b/srcjs/input_binding_sidebarmenuExpanded.js index 5b4e50eb..edaaf51d 100644 --- a/srcjs/input_binding_sidebarmenuExpanded.js +++ b/srcjs/input_binding_sidebarmenuExpanded.js @@ -13,21 +13,8 @@ $.extend(sidebarmenuExpandedInputBinding, { }, getValue: function(el) { var $open = $(el).find('li ul.menu-open'); - if ($open.length === 1) return $open.find('a').attr('data-value'); - else return null; // no menuItem is expanded - }, - setValue: function(el, value, clicked) { - clicked = (typeof clicked !== 'undefined') ? clicked : null; - if (value !== null) { - var $firstChild = $('a[data-value="' + value + '"]'); - $(document).trigger('click', $firstChild); - } else { - $(document).trigger('click', clicked); - } - }, - receiveMessage: function(el, data) { - if (data.hasOwnProperty('value')) - this.setValue(el, data.value); + if ($open.length === 1) return $open.attr('data-expanded'); + else return null; }, subscribe: function(el, callback) { $(el).on('change.sidebarmenuExpandedInputBinding', function() { diff --git a/srcjs/sidebar.js b/srcjs/sidebar.js index 2d99ab9c..306e9716 100644 --- a/srcjs/sidebar.js +++ b/srcjs/sidebar.js @@ -22,24 +22,14 @@ $(document).on("click", ".sidebar-toggle", function() { // tabName of the fist subMenuItem inside the menuItem that is currently // expanded) $(document).on("click", ".treeview > a", function() { - var $obj = $('section.sidebar.shiny-bound-input'); - var inputBinding = $obj.data('shiny-input-binding'); - var value; - + var $menu = $(this).next(); // If this menuItem was already open, then clicking on it again, - // should update the input binding back to null. It should also - // trigger the "hidden" event, so Shiny doesn't worry about it - // while it's hidden. - if ($(this).next().hasClass("menu-open")) { - value = null; - $(this).next().trigger("hidden"); - } else if ($(this).next().hasClass("treeview-menu")) { - // If this menuItem was closed, clicking on it should update the - // input binding back to the correct value. It should also trigger - // the "shown" event, so Shiny can interact with it. - value = $(this).next().find('a').attr('data-value'); - $(this).next().trigger("shown"); - } - inputBinding.setValue($obj, value, this); - $obj.trigger('change'); + // 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); }); From 4c7056d04c635d4da8d0c17b44d52473598c62da Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 02:24:29 +0000 Subject: [PATCH 41/43] update documentation using new roxygen version (and add the new params to sidebarMenu.Rd) --- 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 | 16 +++++++++++++--- 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, 16 insertions(+), 35 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 80ae66df..e11fad8f 100644 --- a/man/dropdownMenu.Rd +++ b/man/dropdownMenu.Rd @@ -35,4 +35,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..cb85f30e 100644 --- a/man/sidebarMenu.Rd +++ b/man/sidebarMenu.Rd @@ -1,15 +1,17 @@ % 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) 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 @@ -82,4 +93,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 85e310fe01bf8d0b135e6d228877ec13bbfcd30e Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 03:12:40 +0000 Subject: [PATCH 42/43] make sure the inputBinding for the selected tab gets activated for the first tab, if no other explicit choice is made --- inst/shinydashboard.js | 2 ++ inst/shinydashboard.js.map | 2 +- inst/shinydashboard.min.js | 2 +- inst/shinydashboard.min.js.map | 2 +- srcjs/tabs.js | 2 ++ 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/inst/shinydashboard.js b/inst/shinydashboard.js index 52287c9e..8bd4eec9 100644 --- a/inst/shinydashboard.js +++ b/inst/shinydashboard.js @@ -51,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")); } }; diff --git a/inst/shinydashboard.js.map b/inst/shinydashboard.js.map index 2d48870f..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/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 }\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\");\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 869d5c03..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=$(".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"))};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 $(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 455a49fc..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","../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 }\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\");\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/srcjs/tabs.js b/srcjs/tabs.js index 5807f9e0..4b6570b0 100644 --- a/srcjs/tabs.js +++ b/srcjs/tabs.js @@ -43,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")); } }; From 1b5b56b1a3e6150f1ecff14466961c7f99cb0f2b Mon Sep 17 00:00:00 2001 From: Barbara Borges Ribeiro Date: Thu, 23 Mar 2017 03:23:49 +0000 Subject: [PATCH 43/43] updated tests --- tests-manual/trigger-shown-sidebar.R | 37 ++---------------- tests-manual/updateTabItems.R | 56 ++++++++++++++-------------- 2 files changed, 32 insertions(+), 61 deletions(-) diff --git a/tests-manual/trigger-shown-sidebar.R b/tests-manual/trigger-shown-sidebar.R index d7a45541..f7a2c24d 100644 --- a/tests-manual/trigger-shown-sidebar.R +++ b/tests-manual/trigger-shown-sidebar.R @@ -1,41 +1,11 @@ # Run this app to test that Shiny outputs that are initally hidden inside # menuItems become visible ( trigger("shown) ) after we expand the respective -# menuItem. Currently, this doesn't look exactly pretty, but it does work. -# -# ------------------------------------------------------------------------------ -# -# Aside from being ugly, this app also shows another unfortunate side effect -# of the hacky code for the trigger("shown) of Shiny outputs. Which is that -# the ensureActivatedTab() function does not work on app startup if the only -# tabNamed things are initially hidden inside the menuItem parents. -# -# To see this, go to this app URL: -# http://127.0.0.1:4601/?_inputs_&sidebarCollapsed=%22false%22&sidebarItemExpanded=%22tabName%22&smenu=null -# You will see that even though `smenu` is "null" the `name` tab (menuSubItem) -# appears highlighted, as it should be if the ensureActivatedTab() function is -# doing its job. -# But if you do this "manually", even though you get the *SAME* bookmarked URL, -# you don't see the `name` tab highlighted...: -# 1) Go to http://127.0.0.1:4601/ -# 2) Click on the "Menu Item 1" to expand it -# 3) Check with abadonment and dismay that the URL looks the same as above, -# but that the `name` tab is *NOT* highlighted -# 4) Regain some faith and hope through the fact that at least the content -# ("This is the only content") always appears, so while something if off -# with ensureActivatedTab(), it's still doing its most important job, -# which is to display some/any content on the dashboardBody if there is -# a menuItem or menuSubItem anywhere in the dashboardSidebar with a -# tabName and a corresponding tabItem anywhere in the dashboardBody -# -# ------------------------------------------------------------------------------ -# -# This also shows that you can only bookmark the expanded menuItem *IF* at least -# one of its children is a menuSubItem *with* a tabName. +# menuItem. library(shiny) library(shinydashboard) -options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 4601) +options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 9000) ui <- function(req) { dashboardPage( @@ -43,7 +13,8 @@ ui <- function(req) { dashboardSidebar( sidebarMenu(id = "smenu", menuItem("Menu Item 1", tabName = "tab1", "text1", menuSubItem("name", tabName = "tabName")), - menuItem("Menu Item 2", tabName = "tab2", textOutput("text2")) + menuItem("Menu Item 2", tabName = "tab2", textOutput("text2"), startExpanded = FALSE, + expandedName = "expanded") ) ), dashboardBody( diff --git a/tests-manual/updateTabItems.R b/tests-manual/updateTabItems.R index f7e03dde..301e31df 100644 --- a/tests-manual/updateTabItems.R +++ b/tests-manual/updateTabItems.R @@ -1,36 +1,36 @@ ## This creates dashboard with a sidebar. The sidebar has a button which allows to switch between different ## panels (tabs) within the same dashboard - ui <- dashboardPage( - dashboardHeader(title = "Simple tabs"), - dashboardSidebar( - sidebarMenu( - id = "tabs", - menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")), - menuItem("Widgets", tabName = "widgets", icon = icon("th")) - ), - actionButton('switchtab', 'Switch tab') +library(shinydashboard) +library(shiny) + +options(shiny.launch.browser=F, shiny.minified=F, shiny.port = 9000) + +ui <- dashboardPage( + dashboardHeader(title = "Simple tabs"), + dashboardSidebar( + sidebarMenu(id = "tabs", + menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")), + menuItem("Widgets", tabName = "widgets", icon = icon("th")) ), - dashboardBody( - tabItems( - tabItem(tabName = "dashboard", - h2("Dashboard tab content") - ), - tabItem(tabName = "widgets", - h2("Widgets tab content") - ) - ) + actionButton('switchtab', 'Switch tab') + ), + dashboardBody( + tabItems( + tabItem(tabName = "dashboard", h2("Dashboard tab content")), + tabItem(tabName = "widgets", h2("Widgets tab content")) ) ) +) - server <- function(input, output, session) { - observeEvent(input$switchtab, { - newtab <- switch(input$tabs, - "dashboard" = "widgets", - "widgets" = "dashboard" - ) - updateTabItems(session, "tabs", newtab) - }) - } +server <- function(input, output, session) { + observeEvent(input$switchtab, { + newtab <- switch(input$tabs, + "dashboard" = "widgets", + "widgets" = "dashboard" + ) + updateTabItems(session, "tabs", newtab) + }) +} - shinyApp(ui, server) +shinyApp(ui, server)