@legendapp/list 1.0.19 → 1.1.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/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  var React2 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var shim = require('use-sync-external-store/shim');
6
+ var list = require('@legendapp/list');
6
7
 
7
8
  function _interopNamespace(e) {
8
9
  if (e && e.__esModule) return e;
@@ -193,6 +194,9 @@ function useInterval(callback, delay) {
193
194
  function isFunction(obj) {
194
195
  return typeof obj === "function";
195
196
  }
197
+ function isArray(obj) {
198
+ return Array.isArray(obj);
199
+ }
196
200
  var warned = /* @__PURE__ */ new Set();
197
201
  function warnDevOnce(id, text) {
198
202
  if (__DEV__ && !warned.has(id)) {
@@ -1005,7 +1009,7 @@ var LegendList = typedForwardRef(function LegendList2(props, forwardedRef) {
1005
1009
  var LegendListInner = typedForwardRef(function LegendListInner2(props, forwardedRef) {
1006
1010
  const {
1007
1011
  data: dataProp = [],
1008
- initialScrollIndex,
1012
+ initialScrollIndex: initialScrollIndexProp,
1009
1013
  initialScrollOffset,
1010
1014
  horizontal,
1011
1015
  drawDistance = 250,
@@ -1021,7 +1025,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1021
1025
  numColumns: numColumnsProp = 1,
1022
1026
  columnWrapperStyle,
1023
1027
  keyExtractor: keyExtractorProp,
1024
- renderItem,
1028
+ renderItem: renderItem2,
1029
+ estimatedListSize,
1025
1030
  estimatedItemSize: estimatedItemSizeProp,
1026
1031
  getEstimatedItemSize,
1027
1032
  suggestEstimatedItemSize,
@@ -1044,6 +1049,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1044
1049
  onViewableItemsChanged,
1045
1050
  ...rest
1046
1051
  } = props;
1052
+ const initialScroll = typeof initialScrollIndexProp === "number" ? { index: initialScrollIndexProp } : initialScrollIndexProp;
1053
+ const initialScrollIndex = initialScroll == null ? void 0 : initialScroll.index;
1047
1054
  const refLoadStartTime = React2.useRef(Date.now());
1048
1055
  const callbacks = React2.useRef({
1049
1056
  onStartReached: rest.onStartReached,
@@ -1121,9 +1128,21 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1121
1128
  }
1122
1129
  return 0;
1123
1130
  };
1131
+ const calculateOffsetWithOffsetPosition = (offsetParam, params) => {
1132
+ const { index, viewOffset, viewPosition } = params;
1133
+ let offset = offsetParam;
1134
+ const state = refState.current;
1135
+ if (viewOffset) {
1136
+ offset -= viewOffset;
1137
+ }
1138
+ if (viewPosition !== void 0 && index !== void 0) {
1139
+ offset -= viewPosition * (state.scrollLength - getItemSize(getId(index), index, state.data[index]));
1140
+ }
1141
+ return offset;
1142
+ };
1124
1143
  const initialContentOffset = initialScrollOffset != null ? initialScrollOffset : React2.useMemo(() => calculateOffsetForIndex(void 0), []);
1125
1144
  if (!refState.current) {
1126
- const initialScrollLength = reactNative.Dimensions.get("window")[horizontal ? "width" : "height"];
1145
+ const initialScrollLength = (estimatedListSize != null ? estimatedListSize : reactNative.Dimensions.get("window"))[horizontal ? "width" : "height"];
1127
1146
  refState.current = {
1128
1147
  sizes: /* @__PURE__ */ new Map(),
1129
1148
  positions: /* @__PURE__ */ new Map(),
@@ -1247,12 +1266,12 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1247
1266
  props.onLoad({ elapsedTimeInMs: Date.now() - refLoadStartTime.current });
1248
1267
  }
1249
1268
  };
1250
- if (initialScrollIndex) {
1269
+ if (initialScroll) {
1251
1270
  queueMicrotask(() => {
1252
- scrollToIndex({ index: initialScrollIndex, animated: false });
1271
+ scrollToIndex({ ...initialScroll, animated: false });
1253
1272
  requestAnimationFrame(() => {
1254
1273
  if (!IsNewArchitecture) {
1255
- scrollToIndex({ index: initialScrollIndex, animated: false });
1274
+ scrollToIndex({ ...initialScroll, animated: false });
1256
1275
  }
1257
1276
  setIt();
1258
1277
  });
@@ -1466,8 +1485,11 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1466
1485
  let scrollState = state.scroll;
1467
1486
  const scrollExtra = 0;
1468
1487
  const useAverageSize = !state.disableScrollJumpsFrom && speed >= 0 && peek$(ctx, "containersDidLayout");
1469
- if (!state.queuedInitialLayout && initialScrollIndex) {
1470
- const updatedOffset = calculateOffsetForIndex(initialScrollIndex);
1488
+ if (!state.queuedInitialLayout && initialScroll) {
1489
+ const updatedOffset = calculateOffsetWithOffsetPosition(
1490
+ calculateOffsetForIndex(initialScroll.index),
1491
+ initialScroll
1492
+ );
1471
1493
  scrollState = updatedOffset;
1472
1494
  }
1473
1495
  const scrollAdjustPad = -previousScrollAdjust - topPad;
@@ -1759,14 +1781,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1759
1781
  const scrollTo = (params = {}) => {
1760
1782
  var _a;
1761
1783
  const state = refState.current;
1762
- const { animated, index, viewPosition, viewOffset } = params;
1763
- let { offset } = params;
1764
- if (viewOffset) {
1765
- offset -= viewOffset;
1766
- }
1767
- if (viewPosition !== void 0 && index !== void 0) {
1768
- offset -= viewPosition * (state.scrollLength - getItemSize(getId(index), index, state.data[index]));
1769
- }
1784
+ const { animated } = params;
1785
+ const offset = calculateOffsetWithOffsetPosition(params.offset, params);
1770
1786
  state.scrollAdjustHandler.setDisableAdjust(true);
1771
1787
  state.scrollHistory.length = 0;
1772
1788
  state.scrollingTo = params;
@@ -2097,10 +2113,10 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2097
2113
  calcTotalSizesAndPositions({ forgetPositions: false });
2098
2114
  }
2099
2115
  React2.useEffect(() => {
2100
- if (initialScrollIndex && ListHeaderComponent) {
2116
+ if (initialScroll && ListHeaderComponent) {
2101
2117
  const dispose = listen$(ctx, "headerSize", (size) => {
2102
2118
  if (size > 0) {
2103
- scrollToIndex({ index: initialScrollIndex, animated: false });
2119
+ scrollToIndex({ ...initialScroll, animated: false });
2104
2120
  dispose == null ? void 0 : dispose();
2105
2121
  }
2106
2122
  });
@@ -2120,7 +2136,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2120
2136
  React2.useEffect(() => {
2121
2137
  set$(ctx, "extraData", extraData);
2122
2138
  }, [extraData]);
2123
- refState.current.renderItem = renderItem;
2139
+ refState.current.renderItem = renderItem2;
2124
2140
  React2.useEffect(initalizeStateVars, [
2125
2141
  memoizedLastItemKeys.join(","),
2126
2142
  numColumnsProp,
@@ -2161,7 +2177,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2161
2177
  }
2162
2178
  set$(ctx, "numContainers", numContainers);
2163
2179
  set$(ctx, "numContainersPooled", numContainers * initialContainerPoolRatio);
2164
- if (initialScrollIndex) {
2180
+ if (initialScroll) {
2165
2181
  requestAnimationFrame(() => {
2166
2182
  calculateItemsInView(
2167
2183
  /*isReset*/
@@ -2569,7 +2585,20 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2569
2585
  }
2570
2586
  ), __DEV__ && ENABLE_DEBUG_VIEW && /* @__PURE__ */ React2__namespace.createElement(DebugView, { state: refState.current }));
2571
2587
  });
2588
+ var typedForwardRef2 = React2.forwardRef;
2589
+ var renderItem = ({ item }) => item;
2590
+ var LazyLegendList = typedForwardRef2(function LazyLegendList2(props, forwardedRef) {
2591
+ const { LegendList: LegendListProp, children, ...rest } = props;
2592
+ const LegendListComponent = LegendListProp != null ? LegendListProp : list.LegendList;
2593
+ const data = (isArray(children) ? children : React2__namespace.Children.toArray(children)).flat(1);
2594
+ console.log({ data });
2595
+ return (
2596
+ // @ts-expect-error TODO: Fix this type
2597
+ /* @__PURE__ */ React2__namespace.createElement(LegendListComponent, { ...rest, data, renderItem, ref: forwardedRef })
2598
+ );
2599
+ });
2572
2600
 
2601
+ exports.LazyLegendList = LazyLegendList;
2573
2602
  exports.LegendList = LegendList;
2574
2603
  exports.useIsLastItem = useIsLastItem;
2575
2604
  exports.useListScrollSize = useListScrollSize;
package/index.mjs CHANGED
@@ -2,6 +2,7 @@ import * as React2 from 'react';
2
2
  import React2__default, { useReducer, useEffect, createContext, useMemo, useRef, useCallback, useLayoutEffect, useImperativeHandle, useContext, useState, forwardRef, memo } from 'react';
3
3
  import { View, Text, Platform, Animated, ScrollView, StyleSheet, Dimensions, RefreshControl } from 'react-native';
4
4
  import { useSyncExternalStore } from 'use-sync-external-store/shim';
5
+ import { LegendList as LegendList$1 } from '@legendapp/list';
5
6
 
6
7
  // src/LegendList.tsx
7
8
  var ContextState = React2.createContext(null);
@@ -172,6 +173,9 @@ function useInterval(callback, delay) {
172
173
  function isFunction(obj) {
173
174
  return typeof obj === "function";
174
175
  }
176
+ function isArray(obj) {
177
+ return Array.isArray(obj);
178
+ }
175
179
  var warned = /* @__PURE__ */ new Set();
176
180
  function warnDevOnce(id, text) {
177
181
  if (__DEV__ && !warned.has(id)) {
@@ -984,7 +988,7 @@ var LegendList = typedForwardRef(function LegendList2(props, forwardedRef) {
984
988
  var LegendListInner = typedForwardRef(function LegendListInner2(props, forwardedRef) {
985
989
  const {
986
990
  data: dataProp = [],
987
- initialScrollIndex,
991
+ initialScrollIndex: initialScrollIndexProp,
988
992
  initialScrollOffset,
989
993
  horizontal,
990
994
  drawDistance = 250,
@@ -1000,7 +1004,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1000
1004
  numColumns: numColumnsProp = 1,
1001
1005
  columnWrapperStyle,
1002
1006
  keyExtractor: keyExtractorProp,
1003
- renderItem,
1007
+ renderItem: renderItem2,
1008
+ estimatedListSize,
1004
1009
  estimatedItemSize: estimatedItemSizeProp,
1005
1010
  getEstimatedItemSize,
1006
1011
  suggestEstimatedItemSize,
@@ -1023,6 +1028,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1023
1028
  onViewableItemsChanged,
1024
1029
  ...rest
1025
1030
  } = props;
1031
+ const initialScroll = typeof initialScrollIndexProp === "number" ? { index: initialScrollIndexProp } : initialScrollIndexProp;
1032
+ const initialScrollIndex = initialScroll == null ? void 0 : initialScroll.index;
1026
1033
  const refLoadStartTime = useRef(Date.now());
1027
1034
  const callbacks = useRef({
1028
1035
  onStartReached: rest.onStartReached,
@@ -1100,9 +1107,21 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1100
1107
  }
1101
1108
  return 0;
1102
1109
  };
1110
+ const calculateOffsetWithOffsetPosition = (offsetParam, params) => {
1111
+ const { index, viewOffset, viewPosition } = params;
1112
+ let offset = offsetParam;
1113
+ const state = refState.current;
1114
+ if (viewOffset) {
1115
+ offset -= viewOffset;
1116
+ }
1117
+ if (viewPosition !== void 0 && index !== void 0) {
1118
+ offset -= viewPosition * (state.scrollLength - getItemSize(getId(index), index, state.data[index]));
1119
+ }
1120
+ return offset;
1121
+ };
1103
1122
  const initialContentOffset = initialScrollOffset != null ? initialScrollOffset : useMemo(() => calculateOffsetForIndex(void 0), []);
1104
1123
  if (!refState.current) {
1105
- const initialScrollLength = Dimensions.get("window")[horizontal ? "width" : "height"];
1124
+ const initialScrollLength = (estimatedListSize != null ? estimatedListSize : Dimensions.get("window"))[horizontal ? "width" : "height"];
1106
1125
  refState.current = {
1107
1126
  sizes: /* @__PURE__ */ new Map(),
1108
1127
  positions: /* @__PURE__ */ new Map(),
@@ -1226,12 +1245,12 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1226
1245
  props.onLoad({ elapsedTimeInMs: Date.now() - refLoadStartTime.current });
1227
1246
  }
1228
1247
  };
1229
- if (initialScrollIndex) {
1248
+ if (initialScroll) {
1230
1249
  queueMicrotask(() => {
1231
- scrollToIndex({ index: initialScrollIndex, animated: false });
1250
+ scrollToIndex({ ...initialScroll, animated: false });
1232
1251
  requestAnimationFrame(() => {
1233
1252
  if (!IsNewArchitecture) {
1234
- scrollToIndex({ index: initialScrollIndex, animated: false });
1253
+ scrollToIndex({ ...initialScroll, animated: false });
1235
1254
  }
1236
1255
  setIt();
1237
1256
  });
@@ -1445,8 +1464,11 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1445
1464
  let scrollState = state.scroll;
1446
1465
  const scrollExtra = 0;
1447
1466
  const useAverageSize = !state.disableScrollJumpsFrom && speed >= 0 && peek$(ctx, "containersDidLayout");
1448
- if (!state.queuedInitialLayout && initialScrollIndex) {
1449
- const updatedOffset = calculateOffsetForIndex(initialScrollIndex);
1467
+ if (!state.queuedInitialLayout && initialScroll) {
1468
+ const updatedOffset = calculateOffsetWithOffsetPosition(
1469
+ calculateOffsetForIndex(initialScroll.index),
1470
+ initialScroll
1471
+ );
1450
1472
  scrollState = updatedOffset;
1451
1473
  }
1452
1474
  const scrollAdjustPad = -previousScrollAdjust - topPad;
@@ -1738,14 +1760,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1738
1760
  const scrollTo = (params = {}) => {
1739
1761
  var _a;
1740
1762
  const state = refState.current;
1741
- const { animated, index, viewPosition, viewOffset } = params;
1742
- let { offset } = params;
1743
- if (viewOffset) {
1744
- offset -= viewOffset;
1745
- }
1746
- if (viewPosition !== void 0 && index !== void 0) {
1747
- offset -= viewPosition * (state.scrollLength - getItemSize(getId(index), index, state.data[index]));
1748
- }
1763
+ const { animated } = params;
1764
+ const offset = calculateOffsetWithOffsetPosition(params.offset, params);
1749
1765
  state.scrollAdjustHandler.setDisableAdjust(true);
1750
1766
  state.scrollHistory.length = 0;
1751
1767
  state.scrollingTo = params;
@@ -2076,10 +2092,10 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2076
2092
  calcTotalSizesAndPositions({ forgetPositions: false });
2077
2093
  }
2078
2094
  useEffect(() => {
2079
- if (initialScrollIndex && ListHeaderComponent) {
2095
+ if (initialScroll && ListHeaderComponent) {
2080
2096
  const dispose = listen$(ctx, "headerSize", (size) => {
2081
2097
  if (size > 0) {
2082
- scrollToIndex({ index: initialScrollIndex, animated: false });
2098
+ scrollToIndex({ ...initialScroll, animated: false });
2083
2099
  dispose == null ? void 0 : dispose();
2084
2100
  }
2085
2101
  });
@@ -2099,7 +2115,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2099
2115
  useEffect(() => {
2100
2116
  set$(ctx, "extraData", extraData);
2101
2117
  }, [extraData]);
2102
- refState.current.renderItem = renderItem;
2118
+ refState.current.renderItem = renderItem2;
2103
2119
  useEffect(initalizeStateVars, [
2104
2120
  memoizedLastItemKeys.join(","),
2105
2121
  numColumnsProp,
@@ -2140,7 +2156,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2140
2156
  }
2141
2157
  set$(ctx, "numContainers", numContainers);
2142
2158
  set$(ctx, "numContainersPooled", numContainers * initialContainerPoolRatio);
2143
- if (initialScrollIndex) {
2159
+ if (initialScroll) {
2144
2160
  requestAnimationFrame(() => {
2145
2161
  calculateItemsInView(
2146
2162
  /*isReset*/
@@ -2548,5 +2564,17 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2548
2564
  }
2549
2565
  ), __DEV__ && ENABLE_DEBUG_VIEW && /* @__PURE__ */ React2.createElement(DebugView, { state: refState.current }));
2550
2566
  });
2567
+ var typedForwardRef2 = forwardRef;
2568
+ var renderItem = ({ item }) => item;
2569
+ var LazyLegendList = typedForwardRef2(function LazyLegendList2(props, forwardedRef) {
2570
+ const { LegendList: LegendListProp, children, ...rest } = props;
2571
+ const LegendListComponent = LegendListProp != null ? LegendListProp : LegendList$1;
2572
+ const data = (isArray(children) ? children : React2.Children.toArray(children)).flat(1);
2573
+ console.log({ data });
2574
+ return (
2575
+ // @ts-expect-error TODO: Fix this type
2576
+ /* @__PURE__ */ React2.createElement(LegendListComponent, { ...rest, data, renderItem, ref: forwardedRef })
2577
+ );
2578
+ });
2551
2579
 
2552
- export { LegendList, useIsLastItem, useListScrollSize, useRecyclingEffect, useRecyclingState, useViewability, useViewabilityAmount };
2580
+ export { LazyLegendList, LegendList, useIsLastItem, useListScrollSize, useRecyclingEffect, useRecyclingState, useViewability, useViewabilityAmount };
@@ -1,23 +1,28 @@
1
- import * as react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe from 'react-native-reanimated/lib/typescript/layoutReanimation/animationBuilder/Keyframe';
2
- import * as react_native_reanimated from 'react-native-reanimated';
3
1
  import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
4
2
  import * as _legendapp_list from '@legendapp/list';
5
3
  import { LegendListRef } from '@legendapp/list';
6
4
  import * as react_native from 'react-native';
7
- import { Insets } from 'react-native';
8
5
  import * as React from 'react';
9
6
 
10
- declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews"> & {
7
+ declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
11
8
  alignItemsAtEnd?: boolean;
12
9
  columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
13
10
  data: readonly T[];
14
11
  drawDistance?: number;
15
12
  estimatedItemSize?: number;
13
+ estimatedListSize?: {
14
+ height: number;
15
+ width: number;
16
+ };
16
17
  extraData?: any;
17
18
  getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
18
19
  initialContainerPoolRatio?: number | undefined;
19
20
  initialScrollOffset?: number;
20
- initialScrollIndex?: number;
21
+ initialScrollIndex?: number | {
22
+ index: number;
23
+ viewOffset?: number | undefined;
24
+ viewPosition?: number | undefined;
25
+ };
21
26
  ItemSeparatorComponent?: React.ComponentType<{
22
27
  leadingItem: T;
23
28
  }> | undefined;
@@ -61,17 +66,25 @@ declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_nati
61
66
  onLoad?: (info: {
62
67
  elapsedTimeInMs: number;
63
68
  }) => void;
64
- } & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews"> & {
69
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
65
70
  alignItemsAtEnd?: boolean;
66
71
  columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
67
72
  data: readonly T[];
68
73
  drawDistance?: number;
69
74
  estimatedItemSize?: number;
75
+ estimatedListSize?: {
76
+ height: number;
77
+ width: number;
78
+ };
70
79
  extraData?: any;
71
80
  getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
72
81
  initialContainerPoolRatio?: number | undefined;
73
82
  initialScrollOffset?: number;
74
- initialScrollIndex?: number;
83
+ initialScrollIndex?: number | {
84
+ index: number;
85
+ viewOffset?: number | undefined;
86
+ viewPosition?: number | undefined;
87
+ };
75
88
  ItemSeparatorComponent?: React.ComponentType<{
76
89
  leadingItem: T;
77
90
  }> | undefined;
@@ -115,200 +128,27 @@ declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_nati
115
128
  onLoad?: (info: {
116
129
  elapsedTimeInMs: number;
117
130
  }) => void;
118
- } & React.RefAttributes<LegendListRef>) => React.ReactNode)> | (<ItemT_1>(props: Omit<_legendapp_list_reanimated.AnimatedLegendListPropsBase<ItemT_1>, "refLegendList"> & {
119
- getEstimatedItemSize?: ((index: number, item: ItemT_1) => number) | undefined;
120
- ItemSeparatorComponent?: React.ComponentType<{
121
- leadingItem: ItemT_1;
122
- }> | undefined;
123
- keyExtractor?: ((item: ItemT_1, index: number) => string) | undefined;
124
- onItemSizeChanged?: ((info: {
125
- size: number;
126
- previous: number;
127
- index: number;
128
- itemKey: string;
129
- itemData: ItemT_1;
130
- }) => void) | undefined;
131
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT_1>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<ItemT_1>> | undefined;
132
- animatedProps?: Partial<{
133
- contentOffset?: react_native.PointProp | react_native_reanimated.SharedValue<react_native.PointProp | undefined> | undefined;
134
- contentInset?: Insets | react_native_reanimated.SharedValue<Insets | undefined> | undefined;
135
- maintainVisibleContentPosition?: {
136
- autoscrollToTopThreshold?: number | null | undefined;
137
- minIndexForVisible: number;
138
- } | react_native_reanimated.SharedValue<{
139
- autoscrollToTopThreshold?: number | null | undefined;
140
- minIndexForVisible: number;
141
- } | null | undefined> | null | undefined;
142
- stickyHeaderIndices?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
143
- removeClippedSubviews?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
144
- scrollEventThrottle?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
145
- decelerationRate?: number | "fast" | "normal" | react_native_reanimated.SharedValue<number | "fast" | "normal" | undefined> | undefined;
146
- horizontal?: boolean | react_native_reanimated.SharedValue<boolean | null | undefined> | null | undefined;
147
- invertStickyHeaders?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
148
- keyboardDismissMode?: "none" | "interactive" | "on-drag" | react_native_reanimated.SharedValue<"none" | "interactive" | "on-drag" | undefined> | undefined;
149
- keyboardShouldPersistTaps?: boolean | "always" | "never" | "handled" | react_native_reanimated.SharedValue<boolean | "always" | "never" | "handled" | undefined> | undefined;
150
- onContentSizeChange?: ((w: number, h: number) => void) | react_native_reanimated.SharedValue<((w: number, h: number) => void) | undefined> | undefined;
151
- onScroll?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
152
- onScrollBeginDrag?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
153
- onScrollEndDrag?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
154
- onMomentumScrollEnd?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
155
- onMomentumScrollBegin?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
156
- pagingEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
157
- scrollEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
158
- showsHorizontalScrollIndicator?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
159
- showsVerticalScrollIndicator?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
160
- stickyHeaderHiddenOnScroll?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
161
- refreshControl?: React.ReactElement<react_native.RefreshControlProps, string | React.JSXElementConstructor<any>> | react_native_reanimated.SharedValue<React.ReactElement<react_native.RefreshControlProps, string | React.JSXElementConstructor<any>> | undefined> | undefined;
162
- snapToInterval?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
163
- snapToOffsets?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
164
- snapToStart?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
165
- snapToEnd?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
166
- disableIntervalMomentum?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
167
- disableScrollViewPanResponder?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
168
- StickyHeaderComponent?: React.ComponentType<any> | react_native_reanimated.SharedValue<React.ComponentType<any> | undefined> | undefined;
169
- children?: React.ReactNode | react_native_reanimated.SharedValue<React.ReactNode>;
170
- hitSlop?: number | Insets | react_native_reanimated.SharedValue<number | Insets | null | undefined> | null | undefined;
171
- id?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
172
- needsOffscreenAlphaCompositing?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
173
- onLayout?: ((event: react_native.LayoutChangeEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.LayoutChangeEvent) => void) | undefined> | undefined;
174
- pointerEvents?: "box-none" | "none" | "box-only" | "auto" | react_native_reanimated.SharedValue<"box-none" | "none" | "box-only" | "auto" | undefined> | undefined;
175
- testID?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
176
- nativeID?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
177
- className?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
178
- collapsable?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
179
- collapsableChildren?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
180
- renderToHardwareTextureAndroid?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
181
- focusable?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
182
- tabIndex?: 0 | -1 | react_native_reanimated.SharedValue<0 | -1 | undefined> | undefined;
183
- shouldRasterizeIOS?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
184
- isTVSelectable?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
185
- hasTVPreferredFocus?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
186
- tvParallaxShiftDistanceX?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
187
- tvParallaxShiftDistanceY?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
188
- tvParallaxTiltAngle?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
189
- tvParallaxMagnification?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
190
- onStartShouldSetResponder?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
191
- onMoveShouldSetResponder?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
192
- onResponderEnd?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
193
- onResponderGrant?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
194
- onResponderReject?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
195
- onResponderMove?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
196
- onResponderRelease?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
197
- onResponderStart?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
198
- onResponderTerminationRequest?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
199
- onResponderTerminate?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
200
- onStartShouldSetResponderCapture?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
201
- onMoveShouldSetResponderCapture?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
202
- onTouchStart?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
203
- onTouchMove?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
204
- onTouchEnd?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
205
- onTouchCancel?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
206
- onTouchEndCapture?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
207
- onPointerEnter?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
208
- onPointerEnterCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
209
- onPointerLeave?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
210
- onPointerLeaveCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
211
- onPointerMove?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
212
- onPointerMoveCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
213
- onPointerCancel?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
214
- onPointerCancelCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
215
- onPointerDown?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
216
- onPointerDownCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
217
- onPointerUp?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
218
- onPointerUpCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
219
- accessible?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
220
- accessibilityActions?: readonly Readonly<{
221
- name: react_native.AccessibilityActionName | string;
222
- label?: string | undefined;
223
- }>[] | react_native_reanimated.SharedValue<readonly Readonly<{
224
- name: react_native.AccessibilityActionName | string;
225
- label?: string | undefined;
226
- }>[] | undefined> | undefined;
227
- accessibilityLabel?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
228
- 'aria-label'?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
229
- accessibilityRole?: react_native.AccessibilityRole | react_native_reanimated.SharedValue<react_native.AccessibilityRole | undefined> | undefined;
230
- accessibilityState?: react_native.AccessibilityState | react_native_reanimated.SharedValue<react_native.AccessibilityState | undefined> | undefined;
231
- 'aria-busy'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
232
- 'aria-checked'?: boolean | "mixed" | react_native_reanimated.SharedValue<boolean | "mixed" | undefined> | undefined;
233
- 'aria-disabled'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
234
- 'aria-expanded'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
235
- 'aria-selected'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
236
- accessibilityHint?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
237
- accessibilityValue?: react_native.AccessibilityValue | react_native_reanimated.SharedValue<react_native.AccessibilityValue | undefined> | undefined;
238
- 'aria-valuemax'?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
239
- 'aria-valuemin'?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
240
- 'aria-valuenow'?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
241
- 'aria-valuetext'?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
242
- onAccessibilityAction?: ((event: react_native.AccessibilityActionEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.AccessibilityActionEvent) => void) | undefined> | undefined;
243
- importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | react_native_reanimated.SharedValue<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined;
244
- 'aria-hidden'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
245
- 'aria-modal'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
246
- role?: react_native.Role | react_native_reanimated.SharedValue<react_native.Role | undefined> | undefined;
247
- accessibilityLabelledBy?: string | string[] | react_native_reanimated.SharedValue<string | string[] | undefined> | undefined;
248
- 'aria-labelledby'?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
249
- accessibilityLiveRegion?: "none" | "polite" | "assertive" | react_native_reanimated.SharedValue<"none" | "polite" | "assertive" | undefined> | undefined;
250
- 'aria-live'?: "polite" | "assertive" | "off" | react_native_reanimated.SharedValue<"polite" | "assertive" | "off" | undefined> | undefined;
251
- accessibilityElementsHidden?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
252
- accessibilityViewIsModal?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
253
- onAccessibilityEscape?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
254
- onAccessibilityTap?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
255
- onMagicTap?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
256
- accessibilityIgnoresInvertColors?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
257
- accessibilityLanguage?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
258
- accessibilityShowsLargeContentViewer?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
259
- accessibilityLargeContentTitle?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
260
- alwaysBounceHorizontal?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
261
- alwaysBounceVertical?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
262
- automaticallyAdjustContentInsets?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
263
- automaticallyAdjustKeyboardInsets?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
264
- automaticallyAdjustsScrollIndicatorInsets?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
265
- bounces?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
266
- bouncesZoom?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
267
- canCancelContentTouches?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
268
- centerContent?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
269
- contentInsetAdjustmentBehavior?: "always" | "never" | "automatic" | "scrollableAxes" | react_native_reanimated.SharedValue<"always" | "never" | "automatic" | "scrollableAxes" | undefined> | undefined;
270
- directionalLockEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
271
- maximumZoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
272
- minimumZoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
273
- onScrollAnimationEnd?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
274
- pinchGestureEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
275
- scrollIndicatorInsets?: Insets | react_native_reanimated.SharedValue<Insets | undefined> | undefined;
276
- scrollToOverflowEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
277
- scrollsToTop?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
278
- snapToAlignment?: "end" | "start" | "center" | react_native_reanimated.SharedValue<"end" | "start" | "center" | undefined> | undefined;
279
- onScrollToTop?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
280
- zoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
281
- endFillColor?: react_native.ColorValue | react_native_reanimated.SharedValue<react_native.ColorValue | undefined> | undefined;
282
- scrollPerfTag?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
283
- overScrollMode?: "auto" | "always" | "never" | react_native_reanimated.SharedValue<"auto" | "always" | "never" | undefined> | undefined;
284
- nestedScrollEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
285
- fadingEdgeLength?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
286
- persistentScrollbar?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
287
- } & {
288
- contentContainerStyle?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
289
- style?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
290
- indicatorStyle?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<"default" | "black" | "white" | undefined>>;
291
- } & {
292
- layout?: react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.LayoutAnimationFunction | typeof react_native_reanimated.BaseAnimationBuilder;
293
- entering?: react_native_reanimated.BaseAnimationBuilder | typeof react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.EntryExitAnimationFunction | react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe.ReanimatedKeyframe;
294
- exiting?: react_native_reanimated.BaseAnimationBuilder | typeof react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.EntryExitAnimationFunction | react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe.ReanimatedKeyframe;
295
- } & {
296
- sharedTransitionTag?: string;
297
- sharedTransitionStyle?: react_native_reanimated.SharedTransition;
298
- }> | undefined;
299
- } & {
131
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
300
132
  ref?: React.Ref<LegendListRef>;
301
- }) => React.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews"> & {
133
+ }) => React.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
302
134
  alignItemsAtEnd?: boolean;
303
135
  columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
304
136
  data: readonly T[];
305
137
  drawDistance?: number;
306
138
  estimatedItemSize?: number;
139
+ estimatedListSize?: {
140
+ height: number;
141
+ width: number;
142
+ };
307
143
  extraData?: any;
308
144
  getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
309
145
  initialContainerPoolRatio?: number | undefined;
310
146
  initialScrollOffset?: number;
311
- initialScrollIndex?: number;
147
+ initialScrollIndex?: number | {
148
+ index: number;
149
+ viewOffset?: number | undefined;
150
+ viewPosition?: number | undefined;
151
+ };
312
152
  ItemSeparatorComponent?: React.ComponentType<{
313
153
  leadingItem: T;
314
154
  }> | undefined;
@@ -352,17 +192,25 @@ declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_nati
352
192
  onLoad?: (info: {
353
193
  elapsedTimeInMs: number;
354
194
  }) => void;
355
- } & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews"> & {
195
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
356
196
  alignItemsAtEnd?: boolean;
357
197
  columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
358
198
  data: readonly ItemT[];
359
199
  drawDistance?: number;
360
200
  estimatedItemSize?: number;
201
+ estimatedListSize?: {
202
+ height: number;
203
+ width: number;
204
+ };
361
205
  extraData?: any;
362
206
  getEstimatedItemSize?: ((index: number, item: ItemT) => number) | undefined;
363
207
  initialContainerPoolRatio?: number | undefined;
364
208
  initialScrollOffset?: number;
365
- initialScrollIndex?: number;
209
+ initialScrollIndex?: number | {
210
+ index: number;
211
+ viewOffset?: number | undefined;
212
+ viewPosition?: number | undefined;
213
+ };
366
214
  ItemSeparatorComponent?: React.ComponentType<{
367
215
  leadingItem: ItemT;
368
216
  }> | undefined;