@tarojs/components-react 4.1.12-beta.63 → 4.1.12-beta.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/picker/picker-group-legacy.js +12 -4
- package/dist/components/picker/picker-group-legacy.js.map +1 -1
- package/dist/components/picker/picker-group-slider.js +2 -7
- package/dist/components/picker/picker-group-slider.js.map +1 -1
- package/dist/components/picker-view/index.js +265 -0
- package/dist/components/picker-view/index.js.map +1 -0
- package/dist/components/picker-view/style/index.scss.js +4 -0
- package/dist/components/picker-view/style/index.scss.js.map +1 -0
- package/dist/components/picker-view-column/index.js +517 -0
- package/dist/components/picker-view-column/index.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/original/components/picker/picker-group-legacy.js +12 -4
- package/dist/original/components/picker/picker-group-legacy.js.map +1 -1
- package/dist/original/components/picker/picker-group-slider.js +2 -7
- package/dist/original/components/picker/picker-group-slider.js.map +1 -1
- package/dist/original/components/picker-view/index.js +265 -0
- package/dist/original/components/picker-view/index.js.map +1 -0
- package/dist/original/components/picker-view/style/index.scss +132 -0
- package/dist/original/components/picker-view-column/index.js +517 -0
- package/dist/original/components/picker-view-column/index.js.map +1 -0
- package/dist/original/index.js +3 -1
- package/dist/original/index.js.map +1 -1
- package/dist/original/utils/picker-scale.js +25 -0
- package/dist/original/utils/picker-scale.js.map +1 -0
- package/dist/solid/components/picker/picker-group-legacy.js +16 -8
- package/dist/solid/components/picker/picker-group-legacy.js.map +1 -1
- package/dist/solid/components/picker/picker-group-slider.js +6 -17
- package/dist/solid/components/picker/picker-group-slider.js.map +1 -1
- package/dist/utils/picker-scale.js +25 -0
- package/dist/utils/picker-scale.js.map +1 -0
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-group-slider.js","sources":["../../../../src/components/picker/picker-group-slider.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\nimport type { PickerGroupProps } from './picker-group'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\n\n/** 部分端同 id 连续 scrollIntoView 不生效:先清空再在下一宏任务设回目标 id */\nfunction usePickerItemScrollIntoView(): [string, (itemId: string) => void] {\n const [scrollIntoView, setScrollIntoView] = React.useState('')\n const pulseRef = React.useRef(0)\n\n const scrollToItemId = React.useCallback((itemId: string) => {\n pulseRef.current += 1\n const token = pulseRef.current\n setScrollIntoView('')\n setTimeout(() => {\n if (pulseRef.current !== token) return\n setScrollIntoView(itemId)\n }, 0)\n }, [])\n\n return [scrollIntoView, scrollToItemId]\n}\n\n/** 系统读屏是否开启:开启时 mask 需可命中(关掉 pointer-events:none) */\nfunction useA11yOpen(): boolean {\n const [a11yOpen, setA11yOpen] = React.useState(false)\n React.useEffect(() => {\n Taro.checkIsOpenAccessibility()\n .then((res) => {\n setA11yOpen(!!(res as Taro.checkIsOpenAccessibility.SuccessCallbackResult).open)\n })\n .catch(() => {})\n }, [])\n return a11yOpen\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 大屏方案版本要求\nconst MIN_DESIGN_APP_VERSION = 16\n// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)\nconst resolveUseMeasuredScale = (res: Taro.getSystemInfo.Result): boolean => {\n // H5/weapp 不参与大屏系数\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n return false\n }\n\n const designAppVersionRaw = (res as any).designAppVersion\n const designAppVersionMajor = designAppVersionRaw != null ? parseInt(String(designAppVersionRaw).trim(), 10) : Number.NaN\n if (!Number.isFinite(designAppVersionMajor) || designAppVersionMajor < MIN_DESIGN_APP_VERSION) {\n return false\n }\n\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony' || platform === 'android' || platform === 'ios') {\n return true\n }\n\n return false\n}\n\n// 辅助函数:计算 lengthScaleRatio\nconst calculateLengthScaleRatio = (res: Taro.getSystemInfo.Result): number => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n return lengthScaleRatio\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number,\n lengthScaleRatio: number = 1,\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n const scaledValue = baseValue\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n } else {\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n }\n}\n\n// 根据 scrollTop 计算选中索引\n// 系统侧缩放模式:scrollHeight 已被系统缩放,直接相除即可\n// 自行缩放模式:需要除以 ratio 换算(harmony 特殊处理,ratio 已内嵌在 itemHeight 中)\nconst getSelectedIndex = (scrollTop: number, itemHeight: number, lengthScaleRatio: number = 1, useMeasuredScale: boolean = false): number => {\n if (!useMeasuredScale || process.env.TARO_PLATFORM === 'harmony') {\n return Math.round(scrollTop / itemHeight)\n }\n return Math.round(scrollTop / lengthScaleRatio / itemHeight)\n}\n\n// 计算单项高度(返回设计稿值)\nconst calculateItemHeight = (\n scrollView: TaroScrollView | null,\n lengthScaleRatio: number,\n useMeasuredScale: boolean = false,\n): number => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n return useMeasuredScale ? PICKER_LINE_HEIGHT * lengthScaleRatio : PICKER_LINE_HEIGHT\n }\n if (scrollView && scrollView?.scrollHeight) {\n return useMeasuredScale\n ? scrollView.scrollHeight / lengthScaleRatio / scrollView.childNodes.length\n : scrollView.scrollHeight / scrollView.childNodes.length\n }\n console.warn('Height measurement anomaly')\n return PICKER_LINE_HEIGHT\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const isTouchingRef = React.useRef(false)\n // 系统读屏开启时关闭 mask 的 pointer-events:none,便于无障碍命中;未开启则保持穿透以便手势滚动\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 容器上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId)\n onColumnChange?.({ columnId, index: clamped })\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(用 rangeKey 取显示值),仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\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 ariaHidden\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 timeA11yLimitEventNonce,\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 限位回弹强制对齐:限位后即使 selectedIndex 值不变(回弹到同一边界),nonce 变化也强制重新对齐 scrollTop\n React.useEffect(() => {\n if (!timeA11yLimitEventNonce) return\n if (!scrollViewRef.current || range.length === 0 || isTouchingRef.current) return\n scrollToIndex(selectedIndex, true)\n setCurrentIndex(selectedIndex)\n // 仅被限位触发的列在回弹稳定后补播报一次修正值(nonce 两列共享,需按 columnId 过滤)\n if (timeA11yLimitFocus && timeA11yLimitFocus.columnId === columnId) {\n const item = range[selectedIndex]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n const fn = (Taro as any).accessibilityAnnounce\n if (text && typeof fn === 'function') {\n fn({ announce: text, delay: 300 })\n }\n }\n }, [timeA11yLimitEventNonce]) // 仅依赖 nonce,其余用 ref\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中(保留 time 限位业务:超 start/end 由父级修正后经 selectedIndex 回弹)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n isTouchingRef.current = false\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 限位时不归中:父级会通过 selectedIndex / nonce 下发修正值触发重新对齐\n if (!isLimited) {\n scrollToIndex(newIndex, true)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项(保留 time 限位)\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n // 保留 time 限位:超 start/end 时父级修正并经 selectedIndex / nonce 回弹对齐\n updateIndex(clamped, columnId, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 提交日期值:解析文本中的数字(移除年、月、日等后缀)后回调 updateDay\n const commitDay = (index: number) => {\n if (!updateDay) return\n const valueText = range[index] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n commitDay(newIndex)\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const text = range[index] != null ? String(range[index]) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n commitDay(clamped)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentValue = range[currentIndex]\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n // 程序化滚动标记:开屏/受控同步预设值时置 true,避免被 region 级联门误判为用户滚动而重置后续列\n const syncScrollFromPropsRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项,并短时标记程序化滚动(避免级联门误判)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 滚动静止后归中(debounce)\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n // 程序化滚动(受控同步预设值)不触发级联初始化,仅用户滚动才翻转初始化标志并重置后续列\n const isUserScroll = !syncScrollFromPropsRef.current\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId, false, isUserScroll)\n syncScrollFromPropsRef.current = false\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 用户触摸滚动立即清程序化标志,使其 scrollEnd 被正确判为用户滚动(触发 region 级联)\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId, false, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(region 用 rangeKey 取显示值),仅 string 或 number 挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n {...({\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants',\n } as any)}\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 新版无障碍(slider 遮挡方案),根据 mode 自动分发\nexport function PickerGroupSlider(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["usePickerItemScrollIntoView","scrollIntoView","setScrollIntoView","React","useState","pulseRef","useRef","scrollToItemId","useCallback","itemId","current","token","setTimeout","useA11yOpen","a11yOpen","setA11yOpen","useEffect","Taro","checkIsOpenAccessibility","then","res","open","catch","PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","MIN_DESIGN_APP_VERSION","resolveUseMeasuredScale","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","parseInt","String","trim","Number","NaN","isFinite","platform","toLowerCase","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","length","undefined","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","Math","round","calculateItemHeight","scrollView","scrollHeight","childNodes","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","enableClickItemScroll","indicatorStyle","targetScrollTop","scrollViewRef","currentIndex","setCurrentIndex","isTouchingRef","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","getSystemInfo","success","fail","scrollToIndex","index","withRandomOffset","random","isCenterTimerId","handleScrollEnd","clearTimeout","newIndex","handleScroll","ih","clampIndex","max","min","announceIndex","item","content","text","fn","accessibilityAnnounce","announce","delay","commitIndexByA11y","nextIndex","clamped","handleAriaAction","e","actionName","_a","detail","currentItem","currentValue","ariaLabel","pickerItem","map","_$createComponent","View","_$mergeProps","id","key","ariaHidden","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","position","pointerEvents","ariaRole","ariaAction","name","label","onAriaAction","ScrollView","ref","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","timeA11yLimitFocus","timeA11yLimitEventNonce","isLimited","Boolean","accessibilityElementsHidden","importantForAccessibility","PickerGroupDate","updateDay","commitDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","syncScrollFromPropsRef","tid","isUserScroll","PickerGroupSlider","mode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"picker-group-slider.js","sources":["../../../../src/components/picker/picker-group-slider.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\nimport type { PickerGroupProps } from './picker-group'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\n\n/** 部分端同 id 连续 scrollIntoView 不生效:先清空再在下一宏任务设回目标 id */\nfunction usePickerItemScrollIntoView(): [string, (itemId: string) => void] {\n const [scrollIntoView, setScrollIntoView] = React.useState('')\n const pulseRef = React.useRef(0)\n\n const scrollToItemId = React.useCallback((itemId: string) => {\n pulseRef.current += 1\n const token = pulseRef.current\n setScrollIntoView('')\n setTimeout(() => {\n if (pulseRef.current !== token) return\n setScrollIntoView(itemId)\n }, 0)\n }, [])\n\n return [scrollIntoView, scrollToItemId]\n}\n\n/** 系统读屏是否开启:开启时 mask 需可命中(关掉 pointer-events:none) */\nfunction useA11yOpen(): boolean {\n const [a11yOpen, setA11yOpen] = React.useState(false)\n React.useEffect(() => {\n Taro.checkIsOpenAccessibility({})\n .then((res) => {\n setA11yOpen(!!(res as Taro.checkIsOpenAccessibility.SuccessCallbackResult).open)\n })\n .catch(() => {})\n }, [])\n return a11yOpen\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 大屏方案版本要求\nconst MIN_DESIGN_APP_VERSION = 16\n// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)\nconst resolveUseMeasuredScale = (res: Taro.getSystemInfo.Result): boolean => {\n // H5/weapp 不参与大屏系数\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n return false\n }\n\n const designAppVersionRaw = (res as any).designAppVersion\n const designAppVersionMajor = designAppVersionRaw != null ? parseInt(String(designAppVersionRaw).trim(), 10) : Number.NaN\n if (!Number.isFinite(designAppVersionMajor) || designAppVersionMajor < MIN_DESIGN_APP_VERSION) {\n return false\n }\n\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony' || platform === 'android' || platform === 'ios') {\n return true\n }\n\n return false\n}\n\n// 辅助函数:计算 lengthScaleRatio\nconst calculateLengthScaleRatio = (res: Taro.getSystemInfo.Result): number => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n return lengthScaleRatio\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number,\n lengthScaleRatio: number = 1,\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n const scaledValue = baseValue\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n } else {\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n }\n}\n\n// 根据 scrollTop 计算选中索引\n// 系统侧缩放模式:scrollHeight 已被系统缩放,直接相除即可\n// 自行缩放模式:需要除以 ratio 换算(harmony 特殊处理,ratio 已内嵌在 itemHeight 中)\nconst getSelectedIndex = (scrollTop: number, itemHeight: number, lengthScaleRatio: number = 1, useMeasuredScale: boolean = false): number => {\n if (!useMeasuredScale || process.env.TARO_PLATFORM === 'harmony') {\n return Math.round(scrollTop / itemHeight)\n }\n return Math.round(scrollTop / lengthScaleRatio / itemHeight)\n}\n\n// 计算单项高度(返回设计稿值)\nconst calculateItemHeight = (\n scrollView: TaroScrollView | null,\n lengthScaleRatio: number,\n useMeasuredScale: boolean = false,\n): number => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n return useMeasuredScale ? PICKER_LINE_HEIGHT * lengthScaleRatio : PICKER_LINE_HEIGHT\n }\n if (scrollView && scrollView?.scrollHeight) {\n return useMeasuredScale\n ? scrollView.scrollHeight / lengthScaleRatio / scrollView.childNodes.length\n : scrollView.scrollHeight / scrollView.childNodes.length\n }\n console.warn('Height measurement anomaly')\n return PICKER_LINE_HEIGHT\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const isTouchingRef = React.useRef(false)\n // 系统读屏开启时关闭 mask 的 pointer-events:none,便于无障碍命中;未开启则保持穿透以便手势滚动\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 容器上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId)\n onColumnChange?.({ columnId, index: clamped })\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(用 rangeKey 取显示值),仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n 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 timeA11yLimitEventNonce,\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 限位回弹强制对齐:限位后即使 selectedIndex 值不变(回弹到同一边界),nonce 变化也强制重新对齐 scrollTop\n React.useEffect(() => {\n if (!timeA11yLimitEventNonce) return\n if (!scrollViewRef.current || range.length === 0 || isTouchingRef.current) return\n scrollToIndex(selectedIndex, true)\n setCurrentIndex(selectedIndex)\n // 仅被限位触发的列在回弹稳定后补播报一次修正值(nonce 两列共享,需按 columnId 过滤)\n if (timeA11yLimitFocus && timeA11yLimitFocus.columnId === columnId) {\n const item = range[selectedIndex]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n const fn = (Taro as any).accessibilityAnnounce\n if (text && typeof fn === 'function') {\n fn({ announce: text, delay: 300 })\n }\n }\n }, [timeA11yLimitEventNonce]) // 仅依赖 nonce,其余用 ref\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中(保留 time 限位业务:超 start/end 由父级修正后经 selectedIndex 回弹)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n isTouchingRef.current = false\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 限位时不归中:父级会通过 selectedIndex / nonce 下发修正值触发重新对齐\n if (!isLimited) {\n scrollToIndex(newIndex, true)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项(保留 time 限位)\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n // 保留 time 限位:超 start/end 时父级修正并经 selectedIndex / nonce 回弹对齐\n updateIndex(clamped, columnId, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n 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 [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 提交日期值:解析文本中的数字(移除年、月、日等后缀)后回调 updateDay\n const commitDay = (index: number) => {\n if (!updateDay) return\n const valueText = range[index] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n commitDay(newIndex)\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const text = range[index] != null ? String(range[index]) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n commitDay(clamped)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentValue = range[currentIndex]\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n 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<TaroScrollView>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n // 程序化滚动标记:开屏/受控同步预设值时置 true,避免被 region 级联门误判为用户滚动而重置后续列\n const syncScrollFromPropsRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项,并短时标记程序化滚动(避免级联门误判)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 滚动静止后归中(debounce)\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n // 程序化滚动(受控同步预设值)不触发级联初始化,仅用户滚动才翻转初始化标志并重置后续列\n const isUserScroll = !syncScrollFromPropsRef.current\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId, false, isUserScroll)\n syncScrollFromPropsRef.current = false\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 用户触摸滚动立即清程序化标志,使其 scrollEnd 被正确判为用户滚动(触发 region 级联)\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId, false, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(region 用 rangeKey 取显示值),仅 string 或 number 挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n 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// 新版无障碍(slider 遮挡方案),根据 mode 自动分发\nexport function PickerGroupSlider(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["usePickerItemScrollIntoView","scrollIntoView","setScrollIntoView","React","useState","pulseRef","useRef","scrollToItemId","useCallback","itemId","current","token","setTimeout","useA11yOpen","a11yOpen","setA11yOpen","useEffect","Taro","checkIsOpenAccessibility","then","res","open","catch","PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","MIN_DESIGN_APP_VERSION","resolveUseMeasuredScale","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","parseInt","String","trim","Number","NaN","isFinite","platform","toLowerCase","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","length","undefined","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","Math","round","calculateItemHeight","scrollView","scrollHeight","childNodes","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","enableClickItemScroll","indicatorStyle","targetScrollTop","scrollViewRef","currentIndex","setCurrentIndex","isTouchingRef","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","getSystemInfo","success","fail","scrollToIndex","index","withRandomOffset","random","isCenterTimerId","handleScrollEnd","clearTimeout","newIndex","handleScroll","ih","clampIndex","max","min","announceIndex","item","content","text","fn","accessibilityAnnounce","announce","delay","commitIndexByA11y","nextIndex","clamped","handleAriaAction","e","actionName","_a","detail","currentItem","currentValue","ariaLabel","pickerItem","map","_$createComponent","View","_$mergeProps","id","key","ariaHidden","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","position","pointerEvents","ariaRole","ariaAction","name","label","onAriaAction","ScrollView","ref","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","timeA11yLimitFocus","timeA11yLimitEventNonce","isLimited","Boolean","PickerGroupDate","updateDay","commitDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","syncScrollFromPropsRef","tid","isUserScroll","PickerGroupSlider","mode"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 供 picker 系列组件专用,未涉及 designAppVersion 17 的修改所以不做判断
|
|
3
|
+
*/
|
|
4
|
+
// 大屏方案版本要求
|
|
5
|
+
const MIN_DESIGN_APP_VERSION = 16;
|
|
6
|
+
// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)
|
|
7
|
+
const resolveUseMeasuredScale = res => {
|
|
8
|
+
// H5/weapp 不参与大屏系数
|
|
9
|
+
if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const designAppVersionRaw = res.designAppVersion;
|
|
13
|
+
const designAppVersionMajor = designAppVersionRaw != null ? parseInt(String(designAppVersionRaw).trim(), 10) : Number.NaN;
|
|
14
|
+
if (!Number.isFinite(designAppVersionMajor) || designAppVersionMajor < MIN_DESIGN_APP_VERSION) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const platform = String(res.platform || '').toLowerCase();
|
|
18
|
+
if (platform === 'harmony' || platform === 'android' || platform === 'ios') {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { resolveUseMeasuredScale };
|
|
25
|
+
//# sourceMappingURL=picker-scale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-scale.js","sources":["../../src/utils/picker-scale.ts"],"sourcesContent":["import Taro from '@tarojs/taro'\n\n/**\n * 供 picker 系列组件专用,未涉及 designAppVersion 17 的修改所以不做判断\n */\n\n// 大屏方案版本要求\nconst MIN_DESIGN_APP_VERSION = 16\n\n// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)\nexport const 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"],"names":["MIN_DESIGN_APP_VERSION","resolveUseMeasuredScale","res","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","parseInt","String","trim","Number","NaN","isFinite","platform","toLowerCase"],"mappings":"AAEA;;AAEG;AAEH;AACA,MAAMA,sBAAsB,GAAG,EAAE;AAEjC;AACaC,MAAAA,uBAAuB,GAAIC,GAA8B,IAAa;AACjF;AACA,EAAA,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,IAAI,IAAIF,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,OAAO,EAAE;AACrE,IAAA,OAAO,KAAK;AACd;AAEA,EAAA,MAAMC,mBAAmB,GAAIJ,GAAW,CAACK,gBAAgB;EACzD,MAAMC,qBAAqB,GAAGF,mBAAmB,IAAI,IAAI,GAAGG,QAAQ,CAACC,MAAM,CAACJ,mBAAmB,CAAC,CAACK,IAAI,EAAE,EAAE,EAAE,CAAC,GAAGC,MAAM,CAACC,GAAG;EACzH,IAAI,CAACD,MAAM,CAACE,QAAQ,CAACN,qBAAqB,CAAC,IAAIA,qBAAqB,GAAGR,sBAAsB,EAAE;AAC7F,IAAA,OAAO,KAAK;AACd;AAEA,EAAA,MAAMe,QAAQ,GAAGL,MAAM,CAAER,GAAW,CAACa,QAAQ,IAAI,EAAE,CAAC,CAACC,WAAW,EAAE;EAClE,IAAID,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,KAAK,EAAE;AAC1E,IAAA,OAAO,IAAI;AACb;AAEA,EAAA,OAAO,KAAK;AACd;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/components-react",
|
|
3
|
-
"version": "4.1.12-beta.
|
|
3
|
+
"version": "4.1.12-beta.65",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main:h5": "dist/index.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"swiper": "11.1.15",
|
|
31
31
|
"tlbs-map-react": "^1.1.1",
|
|
32
32
|
"tslib": "^2.6.2",
|
|
33
|
-
"@tarojs/components": "4.1.12-beta.
|
|
34
|
-
"@tarojs/shared": "4.1.12-beta.
|
|
35
|
-
"@tarojs/taro": "4.1.12-beta.
|
|
33
|
+
"@tarojs/components": "4.1.12-beta.65",
|
|
34
|
+
"@tarojs/shared": "4.1.12-beta.65",
|
|
35
|
+
"@tarojs/taro": "4.1.12-beta.65"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@babel/plugin-transform-runtime": "^7.24.1",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"solid-js": "^1.8.16",
|
|
50
50
|
"ts-jest": "^29.1.1",
|
|
51
51
|
"tmap-gl-types": "^0.1.8",
|
|
52
|
-
"@tarojs/
|
|
53
|
-
"@tarojs/
|
|
52
|
+
"@tarojs/runtime": "4.1.12-beta.65",
|
|
53
|
+
"@tarojs/helper": "4.1.12-beta.65"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"react": "*",
|