High-Performance Open-Source Archive
customdata now carries an additional
activity_id field (the value of the
Activity_ID column for that bar), alongside the existing
type, original_start, and
original_end keys. This lets consuming apps resolve a
clicked bar back to its source record via
event_data("plotly_click")$customdata. The change is purely
additive — existing customdata keys are unchanged, so the
bar-width JavaScript (which reads
type/original_start/original_end
by name) is unaffected. Applies to all three activity-bar traces:
planned, actual, and single bars.Cleaner hover tooltips: Removed redundant “Type: WBS”, “Type: Activity”, and “Type: Milestone” lines from all hover popups. The chart element type is already visually apparent from bar shape and color.
Bold tooltip labels: All field labels in hover
popups are now bold for improved scanability — applies to both built-in
fields (Start, End, Duration, Variance, Date) and user-provided custom
fields via tooltip_config.
Variance spacing: Added a blank separator line after the Variance row in activity tooltips that show both planned and actual bars, visually separating the core date fields from any custom tooltip fields that follow.
X-axis position control: New
xaxis_position key in layout_config lets users
place the time axis at "bottom" (default),
"top", or "both". Use "top" to
keep the date axis visible when scrolling through long charts, or
"both" to show tick labels on both edges
simultaneously.
Updated tooltip_config parameter description:
removed stale mention of “Type” from the list of default tooltip
fields.
Extended @examples to demonstrate
tooltip_config$milestone — showing how to add a custom
column to milestone_lines and display it in hover
tooltips.
hoverinfo = "skip" —
changed to show the same full tooltip (planned + actual dates) as the
planned bar.tooltip_config now supports named character vectors to set
friendly display labels for custom tooltip fields. Use
c(column_name = "Display Label") instead of
c("column_name") to control what label appears in the hover
tooltip. Unnamed elements continue to use the column name as the label
(fully backward-compatible).Milestone line hover now works along the full line height: Previously, hover tooltips on single-date milestone vertical lines only triggered near the top or bottom endpoints. The hover mechanism is now a separate invisible marker trace distributed along the full height of the line, making the hover responsive anywhere along the line. Applied to both single-date vertical lines and narrow date-range milestones that fall back to vertical lines.
Reduced hover sensitivity for milestone lines: Lowered the hover detection distance from 20px to 10px, making the hover trigger only when the cursor is very close to the milestone line (within ~2.5 days at typical chart zoom), preventing accidental tooltip triggers when hovering nearby activities.
MM/DD/YYYY format with single-pass parsing. Dramatically
faster on large datasets. Users can specify alternative format via
date_format parameter.MM/DD/YYYY (default,
e.g. "09/15/2024"), Date class objects, or
custom formats via optional date_format parameter
(e.g. "%Y-%m-%d" for ISO).parse_date_flex() helper with configurable
date_format parameter (default:
"%m/%d/%Y").generate_hover_points() handles reversed dates
gracefully (End < Start) without crashing.format_label() renders date placeholders in
MM/DD/YYYY.test_project) uses
MM/DD/YYYY date strings.y = c(0.5, total_rows + 0.5) for consistent visibility
across the full chart.display_config$milestone$hide_label_levels parameter to
suppress text annotations for milestones at specific
label_level values while keeping hover tooltips intact. For
example, set to c(1) to hide all level-1 milestone labels.
Default NULL shows all labels (fully
backwards-compatible).label_level parameter to milestone markers for vertical
stacking of labels. Set to 1 or 2 to control which labels appear above
others when milestones are close together.milestones <- data.frame(
label = c("Kickoff", "Budget Approval"),
color = c("blue", "green"),
label_level = c(1, 2) # Level 1 appears above level 2
)
milestones$date <- list("01/05/2025", "01/10/2025")tooltip_config$milestone.
Add any columns to your milestone data frame and display them in hover
tooltips.milestones <- data.frame(
label = c("Kickoff", "Review Period"),
color = c("blue", "purple"),
Description = c("Project kickoff meeting", "Technical review"),
Owner = c("PM", "Tech Lead")
)
milestones$date <- list("01/05/2025", c("02/10/2025", "02/20/2025"))
Ganttify(
...,
milestone_lines = milestones,
tooltip_config = list(
milestone = c("Description", "Owner")
)
)date field to specify either a single date (vertical line)
or two dates (shaded area).milestones <- data.frame(
label = c("Deadline", "Review Period"),
color = c("red", "blue"),
fill_opacity = c(1, 0.15)
)
milestones$date <- list(
"12/01/2024", # Single date = line
c("10/01/2024", "10/31/2024") # Two dates = shaded area
)show_yaxis_labels to layout_config to hide
y-axis labels. When set to FALSE, activity labels are
hidden. If display_config$wbs$show_labels is
TRUE, WBS labels will still be shown.layout_config = list(show_yaxis_labels = FALSE)opacity parameter instead of rgba.tooltip_config parameter to display custom columns from
your data in hover tooltips. Specify which columns from
wbs_structure and activities to show. Fields
that don’t exist or have empty/NA values are automatically hidden.tooltip_config = list(
wbs = c("Owner", "Budget"),
activity = c("Status", "Agency", "Priority")
)hovertext to hovertemplate
for more consistent hover behavior across all bar types.short_activity_indicator parameter
(replaced by automatic dynamic bar width).hover_popup_max_chars parameter to control text
wrapping in hover popups.yaxis_label_width parameter to control y-axis
label area width.yaxis_label_max_chars parameter for automatic
label truncation.Sys.Date() in
milestone_lines.color_config parameter with three modes: “wbs”,
“uniform”, and “attribute”.bar_config parameter for bar styling (opacity,
height, dim_past_activities).display_config parameter to control visibility of
WBS/activities.label_config parameter for custom label
templates.
Need mirroring services?
Contact our team at info@vpspulse.com.
Mirror powered by VPSpulse
Infrastructure sponsored by VPSPulse & Secure Payments by ArionPay.