Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

(this page was created automatically. In case of formatting issues, please visit the official Wiki Page)

Date Interval Counter

[!WARNING] This component might not work as intended. Please use with caution.

Overview

  • The Dynamic Date Interval Counter Component calculates and displays the time difference between a specified date and the current date.
  • It is useful for showing durations such as “days since event” or “time elapsed since creation.”
  • The component can handle both single objects and collections of data.
  • It extracts dates from specified fields and formats the elapsed time in different ways.

...

Specs

Tokens

TokenDescription
displayNameDisplay name of the component in the structure panel
dateDataFieldField name in the data source that contains the date
durationTypeFormat of the time interval (days, daysWithHours, daysWithHoursAndMinutes)
paddingClassCSS spacing class for visual padding
dataSourceTypeDefines whether the date comes from a single object or collection
eventsConfigures component events
ON_INIT (Events)Event triggered when component initializes
ON_GLOBAL_PARAMETERS_CHANGE (Events)Event triggered when global parameters change
ON_DESTROY (Events)Event triggered when component is removed
visibilityPolicySetIdControls visibility using policy sets
displayConditionsRules for when the component is displayed
dataTestIdID for automated testing
enableAsHotspotEnables guided tour hotspot functionality
guidedTourHotSpotTitleTitle for guided tour hotspot (supports translations)
guidedTourHotSpotDescriptionDescription for guided tour hotspot (supports translations)

...

  • dateDataField – Specifies the field name in the data source that contains the date to measure from. For example, "createdAt" would extract the creation date from each record to calculate the elapsed time. This property supports dot notation to access nested properties like "order.submitDate".
  • dataSourceType – Specifies whether the component should extract the date from a single object or from a collection of objects. Options include "single" or "collection". For example, when set to "collection", the component will look for the date field in the first item of an array or the first content item of a paginable response.

[IMAGE PLACEHOLDER: Structure of Date Interval Counter showing data field and data source type]

Styling

(Configured in Visual Properties)

  • paddingClass – Configures spacing around the counter using CSS classes. For example, "p-3" adds medium padding on all sides of the component, improving its visual spacing within its container.

(Configured in Visibility)

  • displayConditions – Defines conditions for displaying the component. This allows showing or hiding the counter based on complex rules involving form values, user roles, or application state. For example, the counter might only be shown when a ticket status is "open" or "pending".

...

Styling

(Configured in Visual Properties)

  • paddingClass – Configures spacing around the counter using CSS classes. For example, "p-3" adds medium padding on all sides of the component, improving its visual spacing within its container.

Actions & Variants

(Configured in Events)

...

  • dataTestId – Sets the testing hook ID for automated testing. For example, setting it to "order-age-counter" allows test scripts to reliably locate this component during automated testing.
  • enableAsHotspot – Enables the component as a guided tour hotspot. When enabled, the counter can be highlighted during onboarding or tutorial flows to explain its meaning to users.
    • guidedTourHotSpotTitle – Sets the title for the guided tour hotspot, supporting translations. For example, {"en-US": "Ticket Age", "de-DE": "Ticket-Alter"} provides clear identification during guided tours.
    • guidedTourHotSpotDescription – Sets the description for the guided tour hotspot, supporting translations. For example, {"en-US": "This shows how long the ticket has been open", "de-DE": "Dies zeigt, wie lange das Ticket geöffnet ist"} provides detailed context during guided tours.

Guidelines

[NO DATA AVAILABLE]

Accessibility

...

Usage

  • Use the counter to show elapsed time since a specific date taken directly from your data via dateDataField; pick a field path (supports dot notation like order.submitDate) that reliably resolves to a valid date.
  • Select precision with durationType: days for coarse status, daysWithHours for moderate precision, daysWithHoursAndMinutes for time‑sensitive contexts.
  • Name the instance clearly for authors via displayName so it’s easy to find in the structure panel.

Sizing & Layout

  • Adjust outer spacing only with paddingClass.
  • Match padding intensity to context using paddingClass values (lighter in dense metadata, heavier when the counter needs separation).
  • Keep the visual footprint stable by fixing a single durationType per instance; avoid runtime format switches.

Data-Driven / Conditional Behavior

  • Hide the counter when the source date is missing or invalid using displayConditions bound to dateDataField.
  • For dataSourceType: collection, ensure dateDataField exists on the first item; otherwise hide with displayConditions to avoid misleading “0 days” outputs.
  • Prevent flapping by keeping displayConditions mutually exclusive within the same rule set.
  • Align units across comparable counters by choosing the same durationType where users make side-by-side comparisons.

Visibility & Authorization

  • Restrict visibility based on user roles or policies using visibilityPolicySetId for sensitive durations.

Dos & Don’ts

DoDon’tArticle setting(s)
Bind to a date field that always exists (use dot notation if needed).Point to an optional or inconsistently typed field that yields “invalid date.”dateDataField
Choose one suitable precision and keep it fixed per instance.Flip between days and daysWithHoursAndMinutes mid-session.durationType
Hide when the source date is missing or invalid.Show “0 days” for records without a date.displayConditions, dateDataField
Use single when reading from one record; collection when the source is a list.Assume collections and singles behave the same or read from the wrong index.dataSourceType, dateDataField
Refresh the value when global parameters change.Leave stale values after context updates.events.ON_GLOBAL_PARAMETERS_CHANGE
Add spacing only through the component’s padding token.Rely on external CSS wrappers to create spacing.paddingClass
Gate sensitive counters by policy.Show sensitive durations to all users.visibilityPolicySetId
Localize the hotspot copy for tours.Hard‑code English strings in the tour.enableAsHotspot, guidedTourHotSpotTitle, guidedTourHotSpotDescription

Accessibility

  • Hide non-meaningful output by using displayConditions when dateDataField is empty or invalid.
  • Provide localized guidance in tours using enableAsHotspot, guidedTourHotSpotTitle, and guidedTourHotSpotDescription.
  • Match durationType precision to the task so assistive tech announces sufficient context.
  • Keep format consistent per instance and update on events.ON_GLOBAL_PARAMETERS_CHANGE to avoid surprise changes.
  • Use visibilityPolicySetId to prevent exposing sensitive time information to unauthorized users.