@tarojs/components-react 4.1.12-beta.60 → 4.1.12-beta.62

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.
Files changed (25) hide show
  1. package/dist/components/picker/index.js +10 -0
  2. package/dist/components/picker/index.js.map +1 -1
  3. package/dist/components/picker/picker-group-legacy.js +936 -0
  4. package/dist/components/picker/picker-group-legacy.js.map +1 -0
  5. package/dist/components/picker/picker-group-slider.js +1046 -0
  6. package/dist/components/picker/picker-group-slider.js.map +1 -0
  7. package/dist/components/picker/picker-group.js +37 -926
  8. package/dist/components/picker/picker-group.js.map +1 -1
  9. package/dist/original/components/picker/index.js +10 -0
  10. package/dist/original/components/picker/index.js.map +1 -1
  11. package/dist/original/components/picker/picker-group-legacy.js +936 -0
  12. package/dist/original/components/picker/picker-group-legacy.js.map +1 -0
  13. package/dist/original/components/picker/picker-group-slider.js +1046 -0
  14. package/dist/original/components/picker/picker-group-slider.js.map +1 -0
  15. package/dist/original/components/picker/picker-group.js +37 -926
  16. package/dist/original/components/picker/picker-group.js.map +1 -1
  17. package/dist/solid/components/picker/index.js +10 -0
  18. package/dist/solid/components/picker/index.js.map +1 -1
  19. package/dist/solid/components/picker/picker-group-legacy.js +952 -0
  20. package/dist/solid/components/picker/picker-group-legacy.js.map +1 -0
  21. package/dist/solid/components/picker/picker-group-slider.js +1071 -0
  22. package/dist/solid/components/picker/picker-group-slider.js.map +1 -0
  23. package/dist/solid/components/picker/picker-group.js +33 -942
  24. package/dist/solid/components/picker/picker-group.js.map +1 -1
  25. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"picker-group.js","sources":["../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\ntype TaroView = React.ElementRef<typeof View>\n\nfunction requestAccessibilityFocusOnView(node: TaroView | null | undefined): void {\n if (node == null) return\n const fn = (Taro as any).setAccessibilityFocus\n if (typeof fn !== 'function') return\n fn({ viewRef: { current: node } as React.RefObject<any> })\n}\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\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean, isUserBeginScroll?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n colors?: {\n itemDefaultColor?: string // 选项字体默认颜色\n itemSelectedColor?: string // 选项字体选中颜色\n lineColor?: string // 选中指示线颜色\n }\n /** time 限位后由父级下发,命中 columnId 的列在稳定后对该项 setAccessibilityFocus */\n timeA11yLimitFocus?: { nonce: number, columnId: string } | null\n onTimeA11yLimitFocusConsumed?: () => void\n /** time 限位单调计数:抑制非触发列在停滚时误抢无障碍焦点 */\n timeA11yLimitEventNonce?: number\n /** 点击选项是否滚至选中区,默认 true */\n enableClickItemScroll?: boolean\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\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 const itemRefs = React.useRef<Array<TaroView | null>>([])\n const selectedIndexPropRef = React.useRef(selectedIndex)\n selectedIndexPropRef.current = selectedIndex\n const syncScrollFromPropsRef = React.useRef(false)\n const pendingScrollSettleFocusRef = React.useRef(false)\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 // props 的 selectedIndex 变化:滚至对应项并短时标记程序化滚动(syncScrollFromPropsRef)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range])\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 const allowA11yFocus = !syncScrollFromPropsRef.current\n const shouldFocusOnScrollSettle = pendingScrollSettleFocusRef.current\n\n isTouchingRef.current = false\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n pendingScrollSettleFocusRef.current = false\n if (allowA11yFocus && shouldFocusOnScrollSettle) {\n requestAccessibilityFocusOnView(itemRefs.current[newIndex])\n }\n syncScrollFromPropsRef.current = false\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 const spi = selectedIndexPropRef.current\n if (newIndex !== spi) {\n if (!syncScrollFromPropsRef.current || isTouchingRef.current) {\n pendingScrollSettleFocusRef.current = true\n }\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n }\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\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 ref={(el) => (itemRefs.current[index] = el)}\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 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 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 className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\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 </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 onTimeA11yLimitFocusConsumed,\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 itemRefs = React.useRef<Array<TaroView | null>>([])\n const selectedIndexPropRef = React.useRef(selectedIndex)\n selectedIndexPropRef.current = selectedIndex\n const syncScrollFromPropsRef = React.useRef(false)\n const prevLimitEventNonceRef = React.useRef<number | undefined>(undefined)\n const suppressScrollSettleFocusNonceRef = React.useRef<number | null>(null)\n const pendingScrollSettleFocusRef = React.useRef(false)\n const pendingLimitFocusRef = React.useRef<{ index: number, nonce: number, attempts: number } | null>(null)\n const limitFocusTimerRef = React.useRef<NodeJS.Timeout | null>(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 const clearLimitFocusTimer = React.useCallback(() => {\n if (limitFocusTimerRef.current) {\n clearTimeout(limitFocusTimerRef.current)\n limitFocusTimerRef.current = null\n }\n }, [])\n\n const tryFocusPendingLimit = React.useCallback(() => {\n const pending = pendingLimitFocusRef.current\n const scrollView = scrollViewRef.current\n if (!pending || !scrollView) return\n\n const visualIndex = getSelectedIndex(\n scrollView.scrollTop,\n itemHeightRef.current,\n lengthScaleRatioRef.current,\n useMeasuredScaleRef.current,\n )\n const isStable = visualIndex === pending.index\n\n if (!isStable) {\n if (pending.attempts >= 20) {\n pendingLimitFocusRef.current = null\n if (suppressScrollSettleFocusNonceRef.current === pending.nonce) {\n suppressScrollSettleFocusNonceRef.current = null\n }\n onTimeA11yLimitFocusConsumed?.()\n return\n }\n pending.attempts += 1\n clearLimitFocusTimer()\n limitFocusTimerRef.current = setTimeout(() => {\n tryFocusPendingLimit()\n }, 50)\n return\n }\n\n const node = itemRefs.current[pending.index]\n pendingLimitFocusRef.current = null\n if (suppressScrollSettleFocusNonceRef.current === pending.nonce) {\n suppressScrollSettleFocusNonceRef.current = null\n }\n clearLimitFocusTimer()\n requestAccessibilityFocusOnView(node)\n onTimeA11yLimitFocusConsumed?.()\n }, [clearLimitFocusTimer, onTimeA11yLimitFocusConsumed])\n\n const schedulePendingLimitFocus = React.useCallback(() => {\n if (!pendingLimitFocusRef.current) return\n clearLimitFocusTimer()\n limitFocusTimerRef.current = setTimeout(() => {\n tryFocusPendingLimit()\n }, 100)\n }, [clearLimitFocusTimer, tryFocusPendingLimit])\n\n React.useEffect(() => clearLimitFocusTimer, [clearLimitFocusTimer])\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 // props 的 selectedIndex 变化:滚至对应项并短时标记程序化滚动(syncScrollFromPropsRef)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range])\n\n // time 限位 nonce 变更:强制对齐 scrollTop(避免 remount 打断读屏焦点)\n React.useEffect(() => {\n if (!timeA11yLimitEventNonce) return\n if (!scrollViewRef.current || range.length === 0 || isTouchingRef.current) return\n syncScrollFromPropsRef.current = true\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, Math.random() * 0.001, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }, [timeA11yLimitEventNonce]) // 仅依赖 nonce,其余用 ref\n\n React.useLayoutEffect(() => {\n if (timeA11yLimitEventNonce === undefined) return\n const prev = prevLimitEventNonceRef.current\n prevLimitEventNonceRef.current = timeA11yLimitEventNonce\n if (timeA11yLimitEventNonce > 0 && (prev === undefined || timeA11yLimitEventNonce > prev)) {\n suppressScrollSettleFocusNonceRef.current = timeA11yLimitEventNonce\n }\n }, [timeA11yLimitEventNonce])\n\n // 限位后登记本列待聚焦项,稳定后再 requestAccessibilityFocus\n React.useEffect(() => {\n const req = timeA11yLimitFocus\n if (!req || req.columnId !== columnId) return\n const idx = selectedIndex\n const nonce = req.nonce\n pendingScrollSettleFocusRef.current = false\n pendingLimitFocusRef.current = { index: idx, nonce, attempts: 0 }\n schedulePendingLimitFocus()\n }, [timeA11yLimitFocus, columnId, selectedIndex, schedulePendingLimitFocus])\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 // 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 const allowA11yFocus = !syncScrollFromPropsRef.current\n const shouldFocusOnScrollSettle = pendingScrollSettleFocusRef.current\n isTouchingRef.current = false\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n const hasPendingLimitFocus = pendingLimitFocusRef.current != null\n if (isLimited) {\n pendingScrollSettleFocusRef.current = false\n }\n if (!isLimited) {\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }\n if (!isLimited && hasPendingLimitFocus) {\n pendingScrollSettleFocusRef.current = false\n schedulePendingLimitFocus()\n syncScrollFromPropsRef.current = false\n isCenterTimerId.current = null\n return\n }\n if (!isLimited && pendingLimitFocusRef.current == null && suppressScrollSettleFocusNonceRef.current != null) {\n suppressScrollSettleFocusNonceRef.current = null\n }\n const suppressByLimitNonce = suppressScrollSettleFocusNonceRef.current != null\n if (!isLimited && allowA11yFocus && shouldFocusOnScrollSettle) {\n pendingScrollSettleFocusRef.current = false\n if (!suppressByLimitNonce) {\n requestAccessibilityFocusOnView(itemRefs.current[newIndex])\n }\n }\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 const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n const spi = selectedIndexPropRef.current\n if (newIndex !== spi) {\n if (!syncScrollFromPropsRef.current || isTouchingRef.current) {\n pendingScrollSettleFocusRef.current = true\n }\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n }\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n if (pendingLimitFocusRef.current) {\n schedulePendingLimitFocus()\n }\n }\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 ref={(el) => (itemRefs.current[index] = el)}\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 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 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 className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\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 </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 itemRefs = React.useRef<Array<TaroView | null>>([])\n const selectedIndexPropRef = React.useRef(selectedIndex)\n selectedIndexPropRef.current = selectedIndex\n const syncScrollFromPropsRef = React.useRef(false)\n const pendingScrollSettleFocusRef = React.useRef(false)\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 // props 的 selectedIndex 变化:滚至对应项并短时标记程序化滚动(syncScrollFromPropsRef)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range])\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 const allowA11yFocus = !syncScrollFromPropsRef.current\n const shouldFocusOnScrollSettle = pendingScrollSettleFocusRef.current\n\n isTouchingRef.current = false\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n\n // 更新日期值\n if (updateDay) {\n // 解析文本中的数字(移除年、月、日等后缀)\n const valueText = range[newIndex] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n pendingScrollSettleFocusRef.current = false\n if (allowA11yFocus && shouldFocusOnScrollSettle) {\n requestAccessibilityFocusOnView(itemRefs.current[newIndex])\n }\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 const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n const spi = selectedIndexPropRef.current\n if (newIndex !== spi) {\n if (!syncScrollFromPropsRef.current || isTouchingRef.current) {\n pendingScrollSettleFocusRef.current = true\n }\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n }\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\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 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 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 className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\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 </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<any>(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\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const selectedIndexPropRef = React.useRef(selectedIndex)\n selectedIndexPropRef.current = selectedIndex\n const syncScrollFromPropsRef = React.useRef(false)\n const pendingScrollSettleFocusRef = React.useRef(false)\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 // props 的 selectedIndex 变化:滚至对应项并短时标记程序化滚动(syncScrollFromPropsRef)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range])\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 const allowA11yFocus = !syncScrollFromPropsRef.current\n const shouldFocusOnScrollSettle = pendingScrollSettleFocusRef.current\n\n isTouchingRef.current = false\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n updateIndex(newIndex, columnId, false, allowA11yFocus)\n pendingScrollSettleFocusRef.current = false\n if (allowA11yFocus && shouldFocusOnScrollSettle) {\n requestAccessibilityFocusOnView(itemRefs.current[newIndex])\n }\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 const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n const spi = selectedIndexPropRef.current\n if (newIndex !== spi) {\n if (!syncScrollFromPropsRef.current || isTouchingRef.current) {\n pendingScrollSettleFocusRef.current = true\n }\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n }\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\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 ref={(el) => (itemRefs.current[index] = el)}\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 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 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 className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\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 </View>\n )\n}\n\n// 默认导出,根据 mode 自动分发\nexport function PickerGroup(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":["requestAccessibilityFocusOnView","node","fn","Taro","setAccessibilityFocus","viewRef","current","usePickerItemScrollIntoView","scrollIntoView","setScrollIntoView","React","useState","pulseRef","useRef","scrollToItemId","useCallback","itemId","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","itemRefs","selectedIndexPropRef","syncScrollFromPropsRef","pendingScrollSettleFocusRef","currentIndex","setCurrentIndex","isTouchingRef","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","useEffect","getSystemInfo","success","fail","tid","clearTimeout","isCenterTimerId","handleScrollEnd","newIndex","allowA11yFocus","shouldFocusOnScrollSettle","random","index","handleScroll","ih","spi","pickerItem","map","item","content","_jsx","View","id","ref","el","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","_jsxs","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","timeA11yLimitFocus","onTimeA11yLimitFocusConsumed","timeA11yLimitEventNonce","prevLimitEventNonceRef","suppressScrollSettleFocusNonceRef","pendingLimitFocusRef","limitFocusTimerRef","clearLimitFocusTimer","tryFocusPendingLimit","pending","visualIndex","isStable","attempts","nonce","schedulePendingLimitFocus","useLayoutEffect","prev","req","isLimited","Boolean","hasPendingLimitFocus","suppressByLimitNonce","PickerGroupDate","updateDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","PickerGroup","mode"],"mappings":"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"}
