From b3a421c45daccb524863658ea7b5c921877e960c Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 10:21:20 +0200 Subject: [PATCH 01/15] Create selectizeTooltipAndPopover.js Add new features, that add specific popovers to selectize lists. --- R/selectizeTooltipAndPopover.js | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 R/selectizeTooltipAndPopover.js diff --git a/R/selectizeTooltipAndPopover.js b/R/selectizeTooltipAndPopover.js new file mode 100644 index 0000000..83a8947 --- /dev/null +++ b/R/selectizeTooltipAndPopover.js @@ -0,0 +1,40 @@ +# Function for UI-sided creation of tooltips and popovers for select-/selectizeInput. +# Extends the bsTooltip/bsPopover by an additional input "choice", which lets the user +# define the selectize choice, which should get a tooltip. +# The selection is more dynamic, dealing with the many mutations on the selectize, +# while still maintaining the right popover on the right elements. + +selectizeTooltip <- function(id, choice, title, placement = "bottom", trigger = "hover", options = NULL){ + + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + buildSelectizeTooltipOrPopover(options, "tooltip", id, choice +} + +selectizePopover <- function(id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL){ + + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + buildSelectizeTooltipOrPopover(options, "popover", id, choice) +} + +buildSelectizeTooltipOrPopover <- function(options, type, id, choice){ + + options = paste0("{'", paste(names(options), options, sep = "': '", collapse = "', '"), "'}") + + bsTag <- shiny::tags$script(shiny::HTML(paste0(" + $(document).ready(function() { + var opts = $.extend(", options, ", {html: true}); + var selectizeParent = document.getElementById('", id, "').parentElement; + var observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation){ + $(mutation.addedNodes).filter('div').filter(function(){return(this.getAttribute('data-value') == '", choice, "');}).each(function() { + $(this).", type, "('destroy'); + $(this).", type, "(opts); + }); + }); + }); + observer.observe(selectizeParent, { subtree: true, childList: true }); + }); + "))) + + htmltools::attachDependencies(bsTag, shinyBSDep) +} From 52e465f4419b863569ba187284151e39de0d2e56 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 10:35:11 +0200 Subject: [PATCH 02/15] Create groupInputTooltipOrPopover.js Add new features, that add specific popovers to group inputs. --- R/groupInputTooltipOrPopover.js | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 R/groupInputTooltipOrPopover.js diff --git a/R/groupInputTooltipOrPopover.js b/R/groupInputTooltipOrPopover.js new file mode 100644 index 0000000..71c5dee --- /dev/null +++ b/R/groupInputTooltipOrPopover.js @@ -0,0 +1,39 @@ +# Function for UI-sided creation of tooltips and popovers for groupInputs, +# that is checkboxGroupInput and radioButtons. +# Extends the bsTooltip/bsPopover by an additional input "choice", which lets the user +# define the input choice, which should get a tooltip. +# The selection is made a bit finer, filtering by values to get the right element. + + +groupInputTooltip <- function(id, choice, title, placement = "bottom", trigger = "hover", options = NULL){ + + options = shinyBS:::buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + buildGroupInputTooltipOrPopover(options, "tooltip", id, choice) +} + +groupInputPopover <- function(id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL){ + + options = shinyBS:::buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + buildGroupInputTooltipOrPopover(options, "popover", id, choice) +} + +buildGroupInputTooltipOrPopover <- function(options, type, id, choice){ + + options = paste0("{'", paste(names(options), options, sep = "': '", collapse = "', '"), "'}") + + bsTag <- shiny::tags$script(shiny::HTML(paste0(" + $(document).ready(function() { + setTimeout(function() { + $('input', $('#", id, "')).each(function(){ + if(this.getAttribute('value') == '", choice, "') { + opts = $.extend(", options, ", {html: true}); + $(this.parentElement).", type, "('destroy'); + $(this.parentElement).", type, "(opts); + } + }) + }, 500) + }); + "))) + + htmltools::attachDependencies(bsTag, shinyBS:::shinyBSDep) +} From 2cd360ce3f95234748024e857f3924f1f8da69d8 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 10:41:59 +0200 Subject: [PATCH 03/15] Rename selectizeTooltipAndPopover.js to selectizeTooltipAndPopover.R --- R/{selectizeTooltipAndPopover.js => selectizeTooltipAndPopover.R} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename R/{selectizeTooltipAndPopover.js => selectizeTooltipAndPopover.R} (100%) diff --git a/R/selectizeTooltipAndPopover.js b/R/selectizeTooltipAndPopover.R similarity index 100% rename from R/selectizeTooltipAndPopover.js rename to R/selectizeTooltipAndPopover.R From c12799f6d4bbab99b99c446c46259ad5f0982589 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 10:56:20 +0200 Subject: [PATCH 04/15] Update selectizeTooltipAndPopover.R Added server side tooltip/popover creation. --- R/selectizeTooltipAndPopover.R | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/R/selectizeTooltipAndPopover.R b/R/selectizeTooltipAndPopover.R index 83a8947..4d1a680 100644 --- a/R/selectizeTooltipAndPopover.R +++ b/R/selectizeTooltipAndPopover.R @@ -16,6 +16,18 @@ selectizePopover <- function(id, choice, title, content, placement = "bottom", t buildSelectizeTooltipOrPopover(options, "popover", id, choice) } +addSelectizeTooltip <- function(session, id, choice, title, placement = "bottom", trigger = "hover", options = NULL) { + + options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + createSelectizeTooltipOrPopoverOnServer(session, id, choice, "tooltip", options) +} + +addSelectizePopover <- function(session, id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL) { + + options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + createTooltipOrPopoverOnServer(session, id, choice, "popover", options) +} + buildSelectizeTooltipOrPopover <- function(options, type, id, choice){ options = paste0("{'", paste(names(options), options, sep = "': '", collapse = "', '"), "'}") @@ -38,3 +50,9 @@ buildSelectizeTooltipOrPopover <- function(options, type, id, choice){ htmltools::attachDependencies(bsTag, shinyBSDep) } + +createSelectizeTooltipOrPopoverOnServer <- function(session, id, choice, type, options){ + + data <- list(action = "add", type = type, id = id, choice = choice, options = options) + session$sendCustomMessage(type = "updateSelectizeTooltipOrPopover", data) +} From c3f05a17f874778b2c8894d3465d6e14c758e3f7 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 10:56:38 +0200 Subject: [PATCH 05/15] Rename groupInputTooltipOrPopover.js to groupInputTooltipOrPopover.R --- R/{groupInputTooltipOrPopover.js => groupInputTooltipOrPopover.R} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename R/{groupInputTooltipOrPopover.js => groupInputTooltipOrPopover.R} (100%) diff --git a/R/groupInputTooltipOrPopover.js b/R/groupInputTooltipOrPopover.R similarity index 100% rename from R/groupInputTooltipOrPopover.js rename to R/groupInputTooltipOrPopover.R From 994e1f244da85608fbe56086462fea67051b3c6d Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 11:02:51 +0200 Subject: [PATCH 06/15] Update selectizeTooltipAndPopover.R --- R/selectizeTooltipAndPopover.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/selectizeTooltipAndPopover.R b/R/selectizeTooltipAndPopover.R index 4d1a680..bd4292f 100644 --- a/R/selectizeTooltipAndPopover.R +++ b/R/selectizeTooltipAndPopover.R @@ -25,7 +25,7 @@ addSelectizeTooltip <- function(session, id, choice, title, placement = "bottom" addSelectizePopover <- function(session, id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL) { options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) - createTooltipOrPopoverOnServer(session, id, choice, "popover", options) + createSelectizeTooltipOrPopoverOnServer(session, id, choice, "popover", options) } buildSelectizeTooltipOrPopover <- function(options, type, id, choice){ From 93d5aa9b82b4e5e7c2db1583959561cb539ef786 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 11:06:20 +0200 Subject: [PATCH 07/15] Update selectizeTooltipAndPopover.R Added remove popover/tooltip functionality. --- R/selectizeTooltipAndPopover.R | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/R/selectizeTooltipAndPopover.R b/R/selectizeTooltipAndPopover.R index bd4292f..6371ac5 100644 --- a/R/selectizeTooltipAndPopover.R +++ b/R/selectizeTooltipAndPopover.R @@ -28,6 +28,16 @@ addSelectizePopover <- function(session, id, choice, title, content, placement = createSelectizeTooltipOrPopoverOnServer(session, id, choice, "popover", options) } +removeSelectizeTooltip <- function(session, id, choice) { + + session$sendCustomMessage(type="updateSelectizeTooltipOrPopover", list(action = "remove", type = "tooltip", id = id, choice = choice)) +} + +removeSelectizePopover <- function(session, id, choice) { + + session$sendCustomMessage(type="updateSelectizeTooltipOrPopover", list(action = "remove", type = "popover", id = id, choice = choice)) +} + buildSelectizeTooltipOrPopover <- function(options, type, id, choice){ options = paste0("{'", paste(names(options), options, sep = "': '", collapse = "', '"), "'}") From f547eaf6f73e084c7246cdd11c729b596a0cb849 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 11:13:26 +0200 Subject: [PATCH 08/15] Update shinyBS.js Added updateSelectize custom message handler for server sided creation of popovers and tooltips on selectize Elements. --- inst/www/shinyBS.js | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/inst/www/shinyBS.js b/inst/www/shinyBS.js index 4833fa2..c311278 100644 --- a/inst/www/shinyBS.js +++ b/inst/www/shinyBS.js @@ -243,6 +243,39 @@ Shiny.addCustomMessageHandler("updateTooltipOrPopover", function(data) { } }) +Shiny.addCustomMessageHandler("updateSelectizeTooltipOrPopover", function(data) { + + var selectizeParent = document.getElementById(data.id).parentElement; + + if(data.action == "add") { + var opts = $.extend(data.options, {html: true}); + + var observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation){ + $(mutation.addedNodes).filter('div').filter(function(){return(this.getAttribute('data-value') == data.choice);}).each(function() { + if(data.type == "tooltip"){ + $(this).tooltip('destroy'); + $(this).tooltip(opts); + } else if (data.type == "popover") { + $(this).popover('destroy'); + $(this).popover(opts); + } + }); + }); + }); + + observer.observe(selectizeParent, { subtree: true, childList: true }); + } else if(data.action == "remove") { + $(selectizeParent).filter('div').filter(function(){return(this.getAttribute('data-value') == data.choice);}).each(function() { + if(data.type == "tooltip"){ + $(this).tooltip('destroy'); + } else if (data.type == "popover") { + $(this).popover('destroy'); + } + }) + } +}) + Shiny.addCustomMessageHandler("bsButtonUpdate", function(data) { var btn = $("button#" + data.id); @@ -300,4 +333,4 @@ Shiny.addCustomMessageHandler("bsButtonUpdate", function(data) { }; }; -}) \ No newline at end of file +}) From 887b2462403cc310148e2f3b86a05e3d42f08a86 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:00:00 +0200 Subject: [PATCH 09/15] Update selectizeTooltipAndPopover.R Added observer dictionary to created tabs and observers. --- R/selectizeTooltipAndPopover.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/selectizeTooltipAndPopover.R b/R/selectizeTooltipAndPopover.R index 6371ac5..669857c 100644 --- a/R/selectizeTooltipAndPopover.R +++ b/R/selectizeTooltipAndPopover.R @@ -55,6 +55,8 @@ buildSelectizeTooltipOrPopover <- function(options, type, id, choice){ }); }); observer.observe(selectizeParent, { subtree: true, childList: true }); + + selectizeObserverDict['", type, "' + '", id, "' + '", choice, "'] = observer; }); "))) From cb66164e0e5e7d1ea3cfca98368545c99e1f6c2e Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:02:47 +0200 Subject: [PATCH 10/15] Update shinyBS.js Changed selectize handler to also disconnect observers. --- inst/www/shinyBS.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/inst/www/shinyBS.js b/inst/www/shinyBS.js index c311278..9cb0c1d 100644 --- a/inst/www/shinyBS.js +++ b/inst/www/shinyBS.js @@ -243,6 +243,8 @@ Shiny.addCustomMessageHandler("updateTooltipOrPopover", function(data) { } }) +var selectizeObserverDict = {}; + Shiny.addCustomMessageHandler("updateSelectizeTooltipOrPopover", function(data) { var selectizeParent = document.getElementById(data.id).parentElement; @@ -265,7 +267,12 @@ Shiny.addCustomMessageHandler("updateSelectizeTooltipOrPopover", function(data) }); observer.observe(selectizeParent, { subtree: true, childList: true }); + + selectizeObserverDict[data.type + data.id + data.choice] = observer; } else if(data.action == "remove") { + + selectizeObserverDict[data.type + data.id + data.choice].disconnect(); + $(selectizeParent).filter('div').filter(function(){return(this.getAttribute('data-value') == data.choice);}).each(function() { if(data.type == "tooltip"){ $(this).tooltip('destroy'); From 5772096a2c929bc1373e2b84795408618f15f485 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:17:46 +0200 Subject: [PATCH 11/15] Update groupInputTooltipOrPopover.R Included server sided tooltip/popover updates. --- R/groupInputTooltipOrPopover.R | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/R/groupInputTooltipOrPopover.R b/R/groupInputTooltipOrPopover.R index 71c5dee..a678c3e 100644 --- a/R/groupInputTooltipOrPopover.R +++ b/R/groupInputTooltipOrPopover.R @@ -7,16 +7,38 @@ groupInputTooltip <- function(id, choice, title, placement = "bottom", trigger = "hover", options = NULL){ - options = shinyBS:::buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options) buildGroupInputTooltipOrPopover(options, "tooltip", id, choice) } groupInputPopover <- function(id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL){ - options = shinyBS:::buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) buildGroupInputTooltipOrPopover(options, "popover", id, choice) } +addGroupInputTooltip <- function(session, id, choice, title, placement = "bottom", trigger = "hover", options = NULL) { + + options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + createGroupInputTooltipOrPopoverOnServer(session, id, choice, "tooltip", options) +} + +addGroupInputPopover <- function(session, id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL) { + + options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + createGroupInputTooltipOrPopoverOnServer(session, id, choice, "popover", options) +} + +removeGroupInputTooltip <- function(session, id, choice) { + + session$sendCustomMessage(type="updateGroupInputTooltipOrPopover", list(action = "remove", type = "tooltip", id = id, choice = choice)) +} + +removeGroupInputPopover <- function(session, id, choice) { + + session$sendCustomMessage(type="updateGroupInputTooltipOrPopover", list(action = "remove", type = "popover", id = id, choice = choice)) +} + buildGroupInputTooltipOrPopover <- function(options, type, id, choice){ options = paste0("{'", paste(names(options), options, sep = "': '", collapse = "', '"), "'}") @@ -35,5 +57,11 @@ buildGroupInputTooltipOrPopover <- function(options, type, id, choice){ }); "))) - htmltools::attachDependencies(bsTag, shinyBS:::shinyBSDep) + htmltools::attachDependencies(bsTag, shinyBSDep) +} + +createGroupInputTooltipOrPopoverOnServer <- function(session, id, choice, type, options){ + + data <- list(action = "add", type = type, id = id, choice = choice, options = options) + session$sendCustomMessage(type = "updateGroupInputTooltipOrPopover", data) } From b2e0a8cfa6deb5f46a5efbed2c7b46b8ac29ab7b Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:32:22 +0200 Subject: [PATCH 12/15] Update groupInputTooltipOrPopover.R --- R/groupInputTooltipOrPopover.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/groupInputTooltipOrPopover.R b/R/groupInputTooltipOrPopover.R index a678c3e..593dfff 100644 --- a/R/groupInputTooltipOrPopover.R +++ b/R/groupInputTooltipOrPopover.R @@ -19,13 +19,13 @@ groupInputPopover <- function(id, choice, title, content, placement = "bottom", addGroupInputTooltip <- function(session, id, choice, title, placement = "bottom", trigger = "hover", options = NULL) { - options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options) createGroupInputTooltipOrPopoverOnServer(session, id, choice, "tooltip", options) } addGroupInputPopover <- function(session, id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL) { - options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) createGroupInputTooltipOrPopoverOnServer(session, id, choice, "popover", options) } From cf88795bd12cbb70c022d131107590644c1fc00a Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:32:53 +0200 Subject: [PATCH 13/15] Update selectizeTooltipAndPopover.R --- R/selectizeTooltipAndPopover.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/selectizeTooltipAndPopover.R b/R/selectizeTooltipAndPopover.R index 669857c..441e23a 100644 --- a/R/selectizeTooltipAndPopover.R +++ b/R/selectizeTooltipAndPopover.R @@ -18,13 +18,13 @@ selectizePopover <- function(id, choice, title, content, placement = "bottom", t addSelectizeTooltip <- function(session, id, choice, title, placement = "bottom", trigger = "hover", options = NULL) { - options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options) + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options) createSelectizeTooltipOrPopoverOnServer(session, id, choice, "tooltip", options) } addSelectizePopover <- function(session, id, choice, title, content, placement = "bottom", trigger = "hover", options = NULL) { - options <- buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) + options = buildTooltipOrPopoverOptionsList(title, placement, trigger, options, content) createSelectizeTooltipOrPopoverOnServer(session, id, choice, "popover", options) } From 49d53f01b0d7fe4904e9b0bf7bb45e5606f45498 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:35:48 +0200 Subject: [PATCH 14/15] Update shinyBS.js Added GroupInput server side message handler. --- inst/www/shinyBS.js | 56 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/inst/www/shinyBS.js b/inst/www/shinyBS.js index 9cb0c1d..e83ed63 100644 --- a/inst/www/shinyBS.js +++ b/inst/www/shinyBS.js @@ -253,22 +253,22 @@ Shiny.addCustomMessageHandler("updateSelectizeTooltipOrPopover", function(data) var opts = $.extend(data.options, {html: true}); var observer = new MutationObserver(function(mutations) { - mutations.forEach(function(mutation){ - $(mutation.addedNodes).filter('div').filter(function(){return(this.getAttribute('data-value') == data.choice);}).each(function() { - if(data.type == "tooltip"){ - $(this).tooltip('destroy'); - $(this).tooltip(opts); - } else if (data.type == "popover") { - $(this).popover('destroy'); - $(this).popover(opts); - } - }); + mutations.forEach(function(mutation){ + $(mutation.addedNodes).filter('div').filter(function(){return(this.getAttribute('data-value') == data.choice);}).each(function() { + if(data.type == "tooltip"){ + $(this).tooltip('destroy'); + $(this).tooltip(opts); + } else if (data.type == "popover") { + $(this).popover('destroy'); + $(this).popover(opts); + } }); }); + }); - observer.observe(selectizeParent, { subtree: true, childList: true }); + observer.observe(selectizeParent, { subtree: true, childList: true }); - selectizeObserverDict[data.type + data.id + data.choice] = observer; + selectizeObserverDict[data.type + data.id + data.choice] = observer; } else if(data.action == "remove") { selectizeObserverDict[data.type + data.id + data.choice].disconnect(); @@ -283,6 +283,38 @@ Shiny.addCustomMessageHandler("updateSelectizeTooltipOrPopover", function(data) } }) +Shiny.addCustomMessageHandler("updateGroupInputTooltipOrPopover", function(data) { + if(data.action == "add") { + + $("input", $("#" + data.id)).each(function() { + if(this.getAttribute("value") == data.choice) { + + var opts = $.extend(data.options, {html: true}); + + if(data.type == "tooltip") { + $(this.parentElement).tooltip("destroy"); + $(this.parentElement).tooltip(opts); + } else if(data.type == "popover") { + $(this.parentElement).popover("destroy"); + $(this.parentElement).popover(opts); + } + } + }) + } else if(data.action == "remove") { + + $("input", $("#" + data.id)).each(function() { + if(this.getAttribute("value") == data.choice) { + + if(data.type == "tooltip") { + $(this.parentElement).tooltip("destroy"); + } else if(data.type == "popover") { + $(this.parentElement).popover("destroy"); + } + } + }) + } +}) + Shiny.addCustomMessageHandler("bsButtonUpdate", function(data) { var btn = $("button#" + data.id); From 9cabf8e2651c460a9eeb488348894033b3e33ed6 Mon Sep 17 00:00:00 2001 From: RohdeK Date: Thu, 12 May 2016 15:43:11 +0200 Subject: [PATCH 15/15] Rename groupInputTooltipOrPopover.R to groupInputTooltipAndPopover.R Changed name. --- R/{groupInputTooltipOrPopover.R => groupInputTooltipAndPopover.R} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename R/{groupInputTooltipOrPopover.R => groupInputTooltipAndPopover.R} (100%) diff --git a/R/groupInputTooltipOrPopover.R b/R/groupInputTooltipAndPopover.R similarity index 100% rename from R/groupInputTooltipOrPopover.R rename to R/groupInputTooltipAndPopover.R