@@ -204,15 +204,29 @@ srv_p_waterfall <- function(id,
204204 },
205205 !! as.name(subject_var ) : = factor (!! as.name(subject_var ), levels = unique(!! as.name(subject_var ))),
206206 tooltip = {
207+ default_tip <- sprintf(
208+ " %s: %s <br>%s: %s%% <br>%s: %s" ,
209+ subject_var_label , !! as.name(subject_var ),
210+ value_var_label , !! as.name(value_var ),
211+ color_var_label , !! as.name(color_var )
212+ )
207213 if (is.null(tooltip_vars )) {
208- sprintf(
209- " %s: %s <br>%s: %s%% <br>%s: %s" ,
210- subject_var_label , !! as.name(subject_var ),
211- value_var_label , !! as.name(value_var ),
212- color_var_label , !! as.name(color_var )
213- )
214+ default_tip
214215 } else {
215- .generate_tooltip(.data , tooltip_vars )
216+ cur_data <- dplyr :: pick(dplyr :: everything())
217+ cols <- intersect(tooltip_vars , names(cur_data ))
218+ if (! length(cols )) {
219+ default_tip
220+ } else {
221+ sub <- cur_data [cols ]
222+ labels <- vapply(cols , function (cn ) {
223+ lb <- attr(sub [[cn ]], " label" )
224+ if (length(lb ) && ! is.null(lb ) && ! is.na(lb )) as.character(lb ) else cn
225+ }, character (1 ))
226+ values <- lapply(sub , as.character )
227+ parts <- Map(function (v , l ) paste0(l , " : " , v ), values , labels )
228+ do.call(paste , c(parts , sep = " <br>" ))
229+ }
216230 }
217231 }
218232 ) %> %
0 commit comments