1
+ {"version":3,"file":"picker-group.js","sources":["../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import Taro from '@tarojs/taro'\nimport * as React from 'react'\n\nimport { PickerGroupLegacy } from './picker-group-legacy'\nimport { PickerGroupSlider } from './picker-group-slider'\n\n// re-export 各列变体(供单测按变体粒度直接引用,默认导出新版 slider 实现)\nexport {\n PickerGroupBasic,\n PickerGroupDate,\n PickerGroupRegion,\n PickerGroupTime,\n} from './picker-group-slider'\n\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean, isUserBeginScroll?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n colors?: {\n itemDefaultColor?: string // 选项字体默认颜色\n itemSelectedColor?: string // 选项字体选中颜色\n lineColor?: string // 选中指示线颜色\n }\n /** time 限位后由父级下发,命中 columnId 的列在稳定后对该项 setAccessibilityFocus */\n timeA11yLimitFocus?: { nonce: number, columnId: string } | null\n onTimeA11yLimitFocusConsumed?: () => void\n /** time 限位单调计数:抑制非触发列在停滚时误抢无障碍焦点 */\n timeA11yLimitEventNonce?: number\n /** 点击选项是否滚至选中区,默认 true */\n enableClickItemScroll?: boolean\n}\n\n// 启用新版无障碍(slider 遮挡方案)所需的最低 app 版本;低于此版本回退旧版逐项聚焦方案\nconst MIN_A11Y_APP_VERSION = '15.9.50'\n\n// 逐段比较版本号:v1 > v2 返回 1,v1 < v2 返回 -1,相等返回 0(缺失段按 0 处理)\nfunction compareVersion(v1: string, v2: string): number {\n const a = String(v1).split('.')\n const b = String(v2).split('.')\n const len = Math.max(a.length, b.length)\n for (let i = 0; i < len; i++) {\n const n1 = parseInt(a[i], 10) || 0\n const n2 = parseInt(b[i], 10) || 0\n if (n1 > n2) return 1\n if (n1 < n2) return -1\n }\n return 0\n}\n\n// 读取运行环境判定是否启用新版无障碍:须同时满足 dynamic 模式 且 app 版本 >= 15.9.50;任一不满足或取不到版本时保守回退旧版(线上稳定实现)\nfunction resolveUseSliderA11y(): boolean {\n // 仅 dynamic 模式启用新版无障碍\n if (process.env.TARO_ENV !== 'dynamic') return false\n try {\n const version = (Taro.getSystemInfoSync() as any).version || ''\n if (!version) return false\n return compareVersion(version, MIN_A11Y_APP_VERSION) >= 0\n } catch {\n return false\n }\n}\n\n// 默认导出:按 app 版本整体分发到新版(slider)或旧版(legacy)无障碍实现\nexport function PickerGroup(props: PickerGroupProps) {\n // 在组件渲染时判定(此时 Taro runtime 已就绪,避免模块加载期 API 未初始化)\n const useSliderA11y = resolveUseSliderA11y()\n return useSliderA11y\n ? <PickerGroupSlider {...props} />\n : <PickerGroupLegacy {...props} />\n}\n"],"names":["MIN_A11Y_APP_VERSION","compareVersion","v1","v2","a","String","split","b","len","Math","max","length","i","n1","parseInt","n2","resolveUseSliderA11y","process","env","TARO_ENV","version","Taro","getSystemInfoSync","_a","PickerGroup","props","useSliderA11y","_jsx","PickerGroupSlider","PickerGroupLegacy"],"mappings":";;;;;;;AAsCA;AACA,MAAMA,oBAAoB,GAAG,SAAS;AAEtC;AACA,SAASC,cAAcA,CAACC,EAAU,EAAEC,EAAU,EAAA;EAC5C,MAAMC,CAAC,GAAGC,MAAM,CAACH,EAAE,CAAC,CAACI,KAAK,CAAC,GAAG,CAAC;EAC/B,MAAMC,CAAC,GAAGF,MAAM,CAACF,EAAE,CAAC,CAACG,KAAK,CAAC,GAAG,CAAC;AAC/B,EAAA,MAAME,GAAG,GAAGC,IAAI,CAACC,GAAG,CAACN,CAAC,CAACO,MAAM,EAAEJ,CAAC,CAACI,MAAM,CAAC;EACxC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,GAAG,EAAEI,CAAC,EAAE,EAAE;AAC5B,IAAA,MAAMC,EAAE,GAAGC,QAAQ,CAACV,CAAC,CAACQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;AAClC,IAAA,MAAMG,EAAE,GAAGD,QAAQ,CAACP,CAAC,CAACK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;AAClC,IAAA,IAAIC,EAAE,GAAGE,EAAE,EAAE,OAAO,CAAC;AACrB,IAAA,IAAIF,EAAE,GAAGE,EAAE,EAAE,OAAO,CAAC,CAAC;AACxB;AACA,EAAA,OAAO,CAAC;AACV;AAEA;AACA,SAASC,oBAAoBA,GAAA;AAC3B;EACA,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,SAAS,EAAE,OAAO,KAAK;EACpD,IAAI;IACF,MAAMC,OAAO,GAAIC,IAAI,CAACC,iBAAiB,EAAU,CAACF,OAAO,IAAI,EAAE;AAC/D,IAAA,IAAI,CAACA,OAAO,EAAE,OAAO,KAAK;AAC1B,IAAA,OAAOnB,cAAc,CAACmB,OAAO,EAAEpB,oBAAoB,CAAC,IAAI,CAAC;GAC1D,CAAC,OAAAuB,EAAA,EAAM;AACN,IAAA,OAAO,KAAK;AACd;AACF;AAEA;AACM,SAAUC,WAAWA,CAACC,KAAuB,EAAA;AACjD;AACA,EAAA,MAAMC,aAAa,GAAGV,oBAAoB,EAAE;AAC5C,EAAA,OAAOU,aAAa,gBAChBC,GAAA,CAACC,iBAAiB,EAAA;IAAA,GAAKH;AAAK,GAAI,CAAA,gBAChCE,GAAA,CAACE,iBAAiB,EAAA;IAAA,GAAKJ;AAAK,IAAI;AACtC;;;;"}
@@ -849,6 +849,11 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
849
849
  style: {
850
850
  color: colors.cancelButtonColor
851
851
  },
852
+ ariaAction: [{
853
+ name: 'activate',
854
+ label: '激活'
855
+ }],
856
+ onAriaAction: handleCancel,
852
857
  children: (_a = textProps.cancelText) !== null && _a !== void 0 ? _a : langText.cancel
