@tamagui/scroll-view 3.0.0-beta.765.1 → 3.0.0-beta.804.1

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.
@@ -72,65 +72,7 @@ function resolveStyles() {
72
72
  for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {
73
73
  inputs[_key] = arguments[_key];
74
74
  }
75
- var style = {};
76
- var classNames = [];
77
- var walk = function(s) {
78
- if (!s) return;
79
- if (Array.isArray(s)) {
80
- var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
81
- try {
82
- for (var _iterator2 = s[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
83
- var item = _step2.value;
84
- walk(item);
85
- }
86
- } catch (err) {
87
- _didIteratorError2 = true;
88
- _iteratorError2 = err;
89
- } finally {
90
- try {
91
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
92
- _iterator2.return();
93
- }
94
- } finally {
95
- if (_didIteratorError2) {
96
- throw _iteratorError2;
97
- }
98
- }
99
- }
100
- return;
101
- }
102
- if (s.$$css) {
103
- for (var k in s) {
104
- if (k !== "$$css") classNames.push(s[k]);
105
- }
106
- } else {
107
- Object.assign(style, s);
108
- }
109
- };
110
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
111
- try {
112
- for (var _iterator = inputs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
113
- var input = _step.value;
114
- walk(input);
115
- }
116
- } catch (err) {
117
- _didIteratorError = true;
118
- _iteratorError = err;
119
- } finally {
120
- try {
121
- if (!_iteratorNormalCompletion && _iterator.return != null) {
122
- _iterator.return();
123
- }
124
- } finally {
125
- if (_didIteratorError) {
126
- throw _iteratorError;
127
- }
128
- }
129
- }
130
- return {
131
- style,
132
- className: classNames.join(" ")
133
- };
75
+ return inputs.flat(Infinity).filter(Boolean);
134
76
  }
