@theredhead — Frontend Library - v1.0.0
    Preparing search index...

    Class ArrayCalendarDatasource<T>

    In-memory CalendarDatasource backed by a plain array of events.

    Supports add, remove, update, and bulk-replace operations, each of which triggers the changed emitter so the connected view refreshes.

    const ds = new ArrayCalendarDatasource<MyPayload>([
    { id: '1', title: 'Standup', start: new Date(2025, 2, 17, 9, 0) },
    { id: '2', title: 'Lunch', start: new Date(2025, 2, 17, 12, 0), allDay: true },
    ]);

    // Query a date range
    const march = ds.getEvents(new Date(2025, 2, 1), new Date(2025, 2, 31));

    // Mutate
    ds.addEvent({ id: '3', title: 'Review', start: new Date(2025, 2, 18, 14, 0) });
    ds.removeEvent('1');

    Type Parameters

    • T = unknown

      Optional payload type attached to each event.

    Implements

    Index

    Constructors

    • Creates an in-memory calendar datasource.

      Type Parameters

      • T = unknown

        Optional payload type attached to each event.

      Parameters

      • initialEvents: readonly CalendarEvent<T>[] = []

        Seed events (defensively copied).

      Returns ArrayCalendarDatasource<T>

    Properties

    changed: Emitter<void> = ...

    Emitted whenever the underlying event data changes (add, remove, update, bulk replace).

    Accessors

    • get length(): number

      Returns the total number of events currently held.

      Returns number

    Methods

    • Appends an event to the datasource.

      Parameters

      Returns void

    • Appends multiple events at once.

      Parameters

      Returns void

    • Returns all events (snapshot copy).

      Returns readonly CalendarEvent<T>[]

    • Returns all events whose date range intersects [rangeStart, rangeEnd].

      An event intersects the range when:

      • event.start <= rangeEnd and
      • (event.end ?? event.start) >= rangeStart

      Parameters

      • rangeStart: Date

        Inclusive start of the query window.

      • rangeEnd: Date

        Inclusive end of the query window.

      Returns readonly CalendarEvent<T>[]

    • Removes an event by its id.

      Parameters

      • id: string

        The event ID to remove.

      Returns boolean

      true if an event was removed, false if not found.

    • Replaces the entire event set.

      Parameters

      Returns void

    • Replaces an event with a matching id. If no match is found the new event is appended instead.

      Parameters

      Returns void