853
858
  }), headerText && /*#__PURE__*/jsx(View, {
854
859
  className: "taro-picker__title",
@@ -862,6 +867,11 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
862
867
  style: {
863
868
  color: colors.confirmButtonColor
864
869
  },
870
+ ariaAction: [{
871
+ name: 'activate',
872
+ label: '激活'
873
+ }],
874
+ onAriaAction: handleChange,
865
875
  children: (_b = textProps.okText) !== null && _b !== void 0 ? _b : langText.confirm
866
876
  })]
867
877
  }), /*#__PURE__*/jsx(View, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/picker/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport {\n compareTime,\n getDayRange,\n getMonthRange,\n getYearRange,\n hoursRange,\n minutesRange,\n omit,\n verifyDate,\n verifyTime,\n verifyValue\n} from '../../utils'\nimport { PickerGroup } from './picker-group'\n\n// 定义 RegionData 类型,与 Taro 官方保持一致\nexport interface RegionData {\n value: string\n code: string\n postcode?: string\n children?: RegionData[]\n}\n\n// 稳定的空数组引用,避免每次渲染都创建新引用\nconst EMPTY_ARRAY: any[] = []\nconst EMPTY_OBJECT: Record<string, any> = {}\n\n// 语言映射函数\nfunction getLanguageText(lang?: string) {\n const isEnglish = lang === 'en-US' || lang === 'en-GB'\n return {\n confirm: isEnglish ? 'Confirm' : '确定',\n cancel: isEnglish ? 'Cancel' : '取消',\n year: isEnglish ? 'Year ' : '年',\n month: isEnglish ? 'Month ' : '月',\n day: isEnglish ? 'Day ' : '日'\n }\n}\n\n// 数据验证函数\nfunction validateRegionData(data: RegionData[], componentName = 'Picker'): { valid: boolean, error?: string } {\n if (!data) {\n return { valid: false, error: `${componentName}: regionData is required for region mode` }\n }\n\n if (!Array.isArray(data)) {\n return { valid: false, error: `${componentName}: regionData must be an array` }\n }\n\n if (data.length === 0) {\n return { valid: false, error: `${componentName}: regionData cannot be empty` }\n }\n\n // 检查数据结构\n const validateItem = (item: RegionData, path: string): { valid: boolean, error?: string } => {\n if (!item || typeof item !== 'object') {\n return { valid: false, error: `${componentName}: Invalid item at ${path}` }\n }\n\n if (!item.value || typeof item.value !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'value' field at ${path}` }\n }\n\n if (!item.code || typeof item.code !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'code' field at ${path}` }\n }\n\n if (item.postcode !== undefined && typeof item.postcode !== 'string') {\n return { valid: false, error: `${componentName}: Invalid 'postcode' field at ${path}` }\n }\n\n if (item.children && !Array.isArray(item.children)) {\n return { valid: false, error: `${componentName}: 'children' must be an array at ${path}` }\n }\n\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n const childResult = validateItem(item.children[i], `${path}.children[${i}]`)\n if (!childResult.valid) return childResult\n }\n }\n\n return { valid: true }\n }\n\n for (let i = 0; i < data.length; i++) {\n const result = validateItem(data[i], `regionData[${i}]`)\n if (!result.valid) return result\n }\n\n return { valid: true }\n}\n\nexport type Mode = 'selector' | 'multiSelector' | 'time' | 'date' | 'region'\nexport type Fields = 'day' | 'month' | 'year'\nexport type RegionLevel = 'province' | 'city' | 'region'\nexport type PickerValue = number | number[] | string | string[]\n\nexport interface PickerText {\n okText?: string\n cancelText?: string\n}\n\nexport interface PickerColors {\n confirmButtonColor?: string // 确定按钮颜色\n cancelButtonColor?: string // 取消按钮颜色\n itemDefaultColor?: string // 选项字体默认颜色\n itemSelectedColor?: string // 选项字体选中颜色\n backgroundColor?: string // 面板背景色\n lineColor?: string // 指示线条颜色\n titleColor?: string // 标题颜色\n /** 全屏点击蒙层背景色;不设则随 theme 使用默认浅色/深色蒙层 */\n maskColor?: string\n}\n\nexport interface PickerDate {\n _value: Date\n _start: Date\n _end: Date\n _updateValue: [number, number, number]\n}\n\ninterface IProps {\n mode?: Mode\n disabled?: boolean\n range?: any[]\n rangeKey?: string\n value?: PickerValue\n start?: string\n end?: string\n fields?: Fields\n name?: string\n headerText?: string\n regionData?: RegionData[] // 省市区/县数据(region 模式专用)\n level?: RegionLevel\n textProps?: PickerText\n colors?: PickerColors // 颜色配置\n onChange?: (e: { detail: { value: PickerValue, code?: string, postcode?: string } }) => void\n onColumnChange?: (e: { detail: { column: number, value: number } }) => void\n onCancel?: () => void\n children?: React.ReactNode\n forwardedRef?: React.MutableRefObject<HTMLDivElement | null>\n formType?: string\n lang?: string // 语言参数,支持 'zh-CN'、'en-US'、'en-GB'\n theme?: 'light' | 'dark' // 主题模式,默认 'light'\n /** 点击选项是否滚至选中区,默认 true */\n enableClickItemScroll?: boolean\n}\n\ninterface IState {\n pickerValue: PickerValue\n selectedIndices: number[] // 索引数组\n hidden: boolean\n fadeOut: boolean\n isWillLoadCalled: boolean\n /** time 限位后由子列消费,用于无障碍聚焦 */\n a11yTimeLimitColumnId: string | null\n a11yTimeLimitNonce: number\n}\n\n// 普通函数\nfunction getRegionColumnsCount(level: RegionLevel): number {\n switch (level) {\n case 'province': return 1\n case 'city': return 2\n case 'region': return 3\n default: return 3 // 默认显示省市区/县三列\n }\n}\n\n// 暴露给外部的 ref 类型\nexport interface PickerRef {\n showPicker: () => void\n hidePicker: () => void\n}\n\nconst Picker = React.forwardRef<PickerRef, IProps>((props, ref) => {\n const {\n mode = 'selector',\n disabled = false,\n range = EMPTY_ARRAY,\n rangeKey,\n value,\n start = '',\n end = '',\n fields = 'day',\n headerText,\n level = 'region',\n regionData,\n textProps = EMPTY_OBJECT,\n colors = EMPTY_OBJECT,\n onChange,\n onColumnChange,\n onCancel,\n children,\n formType,\n lang,\n theme = 'light',\n enableClickItemScroll = true,\n ...restProps\n } = props\n const indexRef = React.useRef<number[]>([])\n const pickerDateRef = React.useRef<PickerDate>()\n // region:首次用户滚动初始化完成前不入库\n const isInitializationCompletedRef = React.useRef(false)\n\n const [state, setState] = React.useState<IState>({\n pickerValue: value || EMPTY_ARRAY,\n selectedIndices: EMPTY_ARRAY.slice(), // 索引数组\n hidden: true,\n fadeOut: false,\n isWillLoadCalled: false,\n a11yTimeLimitColumnId: null,\n a11yTimeLimitNonce: 0\n })\n\n // 安全区域底部距离\n const [safeAreaBottom, setSafeAreaBottom] = React.useState(0)\n\n // 在组件内部\n const [columnsCount, setColumnsCount] = React.useState(() => getRegionColumnsCount(level))\n\n // 只在level变化时更新列数\n React.useEffect(() => {\n setColumnsCount(getRegionColumnsCount(level))\n }, [level])\n\n // 更新安全区域\n const updateSafeArea = React.useCallback(() => {\n try {\n const systemInfo = Taro.getSystemInfoSync()\n const { safeArea, windowHeight } = systemInfo\n // safeArea.bottom 为安全区底边的 Y 坐标,有效值应接近 windowHeight;\n // 全 0 表示安全区信息尚不可用,此时不能用 windowHeight-0 算出整屏高度作为底部间距\n if (safeArea && windowHeight && safeArea.bottom > 0) {\n const lengthScaleRatio = (systemInfo as any).lengthScaleRatio || 1\n const bottom = (windowHeight - safeArea.bottom) / lengthScaleRatio\n setSafeAreaBottom(Math.max(0, bottom))\n } else {\n setSafeAreaBottom(0)\n }\n } catch (e) {\n // H5 环境或其他异常情况,不设置安全区域\n setSafeAreaBottom(0)\n }\n }, [])\n\n // 初始化安全区域\n React.useEffect(() => {\n updateSafeArea()\n }, [updateSafeArea])\n\n // 监听窗口变化(导航方式切换等)\n Taro.useResize(() => {\n updateSafeArea()\n })\n\n // 获取当前索引数组\n const getIndices = React.useCallback(() => {\n return indexRef.current\n }, [])\n\n // 处理属性变化\n const handleProps = React.useCallback(() => {\n if (mode === 'selector') {\n const val = value as number\n indexRef.current = [verifyValue(val, range) ? Math.floor(val) : 0]\n } else if (mode === 'multiSelector') {\n const val = value as number[]\n indexRef.current = []\n range.forEach((rangeItem, index) => {\n const valItem = val?.[index]\n const item = verifyValue(valItem, rangeItem as any[]) ? Math.floor(valItem) : 0\n indexRef.current.push(item)\n })\n } else if (mode === 'time') {\n let val = value as string\n if (!verifyTime(val)) {\n console.warn('time picker value illegal')\n val = '0:0'\n }\n const time = val.split(':').map(n => +n)\n\n // 在 hoursRange 和 minutesRange 中找到对应的索引\n const hourIndex = hoursRange.findIndex(item => parseInt(item) === time[0])\n const minuteIndex = minutesRange.findIndex(item => parseInt(item) === time[1])\n\n // 确保索引在有效范围内\n const safeHourIndex = hourIndex >= 0 ? hourIndex : 0 // 默认为第一项\n const safeMinuteIndex = minuteIndex >= 0 ? minuteIndex : 0 // 默认为第一项\n\n indexRef.current = [\n Math.max(0, Math.min(safeHourIndex, hoursRange.length - 1)),\n Math.max(0, Math.min(safeMinuteIndex, minutesRange.length - 1))\n ]\n } else if (mode === 'date') {\n const val = value as string\n let _value = verifyDate(val) || new Date(new Date().setHours(0, 0, 0, 0))\n const _start = verifyDate(start) || new Date('1875/01/01')\n const _end = verifyDate(end) || new Date('2100/01/01')\n if (!(_start <= _end)) {\n throw new Error(`Picker start time must be less than end time.`)\n }\n if (!(_value >= _start && _value <= _end)) {\n _value = _start\n }\n const currentYear = _value.getFullYear()\n const currentMonth = _value.getMonth() + 1\n const currentDay = _value.getDate()\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n indexRef.current = [\n yearRange.indexOf(currentYear),\n monthRange.indexOf(currentMonth),\n dayRange.indexOf(currentDay)\n ]\n // 与 props 同步时始终刷新 _updateValue,避免取消后再开时日列草稿与索引不一致\n pickerDateRef.current = {\n _value,\n _start,\n _end,\n _updateValue: [currentYear, currentMonth, currentDay]\n }\n } else if (mode === 'region') {\n // region 模式处理 - 验证数据\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n indexRef.current = Array.from({ length: columnsCount }, () => 0)\n setState(prev => ({\n ...prev,\n selectedIndices: [...indexRef.current],\n pickerValue: value || EMPTY_ARRAY\n }))\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n indexRef.current = Array.from({ length: columnsCount }, () => 0)\n setState(prev => ({\n ...prev,\n selectedIndices: [...indexRef.current],\n pickerValue: value || EMPTY_ARRAY\n }))\n return\n }\n\n // 获取列数\n const val = Array.isArray(value) ? value : []\n\n // 根据level和当前值确定索引\n indexRef.current = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData?.length) {\n indexRef.current.push(0)\n continue\n }\n let idx = 0\n if (typeof val[i] === 'number') {\n const rawIdx = val[i] as number\n idx = (rawIdx >= 0 && rawIdx < currentData.length) ? rawIdx : 0\n } else if (typeof val[i] === 'string') {\n const parsed = parseInt(val[i] as string, 10)\n idx = (parsed >= 0 && parsed < currentData.length) ? parsed : 0\n }\n indexRef.current.push(idx)\n currentData = currentData[idx]?.children || []\n }\n } else {\n throw new Error(`Picker not support \"${mode}\" mode.`)\n }\n\n // 更新索引值\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n pickerValue: value || EMPTY_ARRAY\n }))\n }, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices])\n\n // 组件初始化\n React.useEffect(() => {\n setState(prev => ({ ...prev, isWillLoadCalled: true }))\n handleProps()\n }, [])\n\n // 属性变化监听 - 添加 value 依赖以支持联动选择器\n React.useEffect(() => {\n if (state.isWillLoadCalled) {\n handleProps()\n }\n }, [handleProps, state.isWillLoadCalled, JSON.stringify(value)])\n\n // 打开时按 props 重算索引,避免未确认的滑动与 indexRef 残留导致再开抖动\n const showPicker = React.useCallback(() => {\n if (disabled) return\n // 打开弹层时再读一次:此时安全区必然已稳定,避免 mount 首帧拿到全 0 的无效值\n updateSafeArea()\n isInitializationCompletedRef.current = false\n handleProps()\n setState(prev => ({\n ...prev,\n hidden: false,\n a11yTimeLimitColumnId: null\n }))\n }, [disabled, handleProps, updateSafeArea])\n\n // 隐藏 Picker\n const hidePicker = React.useCallback(() => {\n isInitializationCompletedRef.current = false\n // 动画暂时不支持,暂时屏蔽相关样式挂载逻辑\n // setState(prev => ({ ...prev, fadeOut: true }))\n // setTimeout(() => {\n // setState(prev => ({\n // ...prev,\n // hidden: true,\n // fadeOut: false\n // }))\n // }, 350)\n setState(prev => ({ ...prev, hidden: true }))\n }, [])\n\n // 更新索引\n const updateIndex = React.useCallback((index: number, columnId: string, needRevise: boolean = false, isUserScrollRef: boolean = false) => {\n const columnIndex = Number(columnId)\n let finalIndices = [...state.selectedIndices]\n finalIndices[columnIndex] = index\n let hasLimited = false\n\n // region 模式的级联更新逻辑\n if (mode === 'region' && regionData) {\n if (isUserScrollRef && !isInitializationCompletedRef.current) {\n isInitializationCompletedRef.current = true\n }\n if (!isInitializationCompletedRef.current) {\n return\n }\n // 重置后续列\n for (let i = columnIndex + 1; i < columnsCount; i++) {\n finalIndices[i] = 0\n }\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n return // 直接返回\n }\n\n // time picker\n if (needRevise && mode === 'time') {\n let startTime = start\n let endTime = end\n\n if (!verifyTime(startTime)) startTime = '00:00'\n if (!verifyTime(endTime)) endTime = '23:59'\n if (!compareTime(startTime, endTime)) return false\n\n const timeRanges = [hoursRange.slice(), minutesRange.slice()]\n // 然后基于更新后的索引数组计算时间\n const timeStr = finalIndices.map((idx, i) => {\n const rangeIdx = Math.max(0, Math.min(idx, timeRanges[i].length - 1))\n return timeRanges[i][rangeIdx] || '00'\n }).join(':')\n\n // 检查是否需要限位\n if (!compareTime(startTime, timeStr)) {\n // 修正到 start\n const startParts = startTime.split(':').map(part => parseInt(part))\n const newIndices = startParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n } else if (!compareTime(timeStr, endTime)) {\n // 修正到 end\n const endParts = endTime.split(':').map(part => parseInt(part))\n const newIndices = endParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n }\n\n if (hasLimited) {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n a11yTimeLimitColumnId: columnId,\n a11yTimeLimitNonce: prev.a11yTimeLimitNonce + 1\n }))\n } else {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n\n return hasLimited\n }\n\n // 常规更新\n finalIndices[columnIndex] = index\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n\n return false // 没有限位\n }, [start, end, mode, regionData, state.selectedIndices, columnsCount])\n\n // 更新日期\n const updateDay = React.useCallback((value: number, fields: number) => {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n\n // 更新当前字段的值\n _updateValue[fields] = value\n\n // 获取当前年月日\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const currentDay = _updateValue[2]\n\n // 保存原始值用于后面比较\n const originalValues = [..._updateValue]\n\n // 准备最终的索引数组 - 复制当前索引状态作为起点\n const finalIndices = [...state.selectedIndices]\n\n // 获取基础范围数据\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n let dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 根据修改的字段进行不同处理\n if (fields === 0) {\n // 年份索引直接更新\n finalIndices[0] = yearRange.indexOf(currentYear)\n\n // 月份限位处理\n if (monthRange.length > 0) {\n if (currentMonth > monthRange[monthRange.length - 1]) {\n _updateValue[1] = monthRange[monthRange.length - 1]\n }\n if (currentMonth < monthRange[0]) {\n _updateValue[1] = monthRange[0]\n }\n\n // 更新月份索引\n finalIndices[1] = monthRange.indexOf(_updateValue[1])\n\n // 重新计算日期范围\n dayRange = getDayRange(_start, _end, currentYear, _updateValue[1])\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n }\n } else if (fields === 1) { // 月份变化\n // 月份索引直接更新\n finalIndices[1] = monthRange.indexOf(currentMonth)\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n } else if (fields === 2) { // 日期变化\n // 日期索引直接更新\n finalIndices[2] = dayRange.indexOf(currentDay)\n }\n\n // 只在有实际变化时更新状态\n if (\n JSON.stringify(originalValues) !== JSON.stringify(_updateValue) ||\n JSON.stringify(finalIndices) !== JSON.stringify(state.selectedIndices)\n ) {\n // 一次性更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n }, [state.selectedIndices])\n\n // 处理确认\n const handleChange = React.useCallback(() => {\n const newIndices = [...state.selectedIndices]\n indexRef.current = newIndices\n\n let newValue: PickerValue = newIndices.length && mode !== 'selector'\n ? newIndices\n : newIndices[0]\n\n if (mode === 'time') {\n const range = [hoursRange.slice(), minutesRange.slice()]\n\n // 安全的时间处理,添加边界检查\n const timeArr = newIndices.map<string>((idx, i) => {\n const index = Math.max(0, Math.min(idx, range[i].length - 1))\n return range[i][index] || (i === 0 ? '00' : '00')\n })\n\n // 确保时间值有效\n const validTimeArr = timeArr.map(time => {\n const num = parseInt(time)\n return isNaN(num) ? '00' : time\n })\n\n indexRef.current = validTimeArr.map(item => parseInt(item))\n newValue = validTimeArr.join(':')\n }\n\n if (mode === 'date') {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 添加边界检查,确保索引有效\n const yearIndex = Math.min(Math.max(Math.floor(newIndices[0]), 0), yearRange.length - 1)\n const monthIndex = Math.min(Math.max(Math.floor(newIndices[1]), 0), monthRange.length - 1)\n const dayIndex = Math.min(Math.max(Math.floor(newIndices[2]), 0), dayRange.length - 1)\n\n const year = yearRange[yearIndex]\n const month = monthRange[monthIndex]\n const day = dayRange[dayIndex]\n\n // 确保所有值都存在\n if (year === undefined || month === undefined || day === undefined) {\n console.warn('Date picker: invalid date values', { year, month, day })\n return\n }\n\n if (fields === 'year') {\n newValue = year.toString()\n } else if (fields === 'month') {\n // YYYY-MM 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}`\n } else {\n // YYYY-MM-DD 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n onChange?.({ detail: { value: newValue } })\n return\n }\n\n if (mode === 'region') {\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n return\n }\n\n // 直接使用索引数组\n const selectedCodes: string[] = []\n let postcode = ''\n\n // 安全获取选中值\n let currentData = regionData\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData || currentData.length === 0) break\n\n const index = newIndices[i] || 0\n if (index < 0 || index >= currentData.length) break\n\n const item = currentData[index]\n selectedCodes.push(item.code)\n\n // 如果是最后一项,获取邮政编码\n if (i === columnsCount - 1 && item.postcode) {\n postcode = item.postcode\n }\n\n // 准备下一级数据\n currentData = item.children || []\n }\n\n // 检查索引数组长度是否符合要求\n if (newIndices.length < columnsCount) {\n console.warn('Region picker: incomplete selection')\n return\n }\n\n // 触发 onChange 事件,包含 code 信息\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newIndices\n }))\n\n onChange?.({\n detail: {\n value: newIndices,\n code: selectedCodes.join(','),\n postcode\n }\n })\n return\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n // 触发 onChange 事件,格式与原始组件一致\n onChange?.({ detail: { value: newValue } })\n }, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount])\n\n // 处理列变化\n const handleColumnChange = React.useCallback((e: { columnId: string, index: number }) => {\n const { columnId, index } = e\n onColumnChange?.({\n detail: {\n column: Number(columnId),\n value: index\n }\n })\n }, [onColumnChange])\n\n const consumeTimeA11yLimitFocus = React.useCallback(() => {\n setState(prev => ({ ...prev, a11yTimeLimitColumnId: null }))\n }, [])\n\n // 取消时按 props 回同步索引,避免与 value 脱节\n const handleCancel = React.useCallback(() => {\n handleProps()\n hidePicker()\n onCancel?.()\n }, [handleProps, hidePicker, onCancel])\n\n // 渲染选择器组\n const renderPickerGroup = React.useMemo(() => {\n switch (mode) {\n case 'multiSelector': {\n return range.map((rangeItem, index) => (\n <PickerGroup\n key={index}\n range={rangeItem}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n onColumnChange={handleColumnChange}\n columnId={String(index)}\n selectedIndex={state.selectedIndices[index]} // 传递对应列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n ))\n }\n case 'time': {\n const timeA11yLimitFocus =\n state.a11yTimeLimitColumnId != null\n ? { nonce: state.a11yTimeLimitNonce, columnId: state.a11yTimeLimitColumnId }\n : null\n return [\n <PickerGroup\n key=\"hour\"\n mode=\"time\"\n range={hoursRange}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递小时列的selectedIndex\n colors={colors}\n timeA11yLimitFocus={timeA11yLimitFocus}\n onTimeA11yLimitFocusConsumed={consumeTimeA11yLimitFocus}\n timeA11yLimitEventNonce={state.a11yTimeLimitNonce}\n enableClickItemScroll={enableClickItemScroll}\n />,\n <PickerGroup\n key=\"minute\"\n mode=\"time\"\n range={minutesRange}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递分钟列的selectedIndex\n colors={colors}\n timeA11yLimitFocus={timeA11yLimitFocus}\n onTimeA11yLimitFocusConsumed={consumeTimeA11yLimitFocus}\n timeA11yLimitEventNonce={state.a11yTimeLimitNonce}\n enableClickItemScroll={enableClickItemScroll}\n />\n ]\n }\n case 'date': {\n if (!pickerDateRef.current) return null\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n\n const langText = getLanguageText(lang)\n const isEnglish = lang === 'en-US' || lang === 'en-GB'\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n .map(item => isEnglish ? `${langText.year}${item}` : `${item}${langText.year}`)\n const monthRange = getMonthRange(_start, _end, currentYear)\n .map(item => isEnglish ? `${langText.month}${item < 10 ? `0${item}` : item}` : `${item < 10 ? `0${item}` : item}${langText.month}`)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n .map(item => isEnglish ? `${langText.day}${item < 10 ? `0${item}` : item}` : `${item < 10 ? `0${item}` : item}${langText.day}`)\n\n const renderView = [\n <PickerGroup\n key={`year`}\n mode=\"date\"\n range={yearRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递年份列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n ]\n if (fields === 'month' || fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`month`}\n mode=\"date\"\n range={monthRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递月份列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n if (fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`day`}\n mode=\"date\"\n range={dayRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"2\"\n selectedIndex={state.selectedIndices[2]} // 传递日期列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n return renderView\n }\n case 'region': {\n // region 模式处理 - 自动识别数据层级\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return null\n }\n\n // 简化验证逻辑\n if (!validateRegionData(regionData, 'Picker').valid) {\n return null\n }\n\n const columns: JSX.Element[] = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i > 0 && currentData?.length) {\n // 获取上一级选中项的children作为当前列数据\n const prevIndex = state.selectedIndices[i - 1] || 0\n if (prevIndex >= 0 && prevIndex < currentData.length) {\n currentData = currentData[prevIndex].children || []\n } else {\n currentData = []\n }\n }\n\n columns.push(\n <PickerGroup\n key={`region-${i}`}\n mode=\"region\"\n range={currentData}\n rangeKey=\"value\"\n updateIndex={updateIndex}\n columnId={String(i)}\n selectedIndex={state.selectedIndices[i]}\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n\n return columns\n }\n default:\n return (\n <PickerGroup\n range={range}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递selector模式的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n }, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, state.a11yTimeLimitColumnId, state.a11yTimeLimitNonce, consumeTimeA11yLimitFocus, columnsCount, lang, colors, enableClickItemScroll])\n\n // 动画类名控制逻辑\n const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {\n 'taro-picker__animate-fade-out': state.fadeOut\n })\n const clsSlider = classNames('taro-picker', 'taro-picker__animate-slide-up', `taro-picker-theme-${theme}`, {\n 'taro-picker__animate-slide-down': state.fadeOut\n })\n const backgroundStyle = colors.backgroundColor ? { backgroundColor: colors.backgroundColor } : null\n const titleStyle = colors.titleColor ? { color: colors.titleColor } : null\n const maskOverlayStyle = colors.maskColor ? { backgroundColor: colors.maskColor } : undefined\n\n // 暴露方法给外部\n React.useImperativeHandle(ref, () => ({\n showPicker,\n hidePicker\n }))\n\n // 获取语言文本\n const langText = getLanguageText(lang)\n\n return (\n <View\n ref={ref as any} // 直接绑定 ref\n {...(formType ? { 'data-form-type': formType } : {})}\n {...omit(restProps, ['mode', 'disabled', 'range', 'rangeKey', 'value', 'start', 'end', 'fields', 'name', 'textProps', 'onChange', 'onColumnChange', 'onCancel', 'children', 'formType'])}\n >\n <View onClick={showPicker}>\n {children}\n </View>\n {!state.hidden && (\n <View className={classNames('taro-picker__overlay', `taro-picker__overlay--theme-${theme}`)}>\n <View className={clsMask} style={maskOverlayStyle} onClick={handleCancel} />\n <View\n className={clsSlider}\n style={{\n ...backgroundStyle,\n }}\n >\n <View className=\"taro-picker__hd\" {...(backgroundStyle ? { style: backgroundStyle } : {})}>\n <View\n className=\"taro-picker__action\"\n onClick={handleCancel}\n style={{ color: colors.cancelButtonColor }}\n >\n {textProps.cancelText ?? langText.cancel}\n </View>\n {headerText && (\n <View\n className=\"taro-picker__title\"\n {...(titleStyle ? { style: titleStyle } : {})}\n >\n {headerText}\n </View>\n )}\n <View\n className=\"taro-picker__action\"\n onClick={handleChange}\n style={{ color: colors.confirmButtonColor }}\n >\n {textProps.okText ?? langText.confirm}\n </View>\n </View>\n <View className=\"taro-picker__bd\" {...(backgroundStyle ? { style: backgroundStyle } : {})}>{renderPickerGroup}</View>\n {safeAreaBottom > 0 && (\n <View className=\"taro-picker__bd\" style={{ ...backgroundStyle, height: `${safeAreaBottom}px`, flex: 'none', overflow: 'visible' }} />\n )}\n </View>\n </View>\n )}\n </View>\n )\n})\n\nPicker.displayName = 'Picker'\nexport default Picker\n"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","getLanguageText","lang","isEnglish","confirm","cancel","year","month","day","validateRegionData","data","componentName","arguments","length","undefined","valid","error","Array","isArray","validateItem","item","path","value","code","postcode","children","i","childResult","result","getRegionColumnsCount","level","Picker","React","forwardRef","props","ref","mode","disabled","range","rangeKey","start","end","fields","headerText","regionData","textProps","colors","onChange","onColumnChange","onCancel","formType","theme","enableClickItemScroll","restProps","__rest","indexRef","useRef","pickerDateRef","isInitializationCompletedRef","state","setState","useState","pickerValue","selectedIndices","slice","hidden","fadeOut","isWillLoadCalled","a11yTimeLimitColumnId","a11yTimeLimitNonce","safeAreaBottom","setSafeAreaBottom","columnsCount","setColumnsCount","useEffect","updateSafeArea","useCallback","systemInfo","Taro","getSystemInfoSync","safeArea","windowHeight","bottom","lengthScaleRatio","Math","max","e","useResize","getIndices","current","handleProps","val","verifyValue","floor","forEach","rangeItem","index","valItem","push","verifyTime","console","warn","time","split","map","n","hourIndex","hoursRange","findIndex","parseInt","minuteIndex","minutesRange","safeHourIndex","safeMinuteIndex","min","_value","verifyDate","Date","setHours","_start","_end","Error","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","yearRange","getYearRange","monthRange","getMonthRange","dayRange","getDayRange","indexOf","_updateValue","from","prev","validation","currentData","idx","rawIdx","parsed","_a","newIndices","Object","assign","JSON","stringify","showPicker","hidePicker","updateIndex","columnId","needRevise","isUserScrollRef","columnIndex","Number","finalIndices","hasLimited","startTime","endTime","compareTime","timeRanges","timeStr","rangeIdx","join","startParts","part","endParts","updateDay","originalValues","handleChange","newValue","timeArr","validTimeArr","num","isNaN","yearIndex","monthIndex","dayIndex","toString","detail","selectedCodes","handleColumnChange","column","consumeTimeA11yLimitFocus","handleCancel","renderPickerGroup","useMemo","_jsx","PickerGroup","String","selectedIndex","timeA11yLimitFocus","nonce","onTimeA11yLimitFocusConsumed","timeA11yLimitEventNonce","langText","renderView","columns","prevIndex","clsMask","classNames","clsSlider","backgroundStyle","backgroundColor","titleStyle","titleColor","color","maskOverlayStyle","maskColor","useImperativeHandle","_jsxs","View","omit","onClick","className","style","cancelButtonColor","cancelText","confirmButtonColor","_b","okText","height","flex","overflow","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/picker/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport {\n compareTime,\n getDayRange,\n getMonthRange,\n getYearRange,\n hoursRange,\n minutesRange,\n omit,\n verifyDate,\n verifyTime,\n verifyValue\n} from '../../utils'\nimport { PickerGroup } from './picker-group'\n\n// 定义 RegionData 类型,与 Taro 官方保持一致\nexport interface RegionData {\n value: string\n code: string\n postcode?: string\n children?: RegionData[]\n}\n\n// 稳定的空数组引用,避免每次渲染都创建新引用\nconst EMPTY_ARRAY: any[] = []\nconst EMPTY_OBJECT: Record<string, any> = {}\n\n// 语言映射函数\nfunction getLanguageText(lang?: string) {\n const isEnglish = lang === 'en-US' || lang === 'en-GB'\n return {\n confirm: isEnglish ? 'Confirm' : '确定',\n cancel: isEnglish ? 'Cancel' : '取消',\n year: isEnglish ? 'Year ' : '年',\n month: isEnglish ? 'Month ' : '月',\n day: isEnglish ? 'Day ' : '日'\n }\n}\n\n// 数据验证函数\nfunction validateRegionData(data: RegionData[], componentName = 'Picker'): { valid: boolean, error?: string } {\n if (!data) {\n return { valid: false, error: `${componentName}: regionData is required for region mode` }\n }\n\n if (!Array.isArray(data)) {\n return { valid: false, error: `${componentName}: regionData must be an array` }\n }\n\n if (data.length === 0) {\n return { valid: false, error: `${componentName}: regionData cannot be empty` }\n }\n\n // 检查数据结构\n const validateItem = (item: RegionData, path: string): { valid: boolean, error?: string } => {\n if (!item || typeof item !== 'object') {\n return { valid: false, error: `${componentName}: Invalid item at ${path}` }\n }\n\n if (!item.value || typeof item.value !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'value' field at ${path}` }\n }\n\n if (!item.code || typeof item.code !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'code' field at ${path}` }\n }\n\n if (item.postcode !== undefined && typeof item.postcode !== 'string') {\n return { valid: false, error: `${componentName}: Invalid 'postcode' field at ${path}` }\n }\n\n if (item.children && !Array.isArray(item.children)) {\n return { valid: false, error: `${componentName}: 'children' must be an array at ${path}` }\n }\n\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n const childResult = validateItem(item.children[i], `${path}.children[${i}]`)\n if (!childResult.valid) return childResult\n }\n }\n\n return { valid: true }\n }\n\n for (let i = 0; i < data.length; i++) {\n const result = validateItem(data[i], `regionData[${i}]`)\n if (!result.valid) return result\n }\n\n return { valid: true }\n}\n\nexport type Mode = 'selector' | 'multiSelector' | 'time' | 'date' | 'region'\nexport type Fields = 'day' | 'month' | 'year'\nexport type RegionLevel = 'province' | 'city' | 'region'\nexport type PickerValue = number | number[] | string | string[]\n\nexport interface PickerText {\n okText?: string\n cancelText?: string\n}\n\nexport interface PickerColors {\n confirmButtonColor?: string // 确定按钮颜色\n cancelButtonColor?: string // 取消按钮颜色\n itemDefaultColor?: string // 选项字体默认颜色\n itemSelectedColor?: string // 选项字体选中颜色\n backgroundColor?: string // 面板背景色\n lineColor?: string // 指示线条颜色\n titleColor?: string // 标题颜色\n /** 全屏点击蒙层背景色;不设则随 theme 使用默认浅色/深色蒙层 */\n maskColor?: string\n}\n\nexport interface PickerDate {\n _value: Date\n _start: Date\n _end: Date\n _updateValue: [number, number, number]\n}\n\ninterface IProps {\n mode?: Mode\n disabled?: boolean\n range?: any[]\n rangeKey?: string\n value?: PickerValue\n start?: string\n end?: string\n fields?: Fields\n name?: string\n headerText?: string\n regionData?: RegionData[] // 省市区/县数据(region 模式专用)\n level?: RegionLevel\n textProps?: PickerText\n colors?: PickerColors // 颜色配置\n onChange?: (e: { detail: { value: PickerValue, code?: string, postcode?: string } }) => void\n onColumnChange?: (e: { detail: { column: number, value: number } }) => void\n onCancel?: () => void\n children?: React.ReactNode\n forwardedRef?: React.MutableRefObject<HTMLDivElement | null>\n formType?: string\n lang?: string // 语言参数,支持 'zh-CN'、'en-US'、'en-GB'\n theme?: 'light' | 'dark' // 主题模式,默认 'light'\n /** 点击选项是否滚至选中区,默认 true */\n enableClickItemScroll?: boolean\n}\n\ninterface IState {\n pickerValue: PickerValue\n selectedIndices: number[] // 索引数组\n hidden: boolean\n fadeOut: boolean\n isWillLoadCalled: boolean\n /** time 限位后由子列消费,用于无障碍聚焦 */\n a11yTimeLimitColumnId: string | null\n a11yTimeLimitNonce: number\n}\n\n// 普通函数\nfunction getRegionColumnsCount(level: RegionLevel): number {\n switch (level) {\n case 'province': return 1\n case 'city': return 2\n case 'region': return 3\n default: return 3 // 默认显示省市区/县三列\n }\n}\n\n// 暴露给外部的 ref 类型\nexport interface PickerRef {\n showPicker: () => void\n hidePicker: () => void\n}\n\nconst Picker = React.forwardRef<PickerRef, IProps>((props, ref) => {\n const {\n mode = 'selector',\n disabled = false,\n range = EMPTY_ARRAY,\n rangeKey,\n value,\n start = '',\n end = '',\n fields = 'day',\n headerText,\n level = 'region',\n regionData,\n textProps = EMPTY_OBJECT,\n colors = EMPTY_OBJECT,\n onChange,\n onColumnChange,\n onCancel,\n children,\n formType,\n lang,\n theme = 'light',\n enableClickItemScroll = true,\n ...restProps\n } = props\n const indexRef = React.useRef<number[]>([])\n const pickerDateRef = React.useRef<PickerDate>()\n // region:首次用户滚动初始化完成前不入库\n const isInitializationCompletedRef = React.useRef(false)\n\n const [state, setState] = React.useState<IState>({\n pickerValue: value || EMPTY_ARRAY,\n selectedIndices: EMPTY_ARRAY.slice(), // 索引数组\n hidden: true,\n fadeOut: false,\n isWillLoadCalled: false,\n a11yTimeLimitColumnId: null,\n a11yTimeLimitNonce: 0\n })\n\n // 安全区域底部距离\n const [safeAreaBottom, setSafeAreaBottom] = React.useState(0)\n\n // 在组件内部\n const [columnsCount, setColumnsCount] = React.useState(() => getRegionColumnsCount(level))\n\n // 只在level变化时更新列数\n React.useEffect(() => {\n setColumnsCount(getRegionColumnsCount(level))\n }, [level])\n\n // 更新安全区域\n const updateSafeArea = React.useCallback(() => {\n try {\n const systemInfo = Taro.getSystemInfoSync()\n const { safeArea, windowHeight } = systemInfo\n // safeArea.bottom 为安全区底边的 Y 坐标,有效值应接近 windowHeight;\n // 全 0 表示安全区信息尚不可用,此时不能用 windowHeight-0 算出整屏高度作为底部间距\n if (safeArea && windowHeight && safeArea.bottom > 0) {\n const lengthScaleRatio = (systemInfo as any).lengthScaleRatio || 1\n const bottom = (windowHeight - safeArea.bottom) / lengthScaleRatio\n setSafeAreaBottom(Math.max(0, bottom))\n } else {\n setSafeAreaBottom(0)\n }\n } catch (e) {\n // H5 环境或其他异常情况,不设置安全区域\n setSafeAreaBottom(0)\n }\n }, [])\n\n // 初始化安全区域\n React.useEffect(() => {\n updateSafeArea()\n }, [updateSafeArea])\n\n // 监听窗口变化(导航方式切换等)\n Taro.useResize(() => {\n updateSafeArea()\n })\n\n // 获取当前索引数组\n const getIndices = React.useCallback(() => {\n return indexRef.current\n }, [])\n\n // 处理属性变化\n const handleProps = React.useCallback(() => {\n if (mode === 'selector') {\n const val = value as number\n indexRef.current = [verifyValue(val, range) ? Math.floor(val) : 0]\n } else if (mode === 'multiSelector') {\n const val = value as number[]\n indexRef.current = []\n range.forEach((rangeItem, index) => {\n const valItem = val?.[index]\n const item = verifyValue(valItem, rangeItem as any[]) ? Math.floor(valItem) : 0\n indexRef.current.push(item)\n })\n } else if (mode === 'time') {\n let val = value as string\n if (!verifyTime(val)) {\n console.warn('time picker value illegal')\n val = '0:0'\n }\n const time = val.split(':').map(n => +n)\n\n // 在 hoursRange 和 minutesRange 中找到对应的索引\n const hourIndex = hoursRange.findIndex(item => parseInt(item) === time[0])\n const minuteIndex = minutesRange.findIndex(item => parseInt(item) === time[1])\n\n // 确保索引在有效范围内\n const safeHourIndex = hourIndex >= 0 ? hourIndex : 0 // 默认为第一项\n const safeMinuteIndex = minuteIndex >= 0 ? minuteIndex : 0 // 默认为第一项\n\n indexRef.current = [\n Math.max(0, Math.min(safeHourIndex, hoursRange.length - 1)),\n Math.max(0, Math.min(safeMinuteIndex, minutesRange.length - 1))\n ]\n } else if (mode === 'date') {\n const val = value as string\n let _value = verifyDate(val) || new Date(new Date().setHours(0, 0, 0, 0))\n const _start = verifyDate(start) || new Date('1875/01/01')\n const _end = verifyDate(end) || new Date('2100/01/01')\n if (!(_start <= _end)) {\n throw new Error(`Picker start time must be less than end time.`)\n }\n if (!(_value >= _start && _value <= _end)) {\n _value = _start\n }\n const currentYear = _value.getFullYear()\n const currentMonth = _value.getMonth() + 1\n const currentDay = _value.getDate()\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n indexRef.current = [\n yearRange.indexOf(currentYear),\n monthRange.indexOf(currentMonth),\n dayRange.indexOf(currentDay)\n ]\n // 与 props 同步时始终刷新 _updateValue,避免取消后再开时日列草稿与索引不一致\n pickerDateRef.current = {\n _value,\n _start,\n _end,\n _updateValue: [currentYear, currentMonth, currentDay]\n }\n } else if (mode === 'region') {\n // region 模式处理 - 验证数据\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n indexRef.current = Array.from({ length: columnsCount }, () => 0)\n setState(prev => ({\n ...prev,\n selectedIndices: [...indexRef.current],\n pickerValue: value || EMPTY_ARRAY\n }))\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n indexRef.current = Array.from({ length: columnsCount }, () => 0)\n setState(prev => ({\n ...prev,\n selectedIndices: [...indexRef.current],\n pickerValue: value || EMPTY_ARRAY\n }))\n return\n }\n\n // 获取列数\n const val = Array.isArray(value) ? value : []\n\n // 根据level和当前值确定索引\n indexRef.current = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData?.length) {\n indexRef.current.push(0)\n continue\n }\n let idx = 0\n if (typeof val[i] === 'number') {\n const rawIdx = val[i] as number\n idx = (rawIdx >= 0 && rawIdx < currentData.length) ? rawIdx : 0\n } else if (typeof val[i] === 'string') {\n const parsed = parseInt(val[i] as string, 10)\n idx = (parsed >= 0 && parsed < currentData.length) ? parsed : 0\n }\n indexRef.current.push(idx)\n currentData = currentData[idx]?.children || []\n }\n } else {\n throw new Error(`Picker not support \"${mode}\" mode.`)\n }\n\n // 更新索引值\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n pickerValue: value || EMPTY_ARRAY\n }))\n }, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices])\n\n // 组件初始化\n React.useEffect(() => {\n setState(prev => ({ ...prev, isWillLoadCalled: true }))\n handleProps()\n }, [])\n\n // 属性变化监听 - 添加 value 依赖以支持联动选择器\n React.useEffect(() => {\n if (state.isWillLoadCalled) {\n handleProps()\n }\n }, [handleProps, state.isWillLoadCalled, JSON.stringify(value)])\n\n // 打开时按 props 重算索引,避免未确认的滑动与 indexRef 残留导致再开抖动\n const showPicker = React.useCallback(() => {\n if (disabled) return\n // 打开弹层时再读一次:此时安全区必然已稳定,避免 mount 首帧拿到全 0 的无效值\n updateSafeArea()\n isInitializationCompletedRef.current = false\n handleProps()\n setState(prev => ({\n ...prev,\n hidden: false,\n a11yTimeLimitColumnId: null\n }))\n }, [disabled, handleProps, updateSafeArea])\n\n // 隐藏 Picker\n const hidePicker = React.useCallback(() => {\n isInitializationCompletedRef.current = false\n // 动画暂时不支持,暂时屏蔽相关样式挂载逻辑\n // setState(prev => ({ ...prev, fadeOut: true }))\n // setTimeout(() => {\n // setState(prev => ({\n // ...prev,\n // hidden: true,\n // fadeOut: false\n // }))\n // }, 350)\n setState(prev => ({ ...prev, hidden: true }))\n }, [])\n\n // 更新索引\n const updateIndex = React.useCallback((index: number, columnId: string, needRevise: boolean = false, isUserScrollRef: boolean = false) => {\n const columnIndex = Number(columnId)\n let finalIndices = [...state.selectedIndices]\n finalIndices[columnIndex] = index\n let hasLimited = false\n\n // region 模式的级联更新逻辑\n if (mode === 'region' && regionData) {\n if (isUserScrollRef && !isInitializationCompletedRef.current) {\n isInitializationCompletedRef.current = true\n }\n if (!isInitializationCompletedRef.current) {\n return\n }\n // 重置后续列\n for (let i = columnIndex + 1; i < columnsCount; i++) {\n finalIndices[i] = 0\n }\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n return // 直接返回\n }\n\n // time picker\n if (needRevise && mode === 'time') {\n let startTime = start\n let endTime = end\n\n if (!verifyTime(startTime)) startTime = '00:00'\n if (!verifyTime(endTime)) endTime = '23:59'\n if (!compareTime(startTime, endTime)) return false\n\n const timeRanges = [hoursRange.slice(), minutesRange.slice()]\n // 然后基于更新后的索引数组计算时间\n const timeStr = finalIndices.map((idx, i) => {\n const rangeIdx = Math.max(0, Math.min(idx, timeRanges[i].length - 1))\n return timeRanges[i][rangeIdx] || '00'\n }).join(':')\n\n // 检查是否需要限位\n if (!compareTime(startTime, timeStr)) {\n // 修正到 start\n const startParts = startTime.split(':').map(part => parseInt(part))\n const newIndices = startParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n } else if (!compareTime(timeStr, endTime)) {\n // 修正到 end\n const endParts = endTime.split(':').map(part => parseInt(part))\n const newIndices = endParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n }\n\n if (hasLimited) {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n a11yTimeLimitColumnId: columnId,\n a11yTimeLimitNonce: prev.a11yTimeLimitNonce + 1\n }))\n } else {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n\n return hasLimited\n }\n\n // 常规更新\n finalIndices[columnIndex] = index\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n\n return false // 没有限位\n }, [start, end, mode, regionData, state.selectedIndices, columnsCount])\n\n // 更新日期\n const updateDay = React.useCallback((value: number, fields: number) => {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n\n // 更新当前字段的值\n _updateValue[fields] = value\n\n // 获取当前年月日\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const currentDay = _updateValue[2]\n\n // 保存原始值用于后面比较\n const originalValues = [..._updateValue]\n\n // 准备最终的索引数组 - 复制当前索引状态作为起点\n const finalIndices = [...state.selectedIndices]\n\n // 获取基础范围数据\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n let dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 根据修改的字段进行不同处理\n if (fields === 0) {\n // 年份索引直接更新\n finalIndices[0] = yearRange.indexOf(currentYear)\n\n // 月份限位处理\n if (monthRange.length > 0) {\n if (currentMonth > monthRange[monthRange.length - 1]) {\n _updateValue[1] = monthRange[monthRange.length - 1]\n }\n if (currentMonth < monthRange[0]) {\n _updateValue[1] = monthRange[0]\n }\n\n // 更新月份索引\n finalIndices[1] = monthRange.indexOf(_updateValue[1])\n\n // 重新计算日期范围\n dayRange = getDayRange(_start, _end, currentYear, _updateValue[1])\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n }\n } else if (fields === 1) { // 月份变化\n // 月份索引直接更新\n finalIndices[1] = monthRange.indexOf(currentMonth)\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n } else if (fields === 2) { // 日期变化\n // 日期索引直接更新\n finalIndices[2] = dayRange.indexOf(currentDay)\n }\n\n // 只在有实际变化时更新状态\n if (\n JSON.stringify(originalValues) !== JSON.stringify(_updateValue) ||\n JSON.stringify(finalIndices) !== JSON.stringify(state.selectedIndices)\n ) {\n // 一次性更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n }, [state.selectedIndices])\n\n // 处理确认\n const handleChange = React.useCallback(() => {\n const newIndices = [...state.selectedIndices]\n indexRef.current = newIndices\n\n let newValue: PickerValue = newIndices.length && mode !== 'selector'\n ? newIndices\n : newIndices[0]\n\n if (mode === 'time') {\n const range = [hoursRange.slice(), minutesRange.slice()]\n\n // 安全的时间处理,添加边界检查\n const timeArr = newIndices.map<string>((idx, i) => {\n const index = Math.max(0, Math.min(idx, range[i].length - 1))\n return range[i][index] || (i === 0 ? '00' : '00')\n })\n\n // 确保时间值有效\n const validTimeArr = timeArr.map(time => {\n const num = parseInt(time)\n return isNaN(num) ? '00' : time\n })\n\n indexRef.current = validTimeArr.map(item => parseInt(item))\n newValue = validTimeArr.join(':')\n }\n\n if (mode === 'date') {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 添加边界检查,确保索引有效\n const yearIndex = Math.min(Math.max(Math.floor(newIndices[0]), 0), yearRange.length - 1)\n const monthIndex = Math.min(Math.max(Math.floor(newIndices[1]), 0), monthRange.length - 1)\n const dayIndex = Math.min(Math.max(Math.floor(newIndices[2]), 0), dayRange.length - 1)\n\n const year = yearRange[yearIndex]\n const month = monthRange[monthIndex]\n const day = dayRange[dayIndex]\n\n // 确保所有值都存在\n if (year === undefined || month === undefined || day === undefined) {\n console.warn('Date picker: invalid date values', { year, month, day })\n return\n }\n\n if (fields === 'year') {\n newValue = year.toString()\n } else if (fields === 'month') {\n // YYYY-MM 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}`\n } else {\n // YYYY-MM-DD 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n onChange?.({ detail: { value: newValue } })\n return\n }\n\n if (mode === 'region') {\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n return\n }\n\n // 直接使用索引数组\n const selectedCodes: string[] = []\n let postcode = ''\n\n // 安全获取选中值\n let currentData = regionData\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData || currentData.length === 0) break\n\n const index = newIndices[i] || 0\n if (index < 0 || index >= currentData.length) break\n\n const item = currentData[index]\n selectedCodes.push(item.code)\n\n // 如果是最后一项,获取邮政编码\n if (i === columnsCount - 1 && item.postcode) {\n postcode = item.postcode\n }\n\n // 准备下一级数据\n currentData = item.children || []\n }\n\n // 检查索引数组长度是否符合要求\n if (newIndices.length < columnsCount) {\n console.warn('Region picker: incomplete selection')\n return\n }\n\n // 触发 onChange 事件,包含 code 信息\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newIndices\n }))\n\n onChange?.({\n detail: {\n value: newIndices,\n code: selectedCodes.join(','),\n postcode\n }\n })\n return\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n // 触发 onChange 事件,格式与原始组件一致\n onChange?.({ detail: { value: newValue } })\n }, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount])\n\n // 处理列变化\n const handleColumnChange = React.useCallback((e: { columnId: string, index: number }) => {\n const { columnId, index } = e\n onColumnChange?.({\n detail: {\n column: Number(columnId),\n value: index\n }\n })\n }, [onColumnChange])\n\n const consumeTimeA11yLimitFocus = React.useCallback(() => {\n setState(prev => ({ ...prev, a11yTimeLimitColumnId: null }))\n }, [])\n\n // 取消时按 props 回同步索引,避免与 value 脱节\n const handleCancel = React.useCallback(() => {\n handleProps()\n hidePicker()\n onCancel?.()\n }, [handleProps, hidePicker, onCancel])\n\n // 渲染选择器组\n const renderPickerGroup = React.useMemo(() => {\n switch (mode) {\n case 'multiSelector': {\n return range.map((rangeItem, index) => (\n <PickerGroup\n key={index}\n range={rangeItem}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n onColumnChange={handleColumnChange}\n columnId={String(index)}\n selectedIndex={state.selectedIndices[index]} // 传递对应列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n ))\n }\n case 'time': {\n const timeA11yLimitFocus =\n state.a11yTimeLimitColumnId != null\n ? { nonce: state.a11yTimeLimitNonce, columnId: state.a11yTimeLimitColumnId }\n : null\n return [\n <PickerGroup\n key=\"hour\"\n mode=\"time\"\n range={hoursRange}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递小时列的selectedIndex\n colors={colors}\n timeA11yLimitFocus={timeA11yLimitFocus}\n onTimeA11yLimitFocusConsumed={consumeTimeA11yLimitFocus}\n timeA11yLimitEventNonce={state.a11yTimeLimitNonce}\n enableClickItemScroll={enableClickItemScroll}\n />,\n <PickerGroup\n key=\"minute\"\n mode=\"time\"\n range={minutesRange}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递分钟列的selectedIndex\n colors={colors}\n timeA11yLimitFocus={timeA11yLimitFocus}\n onTimeA11yLimitFocusConsumed={consumeTimeA11yLimitFocus}\n timeA11yLimitEventNonce={state.a11yTimeLimitNonce}\n enableClickItemScroll={enableClickItemScroll}\n />\n ]\n }\n case 'date': {\n if (!pickerDateRef.current) return null\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n\n const langText = getLanguageText(lang)\n const isEnglish = lang === 'en-US' || lang === 'en-GB'\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n .map(item => isEnglish ? `${langText.year}${item}` : `${item}${langText.year}`)\n const monthRange = getMonthRange(_start, _end, currentYear)\n .map(item => isEnglish ? `${langText.month}${item < 10 ? `0${item}` : item}` : `${item < 10 ? `0${item}` : item}${langText.month}`)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n .map(item => isEnglish ? `${langText.day}${item < 10 ? `0${item}` : item}` : `${item < 10 ? `0${item}` : item}${langText.day}`)\n\n const renderView = [\n <PickerGroup\n key={`year`}\n mode=\"date\"\n range={yearRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递年份列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n ]\n if (fields === 'month' || fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`month`}\n mode=\"date\"\n range={monthRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递月份列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n if (fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`day`}\n mode=\"date\"\n range={dayRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"2\"\n selectedIndex={state.selectedIndices[2]} // 传递日期列的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n return renderView\n }\n case 'region': {\n // region 模式处理 - 自动识别数据层级\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return null\n }\n\n // 简化验证逻辑\n if (!validateRegionData(regionData, 'Picker').valid) {\n return null\n }\n\n const columns: JSX.Element[] = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i > 0 && currentData?.length) {\n // 获取上一级选中项的children作为当前列数据\n const prevIndex = state.selectedIndices[i - 1] || 0\n if (prevIndex >= 0 && prevIndex < currentData.length) {\n currentData = currentData[prevIndex].children || []\n } else {\n currentData = []\n }\n }\n\n columns.push(\n <PickerGroup\n key={`region-${i}`}\n mode=\"region\"\n range={currentData}\n rangeKey=\"value\"\n updateIndex={updateIndex}\n columnId={String(i)}\n selectedIndex={state.selectedIndices[i]}\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n\n return columns\n }\n default:\n return (\n <PickerGroup\n range={range}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递selector模式的selectedIndex\n colors={colors}\n enableClickItemScroll={enableClickItemScroll}\n />\n )\n }\n }, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, state.a11yTimeLimitColumnId, state.a11yTimeLimitNonce, consumeTimeA11yLimitFocus, columnsCount, lang, colors, enableClickItemScroll])\n\n // 动画类名控制逻辑\n const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {\n 'taro-picker__animate-fade-out': state.fadeOut\n })\n const clsSlider = classNames('taro-picker', 'taro-picker__animate-slide-up', `taro-picker-theme-${theme}`, {\n 'taro-picker__animate-slide-down': state.fadeOut\n })\n const backgroundStyle = colors.backgroundColor ? { backgroundColor: colors.backgroundColor } : null\n const titleStyle = colors.titleColor ? { color: colors.titleColor } : null\n const maskOverlayStyle = colors.maskColor ? { backgroundColor: colors.maskColor } : undefined\n\n // 暴露方法给外部\n React.useImperativeHandle(ref, () => ({\n showPicker,\n hidePicker\n }))\n\n // 获取语言文本\n const langText = getLanguageText(lang)\n\n return (\n <View\n ref={ref as any} // 直接绑定 ref\n {...(formType ? { 'data-form-type': formType } : {})}\n {...omit(restProps, ['mode', 'disabled', 'range', 'rangeKey', 'value', 'start', 'end', 'fields', 'name', 'textProps', 'onChange', 'onColumnChange', 'onCancel', 'children', 'formType'])}\n >\n <View onClick={showPicker}>\n {children}\n </View>\n {!state.hidden && (\n <View className={classNames('taro-picker__overlay', `taro-picker__overlay--theme-${theme}`)}>\n <View className={clsMask} style={maskOverlayStyle} onClick={handleCancel} />\n <View\n className={clsSlider}\n style={{\n ...backgroundStyle,\n }}\n >\n <View className=\"taro-picker__hd\" {...(backgroundStyle ? { style: backgroundStyle } : {})}>\n <View\n className=\"taro-picker__action\"\n onClick={handleCancel}\n style={{ color: colors.cancelButtonColor }}\n ariaAction={[{ name: 'activate', label: '激活' }]}\n onAriaAction={handleCancel}\n >\n {textProps.cancelText ?? langText.cancel}\n </View>\n {headerText && (\n <View\n className=\"taro-picker__title\"\n {...(titleStyle ? { style: titleStyle } : {})}\n >\n {headerText}\n </View>\n )}\n <View\n className=\"taro-picker__action\"\n onClick={handleChange}\n style={{ color: colors.confirmButtonColor }}\n ariaAction={[{ name: 'activate', label: '激活' }]}\n onAriaAction={handleChange}\n >\n {textProps.okText ?? langText.confirm}\n </View>\n </View>\n <View className=\"taro-picker__bd\" {...(backgroundStyle ? { style: backgroundStyle } : {})}>{renderPickerGroup}</View>\n {safeAreaBottom > 0 && (\n <View className=\"taro-picker__bd\" style={{ ...backgroundStyle, height: `${safeAreaBottom}px`, flex: 'none', overflow: 'visible' }} />\n )}\n </View>\n </View>\n )}\n </View>\n )\n})\n\nPicker.displayName = 'Picker'\nexport default Picker\n"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","getLanguageText","lang","isEnglish","confirm","cancel","year","month","day","validateRegionData","data","componentName","arguments","length","undefined","valid","error","Array","isArray","validateItem","item","path","value","code","postcode","children","i","childResult","result","getRegionColumnsCount","level","Picker","React","forwardRef","props","ref","mode","disabled","range","rangeKey","start","end","fields","headerText","regionData","textProps","colors","onChange","onColumnChange","onCancel","formType","theme","enableClickItemScroll","restProps","__rest","indexRef","useRef","pickerDateRef","isInitializationCompletedRef","state","setState","useState","pickerValue","selectedIndices","slice","hidden","fadeOut","isWillLoadCalled","a11yTimeLimitColumnId","a11yTimeLimitNonce","safeAreaBottom","setSafeAreaBottom","columnsCount","setColumnsCount","useEffect","updateSafeArea","useCallback","systemInfo","Taro","getSystemInfoSync","safeArea","windowHeight","bottom","lengthScaleRatio","Math","max","e","useResize","getIndices","current","handleProps","val","verifyValue","floor","forEach","rangeItem","index","valItem","push","verifyTime","console","warn","time","split","map","n","hourIndex","hoursRange","findIndex","parseInt","minuteIndex","minutesRange","safeHourIndex","safeMinuteIndex","min","_value","verifyDate","Date","setHours","_start","_end","Error","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","yearRange","getYearRange","monthRange","getMonthRange","dayRange","getDayRange","indexOf","_updateValue","from","prev","validation","currentData","idx","rawIdx","parsed","_a","newIndices","Object","assign","JSON","stringify","showPicker","hidePicker","updateIndex","columnId","needRevise","isUserScrollRef","columnIndex","Number","finalIndices","hasLimited","startTime","endTime","compareTime","timeRanges","timeStr","rangeIdx","join","startParts","part","endParts","updateDay","originalValues","handleChange","newValue","timeArr","validTimeArr","num","isNaN","yearIndex","monthIndex","dayIndex","toString","detail","selectedCodes","handleColumnChange","column","consumeTimeA11yLimitFocus","handleCancel","renderPickerGroup","useMemo","_jsx","PickerGroup","String","selectedIndex","timeA11yLimitFocus","nonce","onTimeA11yLimitFocusConsumed","timeA11yLimitEventNonce","langText","renderView","columns","prevIndex","clsMask","classNames","clsSlider","backgroundStyle","backgroundColor","titleStyle","titleColor","color","maskOverlayStyle","maskColor","useImperativeHandle","_jsxs","View","omit","onClick","className","style","cancelButtonColor","ariaAction","name","label","onAriaAction","cancelText","confirmButtonColor","_b","okText","height","flex","overflow","displayName"],"mappings":"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"}