135
77
  function joinClassNames() {
136
78
  for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -177,13 +119,6 @@ var styles = {
177
119
  };
178
120
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
179
121
  var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
180
- var { dataSet, ...domRest } = rest;
181
- var dataAttrs = {};
182
- if (dataSet) {
183
- for (var key in dataSet) {
184
- dataAttrs[`data-${key}`] = dataSet[key];
185
- }
186
- }
187
122
  var scrollNodeRef = React.useRef(null);
188
123
  var innerViewRef = React.useRef(null);
189
124
  var scrollState = React.useRef({
@@ -271,21 +206,19 @@ var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRe
271
206
  var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {
272
207
  var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;
273
208
  if (child != null && (isSticky || pagingEnabled)) {
274
- var resolved = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
209
+ var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
275
210
  return /* @__PURE__ */ jsx(View$1, {
276
- style: resolved.style,
277
- className: joinClassNames(resolved.className),
211
+ style: resolvedStyle,
278
212
  children: child
279
213
  });
280
214
  }
281
215
  return child;
282
216
  }) : children;
283
- var contentResolved = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
217
+ var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
284
218
  var contentContainer = /* @__PURE__ */ jsx(View$1, {
285
219
  ref: innerViewRef,
286
220
  onLayout: handleContentLayout,
287
- style: contentResolved.style,
288
- className: joinClassNames(contentResolved.className),
221
+ style: contentStyle,
289
222
  children: renderedChildren
290
223
  });
291
224
  var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
@@ -293,22 +226,18 @@ var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRe
293
226
  var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;
294
227
  var hideVerticalScrollbar = showsVerticalScrollIndicator === false;
295
228
  var extraClassName = (hideHorizontalScrollbar ? " _hsb-x" : "") + (hideVerticalScrollbar ? " _hsb-y" : "");
296
- var scrollResolved = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
229
+ var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
297
230
  var scrollView = /* @__PURE__ */ jsx(View$1, {
298
- ...domRest,
299
- ...dataAttrs,
300
- className: joinClassNames(domRest.className, scrollResolved.className, extraClassName),
231
+ ...rest,
232
+ className: joinClassNames(rest.className, extraClassName),
301
233
  ref: setScrollNodeRef,
302
234
  onScroll: handleScroll,
303
- style: scrollResolved.style,
235
+ style: scrollStyle,
304
236
  children: contentContainer
305
237
  });
306
238
  if (refreshControl) {
307
- var refreshResolved = resolveStyles(baseStyle, style);
308
- return /* @__PURE__ */ React.cloneElement(refreshControl, {
309
- style: refreshResolved.style,
310
- className: joinClassNames(refreshResolved.className)
311
- }, scrollView);
239
+ var refreshStyle = resolveStyles(baseStyle, style);
240
+ return /* @__PURE__ */ React.cloneElement(refreshControl, { style: refreshStyle }, scrollView);
312
241
  }
313
242
  return scrollView;
314
243
  });
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.native.js","names":["View","TamaguiView"],"sources":["esm/WebScrollView.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nvar View = TamaguiView;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n var style = {};\n var classNames = [];\n var walk = function(s) {\n if (!s) return;\n if (Array.isArray(s)) {\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = s[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var item = _step2.value;\n walk(item);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n return;\n }\n if (s.$$css) {\n for (var k in s) {\n if (k !== \"$$css\") classNames.push(s[k]);\n }\n } else {\n Object.assign(style, s);\n }\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = inputs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var input = _step.value;\n walk(input);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n style,\n className: classNames.join(\" \")\n };\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n var { dataSet, ...domRest } = rest;\n var dataAttrs = {};\n if (dataSet) {\n for (var key in dataSet) {\n dataAttrs[`data-${key}`] = dataSet[key];\n }\n }\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolved = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ _jsx(View, {\n style: resolved.style,\n className: joinClassNames(resolved.className),\n children: child\n });\n }\n return child;\n }) : children;\n var contentResolved = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ _jsx(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentResolved.style,\n className: joinClassNames(contentResolved.className),\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollResolved = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ _jsx(View, {\n ...domRest,\n ...dataAttrs,\n className: joinClassNames(domRest.className, scrollResolved.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollResolved.style,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshResolved = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshResolved.style,\n className: joinClassNames(refreshResolved.className)\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.native.js","names":["View","TamaguiView"],"sources":["esm/WebScrollView.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nvar View = TamaguiView;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ _jsx(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ _jsx(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ _jsx(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
@@ -49,27 +49,7 @@ function shouldEmitScrollEvent(lastTick, eventThrottle) {
49
49
  return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;
50
50
  }
51
51
  function resolveStyles(...inputs) {
52
- const style = {};
53
- const classNames = [];
54
- const walk = (s) => {
55
- if (!s) return;
56
- if (Array.isArray(s)) {
57
- for (const item of s) walk(item);
58
- return;
59
- }
60
- if (s.$$css) {
61
- for (const k in s) {
62
- if (k !== "$$css") classNames.push(s[k]);
63
- }
64
- } else {
65
- Object.assign(style, s);
66
- }
67
- };
68
- for (const input of inputs) walk(input);
69
- return {
70
- style,
71
- className: classNames.join(" ")
72
- };
52
+ return inputs.flat(Infinity).filter(Boolean);
73
53
  }
74
54
  function joinClassNames(...parts) {
75
55
  const joined = parts.filter(Boolean).join(" ").trim();
@@ -113,13 +93,6 @@ const styles = {
113
93
  };
114
94
  const WebScrollView = React.forwardRef((props, forwardedRef) => {
115
95
  const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
116
- const { dataSet, ...domRest } = rest;
117
- const dataAttrs = {};
118
- if (dataSet) {
119
- for (const key in dataSet) {
120
- dataAttrs[`data-${key}`] = dataSet[key];
121
- }
122
- }
123
96
  const scrollNodeRef = React.useRef(null);
124
97
  const innerViewRef = React.useRef(null);
125
98
  const scrollState = React.useRef({
@@ -197,21 +170,19 @@ const WebScrollView = React.forwardRef((props, forwardedRef) => {
197
170
  const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {
198
171
  const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;
199
172
  if (child != null && (isSticky || pagingEnabled)) {
200
- const resolved = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
173
+ const resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
201
174
  return /* @__PURE__ */ jsx(View$1, {
202
- style: resolved.style,
203
- className: joinClassNames(resolved.className),
175
+ style: resolvedStyle,
204
176
  children: child
205
177
  });
206
178
  }
207
179
  return child;
208
180
  }) : children;
209
- const contentResolved = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
181
+ const contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
210
182
  const contentContainer = /* @__PURE__ */ jsx(View$1, {
211
183
  ref: innerViewRef,
212
184
  onLayout: handleContentLayout,
213
- style: contentResolved.style,
214
- className: joinClassNames(contentResolved.className),
185
+ style: contentStyle,
215
186
  children: renderedChildren
216
187
  });
217
188
  const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
@@ -219,22 +190,18 @@ const WebScrollView = React.forwardRef((props, forwardedRef) => {
219
190
  const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;
220
191
  const hideVerticalScrollbar = showsVerticalScrollIndicator === false;
221
192
  const extraClassName = (hideHorizontalScrollbar ? " _hsb-x" : "") + (hideVerticalScrollbar ? " _hsb-y" : "");
222
- const scrollResolved = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
193
+ const scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
223
194
  const scrollView = /* @__PURE__ */ jsx(View$1, {
224
- ...domRest,
225
- ...dataAttrs,
226
- className: joinClassNames(domRest.className, scrollResolved.className, extraClassName),
195
+ ...rest,
196
+ className: joinClassNames(rest.className, extraClassName),
227
197
  ref: setScrollNodeRef,
228
198
  onScroll: handleScroll,
229
- style: scrollResolved.style,
199
+ style: scrollStyle,
230
200
  children: contentContainer
231
201
  });
232
202
  if (refreshControl) {
233
- const refreshResolved = resolveStyles(baseStyle, style);
234
- return React.cloneElement(refreshControl, {
235
- style: refreshResolved.style,
236
- className: joinClassNames(refreshResolved.className)
237
- }, scrollView);
203
+ const refreshStyle = resolveStyles(baseStyle, style);
204
+ return React.cloneElement(refreshControl, { style: refreshStyle }, scrollView);
238
205
  }
239
206
  return scrollView;
240
207
  });
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.js","names":["View","TamaguiView"],"sources":["jsx/WebScrollView.js"],"sourcesContent":["import { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst View = TamaguiView;\nfunction mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n const target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n const timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles(...inputs) {\n const style = {};\n const classNames = [];\n const walk = (s) => {\n if (!s) return;\n if (Array.isArray(s)) {\n for (const item of s) walk(item);\n return;\n }\n if (s.$$css) {\n for (const k in s) {\n if (k !== \"$$css\") classNames.push(s[k]);\n }\n } else {\n Object.assign(style, s);\n }\n };\n for (const input of inputs) walk(input);\n return { style, className: classNames.join(\" \") };\n}\nfunction joinClassNames(...parts) {\n const joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nconst commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nconst styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nconst WebScrollView = React.forwardRef(\n (props, forwardedRef) => {\n const {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n const { dataSet, ...domRest } = rest;\n const dataAttrs = {};\n if (dataSet) {\n for (const key in dataSet) {\n dataAttrs[`data-${key}`] = dataSet[key];\n }\n }\n const scrollNodeRef = React.useRef(null);\n const innerViewRef = React.useRef(null);\n const scrollState = React.useRef({ isScrolling: false, scrollLastTick: 0 });\n const scrollTimeout = React.useRef(null);\n const scrollTo = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({ top: y, left: x, behavior: animated ? \"smooth\" : \"auto\" });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n const scrollToEnd = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const animated = (options && options.animated) !== false;\n const x = horizontal ? node.scrollWidth : 0;\n const y = horizontal ? 0 : node.scrollHeight;\n scrollTo({ x, y, animated });\n };\n const setScrollNodeRef = React.useCallback(\n (node) => {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = () => node;\n node.getScrollableNode = () => node;\n node.getInnerViewNode = () => innerViewRef.current;\n node.getInnerViewRef = () => innerViewRef.current;\n node.getNativeScrollRef = () => node;\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = () => {\n };\n }\n mergeRefs(forwardedRef)(node);\n },\n [forwardedRef, horizontal]\n );\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n scrollState.current.isScrolling = false;\n onScroll?.(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n }\n const handleContentLayout = onContentSizeChange ? (e) => {\n const { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n const hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {\n const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n const resolved = resolveStyles(\n isSticky && styles.stickyHeader,\n pagingEnabled && styles.pagingEnabledChild\n );\n return /* @__PURE__ */ jsx(\n View,\n {\n style: resolved.style,\n className: joinClassNames(resolved.className),\n children: child\n }\n );\n }\n return child;\n }) : children;\n const contentResolved = resolveStyles(\n horizontal && styles.contentContainerHorizontal,\n centerContent && styles.contentContainerCenterContent,\n contentContainerStyle\n );\n const contentContainer = /* @__PURE__ */ jsx(\n View,\n {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentResolved.style,\n className: joinClassNames(contentResolved.className),\n children: renderedChildren\n }\n );\n const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n const pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n const hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n const extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n const scrollResolved = resolveStyles(\n baseStyle,\n pagingEnabled && pagingEnabledStyle,\n style,\n !scrollEnabled && styles.scrollDisabled\n );\n const scrollView = /* @__PURE__ */ jsx(\n View,\n {\n ...domRest,\n ...dataAttrs,\n className: joinClassNames(\n domRest.className,\n scrollResolved.className,\n extraClassName\n ),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollResolved.style,\n children: contentContainer\n }\n );\n if (refreshControl) {\n const refreshResolved = resolveStyles(baseStyle, style);\n return React.cloneElement(\n refreshControl,\n {\n style: refreshResolved.style,\n className: joinClassNames(refreshResolved.className)\n },\n scrollView\n );\n }\n return scrollView;\n }\n);\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.js","names":["View","TamaguiView"],"sources":["jsx/WebScrollView.js"],"sourcesContent":["import { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst View = TamaguiView;\nfunction mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n const target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n const timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles(...inputs) {\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames(...parts) {\n const joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nconst commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nconst styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nconst WebScrollView = React.forwardRef(\n (props, forwardedRef) => {\n const {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n const scrollNodeRef = React.useRef(null);\n const innerViewRef = React.useRef(null);\n const scrollState = React.useRef({ isScrolling: false, scrollLastTick: 0 });\n const scrollTimeout = React.useRef(null);\n const scrollTo = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({ top: y, left: x, behavior: animated ? \"smooth\" : \"auto\" });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n const scrollToEnd = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const animated = (options && options.animated) !== false;\n const x = horizontal ? node.scrollWidth : 0;\n const y = horizontal ? 0 : node.scrollHeight;\n scrollTo({ x, y, animated });\n };\n const setScrollNodeRef = React.useCallback(\n (node) => {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = () => node;\n node.getScrollableNode = () => node;\n node.getInnerViewNode = () => innerViewRef.current;\n node.getInnerViewRef = () => innerViewRef.current;\n node.getNativeScrollRef = () => node;\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = () => {\n };\n }\n mergeRefs(forwardedRef)(node);\n },\n [forwardedRef, horizontal]\n );\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n scrollState.current.isScrolling = false;\n onScroll?.(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n }\n const handleContentLayout = onContentSizeChange ? (e) => {\n const { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n const hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {\n const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n const resolvedStyle = resolveStyles(\n isSticky && styles.stickyHeader,\n pagingEnabled && styles.pagingEnabledChild\n );\n return /* @__PURE__ */ jsx(View, { style: resolvedStyle, children: child });\n }\n return child;\n }) : children;\n const contentStyle = resolveStyles(\n horizontal && styles.contentContainerHorizontal,\n centerContent && styles.contentContainerCenterContent,\n contentContainerStyle\n );\n const contentContainer = /* @__PURE__ */ jsx(View, { ref: innerViewRef, onLayout: handleContentLayout, style: contentStyle, children: renderedChildren });\n const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n const pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n const hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n const extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n const scrollStyle = resolveStyles(\n baseStyle,\n pagingEnabled && pagingEnabledStyle,\n style,\n !scrollEnabled && styles.scrollDisabled\n );\n const scrollView = /* @__PURE__ */ jsx(\n View,\n {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n }\n );\n if (refreshControl) {\n const refreshStyle = resolveStyles(baseStyle, style);\n return React.cloneElement(\n refreshControl,\n {\n style: refreshStyle\n },\n scrollView\n );\n }\n return scrollView;\n }\n);\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
@@ -102,65 +102,7 @@ function resolveStyles() {
102
102
  for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {
103
103
  inputs[_key] = arguments[_key];
104
104
  }
105
- var style = {};
106
- var classNames = [];
107
- var walk = function(s) {
108
- if (!s) return;
109
- if (Array.isArray(s)) {
110
- var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
111
- try {
112
- for (var _iterator2 = s[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
113
- var item = _step2.value;
114
- walk(item);
115
- }
116
- } catch (err) {
117
- _didIteratorError2 = true;
118
- _iteratorError2 = err;
119
- } finally {
120
- try {
121
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
122
- _iterator2.return();
123
- }
124
- } finally {
125
- if (_didIteratorError2) {
126
- throw _iteratorError2;
127
- }
128
- }
129
- }
130
- return;
131
- }
132
- if (s.$$css) {
133
- for (var k in s) {
134
- if (k !== "$$css") classNames.push(s[k]);
135
- }
136
- } else {
137
- Object.assign(style, s);
138
- }
139
- };
140
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
141
- try {
142
- for (var _iterator = inputs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
143
- var input = _step.value;
144
- walk(input);
145
- }
146
- } catch (err) {
147
- _didIteratorError = true;
148
- _iteratorError = err;
149
- } finally {
150
- try {
151
- if (!_iteratorNormalCompletion && _iterator.return != null) {
152
- _iterator.return();
153
- }
154
- } finally {
155
- if (_didIteratorError) {
156
- throw _iteratorError;
157
- }
158
- }
159
- }
160
- return {
161
- style,
162
- className: classNames.join(" ")
163
- };
105
+ return inputs.flat(Infinity).filter(Boolean);
164
106
  }
165
107
  function joinClassNames() {
166
108
  for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -207,13 +149,6 @@ var styles = {
207
149
  };
208
150
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
209
151
  var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
210
- var { dataSet, ...domRest } = rest;
211
- var dataAttrs = {};
212
- if (dataSet) {
213
- for (var key in dataSet) {
214
- dataAttrs[`data-${key}`] = dataSet[key];
215
- }
216
- }
217
152
  var scrollNodeRef = React.useRef(null);
218
153
  var innerViewRef = React.useRef(null);
219
154
  var scrollState = React.useRef({
@@ -301,21 +236,19 @@ var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRe
301
236
  var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {
302
237
  var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;
303
238
  if (child != null && (isSticky || pagingEnabled)) {
304
- var resolved = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
239
+ var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
305
240
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {
306
- style: resolved.style,
307
- className: joinClassNames(resolved.className),
241
+ style: resolvedStyle,
308
242
  children: child
309
243
  });
310
244
  }
311
245
  return child;
312
246
  }) : children;
313
- var contentResolved = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
247
+ var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
314
248
  var contentContainer = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {
315
249
  ref: innerViewRef,
316
250
  onLayout: handleContentLayout,
317
- style: contentResolved.style,
318
- className: joinClassNames(contentResolved.className),
251
+ style: contentStyle,
319
252
  children: renderedChildren
320
253
  });
321
254
  var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
@@ -323,22 +256,18 @@ var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRe
323
256
  var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;
324
257
  var hideVerticalScrollbar = showsVerticalScrollIndicator === false;
325
258
  var extraClassName = (hideHorizontalScrollbar ? " _hsb-x" : "") + (hideVerticalScrollbar ? " _hsb-y" : "");
326
- var scrollResolved = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
259
+ var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
327
260
  var scrollView = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {
328
- ...domRest,
329
- ...dataAttrs,
330
- className: joinClassNames(domRest.className, scrollResolved.className, extraClassName),
261
+ ...rest,
262
+ className: joinClassNames(rest.className, extraClassName),
331
263
  ref: setScrollNodeRef,
332
264
  onScroll: handleScroll,
333
- style: scrollResolved.style,
265
+ style: scrollStyle,
334
266
  children: contentContainer
335
267
  });
336
268
  if (refreshControl) {
337
- var refreshResolved = resolveStyles(baseStyle, style);
338
- return /* @__PURE__ */ React.cloneElement(refreshControl, {
339
- style: refreshResolved.style,
340
- className: joinClassNames(refreshResolved.className)
341
- }, scrollView);
269
+ var refreshStyle = resolveStyles(baseStyle, style);
270
+ return /* @__PURE__ */ React.cloneElement(refreshControl, { style: refreshStyle }, scrollView);
342
271
  }
343
272
  return scrollView;
344
273
  });
@@ -102,65 +102,7 @@ function resolveStyles() {
102
102
  for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {
103
103
  inputs[_key] = arguments[_key];
104
104
  }
105
- var style = {};
106
- var classNames = [];
107
- var walk = function(s) {
108
- if (!s) return;
109
- if (Array.isArray(s)) {
110
- var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
111
- try {
112
- for (var _iterator2 = s[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
113
- var item = _step2.value;
114
- walk(item);
115
- }
116
- } catch (err) {
117
- _didIteratorError2 = true;
118
- _iteratorError2 = err;
119
- } finally {
120
- try {
121
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
122
- _iterator2.return();
123
- }
124
- } finally {
125
- if (_didIteratorError2) {
126
- throw _iteratorError2;
127
- }
128
- }
129
- }
130
- return;
131
- }
132
- if (s.$$css) {
133
- for (var k in s) {
134
- if (k !== "$$css") classNames.push(s[k]);
135
- }
136
- } else {
137
- Object.assign(style, s);
138
- }
139
- };
140
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
141
- try {
142
- for (var _iterator = inputs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
143
- var input = _step.value;
144
- walk(input);
145
- }
146
- } catch (err) {
147
- _didIteratorError = true;
148
- _iteratorError = err;
149
- } finally {
150
- try {
151
- if (!_iteratorNormalCompletion && _iterator.return != null) {
152
- _iterator.return();
153
- }
154
- } finally {
155
- if (_didIteratorError) {
156
- throw _iteratorError;
157
- }
158
- }
159
- }
160
- return {
161
- style,
162
- className: classNames.join(" ")
163
- };
105
+ return inputs.flat(Infinity).filter(Boolean);
164
106
  }
165
107
  function joinClassNames() {
166
108
  for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -207,13 +149,6 @@ var styles = {
207
149
  };
208
150
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
209
151
  var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
210
- var { dataSet, ...domRest } = rest;
211
- var dataAttrs = {};
212
- if (dataSet) {
213
- for (var key in dataSet) {
214
- dataAttrs[`data-${key}`] = dataSet[key];
215
- }
216
- }
217
152
  var scrollNodeRef = React.useRef(null);
218
153
  var innerViewRef = React.useRef(null);
219
154
  var scrollState = React.useRef({
@@ -301,21 +236,19 @@ var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRe
301
236
  var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {
302
237
  var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;
303
238
  if (child != null && (isSticky || pagingEnabled)) {
304
- var resolved = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
239
+ var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);
305
240
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {
306
- style: resolved.style,
307
- className: joinClassNames(resolved.className),
241
+ style: resolvedStyle,
308
242
  children: child
309
243
  });
310
244
  }
311
245
  return child;
312
246
  }) : children;
313
- var contentResolved = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
247
+ var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);
314
248
  var contentContainer = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {
315
249
  ref: innerViewRef,
316
250
  onLayout: handleContentLayout,
317
- style: contentResolved.style,
318
- className: joinClassNames(contentResolved.className),
251
+ style: contentStyle,
319
252
  children: renderedChildren
320
253
  });
321
254
  var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
@@ -323,22 +256,18 @@ var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRe
323
256
  var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;
324
257
  var hideVerticalScrollbar = showsVerticalScrollIndicator === false;
325
258
  var extraClassName = (hideHorizontalScrollbar ? " _hsb-x" : "") + (hideVerticalScrollbar ? " _hsb-y" : "");
326
- var scrollResolved = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
259
+ var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);
327
260
  var scrollView = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {
328
- ...domRest,
329
- ...dataAttrs,
330
- className: joinClassNames(domRest.className, scrollResolved.className, extraClassName),
261
+ ...rest,
262
+ className: joinClassNames(rest.className, extraClassName),
331
263
  ref: setScrollNodeRef,
332
264
  onScroll: handleScroll,
333
- style: scrollResolved.style,
265
+ style: scrollStyle,
334
266
  children: contentContainer
335
267
  });
336
268
  if (refreshControl) {
337
- var refreshResolved = resolveStyles(baseStyle, style);
338
- return /* @__PURE__ */ React.cloneElement(refreshControl, {
339
- style: refreshResolved.style,
340
- className: joinClassNames(refreshResolved.className)
341
- }, scrollView);
269
+ var refreshStyle = resolveStyles(baseStyle, style);
270
+ return /* @__PURE__ */ React.cloneElement(refreshControl, { style: refreshStyle }, scrollView);
342
271
  }
343
272
  return scrollView;
344
273
  });