zkit-ui 2.0.10 → 2.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Switch/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAIV,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,SAAS,EAKT,IAAI,EACL,MAAM,cAAc,CAAC;AAiBtB,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC3F,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAqBF,KAAK,oBAAoB,GAAG,IAAI,CAC9B,KAAK,CAAC,wBAAwB,CAAC,OAAO,SAAS,CAAC,EAChD,mBAAmB,GAAG,oBAAoB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAC5F,CAAC;AASF,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAE7D,MAAM,WAAW,WAAY,SAAQ,oBAAoB;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEnC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1E,KAAK,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAClE,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;CAC7F;AAq4BD,eAAO,MAAM,MAAM,qEAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Switch/index.tsx"],"names":[],"mappings":"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"}
@@ -563,20 +563,25 @@ function SwitchImpl({ checked: checkedProp, defaultChecked = false, onCheckedCha
563
563
  },
564
564
  focusRingAnimatedStyle,
565
565
  ] }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
566
- react_native_1.StyleSheet.absoluteFillObject,
566
+ react_native_1.StyleSheet.absoluteFill,
567
567
  {
568
568
  borderRadius: trackRadius,
569
569
  backgroundColor: visualUncheckedTrackColor,
570
570
  },
571
571
  trackStyle,
572
572
  ] }), (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { pointerEvents: "none", style: [
573
- react_native_1.StyleSheet.absoluteFillObject,
573
+ react_native_1.StyleSheet.absoluteFill,
574
574
  {
575
575
  borderRadius: trackRadius,
576
576
  backgroundColor: visualCheckedTrackColor,
577
577
  },
578
578
  checkedTrackAnimatedStyle,
579
- ] }), hasStateText ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: "none", style: styles.stateTextLayer, children: [(0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [styles.stateTextSlot, checkedTextSlotStyle, checkedTextAnimatedStyle], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
579
+ ] }), hasStateText ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: "none", style: [react_native_1.StyleSheet.absoluteFill, styles.stateTextLayer], children: [(0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [
580
+ react_native_1.StyleSheet.absoluteFill,
581
+ styles.stateTextSlot,
582
+ checkedTextSlotStyle,
583
+ checkedTextAnimatedStyle,
584
+ ], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
580
585
  styles.stateText,
581
586
  {
582
587
  color: visualCheckedTextColor,
@@ -584,7 +589,12 @@ function SwitchImpl({ checked: checkedProp, defaultChecked = false, onCheckedCha
584
589
  lineHeight: stateTextLineHeight,
585
590
  },
586
591
  stateTextStyle,
587
- ], children: (_d = stateText === null || stateText === void 0 ? void 0 : stateText.checked) !== null && _d !== void 0 ? _d : '' }) }), (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [styles.stateTextSlot, uncheckedTextSlotStyle, uncheckedTextAnimatedStyle], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
592
+ ], children: (_d = stateText === null || stateText === void 0 ? void 0 : stateText.checked) !== null && _d !== void 0 ? _d : '' }) }), (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [
593
+ react_native_1.StyleSheet.absoluteFill,
594
+ styles.stateTextSlot,
595
+ uncheckedTextSlotStyle,
596
+ uncheckedTextAnimatedStyle,
597
+ ], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
588
598
  styles.stateText,
589
599
  {
590
600
  color: visualUncheckedTextColor,
@@ -647,12 +657,10 @@ const styles = react_native_1.StyleSheet.create({
647
657
  position: 'absolute',
648
658
  },
649
659
  stateTextLayer: {
650
- ...react_native_1.StyleSheet.absoluteFillObject,
651
660
  alignItems: 'center',
652
661
  justifyContent: 'center',
653
662
  },
654
663
  stateTextSlot: {
655
- ...react_native_1.StyleSheet.absoluteFillObject,
656
664
  alignItems: 'center',
657
665
  justifyContent: 'center',
658
666
  overflow: 'hidden',
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import { type ColorValue, type StyleProp, type TextStyle } from 'react-native';
3
+ import type { WheelColumnOption } from './index';
4
+ export type AndroidVirtualizedWheelHandle = {
5
+ scrollToIndex: (index: number, animated?: boolean) => void;
6
+ settleToNearest: (animated?: boolean) => number;
7
+ };
8
+ type AndroidVirtualizedWheelProps = {
9
+ options: WheelColumnOption[];
10
+ selectedIndex: number;
11
+ canInteract: boolean;
12
+ itemHeight: number;
13
+ visibleItems: number;
14
+ itemTextColor: ColorValue;
15
+ selectedTextColor: ColorValue;
16
+ disabledTextColor: ColorValue;
17
+ itemTextStyle?: StyleProp<TextStyle>;
18
+ selectedItemTextStyle?: StyleProp<TextStyle>;
19
+ disabledItemTextStyle?: StyleProp<TextStyle>;
20
+ numberOfLines: number;
21
+ resolveSelectableIndex: (index: number, direction?: number) => number;
22
+ onSelectIndex: (index: number) => void;
23
+ };
24
+ export declare const AndroidVirtualizedWheel: React.ForwardRefExoticComponent<AndroidVirtualizedWheelProps & React.RefAttributes<AndroidVirtualizedWheelHandle>>;
25
+ export {};
26
+ //# sourceMappingURL=AndroidVirtualizedWheel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AndroidVirtualizedWheel.d.ts","sourceRoot":"","sources":["../../../src/ui/WheelColumn/AndroidVirtualizedWheel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIL,KAAK,UAAU,EAGf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACjD,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,UAAU,CAAC;IAC1B,iBAAiB,EAAE,UAAU,CAAC;IAC9B,iBAAiB,EAAE,UAAU,CAAC;IAC9B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAYF,eAAO,MAAM,uBAAuB,oHAgMnC,CAAC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AndroidVirtualizedWheel = void 0;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const React = __importStar(require("react"));
39
+ const flash_list_1 = require("@shopify/flash-list");
40
+ const react_native_1 = require("react-native");
41
+ const zkit_tools_1 = require("zkit-tools");
42
+ const DISABLED_MAINTAIN_VISIBLE_CONTENT_POSITION = { disabled: true };
43
+ function clampNumber(value, min, max) {
44
+ return Math.max(min, Math.min(max, value));
45
+ }
46
+ function optionKey(option, index) {
47
+ var _a, _b;
48
+ return `${String((_b = (_a = option.key) !== null && _a !== void 0 ? _a : option.value) !== null && _b !== void 0 ? _b : index)}-${index}`;
49
+ }
50
+ exports.AndroidVirtualizedWheel = React.forwardRef(function AndroidVirtualizedWheel({ options, selectedIndex, canInteract, itemHeight, visibleItems, itemTextColor, selectedTextColor, disabledTextColor, itemTextStyle, selectedItemTextStyle, disabledItemTextStyle, numberOfLines, resolveSelectableIndex, onSelectIndex, }, ref) {
51
+ const listRef = React.useRef(null);
52
+ const offsetRef = React.useRef(selectedIndex * itemHeight);
53
+ const selectedIndexRef = React.useRef(selectedIndex);
54
+ const userScrollingRef = React.useRef(false);
55
+ const momentumScrollingRef = React.useRef(false);
56
+ const settleFrameRef = React.useRef(null);
57
+ const maxIndex = Math.max(0, options.length - 1);
58
+ const maxOffset = maxIndex * itemHeight;
59
+ const centerOffset = itemHeight * Math.floor(visibleItems / 2);
60
+ selectedIndexRef.current = selectedIndex;
61
+ const cancelPendingSettle = React.useCallback(() => {
62
+ if (settleFrameRef.current == null)
63
+ return;
64
+ cancelAnimationFrame(settleFrameRef.current);
65
+ settleFrameRef.current = null;
66
+ }, []);
67
+ const scrollToIndex = React.useCallback((index, animated = false) => {
68
+ var _a;
69
+ const nextIndex = clampNumber(Math.round(index), 0, maxIndex);
70
+ const nextOffset = nextIndex * itemHeight;
71
+ cancelPendingSettle();
72
+ offsetRef.current = nextOffset;
73
+ (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollToOffset({
74
+ offset: nextOffset,
75
+ animated,
76
+ skipFirstItemOffset: true,
77
+ });
78
+ }, [cancelPendingSettle, itemHeight, maxIndex]);
79
+ const settleToNearest = React.useCallback((animated = false) => {
80
+ const rawIndex = Math.round(clampNumber(offsetRef.current, 0, maxOffset) / itemHeight);
81
+ const nextIndex = resolveSelectableIndex(rawIndex, rawIndex - selectedIndexRef.current);
82
+ scrollToIndex(nextIndex, animated);
83
+ return nextIndex;
84
+ }, [itemHeight, maxOffset, resolveSelectableIndex, scrollToIndex]);
85
+ React.useImperativeHandle(ref, () => ({ scrollToIndex, settleToNearest }), [scrollToIndex, settleToNearest]);
86
+ React.useEffect(() => {
87
+ scrollToIndex(selectedIndex, false);
88
+ }, [options.length, scrollToIndex, selectedIndex]);
89
+ React.useEffect(() => cancelPendingSettle, [cancelPendingSettle]);
90
+ const finishUserScroll = React.useCallback((offset) => {
91
+ if (!userScrollingRef.current)
92
+ return;
93
+ userScrollingRef.current = false;
94
+ momentumScrollingRef.current = false;
95
+ offsetRef.current = clampNumber(offset, 0, maxOffset);
96
+ const rawIndex = Math.round(offsetRef.current / itemHeight);
97
+ const nextIndex = resolveSelectableIndex(rawIndex, rawIndex - selectedIndexRef.current);
98
+ scrollToIndex(nextIndex, nextIndex !== rawIndex);
99
+ onSelectIndex(nextIndex);
100
+ }, [itemHeight, maxOffset, onSelectIndex, resolveSelectableIndex, scrollToIndex]);
101
+ const handleScroll = React.useCallback((event) => {
102
+ offsetRef.current = clampNumber(event.nativeEvent.contentOffset.y, 0, maxOffset);
103
+ }, [maxOffset]);
104
+ const handleScrollBeginDrag = React.useCallback(() => {
105
+ cancelPendingSettle();
106
+ userScrollingRef.current = true;
107
+ momentumScrollingRef.current = false;
108
+ }, [cancelPendingSettle]);
109
+ const handleScrollEndDrag = React.useCallback((event) => {
110
+ const offset = event.nativeEvent.contentOffset.y;
111
+ offsetRef.current = clampNumber(offset, 0, maxOffset);
112
+ cancelPendingSettle();
113
+ settleFrameRef.current = requestAnimationFrame(() => {
114
+ settleFrameRef.current = null;
115
+ if (!momentumScrollingRef.current) {
116
+ finishUserScroll(offsetRef.current);
117
+ }
118
+ });
119
+ }, [cancelPendingSettle, finishUserScroll, maxOffset]);
120
+ const handleMomentumScrollBegin = React.useCallback(() => {
121
+ momentumScrollingRef.current = true;
122
+ cancelPendingSettle();
123
+ }, [cancelPendingSettle]);
124
+ const handleMomentumScrollEnd = React.useCallback((event) => {
125
+ finishUserScroll(event.nativeEvent.contentOffset.y);
126
+ }, [finishUserScroll]);
127
+ const contentContainerStyle = React.useMemo(() => ({ paddingVertical: centerOffset }), [centerOffset]);
128
+ const renderItem = React.useCallback(({ item, index }) => {
129
+ var _a;
130
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.itemContainer, { height: itemHeight }], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityLabel: (_a = item.accessibilityLabel) !== null && _a !== void 0 ? _a : item.label, maxFontSizeMultiplier: (0, zkit_tools_1.getMaxFontSizeMultiplier)(), numberOfLines: numberOfLines, style: [
131
+ styles.itemText,
132
+ { color: itemTextColor },
133
+ itemTextStyle,
134
+ index === selectedIndex && [styles.itemTextSelected, { color: selectedTextColor }, selectedItemTextStyle],
135
+ item.disabled && [styles.itemTextDisabled, { color: disabledTextColor }, disabledItemTextStyle],
136
+ ], testID: item.testID, children: item.label }) }));
137
+ }, [
138
+ disabledItemTextStyle,
139
+ disabledTextColor,
140
+ itemHeight,
141
+ itemTextColor,
142
+ itemTextStyle,
143
+ numberOfLines,
144
+ selectedIndex,
145
+ selectedItemTextStyle,
146
+ selectedTextColor,
147
+ ]);
148
+ const handleLoad = React.useCallback(() => {
149
+ scrollToIndex(selectedIndex, false);
150
+ }, [scrollToIndex, selectedIndex]);
151
+ return ((0, jsx_runtime_1.jsx)(flash_list_1.FlashList, { ref: listRef, data: options, contentContainerStyle: contentContainerStyle, decelerationRate: "fast", drawDistance: itemHeight * (visibleItems + 2), extraData: selectedIndex, keyExtractor: optionKey, keyboardShouldPersistTaps: "handled", maintainVisibleContentPosition: DISABLED_MAINTAIN_VISIBLE_CONTENT_POSITION, nestedScrollEnabled: true, onMomentumScrollBegin: handleMomentumScrollBegin, onMomentumScrollEnd: handleMomentumScrollEnd, onLoad: handleLoad, onScroll: handleScroll, onScrollBeginDrag: handleScrollBeginDrag, onScrollEndDrag: handleScrollEndDrag, overScrollMode: "never", renderItem: renderItem, scrollEnabled: canInteract, scrollEventThrottle: 16, showsVerticalScrollIndicator: false, snapToAlignment: "start", snapToInterval: itemHeight, style: styles.list }));
152
+ });
153
+ const styles = react_native_1.StyleSheet.create({
154
+ list: {
155
+ flex: 1,
156
+ width: '100%',
157
+ },
158
+ itemContainer: {
159
+ alignItems: 'center',
160
+ justifyContent: 'center',
161
+ paddingHorizontal: (0, zkit_tools_1.wp)(8),
162
+ },
163
+ itemText: {
164
+ fontSize: (0, zkit_tools_1.sp)(18),
165
+ fontWeight: '500',
166
+ textAlign: 'center',
167
+ },
168
+ itemTextSelected: {
169
+ opacity: 1,
170
+ },
171
+ itemTextDisabled: {
172
+ opacity: 0.62,
173
+ },
174
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/WheelColumn/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/WheelColumn/index.tsx"],"names":[],"mappings":"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"}