Member Junction
    Preparing search index...

    <mj-burst-cluster-strip> — General-purpose, domain-agnostic Burst-Aware Cluster Strip for irregular and multi-year time-series data.

    Instead of dividing wall-clock time into fixed equal width buckets (which produces mostly empty columns when events occur in irregular bursts separated by weeks, months, or years), <mj-burst-cluster-strip> groups events into active bursts separated by non-linear quiet-time gap connectors (⋯ 11 mos quiet ⋯), and automatically scales to multi-year histories via adaptive era coalescing (Year → Quarter/Month → Session Burst) with semantic Click-to-Zoom!

    Type Parameters

    • T = unknown

    Implements

    • OnChanges
    Index

    Constructors

    Properties

    AfterClusterSelect: EventEmitter<MJAfterBurstClusterSelectEventArgs<T>> = ...

    Emitted after a cluster card is selected or deselected.

    AfterClustersRebuild: EventEmitter<MJAfterBurstClustersRebuildEventArgs<T>> = ...

    Emitted after clusters have been computed.

    AfterSelectionClear: EventEmitter<MJAfterBurstSelectionClearEventArgs<T>> = ...

    Emitted after the active cluster filter is cleared.

    AfterZoomChange: EventEmitter<MJAfterBurstZoomChangeEventArgs<T>> = ...

    Emitted after a semantic zoom transition completes.

    AllowZoom: boolean = true

    Whether clicking a multi-month/year era cluster drills into that era's finer bursts with a breadcrumb (default true).

    AriaLabel: string | null = null

    Accessible region label override.

    BeforeClusterSelect: EventEmitter<MJBeforeBurstClusterSelectEventArgs<T>> = ...

    Cancellable event emitted before a cluster card is selected or deselected.

    BeforeClustersRebuild: EventEmitter<MJBeforeBurstClustersRebuildEventArgs<T>> = ...

    Cancellable event emitted before clusters are computed from the input items.

    BeforeSelectionClear: EventEmitter<MJBeforeBurstSelectionClearEventArgs<T>> = ...

    Cancellable event emitted before the active cluster filter is cleared.

    BeforeZoomChange: EventEmitter<MJBeforeBurstZoomChangeEventArgs<T>> = ...

    Cancellable event emitted before zooming into an era node or zooming back out.

    Categories: readonly MJBurstClusterCategory[] | null = null

    Category definitions controlling pip colors, legend labels, and subtitle phrasing. When omitted, categories are auto-derived from the input items.

    CategoryField: keyof T & string | ((item: T, index: number) => string) | null = null

    Property name or extractor for Category when binding [Data]. Defaults to 'Category'.

    Clusters: MJBurstClusterNode<T>[] = []

    Computed cluster nodes currently visible in the strip.

    CoalesceStrategy: MJBurstClusterCoalesceStrategy = 'adaptive-era'

    Strategy when raw session bursts exceed MaxClusters in 'auto' mode:

    • 'adaptive-era' (default): Switches to year or quarter/month era nodes when raw bursts exceed EraZoomThreshold across multiple years/months, enabling semantic Click-to-Zoom drill-down.
    • 'merge-closest': Always merges the two chronologically closest adjacent bursts down to MaxClusters.
    Data: readonly T[] | null = null

    Optional raw domain array (T[]). Mapped into MJBurstClusterItem<T>[] via [FieldMap] or [IdField] / [TimestampField] / [CategoryField] / [TooltipField] / [WeightField].

    EffectiveResolution: MJBurstClusterEffectiveResolution = 'session'

    Effective grouping resolution for the current view.

    EraZoomThreshold: number = 10

    Raw session burst threshold above which 'adaptive-era' switches to multi-month/year era buckets (default 10).

    FieldMap: MJBurstClusterFieldMap<T> | null = null

    Optional property-name or extractor-function map for [Data].

    FilterChanged: EventEmitter<MJBurstFilterChangedEventArgs<T>> = ...

    Unified convenience event emitted whenever cluster selection or era zoom updates the active filtered item set.

    GranularityLabel: string = ''

    Human-readable summary of the current strip granularity (e.g. '3 bursts · 11 mos span').

    GroupSameCalendarDay: boolean = true

    Whether events occurring on the same UTC calendar day automatically group into the same session burst (default true).

    IdField: keyof T & string | ((item: T, index: number) => string) = ...

    Property name or extractor for ID when binding [Data]. Defaults to 'ID'.

    ItemPluralNoun: string = 'events'

    Plural noun for event counts on cluster cards (default 'events'; e.g. 'changes').

    Items: readonly MJBurstClusterItem<T>[] | null = null

    Pre-normalized array of time-series items (MJBurstClusterItem<T>[]). Alternatively, pass raw domain objects via [Data] + [FieldMap] (or [TimestampField], etc.).

    ItemSingularNoun: string = 'event'

    Singular noun for event counts on cluster cards (default 'event'; e.g. 'change').

    MaxClusters: number = 5

    Maximum number of session burst cards rendered in the strip before closest-gap coalescing (default 5).

    MaxPipsPerCluster: number = 12

    Maximum individual event pips rendered inside a cluster card before +N overflow indicator (default 12).

    MinGapQuietHours: number = 48

    Minimum quiet time gap in hours required before rendering a quiet-gap connector pill between clusters (default 48).

    PipClicked: EventEmitter<MJBurstPipClickEventArgs<T>> = ...

    Emitted when the user clicks an individual event pip inside a cluster card.

    Resolution: MJBurstClusterResolution = 'auto'

    Grouping resolution ('auto' | 'session' | 'day' | 'week' | 'month' | 'quarter' | 'year'). Defaults to 'auto'.

    ResolvedCategories: MJBurstClusterCategory[] = []

    Resolved category definitions (either from [Categories] or auto-discovered from items).

    SelectedClusterKey: string | null = null

    Currently selected cluster key (supports two-way [(SelectedClusterKey)] binding).

    SelectedClusterKeyChange: EventEmitter<string | null> = ...

    Emits when SelectedClusterKey changes (supports two-way [(SelectedClusterKey)]).

    SessionGapHours: number = 6

    Maximum hours between adjacent events to coalesce into the same session burst (default 6).

    ShowGapConnectors: boolean = true

    Whether to render non-linear quiet-time gap connectors (⋯ 11 mos quiet ⋯) between clusters (default true).

    ShowHeader: boolean = true

    Whether to render the top header bar with title, granularity badge, zoom breadcrumb, and legend (default true).

    ShowLegend: boolean = true

    Whether to render the category color legend in the header (default true).

    ShowPips: boolean = true

    Whether to render individual event pips inside each cluster card (default true).

    ShowProportionalBar: boolean = false

    Whether to render a stacked category proportion bar at the bottom of each cluster card (default false).

    SubtitleFormatter:
        | (
            (
                cluster: MJBurstClusterNode<T>,
                categories: readonly MJBurstClusterCategory[],
            ) => string
        )
        | null = null

    Optional custom subtitle formatter callback for each cluster card.

    TimestampField:
        | keyof T & string
        | ((item: T, index: number) => string | number | Date) = ...

    Property name or extractor for Timestamp when binding [Data]. Defaults to 'Timestamp'.

    Title: string = 'Activity Timeline'

    Header title text (default 'Activity Timeline').

    TitleIcon: string = 'fa-solid fa-wave-square'

    Font Awesome icon class rendered next to Title (default 'fa-solid fa-wave-square').

    TooltipField: keyof T & string | ((item: T, index: number) => string) | null = null

    Property name or extractor for Tooltip when binding [Data].

    WeightField: keyof T & string | ((item: T, index: number) => number) | null = null

    Property name or extractor for Weight when binding [Data].

    ZoomStack: MJBurstZoomBreadcrumb<T>[] = []

    Stack of active semantic zoom breadcrumbs when drilling into multi-year/month eras.

    Accessors

    Methods

    • A callback method that is invoked immediately after the default change detector has checked data-bound properties if at least one has changed, and before the view and content children are checked.

      Parameters

      • changes: { [propName: string]: SimpleChange<any> }

        The changed properties.

      Returns void