@tarojs/components-react 4.1.12-beta.6 → 4.1.12-beta.61
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/dist/components/image/index.js +5 -3
- package/dist/components/image/index.js.map +1 -1
- package/dist/components/map/MapContext.js +628 -0
- package/dist/components/map/MapContext.js.map +1 -0
- package/dist/components/map/MapCustomCallout.js +91 -0
- package/dist/components/map/MapCustomCallout.js.map +1 -0
- package/dist/components/map/common.js +4 -0
- package/dist/components/map/common.js.map +1 -0
- package/dist/components/map/createMapContext.js +34 -0
- package/dist/components/map/createMapContext.js.map +1 -0
- package/dist/components/map/handler.js +50 -0
- package/dist/components/map/handler.js.map +1 -0
- package/dist/components/map/index.js +329 -0
- package/dist/components/map/index.js.map +1 -0
- package/dist/components/picker/index.js +129 -38
- package/dist/components/picker/index.js.map +1 -1
- package/dist/components/picker/picker-group-legacy.js +936 -0
- package/dist/components/picker/picker-group-legacy.js.map +1 -0
- package/dist/components/picker/picker-group-slider.js +1046 -0
- package/dist/components/picker/picker-group-slider.js.map +1 -0
- package/dist/components/picker/picker-group.js +38 -638
- package/dist/components/picker/picker-group.js.map +1 -1
- package/dist/components/scroll-view/index.js +80 -36
- package/dist/components/scroll-view/index.js.map +1 -1
- package/dist/components/switch/index.js +125 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/style/index.scss.js +4 -0
- package/dist/components/switch/style/index.scss.js.map +1 -0
- package/dist/contexts/ScrollElementContext.js +6 -0
- package/dist/contexts/ScrollElementContext.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/original/components/image/index.js +5 -3
- package/dist/original/components/image/index.js.map +1 -1
- package/dist/original/components/image/style/index.scss +5 -1
- package/dist/original/components/map/MapContext.js +628 -0
- package/dist/original/components/map/MapContext.js.map +1 -0
- package/dist/original/components/map/MapCustomCallout.js +91 -0
- package/dist/original/components/map/MapCustomCallout.js.map +1 -0
- package/dist/original/components/map/common.js +4 -0
- package/dist/original/components/map/common.js.map +1 -0
- package/dist/original/components/map/createMapContext.js +34 -0
- package/dist/original/components/map/createMapContext.js.map +1 -0
- package/dist/original/components/map/handler.js +50 -0
- package/dist/original/components/map/handler.js.map +1 -0
- package/dist/original/components/map/index.js +329 -0
- package/dist/original/components/map/index.js.map +1 -0
- package/dist/original/components/picker/index.js +129 -38
- package/dist/original/components/picker/index.js.map +1 -1
- package/dist/original/components/picker/picker-group-legacy.js +936 -0
- package/dist/original/components/picker/picker-group-legacy.js.map +1 -0
- package/dist/original/components/picker/picker-group-slider.js +1046 -0
- package/dist/original/components/picker/picker-group-slider.js.map +1 -0
- package/dist/original/components/picker/picker-group.js +38 -638
- package/dist/original/components/picker/picker-group.js.map +1 -1
- package/dist/original/components/picker/style/index.scss +9 -8
- package/dist/original/components/scroll-view/index.js +80 -36
- package/dist/original/components/scroll-view/index.js.map +1 -1
- package/dist/original/components/switch/index.js +125 -0
- package/dist/original/components/switch/index.js.map +1 -0
- package/dist/original/components/switch/style/index.scss +35 -0
- package/dist/original/contexts/ScrollElementContext.js +6 -0
- package/dist/original/contexts/ScrollElementContext.js.map +1 -0
- package/dist/original/index.js +5 -1
- package/dist/original/index.js.map +1 -1
- package/dist/solid/components/image/index.js +5 -3
- package/dist/solid/components/image/index.js.map +1 -1
- package/dist/solid/components/picker/index.js +142 -45
- package/dist/solid/components/picker/index.js.map +1 -1
- package/dist/solid/components/picker/picker-group-legacy.js +952 -0
- package/dist/solid/components/picker/picker-group-legacy.js.map +1 -0
- package/dist/solid/components/picker/picker-group-slider.js +1071 -0
- package/dist/solid/components/picker/picker-group-slider.js.map +1 -0
- package/dist/solid/components/picker/picker-group.js +34 -655
- package/dist/solid/components/picker/picker-group.js.map +1 -1
- package/dist/solid/components/scroll-view/index.js +84 -40
- package/dist/solid/components/scroll-view/index.js.map +1 -1
- package/dist/solid/contexts/ScrollElementContext.js +6 -0
- package/dist/solid/contexts/ScrollElementContext.js.map +1 -0
- package/dist/solid/index.css +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-group-slider.js","sources":["../../../../src/components/picker/picker-group-slider.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\nimport type { PickerGroupProps } from './picker-group'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\n\n/** 部分端同 id 连续 scrollIntoView 不生效:先清空再在下一宏任务设回目标 id */\nfunction usePickerItemScrollIntoView(): [string, (itemId: string) => void] {\n const [scrollIntoView, setScrollIntoView] = React.useState('')\n const pulseRef = React.useRef(0)\n\n const scrollToItemId = React.useCallback((itemId: string) => {\n pulseRef.current += 1\n const token = pulseRef.current\n setScrollIntoView('')\n setTimeout(() => {\n if (pulseRef.current !== token) return\n setScrollIntoView(itemId)\n }, 0)\n }, [])\n\n return [scrollIntoView, scrollToItemId]\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 大屏方案版本要求\nconst MIN_DESIGN_APP_VERSION = 16\n// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)\nconst resolveUseMeasuredScale = (res: Taro.getSystemInfo.Result): boolean => {\n // H5/weapp 不参与大屏系数\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n return false\n }\n\n const designAppVersionRaw = (res as any).designAppVersion\n const designAppVersionMajor = designAppVersionRaw != null ? parseInt(String(designAppVersionRaw).trim(), 10) : Number.NaN\n if (!Number.isFinite(designAppVersionMajor) || designAppVersionMajor < MIN_DESIGN_APP_VERSION) {\n return false\n }\n\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony' || platform === 'android' || platform === 'ios') {\n return true\n }\n\n return false\n}\n\n// 辅助函数:计算 lengthScaleRatio\nconst calculateLengthScaleRatio = (res: Taro.getSystemInfo.Result): number => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n return lengthScaleRatio\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number,\n lengthScaleRatio: number = 1,\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n const scaledValue = baseValue\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n } else {\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n }\n}\n\n// 根据 scrollTop 计算选中索引\n// 系统侧缩放模式:scrollHeight 已被系统缩放,直接相除即可\n// 自行缩放模式:需要除以 ratio 换算(harmony 特殊处理,ratio 已内嵌在 itemHeight 中)\nconst getSelectedIndex = (scrollTop: number, itemHeight: number, lengthScaleRatio: number = 1, useMeasuredScale: boolean = false): number => {\n if (!useMeasuredScale || process.env.TARO_PLATFORM === 'harmony') {\n return Math.round(scrollTop / itemHeight)\n }\n return Math.round(scrollTop / lengthScaleRatio / itemHeight)\n}\n\n// 计算单项高度(返回设计稿值)\nconst calculateItemHeight = (\n scrollView: TaroScrollView | null,\n lengthScaleRatio: number,\n useMeasuredScale: boolean = false,\n): number => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n return useMeasuredScale ? PICKER_LINE_HEIGHT * lengthScaleRatio : PICKER_LINE_HEIGHT\n }\n if (scrollView && scrollView?.scrollHeight) {\n return useMeasuredScale\n ? scrollView.scrollHeight / lengthScaleRatio / scrollView.childNodes.length\n : scrollView.scrollHeight / scrollView.childNodes.length\n }\n console.warn('Height measurement anomaly')\n return PICKER_LINE_HEIGHT\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const isTouchingRef = React.useRef(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 容器上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId)\n onColumnChange?.({ columnId, index: clamped })\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(用 rangeKey 取显示值),仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n <View className=\"taro-picker__mask\" ariaHidden />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n {/* 无障碍焦点覆盖层:空节点、绝对定位铺满、pointer-events:none,\n 使读屏焦点落在此处(内部无可滚动祖先,左右滑=切焦点而非滚动),\n 真实手指拖动穿透到下层 ScrollView 正常滚动 */}\n <View\n className=\"taro-picker__a11y-overlay\"\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, pointerEvents: 'none' }}\n ariaRole=\"slider\"\n {...(ariaLabel !== undefined ? { ariaLabel } : {})}\n {...({\n ariaAction: [\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ],\n onAriaAction: handleAriaAction,\n } as any)}\n />\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n colors = {},\n timeA11yLimitFocus,\n timeA11yLimitEventNonce,\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 限位回弹强制对齐:限位后即使 selectedIndex 值不变(回弹到同一边界),nonce 变化也强制重新对齐 scrollTop\n React.useEffect(() => {\n if (!timeA11yLimitEventNonce) return\n if (!scrollViewRef.current || range.length === 0 || isTouchingRef.current) return\n scrollToIndex(selectedIndex, true)\n setCurrentIndex(selectedIndex)\n // 仅被限位触发的列在回弹稳定后补播报一次修正值(nonce 两列共享,需按 columnId 过滤)\n if (timeA11yLimitFocus && timeA11yLimitFocus.columnId === columnId) {\n const item = range[selectedIndex]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n const fn = (Taro as any).accessibilityAnnounce\n if (text && typeof fn === 'function') {\n fn({ announce: text, delay: 300 })\n }\n }\n }, [timeA11yLimitEventNonce]) // 仅依赖 nonce,其余用 ref\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中(保留 time 限位业务:超 start/end 由父级修正后经 selectedIndex 回弹)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n isTouchingRef.current = false\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 限位时不归中:父级会通过 selectedIndex / nonce 下发修正值触发重新对齐\n if (!isLimited) {\n scrollToIndex(newIndex, true)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项(保留 time 限位)\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n // 保留 time 限位:超 start/end 时父级修正并经 selectedIndex / nonce 回弹对齐\n updateIndex(clamped, columnId, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n <View className=\"taro-picker__mask\" ariaHidden />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n {/* 无障碍焦点覆盖层:空节点、绝对定位铺满、pointer-events:none,\n 使读屏焦点落在此处(内部无可滚动祖先,左右滑=切焦点而非滚动),\n 真实手指拖动穿透到下层 ScrollView 正常滚动 */}\n <View\n className=\"taro-picker__a11y-overlay\"\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, pointerEvents: 'none' }}\n ariaRole=\"slider\"\n {...(ariaLabel !== undefined ? { ariaLabel } : {})}\n {...({\n ariaAction: [\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ],\n onAriaAction: handleAriaAction,\n } as any)}\n />\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 提交日期值:解析文本中的数字(移除年、月、日等后缀)后回调 updateDay\n const commitDay = (index: number) => {\n if (!updateDay) return\n const valueText = range[index] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n commitDay(newIndex)\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const text = range[index] != null ? String(range[index]) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n commitDay(clamped)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentValue = range[currentIndex]\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n <View className=\"taro-picker__mask\" ariaHidden />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n {/* 无障碍焦点覆盖层:空节点、绝对定位铺满、pointer-events:none,\n 使读屏焦点落在此处(内部无可滚动祖先,左右滑=切焦点而非滚动),\n 真实手指拖动穿透到下层 ScrollView 正常滚动 */}\n <View\n className=\"taro-picker__a11y-overlay\"\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, pointerEvents: 'none' }}\n ariaRole=\"slider\"\n {...(ariaLabel !== undefined ? { ariaLabel } : {})}\n {...({\n ariaAction: [\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ],\n onAriaAction: handleAriaAction,\n } as any)}\n />\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n // 程序化滚动标记:开屏/受控同步预设值时置 true,避免被 region 级联门误判为用户滚动而重置后续列\n const syncScrollFromPropsRef = React.useRef(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项,并短时标记程序化滚动(避免级联门误判)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 滚动静止后归中(debounce)\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n // 程序化滚动(受控同步预设值)不触发级联初始化,仅用户滚动才翻转初始化标志并重置后续列\n const isUserScroll = !syncScrollFromPropsRef.current\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId, false, isUserScroll)\n syncScrollFromPropsRef.current = false\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 用户触摸滚动立即清程序化标志,使其 scrollEnd 被正确判为用户滚动(触发 region 级联)\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId, false, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(region 用 rangeKey 取显示值),仅 string 或 number 挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n <View className=\"taro-picker__mask\" ariaHidden />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n {/* 无障碍焦点覆盖层:空节点、绝对定位铺满、pointer-events:none,\n 使读屏焦点落在此处(内部无可滚动祖先,左右滑=切焦点而非滚动),\n 真实手指拖动穿透到下层 ScrollView 正常滚动 */}\n <View\n className=\"taro-picker__a11y-overlay\"\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, pointerEvents: 'none' }}\n ariaRole=\"slider\"\n {...(ariaLabel !== undefined ? { ariaLabel } : {})}\n {...({\n ariaAction: [\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ],\n onAriaAction: handleAriaAction,\n } as any)}\n />\n </View>\n )\n}\n\n// 新版无障碍(slider 遮挡方案),根据 mode 自动分发\nexport function PickerGroupSlider(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["usePickerItemScrollIntoView","scrollIntoView","setScrollIntoView","React","useState","pulseRef","useRef","scrollToItemId","useCallback","itemId","current","token","setTimeout","PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","MIN_DESIGN_APP_VERSION","resolveUseMeasuredScale","res","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","parseInt","String","trim","Number","NaN","isFinite","platform","toLowerCase","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","length","undefined","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","Math","round","calculateItemHeight","scrollView","scrollHeight","childNodes","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","enableClickItemScroll","indicatorStyle","targetScrollTop","scrollViewRef","currentIndex","setCurrentIndex","isTouchingRef","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","useEffect","Taro","getSystemInfo","success","fail","scrollToIndex","index","withRandomOffset","random","isCenterTimerId","handleScrollEnd","clearTimeout","newIndex","handleScroll","ih","clampIndex","max","min","announceIndex","item","content","text","fn","accessibilityAnnounce","announce","delay","commitIndexByA11y","nextIndex","clamped","handleAriaAction","e","actionName","_a","detail","currentItem","currentValue","ariaLabel","pickerItem","map","_jsx","View","id","ariaHidden","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","_jsxs","position","ScrollView","ref","scrollY","showScrollbar","accessibilityElementsHidden","importantForAccessibility","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","top","left","right","bottom","pointerEvents","ariaRole","ariaAction","name","label","onAriaAction","PickerGroupTime","timeA11yLimitFocus","timeA11yLimitEventNonce","isLimited","Boolean","PickerGroupDate","updateDay","commitDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","syncScrollFromPropsRef","tid","isUserScroll","PickerGroupSlider","mode"],"mappings":"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"}
|