@sectile/virtual 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +3 -3
  2. package/dist/error.d.ts +1 -2
  3. package/dist/extent-index.d.ts +7 -1
  4. package/dist/extent-index.js +93 -83
  5. package/dist/extent-index.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/internal/blocked-vector.d.ts +20 -0
  8. package/dist/internal/blocked-vector.js +171 -0
  9. package/dist/internal/blocked-vector.js.map +1 -0
  10. package/dist/internal/foundation.d.ts +0 -2
  11. package/dist/internal/foundation.js +3 -13
  12. package/dist/internal/foundation.js.map +1 -1
  13. package/dist/internal/repair-diagnostics.d.ts +11 -0
  14. package/dist/internal/repair-diagnostics.js +8 -0
  15. package/dist/internal/repair-diagnostics.js.map +1 -0
  16. package/dist/internal/track.d.ts +0 -1
  17. package/dist/layout.d.ts +18 -20
  18. package/dist/layout.js +7 -21
  19. package/dist/layout.js.map +1 -1
  20. package/dist/linear-layout.d.ts +0 -1
  21. package/dist/linear-layout.js +27 -2
  22. package/dist/linear-layout.js.map +1 -1
  23. package/dist/masonry-layout.d.ts +0 -1
  24. package/dist/masonry-layout.js +73 -17
  25. package/dist/masonry-layout.js.map +1 -1
  26. package/dist/partitioned-track-grid-layout.d.ts +87 -0
  27. package/dist/partitioned-track-grid-layout.js +585 -0
  28. package/dist/partitioned-track-grid-layout.js.map +1 -0
  29. package/dist/spatial-layout.d.ts +7 -4
  30. package/dist/spatial-layout.js +217 -56
  31. package/dist/spatial-layout.js.map +1 -1
  32. package/dist/track-grid-layout.d.ts +17 -3
  33. package/dist/track-grid-layout.js +211 -15
  34. package/dist/track-grid-layout.js.map +1 -1
  35. package/package.json +8 -3
  36. package/dist/error.d.ts.map +0 -1
  37. package/dist/extent-index.d.ts.map +0 -1
  38. package/dist/index.d.ts.map +0 -1
  39. package/dist/internal/foundation.d.ts.map +0 -1
  40. package/dist/internal/machine.d.ts +0 -4
  41. package/dist/internal/machine.d.ts.map +0 -1
  42. package/dist/internal/machine.js +0 -8
  43. package/dist/internal/machine.js.map +0 -1
  44. package/dist/internal/track.d.ts.map +0 -1
  45. package/dist/layout.d.ts.map +0 -1
  46. package/dist/linear-layout.d.ts.map +0 -1
  47. package/dist/masonry-layout.d.ts.map +0 -1
  48. package/dist/spatial-layout.d.ts.map +0 -1
  49. package/dist/track-grid-layout.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"foundation.js","sourceRoot":"","sources":["../../src/internal/foundation.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,UAAsB,EACtB,IAAU,EACV,OAAe,EACf,OAA2C;IAE3C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,KAAK,EAAE,UAAU;YACjB,IAAI;YACJ,OAAO;YACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,MAAoB;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"foundation.js","sourceRoot":"","sources":["../../src/internal/foundation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,QAAQ,CAAsB,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,UAAsB,EACtB,IAAU,EACV,OAAe,EACf,OAA2C;IAE3C,OAAO,UAAU,CAAU,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface VirtualRepairDiagnostics {
2
+ readonly mode: 'incremental' | 'rebuild';
3
+ readonly changed: number;
4
+ readonly touchedBlocks: number;
5
+ readonly copiedNodes: number;
6
+ readonly copiedEntries: number;
7
+ readonly rebuiltItems: number;
8
+ readonly repairBound: number;
9
+ }
10
+ export declare function recordRepairDiagnostics(state: object, value: VirtualRepairDiagnostics): void;
11
+ export declare function readRepairDiagnostics(state: object): VirtualRepairDiagnostics | null;
@@ -0,0 +1,8 @@
1
+ const diagnostics = new WeakMap();
2
+ export function recordRepairDiagnostics(state, value) {
3
+ diagnostics.set(state, Object.freeze({ ...value }));
4
+ }
5
+ export function readRepairDiagnostics(state) {
6
+ return diagnostics.get(state) ?? null;
7
+ }
8
+ //# sourceMappingURL=repair-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair-diagnostics.js","sourceRoot":"","sources":["../../src/internal/repair-diagnostics.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,GAAG,IAAI,OAAO,EAAoC,CAAC;AAEpE,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,KAA+B;IACpF,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC"}
@@ -11,4 +11,3 @@ export declare function trackSpan(index: ExtentIndex, gap: number, flow: LinearF
11
11
  readonly start: number;
12
12
  readonly extent: number;
13
13
  } | null;
14
- //# sourceMappingURL=track.d.ts.map
package/dist/layout.d.ts CHANGED
@@ -1,20 +1,21 @@
1
1
  import type { StableID } from '@sectile/core';
2
+ import { ZERO_INSETS, ZERO_POINT, pointDelta, rectanglesIntersect, type Insets, type Point, type Rect, type Size } from '@sectile/core/geometry';
2
3
  import type { VirtualResult } from './error.js';
3
- export interface VirtualPoint {
4
- readonly x: number;
5
- readonly y: number;
6
- }
7
- export interface VirtualSize {
8
- readonly width: number;
9
- readonly height: number;
10
- }
11
- export interface VirtualRect extends VirtualPoint, VirtualSize {
12
- }
13
- export interface VirtualInsets {
14
- readonly top: number;
15
- readonly right: number;
16
- readonly bottom: number;
17
- readonly left: number;
4
+ export type VirtualPoint = Point;
5
+ export type VirtualSize = Size;
6
+ export type VirtualRect = Rect;
7
+ export type VirtualInsets = Insets;
8
+ export interface VirtualIndexedView<T> {
9
+ /** Constant-time cardinality. */
10
+ readonly size: number;
11
+ /** Indexed lookup; O(log n) worst-case across Virtual representations. */
12
+ at(index: number): T | undefined;
13
+ /** Lazy full traversal in O(n) time without snapshot allocation. */
14
+ iterate(): IterableIterator<T>;
15
+ /** Full traversal in O(n) time without snapshot allocation. */
16
+ forEach(callback: (value: T, index: number) => void): void;
17
+ /** Explicit immutable snapshot materialization in O(n) time and output space. */
18
+ toArray(): readonly T[];
18
19
  }
19
20
  export interface VirtualQueryInput {
20
21
  readonly viewport: VirtualRect;
@@ -25,6 +26,7 @@ export interface VirtualPlacement<ID extends StableID = StableID> {
25
26
  readonly index: number;
26
27
  readonly rect: VirtualRect;
27
28
  readonly visible: boolean;
29
+ readonly zIndex?: number;
28
30
  }
29
31
  export interface VirtualAnchor<ID extends StableID = StableID> {
30
32
  readonly id: ID;
@@ -59,15 +61,11 @@ export interface VirtualLayoutStrategy<State, ID extends StableID, Measurement,
59
61
  tryMutate(state: State, input: VirtualMutationInput<Mutation, ID>): VirtualResult<VirtualLayoutMutation<State>>;
60
62
  tryScrollTarget(state: State, id: ID, viewport: VirtualRect, alignment?: VirtualScrollAlignment): VirtualResult<VirtualPoint>;
61
63
  }
62
- export declare const ZERO_POINT: VirtualPoint;
63
- export declare const ZERO_INSETS: VirtualInsets;
64
+ export { ZERO_INSETS, ZERO_POINT, pointDelta, rectanglesIntersect };
64
65
  export declare function normalizeQuery(input: VirtualQueryInput): VirtualResult<{
65
66
  readonly viewport: VirtualRect;
66
67
  readonly overscan: VirtualInsets;
67
68
  readonly renderBounds: VirtualRect;
68
69
  }>;
69
- export declare function rectanglesIntersect(left: VirtualRect, right: VirtualRect): boolean;
70
- export declare function pointDelta(before: VirtualRect, after: VirtualRect): VirtualPoint;
71
70
  export declare function anchorForPlan<ID extends StableID>(viewport: VirtualRect, placements: readonly VirtualPlacement<ID>[]): VirtualAnchor<ID> | null;
72
71
  export declare function alignedScrollOffset(itemStart: number, itemExtent: number, viewportStart: number, viewportExtent: number, contentExtent: number, alignment: VirtualScrollAlignment): number;
73
- //# sourceMappingURL=layout.d.ts.map
package/dist/layout.js CHANGED
@@ -1,9 +1,10 @@
1
- export const ZERO_POINT = Object.freeze({ x: 0, y: 0 });
2
- export const ZERO_INSETS = Object.freeze({ top: 0, right: 0, bottom: 0, left: 0 });
1
+ import { ZERO_INSETS, ZERO_POINT, pointDelta, rectanglesIntersect, tryCreateInsets, tryCreateRect, } from '@sectile/core/geometry';
2
+ export { ZERO_INSETS, ZERO_POINT, pointDelta, rectanglesIntersect };
3
3
  export function normalizeQuery(input) {
4
- const viewport = freezeRect(input.viewport);
5
- if (viewport === null)
4
+ const viewportResult = tryCreateRect(input.viewport);
5
+ if (!viewportResult.ok || viewportResult.value.x < 0 || viewportResult.value.y < 0)
6
6
  return invalidGeometry('Viewport coordinates and extents must be finite and non-negative.', input.viewport);
7
+ const viewport = viewportResult.value;
7
8
  const overscan = normalizeInsets(input.overscan);
8
9
  if (overscan === null)
9
10
  return invalidGeometry('Overscan must contain finite non-negative extents.', input.overscan);
@@ -20,13 +21,6 @@ export function normalizeQuery(input) {
20
21
  }),
21
22
  }) };
22
23
  }
23
- export function rectanglesIntersect(left, right) {
24
- return left.x < right.x + right.width && right.x < left.x + left.width
25
- && left.y < right.y + right.height && right.y < left.y + left.height;
26
- }
27
- export function pointDelta(before, after) {
28
- return Object.freeze({ x: after.x - before.x, y: after.y - before.y });
29
- }
30
24
  export function anchorForPlan(viewport, placements) {
31
25
  let anchor = null;
32
26
  for (const placement of placements) {
@@ -55,19 +49,11 @@ export function alignedScrollOffset(itemStart, itemExtent, viewportStart, viewpo
55
49
  target = viewportStart;
56
50
  return Math.min(Math.max(0, target), Math.max(0, contentExtent - viewportExtent));
57
51
  }
58
- function freezeRect(value) {
59
- if (value === null || typeof value !== 'object' || !Number.isFinite(value.x) || !Number.isFinite(value.y)
60
- || !Number.isFinite(value.width) || !Number.isFinite(value.height) || value.x < 0 || value.y < 0 || value.width < 0 || value.height < 0)
61
- return null;
62
- return Object.freeze({ x: value.x, y: value.y, width: value.width, height: value.height });
63
- }
64
52
  function normalizeInsets(value) {
65
53
  if (value === undefined)
66
54
  return ZERO_INSETS;
67
- if (typeof value === 'number')
68
- return Number.isFinite(value) && value >= 0 ? Object.freeze({ top: value, right: value, bottom: value, left: value }) : null;
69
- const result = { top: value.top ?? 0, right: value.right ?? 0, bottom: value.bottom ?? 0, left: value.left ?? 0 };
70
- return Object.values(result).every((item) => Number.isFinite(item) && item >= 0) ? Object.freeze(result) : null;
55
+ const result = tryCreateInsets(value);
56
+ return result.ok ? result.value : null;
71
57
  }
72
58
  function invalidGeometry(message, value) {
73
59
  return { ok: false, error: { class: 'construction', code: 'virtual-layout-geometry-invalid', message, details: { value } } };
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
@@ -80,4 +80,3 @@ export declare function tryLinearScrollTarget<ID extends StableID>(state: Linear
80
80
  export declare function linearRectAt<ID extends StableID>(state: LinearLayoutState<ID>, index: number): VirtualRect | null;
81
81
  export declare function collectionWindowEventForLinearPlan<ID extends StableID>(plan: VirtualLayoutPlan<ID>, collection: CollectionWindowState<ID>, loadedDomain: Sequence<ID>): VirtualResult<CollectionWindowEvent<ID> | null>;
82
82
  export {};
83
- //# sourceMappingURL=linear-layout.d.ts.map
@@ -164,9 +164,12 @@ export function tryApplyLinearPatch(state, input, anchor = null) {
164
164
  const generation = nextGeneration(state.generation);
165
165
  if (!generation.ok)
166
166
  return generation;
167
- const before = anchorRect(state, anchor);
168
167
  const next = freezeState({ ...state, domain: domain.value, extents: extents.value, generation: generation.value });
169
- return ok(Object.freeze({ state: next, scrollDelta: anchorDelta(before, anchorRect(next, anchor)) }));
168
+ const activeAnchor = survivingLinearAnchor(state, next, anchor);
169
+ return ok(Object.freeze({
170
+ state: next,
171
+ scrollDelta: anchorDelta(anchorRect(state, activeAnchor), anchorRect(next, activeAnchor)),
172
+ }));
170
173
  }
171
174
  export function linearScrollTarget(state, id, viewport, alignment = 'nearest') {
172
175
  return unwrap(tryLinearScrollTarget(state, id, viewport, alignment));
@@ -221,6 +224,28 @@ function anchorRect(state, anchor) {
221
224
  const index = state.domain.indexOf(anchor.id);
222
225
  return index === null ? null : rectAt(state, index);
223
226
  }
227
+ function survivingLinearAnchor(previous, next, anchor) {
228
+ if (anchor === null || anchor === undefined)
229
+ return null;
230
+ if (next.domain.indexOf(anchor.id) !== null)
231
+ return anchor;
232
+ const anchorIndex = previous.domain.indexOf(anchor.id);
233
+ if (anchorIndex === null)
234
+ return null;
235
+ for (let index = anchorIndex + 1; index < previous.domain.size; index += 1) {
236
+ const id = previous.domain.at(index);
237
+ if (id !== null && next.domain.indexOf(id) !== null) {
238
+ return Object.freeze({ id, viewportOffset: anchor.viewportOffset });
239
+ }
240
+ }
241
+ for (let index = anchorIndex - 1; index >= 0; index -= 1) {
242
+ const id = previous.domain.at(index);
243
+ if (id !== null && next.domain.indexOf(id) !== null) {
244
+ return Object.freeze({ id, viewportOffset: anchor.viewportOffset });
245
+ }
246
+ }
247
+ return null;
248
+ }
224
249
  function anchorDelta(before, after) { return before === null || after === null ? ZERO_POINT : pointDelta(before, after); }
225
250
  function mainContentExtent(state) { return trackContentExtent(state.extents, state.gap); }
226
251
  function sizeOf(state) {
@@ -1 +1 @@
1
- {"version":3,"file":"linear-layout.js","sourceRoot":"","sources":["../src/linear-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linear-layout.js","sourceRoot":"","sources":["../src/linear-layout.ts"],"names":[],"mappings":"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"}
@@ -88,4 +88,3 @@ export declare function masonryScrollTarget<ID extends StableID>(state: MasonryL
88
88
  export declare function tryMasonryScrollTarget<ID extends StableID>(state: MasonryLayoutState<ID>, id: ID, viewport: VirtualRect, alignment?: VirtualScrollAlignment): VirtualResult<VirtualPoint>;
89
89
  export declare function masonryRectAt<ID extends StableID>(state: MasonryLayoutState<ID>, id: ID): VirtualRect | null;
90
90
  export {};
91
- //# sourceMappingURL=masonry-layout.d.ts.map
@@ -119,7 +119,13 @@ export function tryApplyMasonryMeasurements(state, batch) {
119
119
  const generation = nextGeneration(state.generation);
120
120
  if (!generation.ok)
121
121
  return generation;
122
- const next = createState({ ...state, extents: updated.value, generation: generation.value });
122
+ const data = getInternals(state);
123
+ if (!data.ok)
124
+ return data;
125
+ const next = createState({ ...state, extents: updated.value, generation: generation.value }, {
126
+ previous: data.value,
127
+ recomputeStart: firstChangedExtentIndex(state.extents, batch.measurements),
128
+ });
123
129
  return ok(Object.freeze({ state: next, scrollDelta: anchorDelta(before, anchorRect(next, batch.anchor)) }));
124
130
  }
125
131
  export function applyMasonryMutation(state, mutation, anchor = null) {
@@ -130,6 +136,7 @@ export function tryApplyMasonryMutation(state, mutation, anchor = null) {
130
136
  return fail('transition-rejection', 'virtual-layout-mutation-invalid', 'Masonry mutation type is unsupported.', { mutation });
131
137
  const before = anchorRect(state, anchor);
132
138
  let partial;
139
+ let recomputeStart = null;
133
140
  if (mutation.type === 'items') {
134
141
  const inserted = mutation.insertedExtents ?? [];
135
142
  if (mutation.patch.type === 'splice' && inserted.length !== mutation.patch.inserted.length)
@@ -145,6 +152,9 @@ export function tryApplyMasonryMutation(state, mutation, anchor = null) {
145
152
  if (!extents.ok)
146
153
  return extents;
147
154
  partial = { ...state, domain: domain.value, extents: extents.value };
155
+ recomputeStart = mutation.patch.type === 'splice'
156
+ ? mutation.patch.index
157
+ : Math.min(mutation.patch.from, mutation.patch.to);
148
158
  }
149
159
  else {
150
160
  const geometry = normalizeGeometry({
@@ -164,7 +174,15 @@ export function tryApplyMasonryMutation(state, mutation, anchor = null) {
164
174
  const generation = nextGeneration(state.generation);
165
175
  if (!generation.ok)
166
176
  return generation;
167
- const next = createState({ ...partial, generation: generation.value });
177
+ const data = recomputeStart === null ? null : getInternals(state);
178
+ if (data !== null && !data.ok)
179
+ return data;
180
+ const next = createState({ ...partial, generation: generation.value }, data === null
181
+ ? undefined
182
+ : {
183
+ previous: data.value,
184
+ recomputeStart: Math.min(recomputeStart ?? 0, partial.domain.size),
185
+ });
168
186
  return ok(Object.freeze({ state: next, scrollDelta: anchorDelta(before, anchorRect(next, anchor)) }));
169
187
  }
170
188
  export function masonryScrollTarget(state, id, viewport, alignment = 'nearest') {
@@ -174,7 +192,8 @@ export function tryMasonryScrollTarget(state, id, viewport, alignment = 'nearest
174
192
  const data = getInternals(state);
175
193
  if (!data.ok)
176
194
  return data;
177
- const logical = data.value.byID.get(id);
195
+ const index = state.domain.indexOf(id);
196
+ const logical = index === null ? undefined : data.value.placements[index];
178
197
  if (logical === undefined)
179
198
  return fail('transition-rejection', 'virtual-layout-scroll-target-invalid', 'Scroll target must exist in the masonry domain.', { id });
180
199
  const rect = placementRect(state, data.value.contentMain, logical);
@@ -185,35 +204,50 @@ export function tryMasonryScrollTarget(state, id, viewport, alignment = 'nearest
185
204
  }
186
205
  export function masonryRectAt(state, id) {
187
206
  const data = internals.get(state);
188
- const logical = data?.byID.get(id);
207
+ const index = state.domain.indexOf(id);
208
+ const logical = index === null ? undefined : data?.placements[index];
189
209
  return logical === undefined || data === undefined ? null : placementRect(state, data.contentMain, logical);
190
210
  }
191
- function createState(state) {
211
+ function createState(state, reuse) {
192
212
  Object.defineProperty(state, masonryLayoutStateBrand, { value: true });
193
213
  const frozen = Object.freeze(state);
194
- internals.set(frozen, buildInternals(frozen));
214
+ internals.set(frozen, buildInternals(frozen, reuse));
195
215
  return frozen;
196
216
  }
197
- function buildInternals(state) {
217
+ function buildInternals(state, reuse) {
198
218
  const laneEnds = Array(state.laneCount).fill(0);
219
+ const lanes = Array.from({ length: state.laneCount }, () => []);
220
+ const recomputeStart = reuse === undefined
221
+ ? 0
222
+ : Math.min(Math.max(0, reuse.recomputeStart), state.domain.size);
223
+ const placements = reuse === undefined
224
+ ? []
225
+ : reuse.previous.placements.slice(0, recomputeStart);
226
+ if (reuse !== undefined && recomputeStart > 0) {
227
+ for (let lane = 0; lane < state.laneCount; lane += 1) {
228
+ const previous = reuse.previous.lanes[lane] ?? [];
229
+ const end = firstIndexAtOrAfter(previous, recomputeStart);
230
+ const prefix = previous.slice(0, end);
231
+ lanes[lane].push(...prefix);
232
+ const last = prefix[prefix.length - 1];
233
+ if (last !== undefined)
234
+ laneEnds[lane] = last.start + last.extent + state.itemGap;
235
+ }
236
+ }
199
237
  const heap = state.placementPolicy === 'shortest' && state.laneCount > 16
200
- ? Array.from({ length: state.laneCount }, (_, lane) => ({ lane, end: 0 }))
238
+ ? Array.from({ length: state.laneCount }, (_, lane) => ({ lane, end: laneEnds[lane] })).sort(compareLane)
201
239
  : null;
202
- const lanes = Array.from({ length: state.laneCount }, () => []);
203
- const placements = [];
204
- const byID = new Map();
205
- const extents = state.extents.slice(0, state.extents.size);
240
+ const extents = state.extents.slice(recomputeStart, state.extents.size);
206
241
  if (extents === null)
207
242
  throw new Error('Internal invariant breach: masonry extent range is invalid.');
208
- for (let index = 0; index < state.domain.size; index += 1) {
243
+ for (let index = recomputeStart; index < state.domain.size; index += 1) {
209
244
  const id = state.domain.at(index);
210
- const extent = extentValue(extents[index]);
245
+ const extent = extentValue(extents[index - recomputeStart]);
211
246
  const lane = state.placementPolicy === 'round-robin' ? index % state.laneCount : heap === null ? shortestLane(laneEnds) : heap[0].lane;
212
247
  const start = laneEnds[lane];
213
- const placement = Object.freeze({ id, index, lane, start, extent });
248
+ const placement = { id, index, lane, start, extent };
214
249
  placements.push(placement);
215
250
  lanes[lane].push(placement);
216
- byID.set(id, placement);
217
251
  laneEnds[lane] = start + extent + state.itemGap;
218
252
  if (heap !== null) {
219
253
  heap[0] = { lane, end: laneEnds[lane] };
@@ -223,7 +257,29 @@ function buildInternals(state) {
223
257
  let contentMain = 0;
224
258
  for (const end of laneEnds)
225
259
  contentMain = Math.max(contentMain, end === 0 ? 0 : end - state.itemGap);
226
- return Object.freeze({ placements: Object.freeze(placements), lanes: Object.freeze(lanes.map((lane) => Object.freeze(lane))), byID, contentMain });
260
+ return Object.freeze({ placements: Object.freeze(placements), lanes: Object.freeze(lanes.map((lane) => Object.freeze(lane))), contentMain });
261
+ }
262
+ function firstIndexAtOrAfter(lane, itemIndex) {
263
+ let low = 0;
264
+ let high = lane.length;
265
+ while (low < high) {
266
+ const middle = (low + high) >>> 1;
267
+ if (lane[middle].index < itemIndex)
268
+ low = middle + 1;
269
+ else
270
+ high = middle;
271
+ }
272
+ return low;
273
+ }
274
+ function firstChangedExtentIndex(index, measurements) {
275
+ let first = index.size;
276
+ for (const measurement of measurements) {
277
+ const previous = index.extentAt(measurement.index);
278
+ if (previous === null || extentValue(previous) !== extentValue(measurement.extent)) {
279
+ first = Math.min(first, measurement.index);
280
+ }
281
+ }
282
+ return first;
227
283
  }
228
284
  function normalizeGeometry(input) {
229
285
  const axis = input.axis ?? 'vertical';
@@ -1 +1 @@
1
- {"version":3,"file":"masonry-layout.js","sourceRoot":"","sources":["../src/masonry-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"masonry-layout.js","sourceRoot":"","sources":["../src/masonry-layout.ts"],"names":[],"mappings":"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"}