@shopify/flash-list 2.0.0-rc.1 → 2.0.0-rc.3
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.
- package/README.md +1 -1
- package/dist/FlashListProps.d.ts +10 -2
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js.map +1 -1
- package/dist/__tests__/RenderStackManager.test.js +1 -2
- package/dist/__tests__/RenderStackManager.test.js.map +1 -1
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerView.js +11 -3
- package/dist/recyclerview/RecyclerView.js.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.d.ts +1 -0
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.js +5 -0
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/RenderStackManager.d.ts +1 -0
- package/dist/recyclerview/RenderStackManager.d.ts.map +1 -1
- package/dist/recyclerview/RenderStackManager.js +26 -7
- package/dist/recyclerview/RenderStackManager.js.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.js +1 -1
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +1 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -1
- package/dist/recyclerview/helpers/RenderTimeTracker.js +3 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
- package/dist/recyclerview/hooks/useLayoutState.d.ts +3 -1
- package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useLayoutState.js +5 -3
- package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +2 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.js +232 -187
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +2 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclingState.d.ts +4 -2
- package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclingState.js +2 -2
- package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +14 -6
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +40 -23
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts +26 -6
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.js +89 -15
- package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +9 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +28 -12
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
- package/dist/viewability/ViewabilityManager.js +10 -3
- package/dist/viewability/ViewabilityManager.js.map +1 -1
- package/package.json +1 -1
- package/src/FlashListProps.ts +16 -2
- package/src/__tests__/RenderStackManager.test.ts +1 -2
- package/src/recyclerview/RecyclerView.tsx +27 -14
- package/src/recyclerview/RecyclerViewManager.ts +6 -0
- package/src/recyclerview/RenderStackManager.ts +32 -6
- package/src/recyclerview/components/StickyHeaders.tsx +1 -1
- package/src/recyclerview/helpers/RenderTimeTracker.ts +4 -0
- package/src/recyclerview/hooks/useLayoutState.ts +15 -6
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +232 -165
- package/src/recyclerview/hooks/useRecyclerViewManager.ts +3 -1
- package/src/recyclerview/hooks/useRecyclingState.ts +11 -7
- package/src/recyclerview/layout-managers/GridLayoutManager.ts +44 -23
- package/src/recyclerview/layout-managers/LayoutManager.ts +98 -20
- package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +30 -8
- package/src/viewability/ViewabilityManager.ts +10 -6
|
@@ -15,12 +15,21 @@ var measureLayout_1 = require("../utils/measureLayout");
|
|
|
15
15
|
var RVLayoutManager = /** @class */ (function () {
|
|
16
16
|
function RVLayoutManager(params, previousLayoutManager) {
|
|
17
17
|
var _a, _b;
|
|
18
|
-
/** Information about item spans and sizes */
|
|
19
|
-
this.spanSizeInfo = {};
|
|
20
18
|
/** Flag indicating if the layout requires repainting */
|
|
21
19
|
this.requiresRepaint = false;
|
|
22
20
|
/** Maximum number of items to process in a single layout pass */
|
|
23
|
-
this.maxItemsToProcess = 250;
|
|
21
|
+
this.maxItemsToProcess = 250;
|
|
22
|
+
/** Information about item spans and sizes */
|
|
23
|
+
this.spanSizeInfo = {};
|
|
24
|
+
/** Span tracker for each item */
|
|
25
|
+
this.spanTracker = [];
|
|
26
|
+
/** Current max index with changed layout */
|
|
27
|
+
this.currentMaxIndexWithChangedLayout = -1;
|
|
28
|
+
/**
|
|
29
|
+
* Last index that was skipped during layout computation.
|
|
30
|
+
* Used to determine if a layout needs to be recomputed.
|
|
31
|
+
*/
|
|
32
|
+
this.lastSkippedLayoutIndex = Number.MAX_VALUE;
|
|
24
33
|
this.heightAverageWindow = new AverageWindow_1.MultiTypeAverageWindow(5, 200);
|
|
25
34
|
this.widthAverageWindow = new AverageWindow_1.MultiTypeAverageWindow(5, 200);
|
|
26
35
|
this.getItemType = params.getItemType;
|
|
@@ -107,7 +116,7 @@ var RVLayoutManager = /** @class */ (function () {
|
|
|
107
116
|
}
|
|
108
117
|
var startIndex = Math.min.apply(Math, tslib_1.__spreadArray([], tslib_1.__read(indices), false));
|
|
109
118
|
// Recompute layouts starting from the smallest index in the original indices array
|
|
110
|
-
this.
|
|
119
|
+
this._recomputeLayouts(this.getMinRecomputeIndex(startIndex), this.getMaxRecomputeIndex(startIndex));
|
|
111
120
|
};
|
|
112
121
|
/**
|
|
113
122
|
* Updates layout information for items and recomputes layout if necessary.
|
|
@@ -116,27 +125,32 @@ var RVLayoutManager = /** @class */ (function () {
|
|
|
116
125
|
*/
|
|
117
126
|
RVLayoutManager.prototype.modifyLayout = function (layoutInfo, totalItemCount) {
|
|
118
127
|
var _a;
|
|
128
|
+
this.maxItemsToProcess = Math.max(this.maxItemsToProcess, layoutInfo.length * 10);
|
|
119
129
|
var minRecomputeIndex = Number.MAX_VALUE;
|
|
120
130
|
if (this.layouts.length > totalItemCount) {
|
|
121
131
|
this.layouts.length = totalItemCount;
|
|
132
|
+
this.spanTracker.length = totalItemCount;
|
|
122
133
|
minRecomputeIndex = totalItemCount - 1; // <0 gets skipped so it's safe to set to totalItemCount - 1
|
|
123
134
|
}
|
|
124
135
|
// update average windows
|
|
125
|
-
minRecomputeIndex = Math.min(minRecomputeIndex, this.
|
|
136
|
+
minRecomputeIndex = Math.min(minRecomputeIndex, this.computeEstimatesAndMinMaxChangedLayout(layoutInfo));
|
|
126
137
|
if (this.layouts.length < totalItemCount && totalItemCount > 0) {
|
|
127
138
|
var startIndex = this.layouts.length;
|
|
128
139
|
this.layouts.length = totalItemCount;
|
|
140
|
+
this.spanTracker.length = totalItemCount;
|
|
129
141
|
for (var i = startIndex; i < totalItemCount; i++) {
|
|
130
142
|
this.getLayout(i);
|
|
143
|
+
this.getSpan(i);
|
|
131
144
|
}
|
|
132
145
|
this.recomputeLayouts(startIndex, totalItemCount - 1);
|
|
133
146
|
}
|
|
134
|
-
minRecomputeIndex = Math.min(minRecomputeIndex, (_a = this.processLayoutInfo(layoutInfo, totalItemCount)) !== null && _a !== void 0 ? _a : minRecomputeIndex);
|
|
135
147
|
// compute minRecomputeIndex
|
|
136
|
-
minRecomputeIndex = Math.min(minRecomputeIndex, this.
|
|
148
|
+
minRecomputeIndex = Math.min(minRecomputeIndex, this.lastSkippedLayoutIndex, this.computeMinIndexWithChangedSpan(layoutInfo), (_a = this.processLayoutInfo(layoutInfo, totalItemCount)) !== null && _a !== void 0 ? _a : minRecomputeIndex, this.computeEstimatesAndMinMaxChangedLayout(layoutInfo));
|
|
137
149
|
if (minRecomputeIndex >= 0 && minRecomputeIndex < totalItemCount) {
|
|
138
|
-
|
|
150
|
+
var maxRecomputeIndex = this.getMaxRecomputeIndex(minRecomputeIndex);
|
|
151
|
+
this._recomputeLayouts(minRecomputeIndex, maxRecomputeIndex);
|
|
139
152
|
}
|
|
153
|
+
this.currentMaxIndexWithChangedLayout = -1;
|
|
140
154
|
};
|
|
141
155
|
/**
|
|
142
156
|
* Gets layout information for an item at the given index.
|
|
@@ -180,22 +194,38 @@ var RVLayoutManager = /** @class */ (function () {
|
|
|
180
194
|
return this.layouts.length;
|
|
181
195
|
};
|
|
182
196
|
/**
|
|
183
|
-
* Gets span
|
|
197
|
+
* Gets span for an item, applying any overrides.
|
|
198
|
+
* This is intended to be called during a relayout call. The value is tracked and used to determine if a span change has occurred.
|
|
199
|
+
* If skipTracking is true, the operation is not tracked. Can be useful if span is required outside of a relayout call.
|
|
200
|
+
* The tracker is used to call handleSpanChange if a span change has occurred before relayout call.
|
|
201
|
+
* // TODO: improve this contract.
|
|
184
202
|
* @param index Index of the item
|
|
185
|
-
* @returns
|
|
203
|
+
* @returns Span for the item
|
|
186
204
|
*/
|
|
187
|
-
RVLayoutManager.prototype.
|
|
205
|
+
RVLayoutManager.prototype.getSpan = function (index, skipTracking) {
|
|
206
|
+
var _a;
|
|
207
|
+
if (skipTracking === void 0) { skipTracking = false; }
|
|
188
208
|
this.spanSizeInfo.span = undefined;
|
|
189
209
|
this.overrideItemLayout(index, this.spanSizeInfo);
|
|
190
|
-
|
|
210
|
+
var span = Math.min((_a = this.spanSizeInfo.span) !== null && _a !== void 0 ? _a : 1, this.maxColumns);
|
|
211
|
+
if (!skipTracking) {
|
|
212
|
+
this.spanTracker[index] = span;
|
|
213
|
+
}
|
|
214
|
+
return span;
|
|
191
215
|
};
|
|
216
|
+
/**
|
|
217
|
+
* Method to handle span change for an item. Can be overridden by subclasses.
|
|
218
|
+
* @param index Index of the item
|
|
219
|
+
*/
|
|
220
|
+
RVLayoutManager.prototype.handleSpanChange = function (index) { };
|
|
192
221
|
/**
|
|
193
222
|
* Gets the maximum index to process in a single layout pass.
|
|
194
223
|
* @param startIndex Starting index
|
|
195
224
|
* @returns Maximum index to process
|
|
196
225
|
*/
|
|
197
226
|
RVLayoutManager.prototype.getMaxRecomputeIndex = function (startIndex) {
|
|
198
|
-
return Math.min(startIndex
|
|
227
|
+
return Math.min(Math.max(startIndex, this.currentMaxIndexWithChangedLayout) +
|
|
228
|
+
this.maxItemsToProcess, this.layouts.length - 1);
|
|
199
229
|
};
|
|
200
230
|
/**
|
|
201
231
|
* Gets the minimum index to process in a single layout pass.
|
|
@@ -205,12 +235,29 @@ var RVLayoutManager = /** @class */ (function () {
|
|
|
205
235
|
RVLayoutManager.prototype.getMinRecomputeIndex = function (startIndex) {
|
|
206
236
|
return startIndex;
|
|
207
237
|
};
|
|
238
|
+
RVLayoutManager.prototype._recomputeLayouts = function (startIndex, endIndex) {
|
|
239
|
+
this.recomputeLayouts(startIndex, endIndex);
|
|
240
|
+
if (this.lastSkippedLayoutIndex >= startIndex &&
|
|
241
|
+
this.lastSkippedLayoutIndex <= endIndex) {
|
|
242
|
+
this.lastSkippedLayoutIndex = Number.MAX_VALUE;
|
|
243
|
+
}
|
|
244
|
+
if (endIndex + 1 < this.layouts.length) {
|
|
245
|
+
this.lastSkippedLayoutIndex = Math.min(endIndex + 1, this.lastSkippedLayoutIndex);
|
|
246
|
+
var lastIndex = this.layouts.length - 1;
|
|
247
|
+
// Since layout managers derive height from last indices we need to make
|
|
248
|
+
// sure they're not too much out of sync.
|
|
249
|
+
if (this.layouts[lastIndex].y < this.layouts[endIndex].y) {
|
|
250
|
+
this.recomputeLayouts(this.lastSkippedLayoutIndex, lastIndex);
|
|
251
|
+
this.lastSkippedLayoutIndex = Number.MAX_VALUE;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
};
|
|
208
255
|
/**
|
|
209
256
|
* Computes size estimates and finds the minimum recompute index.
|
|
210
257
|
* @param layoutInfo Array of layout information for items
|
|
211
258
|
* @returns Minimum index that needs recomputation
|
|
212
259
|
*/
|
|
213
|
-
RVLayoutManager.prototype.
|
|
260
|
+
RVLayoutManager.prototype.computeEstimatesAndMinMaxChangedLayout = function (layoutInfo) {
|
|
214
261
|
var e_2, _a;
|
|
215
262
|
var minRecomputeIndex = Number.MAX_VALUE;
|
|
216
263
|
try {
|
|
@@ -218,12 +265,14 @@ var RVLayoutManager = /** @class */ (function () {
|
|
|
218
265
|
var info = layoutInfo_1_1.value;
|
|
219
266
|
var index = info.index, dimensions = info.dimensions;
|
|
220
267
|
var storedLayout = this.layouts[index];
|
|
221
|
-
if (
|
|
268
|
+
if (index >= this.lastSkippedLayoutIndex ||
|
|
269
|
+
!storedLayout ||
|
|
222
270
|
!storedLayout.isHeightMeasured ||
|
|
223
271
|
!storedLayout.isWidthMeasured ||
|
|
224
272
|
(0, measureLayout_1.areDimensionsNotEqual)(storedLayout.height, dimensions.height) ||
|
|
225
273
|
(0, measureLayout_1.areDimensionsNotEqual)(storedLayout.width, dimensions.width)) {
|
|
226
274
|
minRecomputeIndex = Math.min(minRecomputeIndex, index);
|
|
275
|
+
this.currentMaxIndexWithChangedLayout = Math.max(this.currentMaxIndexWithChangedLayout, index);
|
|
227
276
|
}
|
|
228
277
|
this.heightAverageWindow.addValue(dimensions.height, this.getItemType(index));
|
|
229
278
|
this.widthAverageWindow.addValue(dimensions.width, this.getItemType(index));
|
|
@@ -238,6 +287,31 @@ var RVLayoutManager = /** @class */ (function () {
|
|
|
238
287
|
}
|
|
239
288
|
return minRecomputeIndex;
|
|
240
289
|
};
|
|
290
|
+
RVLayoutManager.prototype.computeMinIndexWithChangedSpan = function (layoutInfo) {
|
|
291
|
+
var e_3, _a;
|
|
292
|
+
var minIndexWithChangedSpan = Number.MAX_VALUE;
|
|
293
|
+
try {
|
|
294
|
+
for (var layoutInfo_2 = tslib_1.__values(layoutInfo), layoutInfo_2_1 = layoutInfo_2.next(); !layoutInfo_2_1.done; layoutInfo_2_1 = layoutInfo_2.next()) {
|
|
295
|
+
var info = layoutInfo_2_1.value;
|
|
296
|
+
var index = info.index;
|
|
297
|
+
var span = this.getSpan(index, true);
|
|
298
|
+
var storedSpan = this.spanTracker[index];
|
|
299
|
+
if (span !== storedSpan) {
|
|
300
|
+
this.spanTracker[index] = span;
|
|
301
|
+
this.handleSpanChange(index);
|
|
302
|
+
minIndexWithChangedSpan = Math.min(minIndexWithChangedSpan, index);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
307
|
+
finally {
|
|
308
|
+
try {
|
|
309
|
+
if (layoutInfo_2_1 && !layoutInfo_2_1.done && (_a = layoutInfo_2.return)) _a.call(layoutInfo_2);
|
|
310
|
+
}
|
|
311
|
+
finally { if (e_3) throw e_3.error; }
|
|
312
|
+
}
|
|
313
|
+
return minIndexWithChangedSpan;
|
|
314
|
+
};
|
|
241
315
|
return RVLayoutManager;
|
|
242
316
|
}());
|
|
243
317
|
exports.RVLayoutManager = RVLayoutManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LayoutManager.ts"],"names":[],"mappings":";AAAA,kDAAkD;;;;AAElD,2DAAmE;AACnE,oEAAmE;AACnE,8DAGmC;AACnC,wDAA+D;AAE/D;;;;GAIG;AACH;
|
|
1
|
+
{"version":3,"file":"LayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LayoutManager.ts"],"names":[],"mappings":";AAAA,kDAAkD;;;;AAElD,2DAAmE;AACnE,oEAAmE;AACnE,8DAGmC;AACnC,wDAA+D;AAE/D;;;;GAIG;AACH;IAwCE,yBAAY,MAAoB,EAAE,qBAAuC;;QA3BzE,wDAAwD;QACjD,oBAAe,GAAG,KAAK,CAAC;QAU/B,iEAAiE;QACzD,sBAAiB,GAAG,GAAG,CAAC;QAChC,6CAA6C;QACrC,iBAAY,GAAiB,EAAE,CAAC;QACxC,iCAAiC;QACzB,gBAAW,GAA2B,EAAE,CAAC;QAEjD,4CAA4C;QACpC,qCAAgC,GAAG,CAAC,CAAC,CAAC;QAE9C;;;WAGG;QACK,2BAAsB,GAAG,MAAM,CAAC,SAAS,CAAC;QAGhD,IAAI,CAAC,mBAAmB,GAAG,IAAI,sCAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,sCAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,OAAO,mCAAI,EAAE,CAAC;QACpD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,2CAAiB,GAA3B,UAA4B,KAAa;QACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACO,4CAAkB,GAA5B,UAA6B,KAAa;QACxC,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;IAaD;;;OAGG;IACH,sCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,wCAAc,GAAd;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,2CAAiB,GAAjB,UACE,qBAA6B,EAC7B,mBAA2B;QAE3B,+BAA+B;QAC/B,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAC7C,IAAI,CAAC,OAAO,EACZ,qBAAqB,EACrB,IAAI,CAAC,UAAU,CAChB,CAAC;QAEF,8BAA8B;QAC9B,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAC3C,IAAI,CAAC,OAAO,EACZ,mBAAmB,EACnB,IAAI,CAAC,UAAU,CAChB,CAAC;QAEF,mCAAmC;QACnC,IAAI,iBAAiB,KAAK,CAAC,CAAC,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,uCAAkB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,uCAAkB,CAAC,KAAK,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,sCAAY,GAAZ,UAAa,OAAiB;;QAC5B,mCAAmC;QACnC,OAAO,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,GAAG,IAAI,EAAX,CAAW,CAAC,CAAC;;YAE1C,iCAAiC;YACjC,KAAoB,IAAA,YAAA,iBAAA,OAAO,CAAA,gCAAA,qDAAE,CAAC;gBAAzB,IAAM,KAAK,oBAAA;gBACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;;;;;;;;;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,2CAAQ,OAAO,UAAC,CAAC;QACxC,mFAAmF;QACnF,IAAI,CAAC,iBAAiB,CACpB,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EACrC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sCAAY,GAAZ,UAAa,UAA0B,EAAE,cAAsB;;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC/B,IAAI,CAAC,iBAAiB,EACtB,UAAU,CAAC,MAAM,GAAG,EAAE,CACvB,CAAC;QACF,IAAI,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC;QAEzC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC;YACzC,iBAAiB,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,4DAA4D;QACtG,CAAC;QACD,yBAAyB;QACzB,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC1B,iBAAiB,EACjB,IAAI,CAAC,sCAAsC,CAAC,UAAU,CAAC,CACxD,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC/D,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,4BAA4B;QAE5B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC1B,iBAAiB,EACjB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAC/C,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,mCAAI,iBAAiB,EACvE,IAAI,CAAC,sCAAsC,CAAC,UAAU,CAAC,CACxD,CAAC;QAEF,IAAI,iBAAiB,IAAI,CAAC,IAAI,iBAAiB,GAAG,cAAc,EAAE,CAAC;YACjE,IAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YACvE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,gCAAgC,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,mCAAS,GAAT,UAAU,KAAa;QACrB,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,8CAA8C;YAC9C,MAAM,GAAG;gBACP,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,4CAAkB,GAAlB,UAAmB,MAAoB;;QACrC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,uBAAuB;YAC1B,MAAA,MAAM,CAAC,uBAAuB,mCAAI,IAAI,CAAC,uBAAuB,CAAC;IACnE,CAAC;IAED,wCAAc,GAAd;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAqBD;;;;;;;;OAQG;IACO,iCAAO,GAAjB,UAAkB,KAAa,EAAE,YAAoB;;QAApB,6BAAA,EAAA,oBAAoB;QACnD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,YAAY,CAAC,IAAI,mCAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACO,0CAAgB,GAA1B,UAA2B,KAAa,IAAG,CAAC;IAE5C;;;;OAIG;IACK,8CAAoB,GAA5B,UAA6B,UAAkB;QAC7C,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,gCAAgC,CAAC;YACzD,IAAI,CAAC,iBAAiB,EACxB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACxB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,8CAAoB,GAA5B,UAA6B,UAAkB;QAC7C,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,2CAAiB,GAAzB,UAA0B,UAAkB,EAAE,QAAgB;QAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,IACE,IAAI,CAAC,sBAAsB,IAAI,UAAU;YACzC,IAAI,CAAC,sBAAsB,IAAI,QAAQ,EACvC,CAAC;YACD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,SAAS,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACpC,QAAQ,GAAG,CAAC,EACZ,IAAI,CAAC,sBAAsB,CAC5B,CAAC;YACF,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,wEAAwE;YACxE,yCAAyC;YACzC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;gBAC9D,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,SAAS,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gEAAsC,GAA9C,UACE,UAA0B;;QAE1B,IAAI,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC;;YACzC,KAAmB,IAAA,eAAA,iBAAA,UAAU,CAAA,sCAAA,8DAAE,CAAC;gBAA3B,IAAM,IAAI,uBAAA;gBACL,IAAA,KAAK,GAAiB,IAAI,MAArB,EAAE,UAAU,GAAK,IAAI,WAAT,CAAU;gBACnC,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACzC,IACE,KAAK,IAAI,IAAI,CAAC,sBAAsB;oBACpC,CAAC,YAAY;oBACb,CAAC,YAAY,CAAC,gBAAgB;oBAC9B,CAAC,YAAY,CAAC,eAAe;oBAC7B,IAAA,qCAAqB,EAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;oBAC7D,IAAA,qCAAqB,EAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAC3D,CAAC;oBACD,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;oBACvD,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,GAAG,CAC9C,IAAI,CAAC,gCAAgC,EACrC,KAAK,CACN,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAC/B,UAAU,CAAC,MAAM,EACjB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CACxB,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAC9B,UAAU,CAAC,KAAK,EAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CACxB,CAAC;YACJ,CAAC;;;;;;;;;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEO,wDAA8B,GAAtC,UAAuC,UAA0B;;QAC/D,IAAI,uBAAuB,GAAG,MAAM,CAAC,SAAS,CAAC;;YAC/C,KAAmB,IAAA,eAAA,iBAAA,UAAU,CAAA,sCAAA,8DAAE,CAAC;gBAA3B,IAAM,IAAI,uBAAA;gBACL,IAAA,KAAK,GAAK,IAAI,MAAT,CAAU;gBACvB,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC7B,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;;;;;;;;;QACD,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACH,sBAAC;AAAD,CAAC,AApYD,IAoYC;AApYqB,0CAAe"}
|
|
@@ -11,6 +11,8 @@ export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
|
|
|
11
11
|
private columnHeights;
|
|
12
12
|
/** Current column index for sequential placement */
|
|
13
13
|
private currentColumn;
|
|
14
|
+
/** If there's a span change for masonry layout, we need to recompute all the widths */
|
|
15
|
+
private fullRelayoutRequired;
|
|
14
16
|
constructor(params: LayoutParams, previousLayoutManager?: RVLayoutManager);
|
|
15
17
|
/**
|
|
16
18
|
* Updates layout parameters and triggers recomputation if necessary.
|
|
@@ -22,13 +24,18 @@ export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
|
|
|
22
24
|
* @param layoutInfo Array of layout information for items (real measurements)
|
|
23
25
|
* @param itemCount Total number of items in the list
|
|
24
26
|
*/
|
|
25
|
-
processLayoutInfo(layoutInfo: RVLayoutInfo[], itemCount: number):
|
|
27
|
+
processLayoutInfo(layoutInfo: RVLayoutInfo[], itemCount: number): 0 | undefined;
|
|
26
28
|
/**
|
|
27
29
|
* Estimates layout dimensions for an item at the given index.
|
|
28
30
|
* Can be called by base class if estimate is required.
|
|
29
31
|
* @param index Index of the item to estimate layout for
|
|
30
32
|
*/
|
|
31
33
|
estimateLayout(index: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Handles span change for an item.
|
|
36
|
+
* @param index Index of the item
|
|
37
|
+
*/
|
|
38
|
+
handleSpanChange(index: number): void;
|
|
32
39
|
/**
|
|
33
40
|
* Returns the total size of the layout area.
|
|
34
41
|
* @returns RVDimension containing width and height of the layout
|
|
@@ -47,6 +54,7 @@ export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
|
|
|
47
54
|
* @returns Width of the item
|
|
48
55
|
*/
|
|
49
56
|
private getWidth;
|
|
57
|
+
private updateAllWidths;
|
|
50
58
|
/**
|
|
51
59
|
* Places an item sequentially in the next available position.
|
|
52
60
|
* @param layout Layout information for the item
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MasonryLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAW;IAChC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAK;
|
|
1
|
+
{"version":3,"file":"MasonryLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAW;IAChC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAK;IAE1B,uFAAuF;IACvF,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAOzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY;IAqBvC;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAmB/D;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAW5B;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAI9B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAY5B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiC5D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA0CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CA8BnC"}
|
|
@@ -11,13 +11,15 @@ var LayoutManager_1 = require("./LayoutManager");
|
|
|
11
11
|
var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
12
12
|
tslib_1.__extends(RVMasonryLayoutManagerImpl, _super);
|
|
13
13
|
function RVMasonryLayoutManagerImpl(params, previousLayoutManager) {
|
|
14
|
-
var _a
|
|
14
|
+
var _a;
|
|
15
15
|
var _this = _super.call(this, params, previousLayoutManager) || this;
|
|
16
16
|
/** Current column index for sequential placement */
|
|
17
17
|
_this.currentColumn = 0;
|
|
18
|
+
/** If there's a span change for masonry layout, we need to recompute all the widths */
|
|
19
|
+
_this.fullRelayoutRequired = false;
|
|
18
20
|
_this.boundedSize = params.windowSize.width;
|
|
19
|
-
_this.optimizeItemArrangement =
|
|
20
|
-
_this.columnHeights = (
|
|
21
|
+
_this.optimizeItemArrangement = params.optimizeItemArrangement;
|
|
22
|
+
_this.columnHeights = (_a = _this.columnHeights) !== null && _a !== void 0 ? _a : Array(_this.maxColumns).fill(0);
|
|
21
23
|
return _this;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
@@ -35,10 +37,7 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
|
35
37
|
if (this.layouts.length > 0) {
|
|
36
38
|
// console.log("-----> recomputeLayouts");
|
|
37
39
|
// update all widths
|
|
38
|
-
|
|
39
|
-
this.layouts[i].width = this.getWidth(i);
|
|
40
|
-
this.layouts[i].minHeight = undefined;
|
|
41
|
-
}
|
|
40
|
+
this.updateAllWidths();
|
|
42
41
|
this.recomputeLayouts(0, this.layouts.length - 1);
|
|
43
42
|
this.requiresRepaint = true;
|
|
44
43
|
}
|
|
@@ -70,6 +69,12 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
|
70
69
|
}
|
|
71
70
|
finally { if (e_1) throw e_1.error; }
|
|
72
71
|
}
|
|
72
|
+
// TODO: Can be optimized
|
|
73
|
+
if (this.fullRelayoutRequired) {
|
|
74
|
+
this.updateAllWidths();
|
|
75
|
+
this.fullRelayoutRequired = false;
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
73
78
|
};
|
|
74
79
|
/**
|
|
75
80
|
* Estimates layout dimensions for an item at the given index.
|
|
@@ -84,6 +89,13 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
|
84
89
|
layout.isWidthMeasured = true;
|
|
85
90
|
layout.enforcedWidth = true;
|
|
86
91
|
};
|
|
92
|
+
/**
|
|
93
|
+
* Handles span change for an item.
|
|
94
|
+
* @param index Index of the item
|
|
95
|
+
*/
|
|
96
|
+
RVMasonryLayoutManagerImpl.prototype.handleSpanChange = function (index) {
|
|
97
|
+
this.fullRelayoutRequired = true;
|
|
98
|
+
};
|
|
87
99
|
/**
|
|
88
100
|
* Returns the total size of the layout area.
|
|
89
101
|
* @returns RVDimension containing width and height of the layout
|
|
@@ -105,7 +117,6 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
|
105
117
|
* @param endIndex Ending index of items to recompute
|
|
106
118
|
*/
|
|
107
119
|
RVMasonryLayoutManagerImpl.prototype.recomputeLayouts = function (startIndex, endIndex) {
|
|
108
|
-
var _a;
|
|
109
120
|
// Reset column heights if starting from the beginning
|
|
110
121
|
if (startIndex === 0) {
|
|
111
122
|
this.columnHeights = Array(this.maxColumns).fill(0);
|
|
@@ -119,7 +130,8 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
|
119
130
|
var itemCount = this.layouts.length;
|
|
120
131
|
for (var i = startIndex; i < itemCount; i++) {
|
|
121
132
|
var layout = this.getLayout(i);
|
|
122
|
-
|
|
133
|
+
// Skip tracking span because we're not changing widths
|
|
134
|
+
var span = this.getSpan(i, true);
|
|
123
135
|
if (this.optimizeItemArrangement) {
|
|
124
136
|
if (span === 1) {
|
|
125
137
|
// For single column items, place in the shortest column
|
|
@@ -142,9 +154,13 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
|
|
|
142
154
|
* @returns Width of the item
|
|
143
155
|
*/
|
|
144
156
|
RVMasonryLayoutManagerImpl.prototype.getWidth = function (index) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
157
|
+
return (this.boundedSize / this.maxColumns) * this.getSpan(index);
|
|
158
|
+
};
|
|
159
|
+
RVMasonryLayoutManagerImpl.prototype.updateAllWidths = function () {
|
|
160
|
+
for (var i = 0; i < this.layouts.length; i++) {
|
|
161
|
+
this.layouts[i].width = this.getWidth(i);
|
|
162
|
+
this.layouts[i].minHeight = undefined;
|
|
163
|
+
}
|
|
148
164
|
};
|
|
149
165
|
/**
|
|
150
166
|
* Places an item sequentially in the next available position.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MasonryLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":";;;;AAAA,iDAMyB;AAEzB;;;;GAIG;AACH;IAAgD,sDAAe;
|
|
1
|
+
{"version":3,"file":"MasonryLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"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"}
|