Skip to content

Feature/scheduler dst grid/main - #35299

Closed
sjbur wants to merge 97 commits into
DevExpress:mainfrom
sjbur:feature/scheduler-dst-grid/main
Closed

sjbur wants to merge 97 commits into
DevExpress:mainfrom
sjbur:feature/scheduler-dst-grid/main

Conversation

@sjbur

@sjbur sjbur commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

No description provided.

sjbur and others added 8 commits September 22, 2026 17:34
Wall-clock dates collapse both passes of a repeated hour into one value. The scale records the instant beside the label and stays unused until layout moves onto it.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cell counts, header labels, and appointment columns on transition days are the baseline for the timeline move. The Santiago week still starts an hour late, and that stays explicit.

Co-authored-by: Cursor <cursoragent@cursor.com>
The same Cairo cases now run with the browser zone equal to the Scheduler zone and with it different. Cell keys are compared by name so an undefined field cannot hide from Jest.

Co-authored-by: Cursor <cursoragent@cursor.com>
…5525)

A repeated hour needs its own columns, and appointments must use that same axis or they land on top of each other. Wall-clock startDateUTC stays unchanged so tooltips still show the label.

Co-authored-by: Cursor <cursoragent@cursor.com>
A fall-back cell can end at the same wall clock where it starts, so a wall-clock range search misses it. Scroll, group intersection, and the time indicator use the cell instant, and viewOffset is applied once.

Co-authored-by: Cursor <cursoragent@cursor.com>
@sjbur sjbur self-assigned this Sep 22, 2026
sjbur and others added 21 commits September 22, 2026 18:15
…525)

The old hour-rounded search and the grid disagreed on where a repeated hour starts. Occurrences now take the first pass, and a day the view already lays out is not shifted a second time.

Co-authored-by: Cursor <cursoragent@cursor.com>
The helper is typechecked with the library, and that tsconfig has no ambient Jest types. describe, beforeEach, and it have to be imported.

Co-authored-by: Cursor <cursoragent@cursor.com>
A shared time panel needs one wall slot per row, so a repeated hour is its own row and a missing hour is a hole.

Co-authored-by: Cursor <cursoragent@cursor.com>
dateHitsCell was called with a name that disappeared once the cell was destructured.

Co-authored-by: Cursor <cursoragent@cursor.com>
…525)

getIndicationCellCount lives on the timeline, so the shared workspace type exposes it as optional.

Co-authored-by: Cursor <cursoragent@cursor.com>
…335525)

The Santiago snapshot header matches Jest 30, and geometry options no longer require a view data provider.

Co-authored-by: Cursor <cursoragent@cursor.com>
…335525)

The Santiago snapshot header matches Jest 30, and geometry options no longer require a view data provider.

Co-authored-by: Cursor <cursoragent@cursor.com>
Rebuilding the cell without UTC dates left groups set to undefined, and QUnit deepEqual treats that key as present.

Co-authored-by: Cursor <cursoragent@cursor.com>
Rebuilding the cell without UTC dates left groups set to undefined, and QUnit deepEqual treats that key as present.

Co-authored-by: Cursor <cursoragent@cursor.com>
sjbur and others added 29 commits September 23, 2026 08:21
…mp (T1335525)

That end was shifted by an hour, so a meeting that stops at the jump also covered the repeated hour.

Co-authored-by: Cursor <cursoragent@cursor.com>
The first pass is 1:00 then 1:30, so the 1:30 cell moved off index 2. That index is the second 1:00, and 1:30 still ends at the jump.

Co-authored-by: Cursor <cursoragent@cursor.com>
Adding the offset to the instant turned the repeated 1:00 into a second 7:00 and moved Sunday onto Saturday. The week now rotates its rows, and a spring appointment still reaches the end time across the missing hour.

Co-authored-by: Cursor <cursoragent@cursor.com>
…5525)

A week column is a window from the offset hour to the same hour next day, so hours after midnight belong to the previous column and an evening offset belongs to the next one. The missing 2:00 cell stays empty and hourly appointments are not joined across it.

Co-authored-by: Cursor <cursoragent@cursor.com>
A positive week offset ends on the next morning, so that hour stays in the last column, and appointments on different time rows stay full width instead of sliding into the next day.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Limit row-isolated stacking to offset DST layouts and retain legacy viewOffset formatting for ordinary time labels and positive-offset date headers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Do not mistake equal wall-clock rows from separate vertical groups for two passes of a DST fall-back hour.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use real daylight slots without viewOffset, retain the uniform offset time scale for shifted views, and normalize full-day offsets in date headers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Skip the negative DST header correction when viewOffset is an exact number of days.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep repeated rows on the shifted time scale and treat exact-day offsets as zero when generating month and timelineMonth dates and headers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Format DST timeline headers from startDayHour and the normalized view offset instead of adding elapsed time through the transition.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use the daylight plan calendar day when a vertical view offset normalizes to zero, avoiding a neighboring-day header for plus or minus 24 hours.

Co-authored-by: Cursor <cursoragent@cursor.com>
Treat plus or minus 24-hour view offsets as zero in the common cell generator, including weeks where the browser zone has no transition and no daylight plan exists.

Co-authored-by: Cursor <cursoragent@cursor.com>
@sjbur sjbur closed this Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant