@shopify/flash-list 1.2.1 → 1.3.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.
- package/CHANGELOG.md +10 -0
- package/dist/FlashList.d.ts +1 -1
- package/dist/FlashList.d.ts.map +1 -1
- package/dist/FlashList.js +8 -4
- package/dist/FlashList.js.map +1 -1
- package/dist/MasonryFlashList.d.ts +39 -0
- package/dist/MasonryFlashList.d.ts.map +1 -0
- package/dist/MasonryFlashList.js +241 -0
- package/dist/MasonryFlashList.js.map +1 -0
- package/dist/__tests__/MasonryFlashList.test.d.ts +2 -0
- package/dist/__tests__/MasonryFlashList.test.d.ts.map +1 -0
- package/dist/__tests__/MasonryFlashList.test.js +205 -0
- package/dist/__tests__/MasonryFlashList.test.js.map +1 -0
- package/dist/__tests__/helpers/mountMasonryFlashList.d.ts +18 -0
- package/dist/__tests__/helpers/mountMasonryFlashList.d.ts.map +1 -0
- package/dist/__tests__/helpers/mountMasonryFlashList.js +44 -0
- package/dist/__tests__/helpers/mountMasonryFlashList.js.map +1 -0
- package/dist/errors/ExceptionList.d.ts +4 -0
- package/dist/errors/ExceptionList.d.ts.map +1 -1
- package/dist/errors/ExceptionList.js +4 -0
- package/dist/errors/ExceptionList.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/native/auto-layout/AutoLayoutView.d.ts +2 -1
- package/dist/native/auto-layout/AutoLayoutView.d.ts.map +1 -1
- package/dist/native/auto-layout/AutoLayoutView.js.map +1 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +2 -0
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
- package/dist/viewability/ViewabilityManager.js +3 -3
- package/dist/viewability/ViewabilityManager.js.map +1 -1
- package/package.json +11 -2
- package/src/FlashList.tsx +10 -5
- package/src/MasonryFlashList.tsx +439 -0
- package/src/__tests__/MasonryFlashList.test.ts +235 -0
- package/src/__tests__/helpers/mountMasonryFlashList.tsx +65 -0
- package/src/errors/ExceptionList.ts +5 -0
- package/src/index.ts +7 -0
- package/src/native/auto-layout/AutoLayoutView.tsx +2 -1
- package/src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts +3 -0
- package/src/viewability/ViewabilityManager.ts +2 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_native_1 = require("react-native");
|
|
5
|
+
require("@quilted/react-testing/matchers");
|
|
6
|
+
var recyclerlistview_1 = require("recyclerlistview");
|
|
7
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
8
|
+
var mountMasonryFlashList_1 = require("./helpers/mountMasonryFlashList");
|
|
9
|
+
describe("MasonryFlashList", function () {
|
|
10
|
+
beforeEach(function () {
|
|
11
|
+
jest.clearAllMocks();
|
|
12
|
+
jest.useFakeTimers();
|
|
13
|
+
});
|
|
14
|
+
it("renders items and has 3 internal lists", function () {
|
|
15
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)();
|
|
16
|
+
expect(masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).length).toBe(3);
|
|
17
|
+
expect(masonryFlashList).toContainReactComponent(react_native_1.Text, { children: "One" });
|
|
18
|
+
expect(masonryFlashList).toContainReactComponent(recyclerlistview_1.ProgressiveListView, {
|
|
19
|
+
isHorizontal: false,
|
|
20
|
+
});
|
|
21
|
+
masonryFlashList.unmount();
|
|
22
|
+
});
|
|
23
|
+
it("raised onLoad event only when first internal child mounts", function () {
|
|
24
|
+
var _a;
|
|
25
|
+
var onLoadMock = jest.fn();
|
|
26
|
+
var ref = react_1.default.createRef();
|
|
27
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
28
|
+
onLoad: onLoadMock,
|
|
29
|
+
}, ref);
|
|
30
|
+
expect(onLoadMock).not.toHaveBeenCalled();
|
|
31
|
+
(_a = masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView)[1]) === null || _a === void 0 ? void 0 : _a.instance.onItemLayout(0);
|
|
32
|
+
expect(onLoadMock).toHaveBeenCalledTimes(1);
|
|
33
|
+
// on load shouldn't be passed to wrapper list
|
|
34
|
+
expect(ref.current.props.onLoad).toBeUndefined();
|
|
35
|
+
masonryFlashList.unmount();
|
|
36
|
+
});
|
|
37
|
+
it("can resize columns using getColumnFlex", function () {
|
|
38
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
39
|
+
getColumnFlex: function (_, column) { return (column === 0 ? 1 : 3); },
|
|
40
|
+
});
|
|
41
|
+
var progressiveListView = masonryFlashList.find(recyclerlistview_1.ProgressiveListView).instance;
|
|
42
|
+
expect(progressiveListView.getLayout(0).width).toBe(100);
|
|
43
|
+
expect(progressiveListView.getLayout(1).width).toBe(300);
|
|
44
|
+
expect(masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).length).toBe(3);
|
|
45
|
+
masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).forEach(function (plv, index) {
|
|
46
|
+
if (index === 1) {
|
|
47
|
+
expect(plv.instance.props.layoutSize.width).toBe(100);
|
|
48
|
+
}
|
|
49
|
+
if (index === 2) {
|
|
50
|
+
expect(plv.instance.props.layoutSize.width).toBe(300);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
masonryFlashList.unmount();
|
|
54
|
+
});
|
|
55
|
+
it("mounts a single ScrollView", function () {
|
|
56
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)();
|
|
57
|
+
expect(masonryFlashList.findAll(react_native_1.ScrollView)).toHaveLength(1);
|
|
58
|
+
masonryFlashList.unmount();
|
|
59
|
+
});
|
|
60
|
+
it("forwards single onScroll event to external listener", function () {
|
|
61
|
+
var _a;
|
|
62
|
+
var onScrollMock = jest.fn();
|
|
63
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
64
|
+
onScroll: onScrollMock,
|
|
65
|
+
});
|
|
66
|
+
(_a = masonryFlashList.find(react_native_1.ScrollView)) === null || _a === void 0 ? void 0 : _a.instance.props.onScroll({
|
|
67
|
+
nativeEvent: { contentOffset: { x: 0, y: 0 } },
|
|
68
|
+
});
|
|
69
|
+
expect(onScrollMock).toHaveBeenCalledTimes(1);
|
|
70
|
+
masonryFlashList.unmount();
|
|
71
|
+
});
|
|
72
|
+
it("updates scroll offset of all internal lists", function () {
|
|
73
|
+
var _a;
|
|
74
|
+
var onScrollMock = jest.fn();
|
|
75
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
76
|
+
onScroll: onScrollMock,
|
|
77
|
+
});
|
|
78
|
+
(_a = masonryFlashList.find(react_native_1.ScrollView)) === null || _a === void 0 ? void 0 : _a.instance.props.onScroll({
|
|
79
|
+
nativeEvent: { contentOffset: { x: 0, y: 100 } },
|
|
80
|
+
});
|
|
81
|
+
masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).forEach(function (list) {
|
|
82
|
+
expect(list.instance.getCurrentScrollOffset()).toBe(100);
|
|
83
|
+
});
|
|
84
|
+
masonryFlashList.unmount();
|
|
85
|
+
});
|
|
86
|
+
it("has a valid ref object", function () {
|
|
87
|
+
var ref = react_1.default.createRef();
|
|
88
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({}, ref);
|
|
89
|
+
expect(ref.current).toBeDefined();
|
|
90
|
+
masonryFlashList.unmount();
|
|
91
|
+
});
|
|
92
|
+
it("forwards overrideItemLayout to internal lists", function () {
|
|
93
|
+
var overrideItemLayout = jest.fn(function (layout) {
|
|
94
|
+
layout.size = 300;
|
|
95
|
+
});
|
|
96
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
97
|
+
overrideItemLayout: overrideItemLayout,
|
|
98
|
+
});
|
|
99
|
+
expect(masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).length).toBe(3);
|
|
100
|
+
masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).forEach(function (list, index) {
|
|
101
|
+
if (index !== 0) {
|
|
102
|
+
expect(list.instance.getLayout(0).height).toBe(300);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
masonryFlashList.unmount();
|
|
106
|
+
});
|
|
107
|
+
it("forwards keyExtractor to internal list", function () {
|
|
108
|
+
var keyExtractor = function (_, index) { return (index + 1).toString(); };
|
|
109
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
110
|
+
keyExtractor: keyExtractor,
|
|
111
|
+
});
|
|
112
|
+
expect(masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).length).toBe(3);
|
|
113
|
+
expect(masonryFlashList
|
|
114
|
+
.findAll(recyclerlistview_1.ProgressiveListView)[0]
|
|
115
|
+
.instance.props.dataProvider.getStableId(0)).toBe("0");
|
|
116
|
+
expect(masonryFlashList
|
|
117
|
+
.findAll(recyclerlistview_1.ProgressiveListView)[1]
|
|
118
|
+
.instance.props.dataProvider.getStableId(0)).toBe("1");
|
|
119
|
+
expect(masonryFlashList
|
|
120
|
+
.findAll(recyclerlistview_1.ProgressiveListView)[2]
|
|
121
|
+
.instance.props.dataProvider.getStableId(0)).toBe("2");
|
|
122
|
+
masonryFlashList.unmount();
|
|
123
|
+
});
|
|
124
|
+
it("correctly maps list indices to actual indices", function () {
|
|
125
|
+
var data = new Array(20).fill(0).map(function (_, index) { return index.toString(); });
|
|
126
|
+
var getItemType = function (item, index) {
|
|
127
|
+
expect(index.toString()).toBe(item);
|
|
128
|
+
return 0;
|
|
129
|
+
};
|
|
130
|
+
var renderItem = function (_a) {
|
|
131
|
+
var item = _a.item, index = _a.index;
|
|
132
|
+
expect(index.toString()).toBe(item);
|
|
133
|
+
return null;
|
|
134
|
+
};
|
|
135
|
+
var overrideItemLayout = function (layout, item, index) {
|
|
136
|
+
expect(index.toString()).toBe(item);
|
|
137
|
+
};
|
|
138
|
+
var keyExtractor = function (item, index) {
|
|
139
|
+
expect(index.toString()).toBe(item);
|
|
140
|
+
return index.toString();
|
|
141
|
+
};
|
|
142
|
+
var onViewableItemsChanged = function (info) {
|
|
143
|
+
info.viewableItems.forEach(function (viewToken) {
|
|
144
|
+
var _a;
|
|
145
|
+
expect((_a = viewToken.index) === null || _a === void 0 ? void 0 : _a.toString()).toBe(viewToken.item);
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
149
|
+
data: data,
|
|
150
|
+
renderItem: renderItem,
|
|
151
|
+
getItemType: getItemType,
|
|
152
|
+
overrideItemLayout: overrideItemLayout,
|
|
153
|
+
keyExtractor: keyExtractor,
|
|
154
|
+
onViewableItemsChanged: onViewableItemsChanged,
|
|
155
|
+
});
|
|
156
|
+
jest.advanceTimersByTime(1000);
|
|
157
|
+
masonryFlashList.unmount();
|
|
158
|
+
});
|
|
159
|
+
it("internal list height should be derived from the parent and width from itself", function () {
|
|
160
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
161
|
+
testID: "MasonryProxyScrollView",
|
|
162
|
+
});
|
|
163
|
+
expect(masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).length).toBe(3);
|
|
164
|
+
masonryFlashList.findAll(react_native_1.View).forEach(function (view) {
|
|
165
|
+
var _a, _b;
|
|
166
|
+
(_b = (_a = view.props) === null || _a === void 0 ? void 0 : _a.onLayout) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
167
|
+
nativeEvent: { layout: { width: 500, height: 500 } },
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).forEach(function (list, index) {
|
|
171
|
+
if (index !== 0) {
|
|
172
|
+
expect(list.instance.getRenderedSize().width).toBe(500);
|
|
173
|
+
expect(list.instance.getRenderedSize().height).toBe(900);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
masonryFlashList.unmount();
|
|
177
|
+
});
|
|
178
|
+
it("can optimize item arrangement", function () {
|
|
179
|
+
var columnCount = 3;
|
|
180
|
+
var data = new Array(999).fill(null).map(function (_, index) {
|
|
181
|
+
return "1";
|
|
182
|
+
});
|
|
183
|
+
var masonryFlashList = (0, mountMasonryFlashList_1.mountMasonryFlashList)({
|
|
184
|
+
data: data,
|
|
185
|
+
optimizeItemArrangement: true,
|
|
186
|
+
numColumns: columnCount,
|
|
187
|
+
overrideItemLayout: function (layout, _, index, __, ___) {
|
|
188
|
+
layout.size = ((index * 10) % 100) + 100 / ((index % columnCount) + 1);
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
expect(masonryFlashList.findAll(recyclerlistview_1.ProgressiveListView).length).toBe(4);
|
|
192
|
+
// I've verified that the following values are correct by observing the algorithm in action
|
|
193
|
+
// Captured values will help prevent regression in the future
|
|
194
|
+
expect(Math.floor(masonryFlashList
|
|
195
|
+
.findAll(recyclerlistview_1.ProgressiveListView)[1]
|
|
196
|
+
.instance.getContentDimension().height)).toBe(35306);
|
|
197
|
+
expect(Math.floor(masonryFlashList
|
|
198
|
+
.findAll(recyclerlistview_1.ProgressiveListView)[2]
|
|
199
|
+
.instance.getContentDimension().height)).toBe(35313);
|
|
200
|
+
expect(Math.floor(masonryFlashList
|
|
201
|
+
.findAll(recyclerlistview_1.ProgressiveListView)[3]
|
|
202
|
+
.instance.getContentDimension().height)).toBe(35339);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=MasonryFlashList.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MasonryFlashList.test.js","sourceRoot":"","sources":["../../src/__tests__/MasonryFlashList.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "@quilted/react-testing/matchers";
|
|
3
|
+
import { Root } from "@quilted/react-testing";
|
|
4
|
+
import { ListRenderItem } from "../../FlashListProps";
|
|
5
|
+
import { MasonryFlashListProps, MasonryFlashListRef } from "../../MasonryFlashList";
|
|
6
|
+
export declare type MockMasonryFlashListProps = Omit<MasonryFlashListProps<string>, "estimatedItemSize" | "data" | "renderItem"> & {
|
|
7
|
+
estimatedItemSize?: number;
|
|
8
|
+
data?: string[];
|
|
9
|
+
renderItem?: ListRenderItem<string>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Helper to mount MasonryFlashList for testing.
|
|
13
|
+
*/
|
|
14
|
+
export declare const mountMasonryFlashList: (props?: MockMasonryFlashListProps, ref?: React.RefObject<MasonryFlashListRef<string>>) => Omit<Root<MasonryFlashListProps<string>, import("@quilted/react-testing").EmptyObject, import("@quilted/react-testing").EmptyObject, import("@quilted/react-testing").EmptyObject>, "instance"> & {
|
|
15
|
+
instance: MasonryFlashListRef<string>;
|
|
16
|
+
};
|
|
17
|
+
export declare function renderMasonryFlashList(props?: MockMasonryFlashListProps, ref?: React.RefObject<MasonryFlashListRef<string>>): JSX.Element;
|
|
18
|
+
//# sourceMappingURL=mountMasonryFlashList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mountMasonryFlashList.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/mountMasonryFlashList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,iCAAiC,CAAC;AACzC,OAAO,EAAS,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAEL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAehC,oBAAY,yBAAyB,GAAG,IAAI,CAC1C,qBAAqB,CAAC,MAAM,CAAC,EAC7B,mBAAmB,GAAG,MAAM,GAAG,YAAY,CAC5C,GAAG;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,WACxB,yBAAyB,QAC3B,MAAM,SAAS,CAAC,oBAAoB,MAAM,CAAC,CAAC;cAMtC,oBAAoB,MAAM,CAAC;CAGxC,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,yBAAyB,EACjC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,eAYnD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderMasonryFlashList = exports.mountMasonryFlashList = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
var react_native_1 = require("react-native");
|
|
7
|
+
require("@quilted/react-testing/matchers");
|
|
8
|
+
var react_testing_1 = require("@quilted/react-testing");
|
|
9
|
+
var MasonryFlashList_1 = require("../../MasonryFlashList");
|
|
10
|
+
jest.mock("../../FlashList", function () {
|
|
11
|
+
var ActualFlashList = jest.requireActual("../../FlashList").default;
|
|
12
|
+
var MockFlashList = /** @class */ (function (_super) {
|
|
13
|
+
tslib_1.__extends(MockFlashList, _super);
|
|
14
|
+
function MockFlashList() {
|
|
15
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
16
|
+
}
|
|
17
|
+
MockFlashList.prototype.componentDidMount = function () {
|
|
18
|
+
var _a, _b, _c;
|
|
19
|
+
_super.prototype.componentDidMount.call(this);
|
|
20
|
+
(_c = (_b = (_a = this.rlvRef) === null || _a === void 0 ? void 0 : _a._scrollComponent) === null || _b === void 0 ? void 0 : _b._scrollViewRef) === null || _c === void 0 ? void 0 : _c.props.onLayout({
|
|
21
|
+
nativeEvent: { layout: { height: 900, width: 400 } },
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
return MockFlashList;
|
|
25
|
+
}(ActualFlashList));
|
|
26
|
+
return MockFlashList;
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Helper to mount MasonryFlashList for testing.
|
|
30
|
+
*/
|
|
31
|
+
var mountMasonryFlashList = function (props, ref) {
|
|
32
|
+
var flashList = (0, react_testing_1.mount)(renderMasonryFlashList(props, ref));
|
|
33
|
+
return flashList;
|
|
34
|
+
};
|
|
35
|
+
exports.mountMasonryFlashList = mountMasonryFlashList;
|
|
36
|
+
function renderMasonryFlashList(props, ref) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
return (react_1.default.createElement(MasonryFlashList_1.MasonryFlashList, tslib_1.__assign({}, props, { ref: ref, numColumns: (_a = props === null || props === void 0 ? void 0 : props.numColumns) !== null && _a !== void 0 ? _a : 2, renderItem: (props === null || props === void 0 ? void 0 : props.renderItem) || (function (_a) {
|
|
39
|
+
var item = _a.item;
|
|
40
|
+
return react_1.default.createElement(react_native_1.Text, null, item);
|
|
41
|
+
}), estimatedItemSize: (_b = props === null || props === void 0 ? void 0 : props.estimatedItemSize) !== null && _b !== void 0 ? _b : 200, data: (props === null || props === void 0 ? void 0 : props.data) || ["One", "Two", "Three", "Four"] })));
|
|
42
|
+
}
|
|
43
|
+
exports.renderMasonryFlashList = renderMasonryFlashList;
|
|
44
|
+
//# sourceMappingURL=mountMasonryFlashList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mountMasonryFlashList.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/mountMasonryFlashList.tsx"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAC1B,6CAAoC;AACpC,2CAAyC;AACzC,wDAAqD;AAGrD,2DAIgC;AAEhC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IAC3B,IAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;IACtE;QAA4B,yCAAe;QAA3C;;QAOA,CAAC;QANC,yCAAiB,GAAjB;;YACE,iBAAM,iBAAiB,WAAE,CAAC;YAC1B,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,gBAAgB,0CAAE,cAAc,0CAAE,KAAK,CAAC,QAAQ,CAAC;gBAC5D,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;aACrD,CAAC,CAAC;QACL,CAAC;QACH,oBAAC;IAAD,CAAC,AAPD,CAA4B,eAAe,GAO1C;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC,CAAC;AAWH;;GAEG;AACI,IAAM,qBAAqB,GAAG,UACnC,KAAiC,EACjC,GAAkD;IAElD,IAAM,SAAS,GAAG,IAAA,qBAAK,EAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAKzD,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC;AAEF,SAAgB,sBAAsB,CACpC,KAAiC,EACjC,GAAkD;;IAElD,OAAO,CACL,8BAAC,mCAAgB,uBACX,KAAK,IACT,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,CAAC,EAClC,UAAU,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,KAAI,CAAC,UAAC,EAAQ;gBAAN,IAAI,UAAA;YAAO,OAAA,8BAAC,mBAAI,QAAE,IAAI,CAAQ;QAAnB,CAAmB,CAAC,EACpE,iBAAiB,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,iBAAiB,mCAAI,GAAG,EAClD,IAAI,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IACpD,CACH,CAAC;AACJ,CAAC;AAdD,wDAcC"}
|
|
@@ -15,6 +15,10 @@ declare const ExceptionList: {
|
|
|
15
15
|
message: string;
|
|
16
16
|
type: string;
|
|
17
17
|
};
|
|
18
|
+
overrideItemLayoutRequiredForMasonryOptimization: {
|
|
19
|
+
message: string;
|
|
20
|
+
type: string;
|
|
21
|
+
};
|
|
18
22
|
};
|
|
19
23
|
export default ExceptionList;
|
|
20
24
|
//# sourceMappingURL=ExceptionList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExceptionList.d.ts","sourceRoot":"","sources":["../../src/errors/ExceptionList.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"ExceptionList.d.ts","sourceRoot":"","sources":["../../src/errors/ExceptionList.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;CA0BlB,CAAC;AACF,eAAe,aAAa,CAAC"}
|
|
@@ -17,6 +17,10 @@ var ExceptionList = {
|
|
|
17
17
|
message: "You can set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold. Specifying both is not supported.",
|
|
18
18
|
type: "MultipleViewabilityThresholdTypesException",
|
|
19
19
|
},
|
|
20
|
+
overrideItemLayoutRequiredForMasonryOptimization: {
|
|
21
|
+
message: "optimizeItemArrangement has been enabled on `MasonryFlashList` but overrideItemLayout is not set.",
|
|
22
|
+
type: "InvariantViolation",
|
|
23
|
+
},
|
|
20
24
|
};
|
|
21
25
|
exports.default = ExceptionList;
|
|
22
26
|
//# sourceMappingURL=ExceptionList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExceptionList.js","sourceRoot":"","sources":["../../src/errors/ExceptionList.ts"],"names":[],"mappings":";;AAAA,IAAM,aAAa,GAAG;IACpB,qBAAqB,EAAE;QACrB,OAAO,EACL,8FAA8F;QAChG,IAAI,EAAE,oBAAoB;KAC3B;IACD,iCAAiC,EAAE;QACjC,OAAO,EACL,sGAAsG;QACxG,IAAI,EAAE,uBAAuB;KAC9B;IACD,kCAAkC,EAAE;QAClC,OAAO,EACL,oGAAoG;QACtG,IAAI,EAAE,uBAAuB;KAC9B;IACD,6CAA6C,EAAE;QAC7C,OAAO,EACL,+HAA+H;QACjI,IAAI,EAAE,4CAA4C;KACnD;CACF,CAAC;AACF,kBAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"ExceptionList.js","sourceRoot":"","sources":["../../src/errors/ExceptionList.ts"],"names":[],"mappings":";;AAAA,IAAM,aAAa,GAAG;IACpB,qBAAqB,EAAE;QACrB,OAAO,EACL,8FAA8F;QAChG,IAAI,EAAE,oBAAoB;KAC3B;IACD,iCAAiC,EAAE;QACjC,OAAO,EACL,sGAAsG;QACxG,IAAI,EAAE,uBAAuB;KAC9B;IACD,kCAAkC,EAAE;QAClC,OAAO,EACL,oGAAoG;QACtG,IAAI,EAAE,uBAAuB;KAC9B;IACD,6CAA6C,EAAE;QAC7C,OAAO,EACL,+HAA+H;QACjI,IAAI,EAAE,4CAA4C;KACnD;IACD,gDAAgD,EAAE;QAChD,OAAO,EACL,mGAAmG;QACrG,IAAI,EAAE,oBAAoB;KAC3B;CACF,CAAC;AACF,kBAAe,aAAa,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { useBenchmark, BenchmarkParams, BenchmarkResult, } from "./benchmark/use
|
|
|
6
6
|
export { useDataMultiplier } from "./benchmark/useDataMultiplier";
|
|
7
7
|
export { useFlatListBenchmark, FlatListBenchmarkParams, } from "./benchmark/useFlatListBenchmark";
|
|
8
8
|
export { useBlankAreaTracker, BlankAreaTrackerResult, BlankAreaTrackerConfig, } from "./benchmark/useBlankAreaTracker";
|
|
9
|
+
export { MasonryFlashList, MasonryFlashListProps, MasonryFlashListScrollEvent, MasonryFlashListRef, MasonryListItem, } from "./MasonryFlashList";
|
|
9
10
|
export { JSFPSMonitor, JSFPSResult } from "./benchmark/JSFPSMonitor";
|
|
10
11
|
export { autoScroll, Cancellable } from "./benchmark/AutoScrollHelper";
|
|
11
12
|
export { default as ViewToken } from "./viewability/ViewToken";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uCAAuC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CellContainer = exports.Cancellable = exports.autoScroll = exports.JSFPSMonitor = exports.useBlankAreaTracker = exports.useFlatListBenchmark = exports.useDataMultiplier = exports.useBenchmark = exports.useOnNativeBlankAreaEvents = exports.AnimatedFlashList = exports.RenderTargetOptions = exports.FlashList = void 0;
|
|
6
|
+
exports.CellContainer = exports.Cancellable = exports.autoScroll = exports.JSFPSMonitor = exports.MasonryFlashList = exports.useBlankAreaTracker = exports.useFlatListBenchmark = exports.useDataMultiplier = exports.useBenchmark = exports.useOnNativeBlankAreaEvents = exports.AnimatedFlashList = exports.RenderTargetOptions = exports.FlashList = void 0;
|
|
7
7
|
var FlashList_1 = require("./FlashList");
|
|
8
8
|
Object.defineProperty(exports, "FlashList", { enumerable: true, get: function () { return __importDefault(FlashList_1).default; } });
|
|
9
9
|
var FlashListProps_1 = require("./FlashListProps");
|
|
@@ -20,6 +20,8 @@ var useFlatListBenchmark_1 = require("./benchmark/useFlatListBenchmark");
|
|
|
20
20
|
Object.defineProperty(exports, "useFlatListBenchmark", { enumerable: true, get: function () { return useFlatListBenchmark_1.useFlatListBenchmark; } });
|
|
21
21
|
var useBlankAreaTracker_1 = require("./benchmark/useBlankAreaTracker");
|
|
22
22
|
Object.defineProperty(exports, "useBlankAreaTracker", { enumerable: true, get: function () { return useBlankAreaTracker_1.useBlankAreaTracker; } });
|
|
23
|
+
var MasonryFlashList_1 = require("./MasonryFlashList");
|
|
24
|
+
Object.defineProperty(exports, "MasonryFlashList", { enumerable: true, get: function () { return MasonryFlashList_1.MasonryFlashList; } });
|
|
23
25
|
var JSFPSMonitor_1 = require("./benchmark/JSFPSMonitor");
|
|
24
26
|
Object.defineProperty(exports, "JSFPSMonitor", { enumerable: true, get: function () { return JSFPSMonitor_1.JSFPSMonitor; } });
|
|
25
27
|
var AutoScrollHelper_1 = require("./benchmark/AutoScrollHelper");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,mDAO0B;AADxB,qHAAA,mBAAmB,OAAA;AAErB,yDAAmE;AAA1D,uIAAA,OAAO,OAAqB;AACrC,sEAI6C;AAH3C,4HAAA,0BAA0B,OAAA;AAI5B,yDAIkC;AAHhC,4GAAA,YAAY,OAAA;AAId,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,yEAG0C;AAFxC,4HAAA,oBAAoB,OAAA;AAGtB,uEAIyC;AAHvC,0HAAA,mBAAmB,OAAA;AAIrB,yDAAqE;AAA5D,4GAAA,YAAY,OAAA;AACrB,iEAAuE;AAA9D,8GAAA,UAAU,OAAA;AAAE,+GAAA,WAAW,OAAA;AAEhC,uEAAiF;AAAxE,+HAAA,OAAO,OAAiB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,mDAO0B;AADxB,qHAAA,mBAAmB,OAAA;AAErB,yDAAmE;AAA1D,uIAAA,OAAO,OAAqB;AACrC,sEAI6C;AAH3C,4HAAA,0BAA0B,OAAA;AAI5B,yDAIkC;AAHhC,4GAAA,YAAY,OAAA;AAId,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,yEAG0C;AAFxC,4HAAA,oBAAoB,OAAA;AAGtB,uEAIyC;AAHvC,0HAAA,mBAAmB,OAAA;AAIrB,uDAM4B;AAL1B,oHAAA,gBAAgB,OAAA;AAMlB,yDAAqE;AAA5D,4GAAA,YAAY,OAAA;AACrB,iEAAuE;AAA9D,8GAAA,UAAU,OAAA;AAAE,+GAAA,WAAW,OAAA;AAEhC,uEAAiF;AAAxE,+HAAA,OAAO,OAAiB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
import { LayoutChangeEvent } from "react-native";
|
|
3
3
|
export declare type BlankAreaEventHandler = (blankAreaEvent: BlankAreaEvent) => void;
|
|
4
4
|
export declare const useOnNativeBlankAreaEvents: (onBlankAreaEvent: (blankAreaEvent: BlankAreaEvent) => void) => void;
|
|
@@ -8,6 +8,7 @@ export interface BlankAreaEvent {
|
|
|
8
8
|
blankArea: number;
|
|
9
9
|
}
|
|
10
10
|
export interface AutoLayoutViewProps {
|
|
11
|
+
children?: ReactNode;
|
|
11
12
|
onBlankAreaEvent?: BlankAreaEventHandler;
|
|
12
13
|
onLayout?: (event: LayoutChangeEvent) => void;
|
|
13
14
|
disableAutoLayout?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoLayoutView.d.ts","sourceRoot":"","sources":["../../../src/native/auto-layout/AutoLayoutView.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AutoLayoutView.d.ts","sourceRoot":"","sources":["../../../src/native/auto-layout/AutoLayoutView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAKjD,oBAAY,qBAAqB,GAAG,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;AAG7E,eAAO,MAAM,0BAA0B,sCACF,cAAc,KAAK,IAAI,SAQ3D,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,cAAM,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;IAC/D,OAAO,CAAC,wBAAwB,CAa9B;IAEF,OAAO,CAAC,mBAAmB;IAO3B,MAAM;CAcP;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoLayoutView.js","sourceRoot":"","sources":["../../../src/native/auto-layout/AutoLayoutView.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"AutoLayoutView.js","sourceRoot":"","sources":["../../../src/native/auto-layout/AutoLayoutView.tsx"],"names":[],"mappings":";;;;AAAA,qDAAoD;AAGpD,0GAA4E;AAI5E,IAAM,SAAS,GAA4B,EAAE,CAAC;AAEvC,IAAM,0BAA0B,GAAG,UACxC,gBAA0D;IAE1D,IAAA,iBAAS,EAAC;QACR,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjC,OAAO;YACL,SAAS,CAAC,MAAM,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,KAAK,gBAAgB,EAA7B,CAA6B,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,0BAA0B,8BASrC;AAeF;IAA6B,0CAAoC;IAAjE;QAAA,qEAqCC;QApCS,8BAAwB,GAAG,UAAC,EAEjB;gBADjB,WAAW,iBAAA;YAEX,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAM,eAAe,GAAG;gBACtB,SAAS,WAAA;gBACT,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,SAAS,EAAE,WAAW,CAAC,SAAS;aACjC,CAAC;YACF,KAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC/B,KAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC;;IAuBJ,CAAC;IArBS,4CAAmB,GAA3B,UAA4B,KAAqB;QAC/C,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC;IAED,+BAAM,GAAN;QACE,OAAO,CACL,8BAAC,uCAA6B,uBACxB,IAAI,CAAC,KAAK,IACd,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,EAC/C,qBAAqB,EACnB,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAEhE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAE9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CACU,CACjC,CAAC;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AArCD,CAA6B,eAAK,CAAC,SAAS,GAqC3C;AAED,kBAAe,cAAc,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
1
2
|
export interface OnBlankAreaEvent {
|
|
2
3
|
nativeEvent: {
|
|
3
4
|
offsetStart: number;
|
|
@@ -6,6 +7,7 @@ export interface OnBlankAreaEvent {
|
|
|
6
7
|
}
|
|
7
8
|
declare type OnBlankAreaEventHandler = (event: OnBlankAreaEvent) => void;
|
|
8
9
|
export interface AutoLayoutViewNativeComponentProps {
|
|
10
|
+
children?: ReactNode;
|
|
9
11
|
onBlankAreaEvent: OnBlankAreaEventHandler;
|
|
10
12
|
enableInstrumentation: boolean;
|
|
11
13
|
disableAutoLayout?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoLayoutViewNativeComponentProps.d.ts","sourceRoot":"","sources":["../../../src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,aAAK,uBAAuB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,kCAAkC;IACjD,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|
|
1
|
+
{"version":3,"file":"AutoLayoutViewNativeComponentProps.d.ts","sourceRoot":"","sources":["../../../src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,aAAK,uBAAuB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|