@tarojs/components-react 4.1.12-beta.40 → 4.1.12-beta.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"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\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}\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\nconst MIN_APP_VERSION = '15.7.0'\n\n// semver 版本比较\nconst isAppVersionAtLeast = (version: string | undefined, min: string): boolean => {\n if (!version || typeof version !== 'string') return false\n const parts = (v: string) => {\n const m = String(v).trim().match(/^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?/)\n if (!m) return []\n return [parseInt(m[1], 10) || 0, parseInt(m[2] || '0', 10) || 0, parseInt(m[3] || '0', 10) || 0]\n }\n const a = parts(version)\n const b = parts(min)\n if (a.length === 0) return false\n if (b.length === 0) return true\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const da = a[i] ?? 0\n const db = b[i] ?? 0\n if (da > db) return true\n if (da < db) return false\n }\n return true\n}\n\n// 读取 JDMobileConfig,异常时返回 undefined\nconst tryGetMobileConfigSync = (opt: { space: string, configName: string, key: string }): unknown => {\n try {\n const fn = (Taro as any).JDMobileConfig?.getMobileConfigSync\n if (typeof fn !== 'function') return undefined\n return fn(opt)\n } catch {\n return undefined\n }\n}\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 // 条件1: designAppVersion < 16,不满足则使用系统侧缩放\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 // 条件2: appVersion < 15.7.0,不满足则使用系统侧缩放\n if (!isAppVersionAtLeast(res.version, MIN_APP_VERSION)) {\n return false\n }\n\n // 条件3: 平台判断\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony') {\n return true\n }\n if (platform === 'android') {\n const raw = tryGetMobileConfigSync({ space: 'taro', configName: 'config', key: 'disableFixBoundingScaleRatio' })\n return raw !== 1 && raw !== '1'\n }\n if (platform === 'ios') {\n const raw = tryGetMobileConfigSync({ space: 'Taro', configName: 'excutor', key: 'disableBoundingScaleRatio' })\n return raw !== 1 && raw !== '1'\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 } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const [isTouching, setIsTouching] = React.useState(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 // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\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 // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\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 setIsTouching(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 isCenterTimerId.current = null\n }, 100)\n }\n // 滚动处理 - 在滚动时计算索引然后更新选中项样式\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 newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\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 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 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 onScroll={handleScroll}\n onTouchStart={() => setIsTouching(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 } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(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 // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\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 // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\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 setIsTouching(false)\n // 调用updateIndex执行限位逻辑,获取是否触发了限位\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\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 isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动处理\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 newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\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 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 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 onScroll={handleScroll}\n onTouchStart={() => setIsTouching(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 } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(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 // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\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 // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\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 setIsTouching(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 isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动处理\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 newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\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 className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\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 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 onScroll={handleScroll}\n onTouchStart={() => setIsTouching(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 } = 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 [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const isUserBeginScrollRef = 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 // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 滚动结束处理\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 // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\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 setIsTouching(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, isUserBeginScrollRef.current)\n }, 100)\n }\n\n // 滚动处理 - 在滚动时计算索引\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 newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\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 className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\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 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 onScroll={handleScroll}\n onTouchStart={() => {\n setIsTouching(true)\n isUserBeginScrollRef.current = true\n }}\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":["PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","MIN_DESIGN_APP_VERSION","MIN_APP_VERSION","isAppVersionAtLeast","version","min","parts","v","m","String","trim","match","parseInt","a","b","length","i","Math","max","da","_a","db","_b","tryGetMobileConfigSync","opt","fn","Taro","JDMobileConfig","getMobileConfigSync","undefined","resolveUseMeasuredScale","res","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","Number","NaN","isFinite","platform","toLowerCase","raw","space","configName","key","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","round","calculateItemHeight","scrollView","scrollHeight","childNodes","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","indicatorStyle","targetScrollTop","React","useState","scrollViewRef","useRef","itemRefs","currentIndex","setCurrentIndex","isTouching","setIsTouching","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","useEffect","getSystemInfo","success","current","fail","isCenterTimerId","handleScrollEnd","clearTimeout","setTimeout","newIndex","random","index","handleScroll","pickerItem","map","item","content","_$createComponent","View","id","ref","el","className","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","_$mergeProps","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","isLimited","Boolean","PickerGroupDate","updateDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","isUserBeginScrollRef","PickerGroup","mode"],"mappings":"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"}
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\nconst MIN_APP_VERSION = '15.7.0'\n\n// semver 版本比较\nconst isAppVersionAtLeast = (version: string | undefined, min: string): boolean => {\n if (!version || typeof version !== 'string') return false\n const parts = (v: string) => {\n const m = String(v).trim().match(/^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?/)\n if (!m) return []\n return [parseInt(m[1], 10) || 0, parseInt(m[2] || '0', 10) || 0, parseInt(m[3] || '0', 10) || 0]\n }\n const a = parts(version)\n const b = parts(min)\n if (a.length === 0) return false\n if (b.length === 0) return true\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const da = a[i] ?? 0\n const db = b[i] ?? 0\n if (da > db) return true\n if (da < db) return false\n }\n return true\n}\n\n// 读取 JDMobileConfig,异常时返回 undefined\nconst tryGetMobileConfigSync = (opt: { space: string, configName: string, key: string }): unknown => {\n try {\n const fn = (Taro as any).JDMobileConfig?.getMobileConfigSync\n if (typeof fn !== 'function') return undefined\n return fn(opt)\n } catch {\n return undefined\n }\n}\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 // 条件1: designAppVersion < 16,不满足则使用系统侧缩放\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 // 条件2: appVersion < 15.7.0,不满足则使用系统侧缩放\n if (!isAppVersionAtLeast(res.version, MIN_APP_VERSION)) {\n return false\n }\n\n // 条件3: 平台判断\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony') {\n return true\n }\n if (platform === 'android') {\n const raw = tryGetMobileConfigSync({ space: 'taro', configName: 'config', key: 'disableFixBoundingScaleRatio' })\n return raw !== 1 && raw !== '1'\n }\n if (platform === 'ios') {\n const raw = tryGetMobileConfigSync({ space: 'Taro', configName: 'excutor', key: 'disableBoundingScaleRatio' })\n return raw !== 1 && raw !== '1'\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","MIN_APP_VERSION","isAppVersionAtLeast","version","min","parts","v","m","String","trim","match","parseInt","a","b","length","i","Math","max","da","_a","db","_b","tryGetMobileConfigSync","opt","JDMobileConfig","getMobileConfigSync","undefined","resolveUseMeasuredScale","res","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","Number","NaN","isFinite","platform","toLowerCase","raw","space","configName","key","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","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","_$createComponent","View","_$mergeProps","id","ref","el","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","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":";;;;;AAQA,SAASA,+BAA+BA,CAACC,IAAiC,EAAA;EACxE,IAAIA,IAAI,IAAI,IAAI,EAAE;AAClB,EAAA,MAAMC,EAAE,GAAIC,IAAY,CAACC,qBAAqB;AAC9C,EAAA,IAAI,OAAOF,EAAE,KAAK,UAAU,EAAE;AAC9BA,EAAAA,EAAE,CAAC;AAAEG,IAAAA,OAAO,EAAE;AAAEC,MAAAA,OAAO,EAAEL;AAAI;AAA4B,GAAA,CAAC;AAC5D;AAEA;AACA,SAASM,2BAA2BA,GAAA;EAClC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;AAC9D,EAAA,MAAMC,QAAQ,GAAGF,KAAK,CAACG,MAAM,CAAC,CAAC,CAAC;AAEhC,EAAA,MAAMC,cAAc,GAAGJ,KAAK,CAACK,WAAW,CAAEC,MAAc,IAAI;IAC1DJ,QAAQ,CAACN,OAAO,IAAI,CAAC;AACrB,IAAA,MAAMW,KAAK,GAAGL,QAAQ,CAACN,OAAO;IAC9BG,iBAAiB,CAAC,EAAE,CAAC;AACrBS,IAAAA,UAAU,CAAC,MAAK;AACd,MAAA,IAAIN,QAAQ,CAACN,OAAO,KAAKW,KAAK,EAAE;MAChCR,iBAAiB,CAACO,MAAM,CAAC;KAC1B,EAAE,CAAC,CAAC;GACN,EAAE,EAAE,CAAC;AAEN,EAAA,OAAO,CAACR,cAAc,EAAEM,cAAc,CAAC;AACzC;AA0BA;AACA,MAAMK,kBAAkB,GAAG,EAAE,CAAA;AAC7B,MAAMC,oBAAoB,GAAG,CAAC,CAAA;AAC9B,MAAMC,kBAAkB,GAAG,CAAC,CAAA;AAE5B,MAAMC,iBAAiB,GAAIC,SAAiB,IAAyB;EACnE,OAAO;AACLC,IAAAA,cAAc,EAAED,SAAS;AACzBE,IAAAA,iBAAiB,EAAEF;GACpB;AACH,CAAC;AAED;AACA,MAAMG,sBAAsB,GAAG,EAAE;AACjC,MAAMC,eAAe,GAAG,QAAQ;AAEhC;AACA,MAAMC,mBAAmB,GAAGA,CAACC,OAA2B,EAAEC,GAAW,KAAa;;EAChF,IAAI,CAACD,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE,OAAO,KAAK;EACzD,MAAME,KAAK,GAAIC,CAAS,IAAI;AAC1B,IAAA,MAAMC,CAAC,GAAGC,MAAM,CAACF,CAAC,CAAC,CAACG,IAAI,EAAE,CAACC,KAAK,CAAC,gCAAgC,CAAC;AAClE,IAAA,IAAI,CAACH,CAAC,EAAE,OAAO,EAAE;AACjB,IAAA,OAAO,CAACI,QAAQ,CAACJ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAEI,QAAQ,CAACJ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAEI,QAAQ,CAACJ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;GACjG;AACD,EAAA,MAAMK,CAAC,GAAGP,KAAK,CAACF,OAAO,CAAC;AACxB,EAAA,MAAMU,CAAC,GAAGR,KAAK,CAACD,GAAG,CAAC;AACpB,EAAA,IAAIQ,CAAC,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;AAChC,EAAA,IAAID,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAC/B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACL,CAAC,CAACE,MAAM,EAAED,CAAC,CAACC,MAAM,CAAC,EAAEC,CAAC,EAAE,EAAE;AACrD,IAAA,MAAMG,EAAE,GAAG,CAAAC,EAAA,GAAAP,CAAC,CAACG,CAAC,CAAC,MAAI,IAAA,IAAAI,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAA,CAAC;AACpB,IAAA,MAAMC,EAAE,GAAG,CAAAC,EAAA,GAAAR,CAAC,CAACE,CAAC,CAAC,MAAI,IAAA,IAAAM,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAA,CAAC;AACpB,IAAA,IAAIH,EAAE,GAAGE,EAAE,EAAE,OAAO,IAAI;AACxB,IAAA,IAAIF,EAAE,GAAGE,EAAE,EAAE,OAAO,KAAK;AAC3B;AACA,EAAA,OAAO,IAAI;AACb,CAAC;AAED;AACA,MAAME,sBAAsB,GAAIC,GAAuD,IAAa;;EAClG,IAAI;IACF,MAAM/C,EAAE,GAAG,CAAC2C,EAAA,GAAA1C,IAAY,CAAC+C,cAAc,MAAA,IAAA,IAAAL,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAEM,mBAAmB;AAC5D,IAAA,IAAI,OAAOjD,EAAE,KAAK,UAAU,EAAE,OAAOkD,SAAS;IAC9C,OAAOlD,EAAE,CAAC+C,GAAG,CAAC;GACf,CAAC,OAAAF,EAAA,EAAM;AACN,IAAA,OAAOK,SAAS;AAClB;AACF,CAAC;AAED;AACA,MAAMC,uBAAuB,GAAIC,GAA8B,IAAa;AAC1E;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;AACA,EAAA,MAAMC,mBAAmB,GAAIJ,GAAW,CAACK,gBAAgB;EACzD,MAAMC,qBAAqB,GAAGF,mBAAmB,IAAI,IAAI,GAAGrB,QAAQ,CAACH,MAAM,CAACwB,mBAAmB,CAAC,CAACvB,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG0B,MAAM,CAACC,GAAG;EACzH,IAAI,CAACD,MAAM,CAACE,QAAQ,CAACH,qBAAqB,CAAC,IAAIA,qBAAqB,GAAGlC,sBAAsB,EAAE;AAC7F,IAAA,OAAO,KAAK;AACd;AAEA;EACA,IAAI,CAACE,mBAAmB,CAAC0B,GAAG,CAACzB,OAAO,EAAEF,eAAe,CAAC,EAAE;AACtD,IAAA,OAAO,KAAK;AACd;AAEA;AACA,EAAA,MAAMqC,QAAQ,GAAG9B,MAAM,CAAEoB,GAAW,CAACU,QAAQ,IAAI,EAAE,CAAC,CAACC,WAAW,EAAE;EAClE,IAAID,QAAQ,KAAK,SAAS,EAAE;AAC1B,IAAA,OAAO,IAAI;AACb;EACA,IAAIA,QAAQ,KAAK,SAAS,EAAE;IAC1B,MAAME,GAAG,GAAGlB,sBAAsB,CAAC;AAAEmB,MAAAA,KAAK,EAAE,MAAM;AAAEC,MAAAA,UAAU,EAAE,QAAQ;AAAEC,MAAAA,GAAG,EAAE;AAA8B,KAAE,CAAC;AAChH,IAAA,OAAOH,GAAG,KAAK,CAAC,IAAIA,GAAG,KAAK,GAAG;AACjC;EACA,IAAIF,QAAQ,KAAK,KAAK,EAAE;IACtB,MAAME,GAAG,GAAGlB,sBAAsB,CAAC;AAAEmB,MAAAA,KAAK,EAAE,MAAM;AAAEC,MAAAA,UAAU,EAAE,SAAS;AAAEC,MAAAA,GAAG,EAAE;AAA2B,KAAE,CAAC;AAC9G,IAAA,OAAOH,GAAG,KAAK,CAAC,IAAIA,GAAG,KAAK,GAAG;AACjC;AAEA,EAAA,OAAO,KAAK;AACd,CAAC;AAED;AACA,MAAMI,yBAAyB,GAAIhB,GAA8B,IAAY;AAC3E,EAAA,IAAIiB,gBAAgB,GAAIjB,GAAW,KAAA,IAAA,IAAXA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,GAAG,CAAUiB,gBAAgB;AACrD,EAAA,IAAIA,gBAAgB,IAAI,IAAI,IAAIA,gBAAgB,KAAK,CAAC,EAAE;AACtDC,IAAAA,OAAO,CAACC,IAAI,CAAC,gDAAgD,CAAC;AAC9DF,IAAAA,gBAAgB,GAAG,CAAC;AACpB,IAAA,IAAIjB,GAAG,CAACoB,WAAW,GAAG,GAAG,EAAE;AACzBH,MAAAA,gBAAgB,GAAGjB,GAAG,CAACoB,WAAW,GAAG,GAAG;AAC1C,KAAC,MAAM,IAAIpB,GAAG,CAACoB,WAAW,IAAI,GAAG,IAAIpB,GAAG,CAACoB,WAAW,GAAG,GAAG,EAAE;AAC1DH,MAAAA,gBAAgB,GAAGjB,GAAG,CAACoB,WAAW,GAAG,GAAG;AAC1C;AACA,IAAA,MAAMC,SAAS,GAAGrB,GAAG,CAACoB,WAAW,GAAGpB,GAAG,CAACsB,YAAY,GAAGtB,GAAG,CAACoB,WAAW,GAAGpB,GAAG,CAACsB,YAAY;AACzF,IAAA,MAAMC,WAAW,GAAGF,SAAS,IAAI,GAAG;AACpC,IAAA,IAAIE,WAAW,EAAE;MACfN,gBAAgB,GAAGI,SAAS,GAAG,GAAG;AACpC;AACF;AACA,EAAA,OAAOJ,gBAAgB;AACzB,CAAC;AAED;AACA,MAAMO,2BAA2B,GAAG,UAClCC,kBAA2C,EAC3CC,SAAiB,EACjBC,YAAqB,EAEnB;AAAA,EAAA,IADFV,gBAAA,GAAAW,SAAA,CAAA1C,MAAA,GAAA,CAAA,IAAA0C,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAA2B,CAAC;AAE5B;AACA,EAAA,IAAI3B,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,IAAI,IAAIF,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,OAAO,EAAE;IACrE,MAAM0B,UAAU,GAAGF,YAAY,KAAK7B,SAAS,GAAG4B,SAAS,GAAGC,YAAY,GAAGD,SAAS;IACpFD,kBAAkB,CAACI,UAAU,CAAC;AAC9B,IAAA;AACF;AAEA,EAAA,IAAI5B,OAAO,CAACC,GAAG,CAAC4B,aAAa,KAAK,SAAS,EAAE;IAC3C,MAAMC,WAAW,GAAGL,SAAS;IAC7B,MAAMG,UAAU,GAAGF,YAAY,KAAK7B,SAAS,GAAGiC,WAAW,GAAGJ,YAAY,GAAGI,WAAW;IACxFN,kBAAkB,CAACI,UAAU,CAAC;AAChC,GAAC,MAAM;AACL,IAAA,MAAME,WAAW,GAAGL,SAAS,GAAGT,gBAAgB;IAChD,MAAMY,UAAU,GAAGF,YAAY,KAAK7B,SAAS,GAAGiC,WAAW,GAAGJ,YAAY,GAAGI,WAAW;IACxFN,kBAAkB,CAACI,UAAU,CAAC;AAChC;AACF,CAAC;AAED;AACA;AACA;AACA,MAAMG,gBAAgB,GAAG,UAACC,SAAiB,EAAEC,UAAkB,EAA6E;AAAA,EAAA,IAA3EjB,gBAAA,GAAAW,SAAA,CAAA1C,MAAA,GAAA,CAAA,IAAA0C,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAA2B,CAAC;AAAA,EAAA,IAAEO,gBAA4B,GAAAP,SAAA,CAAA1C,MAAA,GAAA,CAAA,IAAA0C,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAA,KAAK;EAC9H,IAAI,CAACO,gBAAgB,IAAIlC,OAAO,CAACC,GAAG,CAAC4B,aAAa,KAAK,SAAS,EAAE;AAChE,IAAA,OAAO1C,IAAI,CAACgD,KAAK,CAACH,SAAS,GAAGC,UAAU,CAAC;AAC3C;EACA,OAAO9C,IAAI,CAACgD,KAAK,CAACH,SAAS,GAAGhB,gBAAgB,GAAGiB,UAAU,CAAC;AAC9D,CAAC;AAED;AACA,MAAMG,mBAAmB,GAAG,UAC1BC,UAAiC,EACjCrB,gBAAwB,EAEd;AAAA,EAAA,IADVkB,gBAAA,GAAAP,SAAA,CAAA1C,MAAA,GAAA,CAAA,IAAA0C,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAA4B,KAAK;AAEjC,EAAA,IAAI3B,OAAO,CAACC,GAAG,CAAC4B,aAAa,KAAK,SAAS,EAAE;AAC3C,IAAA,OAAOK,gBAAgB,GAAGtE,kBAAkB,GAAGoD,gBAAgB,GAAGpD,kBAAkB;AACtF;AACA,EAAA,IAAIyE,UAAU,KAAIA,UAAU,KAAV,IAAA,IAAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,UAAU,CAAEC,YAAY,CAAA,EAAE;IAC1C,OAAOJ,gBAAgB,GACnBG,UAAU,CAACC,YAAY,GAAGtB,gBAAgB,GAAGqB,UAAU,CAACE,UAAU,CAACtD,MAAM,GACzEoD,UAAU,CAACC,YAAY,GAAGD,UAAU,CAACE,UAAU,CAACtD,MAAM;AAC5D;AACAgC,EAAAA,OAAO,CAACC,IAAI,CAAC,4BAA4B,CAAC;AAC1C,EAAA,OAAOtD,kBAAkB;AAC3B,CAAC;AAEK,SAAU4E,gBAAgBA,CAACC,KAAuB,EAAA;EACtD,MAAM;AACJC,IAAAA,KAAK,GAAG,EAAE;IACVC,QAAQ;IACRC,QAAQ;IACRC,WAAW;IACXC,cAAc;AACdC,IAAAA,aAAa,GAAG,CAAC;AAAE;IACnBC,MAAM,GAAG,EAAE;AACXC,IAAAA,qBAAqB,GAAG;AAAI,GAC7B,GAAGR,KAAK;AACT,EAAA,MAAMS,cAAc,GAAGF,MAAM,CAAChF,SAAS,GAAGD,iBAAiB,CAACiF,MAAM,CAAChF,SAAS,CAAC,GAAG,IAAI;EACpF,MAAM,CAACmF,eAAe,EAAE3B,kBAAkB,CAAC,GAAGrE,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACH,cAAc,EAAEM,cAAc,CAAC,GAAGP,2BAA2B,EAAE;AACtE,EAAA,MAAMoG,aAAa,GAAGjG,KAAK,CAACG,MAAM,CAAiB,IAAI,CAAC;AACxD,EAAA,MAAM+F,QAAQ,GAAGlG,KAAK,CAACG,MAAM,CAAyB,EAAE,CAAC;AACzD,EAAA,MAAMgG,oBAAoB,GAAGnG,KAAK,CAACG,MAAM,CAACyF,aAAa,CAAC;EACxDO,oBAAoB,CAACvG,OAAO,GAAGgG,aAAa;AAC5C,EAAA,MAAMQ,sBAAsB,GAAGpG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAClD,EAAA,MAAMkG,2BAA2B,GAAGrG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AACvD;EACA,MAAM,CAACmG,YAAY,EAAEC,eAAe,CAAC,GAAGvG,KAAK,CAACC,QAAQ,CAAC2F,aAAa,CAAC;AACrE;AACA,EAAA,MAAMY,aAAa,GAAGxG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAEzC,EAAA,MAAMsG,mBAAmB,GAAGzG,KAAK,CAACG,MAAM,CAAC,CAAC,CAAC;AAC3C,EAAA,MAAMuG,mBAAmB,GAAG1G,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAC/C,EAAA,MAAMwG,aAAa,GAAG3G,KAAK,CAACG,MAAM,CAACM,kBAAkB,CAAC;AAEtD;EACAT,KAAK,CAAC4G,SAAS,CAAC,MAAK;IACnBnH,IAAI,CAACoH,aAAa,CAAC;MACjBC,OAAO,EAAGlE,GAAG,IAAI;AACf6D,QAAAA,mBAAmB,CAAC7G,OAAO,GAAGgE,yBAAyB,CAAChB,GAAG,CAAC;AAC5D8D,QAAAA,mBAAmB,CAAC9G,OAAO,GAAG+C,uBAAuB,CAACC,GAAG,CAAC;AAC1D+D,QAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;OAC7H;MACDmH,IAAI,EAAEA,MAAK;QACTN,mBAAmB,CAAC7G,OAAO,GAAG,CAAC;QAC/B8G,mBAAmB,CAAC9G,OAAO,GAAG,KAAK;AACrC;AACD,KAAA,CAAC;GACH,EAAE,EAAE,CAAC;EAENI,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnBD,IAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;GAC7H,EAAE,CAAC2F,KAAK,CAACzD,MAAM,CAAC,CAAC,CAAA;AAElB;EACA9B,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnB,IAAA,IAAIX,aAAa,CAACrG,OAAO,IAAI2F,KAAK,CAACzD,MAAM,GAAG,CAAC,IAAI,CAAC0E,aAAa,CAAC5G,OAAO,EAAE;MACvEwG,sBAAsB,CAACxG,OAAO,GAAG,IAAI;AACrC,MAAA,MAAM0E,SAAS,GAAGsB,aAAa,GAAGe,aAAa,CAAC/G,OAAO;MACvDwE,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAE5B,SAAS,EAAE+D,mBAAmB,CAAC7G,OAAO,CAAC;MAClG2G,eAAe,CAACX,aAAa,CAAC;AAC9B,MAAA,MAAMoB,GAAG,GAAGxG,UAAU,CAAC,MAAK;QAC1B4F,sBAAsB,CAACxG,OAAO,GAAG,KAAK;OACvC,EAAE,GAAG,CAAC;AACP,MAAA,OAAO,MAAMqH,YAAY,CAACD,GAAG,CAAC;AAChC;AACF,GAAC,EAAE,CAACpB,aAAa,EAAEL,KAAK,CAAC,CAAC;AAE1B;AACA,EAAA,MAAM2B,eAAe,GAAGlH,KAAK,CAACG,MAAM,CAAwB,IAAI,CAAC;AACjE;EACA,MAAMgH,eAAe,GAAGA,MAAK;AAC3B,IAAA,IAAI,CAAClB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA;AACAsH,IAAAA,eAAe,CAACtH,OAAO,GAAGY,UAAU,CAAC,MAAK;AACxC,MAAA,IAAI,CAACyF,aAAa,CAACrG,OAAO,EAAE;AAE5B,MAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,MAAA,MAAMuC,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE8B,aAAa,CAAC/G,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAE7H,MAAA,MAAMyH,cAAc,GAAG,CAACjB,sBAAsB,CAACxG,OAAO;AACtD,MAAA,MAAM0H,yBAAyB,GAAGjB,2BAA2B,CAACzG,OAAO;MAErE4G,aAAa,CAAC5G,OAAO,GAAG,KAAK;AAC7B,MAAA,MAAM0E,SAAS,GAAG8C,QAAQ,GAAGT,aAAa,CAAC/G,OAAO;MAClD,MAAM2E,YAAY,GAAGvC,IAAI,CAACuF,MAAM,EAAE,GAAG,KAAK,CAAA;MAC1CnD,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAEC,YAAY,EAAEkC,mBAAmB,CAAC7G,OAAO,CAAC;AACrG8F,MAAAA,WAAW,CAAC0B,QAAQ,EAAE3B,QAAQ,CAAC;AAC/BE,MAAAA,cAAc,KAAd,IAAA,IAAAA,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,cAAc,CAAG;QAAEF,QAAQ;AAAE+B,QAAAA,KAAK,EAAEJ;AAAQ,OAAE,CAAC;MAC/Cf,2BAA2B,CAACzG,OAAO,GAAG,KAAK;MAC3C,IAAIyH,cAAc,IAAIC,yBAAyB,EAAE;AAC/ChI,QAAAA,+BAA+B,CAAC4G,QAAQ,CAACtG,OAAO,CAACwH,QAAQ,CAAC,CAAC;AAC7D;MACAhB,sBAAsB,CAACxG,OAAO,GAAG,KAAK;MACtCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;KAC/B,EAAE,GAAG,CAAC;GACR;AACD;EACA,MAAM6H,YAAY,GAAGA,MAAK;AACxB,IAAA,IAAI,CAACxB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA,IAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,IAAA,MAAM6C,EAAE,GAAGf,aAAa,CAAC/G,OAAO;AAChC,IAAA,MAAMwH,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE6C,EAAE,EAAEjB,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAC1G,IAAA,MAAM+H,GAAG,GAAGxB,oBAAoB,CAACvG,OAAO;IACxC,IAAIwH,QAAQ,KAAKO,GAAG,EAAE;MACpB,IAAI,CAACvB,sBAAsB,CAACxG,OAAO,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QAC5DyG,2BAA2B,CAACzG,OAAO,GAAG,IAAI;AAC5C;MACA,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QACzBwG,sBAAsB,CAACxG,OAAO,GAAG,KAAK;AACxC;AACF;IACA,IAAIwH,QAAQ,KAAKd,YAAY,EAAE;MAC7BC,eAAe,CAACa,QAAQ,CAAC;AAC3B;GACD;AAED;EACA,MAAMQ,UAAU,GAAGrC,KAAK,CAACsC,GAAG,CAAC,CAACC,IAAI,EAAEN,KAAK,KAAI;AAC3C,IAAA,MAAMO,OAAO,GAAGvC,QAAQ,IAAIsC,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,GAAGA,IAAI,CAACtC,QAAQ,CAAC,GAAGsC,IAAI;AAEpF,IAAA,OAAAE,eAAA,CACGC,IAAI,EAAAC,UAAA,CAAA;AACHC,MAAAA,EAAE,EAAE,CAAA,YAAA,EAAe1C,QAAQ,CAAA,CAAA,EAAI+B,KAAK,CAAE,CAAA;AACtC7D,MAAAA,GAAG,EAAE6D,KAAK;MAAAY,GAAA,EACJC,EAAE,IAAMnC,QAAQ,CAACtG,OAAO,CAAC4H,KAAK,CAAC,GAAGa,EAAG;MAC3CC,SAAS,EAAE,oBAAoBd,KAAK,KAAKlB,YAAY,GAAG,8BAA8B,GAAG,EAAE,CAAA;AAAE,KAAA,EACxFR,qBAAqB,GACtB;MAAEyC,OAAO,EAAEA,MAAMnI,cAAc,CAAC,CAAeqF,YAAAA,EAAAA,QAAQ,CAAI+B,CAAAA,EAAAA,KAAK,CAAE,CAAA;KAAG,GACrE,EAAE,EAAA;AAAA,MAAA,IACNgB,KAAKA,GAAA;QAAA,OAAE;AACLC,UAAAA,MAAM,EAAEhI,kBAAkB;AAC1BiI,UAAAA,KAAK,EAAElB,KAAK,KAAKlB,YAAY,GACxBT,MAAM,CAAC8C,iBAAiB,IAAIjG,SAAS,GACrCmD,MAAM,CAAC+C,gBAAgB,IAAIlG;SACjC;AAAA,OAAA;AAAAmG,MAAAA,QAAA,EAEAd;AAAO,KAAA,CAAA,CAAA;AAGd,GAAC,CAAC;EAEF,MAAMe,eAAe,GAAG,CACtB,GAAG,IAAIC,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAauF,UAAAA,EAAAA,GAAG,CAAE,CAAA;IACvBZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;GAEtC,CAAA,CAAC,EACJ,GAAGmH,UAAU,EACb,GAAG,IAAImB,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAgBuF,aAAAA,EAAAA,GAAG,CAAE,CAAA;IAC1BZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;AAAE,GAAA,CAExC,CAAC,CACL;EAED,MAAM0I,oBAAoB,GAAGrD,qBAAqB,GAC9C;IAAEhG,cAAc;AAAEsJ,IAAAA,uBAAuB,EAAE;GAAmB,GAC9D,EAAE;EAEN,OAAApB,eAAA,CACGC,IAAI,EAAA;IAACK,SAAS,EAAA,oBAAA;AAAA,IAAA,IAAAO,QAAA,GAAA;MAAA,OAAAb,CAAAA,eAAA,CACZC,IAAI,EAAA;QAACK,SAAS,EAAA;AAAA,OAAA,CAAA,EAAAN,eAAA,CACdC,IAAI,EAAAC,UAAA,CAAA;QACHI,SAAS,EAAA;AAAA,OAAA,EACJvC,cAAc,GAAG;AAAEyC,QAAAA,KAAK,EAAEzC;OAAgB,GAAG,EAAE,CAAA,CAAA,EAAAiC,eAAA,CAErDqB,UAAU,EAAAnB,UAAA,CAAA;AAAAE,QAAAA,GAAA,EACJnC,aAAa;QAClBqD,OAAO,EAAA,IAAA;AACPC,QAAAA,aAAa,EAAE,KAAK;QACpBjB,SAAS,EAAA,sBAAA;AACTE,QAAAA,KAAK,EAAE;UACLC,MAAM,EAAEhI,kBAAkB,GAAGC;SAC9B;AACDmE,QAAAA,SAAS,EAAEmB;AAAe,OAAA,EACtBmD,oBAAoB,EAAA;AACxBK,QAAAA,QAAQ,EAAE/B,YAAY;QACtBgC,YAAY,EAAEA;UAAQjD,aAAa,CAAC5G,OAAO,GAAG,IAAI;SAAE;AACpD8J,QAAAA,WAAW,EAAEvC,eAAe;QAC5BwC,mBAAmB,EAAA,IAAA;AAAAd,QAAAA,QAAA,EAElBC;AAAe,OAAA,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,CAAA;AAIxB;AAEA;AACM,SAAUc,eAAeA,CAACtE,KAAuB,EAAA;EACrD,MAAM;AACJC,IAAAA,KAAK,GAAG,EAAE;IACVC,QAAQ;IACRC,QAAQ;IACRC,WAAW;AACXE,IAAAA,aAAa,GAAG,CAAC;IACjBC,MAAM,GAAG,EAAE;IACXgE,kBAAkB;IAClBC,4BAA4B;IAC5BC,uBAAuB;AACvBjE,IAAAA,qBAAqB,GAAG;AACzB,GAAA,GAAGR,KAAK;AAET,EAAA,MAAMS,cAAc,GAAGF,MAAM,CAAChF,SAAS,GAAGD,iBAAiB,CAACiF,MAAM,CAAChF,SAAS,CAAC,GAAG,IAAI;EACpF,MAAM,CAACmF,eAAe,EAAE3B,kBAAkB,CAAC,GAAGrE,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACH,cAAc,EAAEM,cAAc,CAAC,GAAGP,2BAA2B,EAAE;AACtE,EAAA,MAAMoG,aAAa,GAAGjG,KAAK,CAACG,MAAM,CAAiB,IAAI,CAAC;AACxD,EAAA,MAAM+F,QAAQ,GAAGlG,KAAK,CAACG,MAAM,CAAyB,EAAE,CAAC;AACzD,EAAA,MAAMgG,oBAAoB,GAAGnG,KAAK,CAACG,MAAM,CAACyF,aAAa,CAAC;EACxDO,oBAAoB,CAACvG,OAAO,GAAGgG,aAAa;AAC5C,EAAA,MAAMQ,sBAAsB,GAAGpG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAClD,EAAA,MAAM6J,sBAAsB,GAAGhK,KAAK,CAACG,MAAM,CAAqBuC,SAAS,CAAC;AAC1E,EAAA,MAAMuH,iCAAiC,GAAGjK,KAAK,CAACG,MAAM,CAAgB,IAAI,CAAC;AAC3E,EAAA,MAAMkG,2BAA2B,GAAGrG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AACvD,EAAA,MAAM+J,oBAAoB,GAAGlK,KAAK,CAACG,MAAM,CAA4D,IAAI,CAAC;AAC1G,EAAA,MAAMgK,kBAAkB,GAAGnK,KAAK,CAACG,MAAM,CAAwB,IAAI,CAAC;EACpE,MAAM,CAACmG,YAAY,EAAEC,eAAe,CAAC,GAAGvG,KAAK,CAACC,QAAQ,CAAC2F,aAAa,CAAC;AACrE,EAAA,MAAMY,aAAa,GAAGxG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAEzC,EAAA,MAAMsG,mBAAmB,GAAGzG,KAAK,CAACG,MAAM,CAAC,CAAC,CAAC;AAC3C,EAAA,MAAMuG,mBAAmB,GAAG1G,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAC/C,EAAA,MAAMwG,aAAa,GAAG3G,KAAK,CAACG,MAAM,CAACM,kBAAkB,CAAC;AAEtD,EAAA,MAAM2J,oBAAoB,GAAGpK,KAAK,CAACK,WAAW,CAAC,MAAK;IAClD,IAAI8J,kBAAkB,CAACvK,OAAO,EAAE;AAC9BqH,MAAAA,YAAY,CAACkD,kBAAkB,CAACvK,OAAO,CAAC;MACxCuK,kBAAkB,CAACvK,OAAO,GAAG,IAAI;AACnC;GACD,EAAE,EAAE,CAAC;AAEN,EAAA,MAAMyK,oBAAoB,GAAGrK,KAAK,CAACK,WAAW,CAAC,MAAK;AAClD,IAAA,MAAMiK,OAAO,GAAGJ,oBAAoB,CAACtK,OAAO;AAC5C,IAAA,MAAMsF,UAAU,GAAGe,aAAa,CAACrG,OAAO;AACxC,IAAA,IAAI,CAAC0K,OAAO,IAAI,CAACpF,UAAU,EAAE;AAE7B,IAAA,MAAMqF,WAAW,GAAG3F,gBAAgB,CAClCM,UAAU,CAACL,SAAS,EACpB8B,aAAa,CAAC/G,OAAO,EACrB6G,mBAAmB,CAAC7G,OAAO,EAC3B8G,mBAAmB,CAAC9G,OAAO,CAC5B;AACD,IAAA,MAAM4K,QAAQ,GAAGD,WAAW,KAAKD,OAAO,CAAC9C,KAAK;IAE9C,IAAI,CAACgD,QAAQ,EAAE;AACb,MAAA,IAAIF,OAAO,CAACG,QAAQ,IAAI,EAAE,EAAE;QAC1BP,oBAAoB,CAACtK,OAAO,GAAG,IAAI;AACnC,QAAA,IAAIqK,iCAAiC,CAACrK,OAAO,KAAK0K,OAAO,CAACI,KAAK,EAAE;UAC/DT,iCAAiC,CAACrK,OAAO,GAAG,IAAI;AAClD;AACAkK,QAAAA,4BAA4B,KAA5B,IAAA,IAAAA,4BAA4B,KAA5B,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,4BAA4B,EAAI;AAChC,QAAA;AACF;MACAQ,OAAO,CAACG,QAAQ,IAAI,CAAC;AACrBL,MAAAA,oBAAoB,EAAE;AACtBD,MAAAA,kBAAkB,CAACvK,OAAO,GAAGY,UAAU,CAAC,MAAK;AAC3C6J,QAAAA,oBAAoB,EAAE;OACvB,EAAE,EAAE,CAAC;AACN,MAAA;AACF;IAEA,MAAM9K,IAAI,GAAG2G,QAAQ,CAACtG,OAAO,CAAC0K,OAAO,CAAC9C,KAAK,CAAC;IAC5C0C,oBAAoB,CAACtK,OAAO,GAAG,IAAI;AACnC,IAAA,IAAIqK,iCAAiC,CAACrK,OAAO,KAAK0K,OAAO,CAACI,KAAK,EAAE;MAC/DT,iCAAiC,CAACrK,OAAO,GAAG,IAAI;AAClD;AACAwK,IAAAA,oBAAoB,EAAE;IACtB9K,+BAA+B,CAACC,IAAI,CAAC;AACrCuK,IAAAA,4BAA4B,KAA5B,IAAA,IAAAA,4BAA4B,KAA5B,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,4BAA4B,EAAI;AAClC,GAAC,EAAE,CAACM,oBAAoB,EAAEN,4BAA4B,CAAC,CAAC;AAExD,EAAA,MAAMa,yBAAyB,GAAG3K,KAAK,CAACK,WAAW,CAAC,MAAK;AACvD,IAAA,IAAI,CAAC6J,oBAAoB,CAACtK,OAAO,EAAE;AACnCwK,IAAAA,oBAAoB,EAAE;AACtBD,IAAAA,kBAAkB,CAACvK,OAAO,GAAGY,UAAU,CAAC,MAAK;AAC3C6J,MAAAA,oBAAoB,EAAE;KACvB,EAAE,GAAG,CAAC;AACT,GAAC,EAAE,CAACD,oBAAoB,EAAEC,oBAAoB,CAAC,CAAC;EAEhDrK,KAAK,CAAC4G,SAAS,CAAC,MAAMwD,oBAAoB,EAAE,CAACA,oBAAoB,CAAC,CAAC;AAEnE;EACApK,KAAK,CAAC4G,SAAS,CAAC,MAAK;IACnBnH,IAAI,CAACoH,aAAa,CAAC;MACjBC,OAAO,EAAGlE,GAAG,IAAI;AACf6D,QAAAA,mBAAmB,CAAC7G,OAAO,GAAGgE,yBAAyB,CAAChB,GAAG,CAAC;AAC5D8D,QAAAA,mBAAmB,CAAC9G,OAAO,GAAG+C,uBAAuB,CAACC,GAAG,CAAC;AAC1D+D,QAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;OAC7H;MACDmH,IAAI,EAAEA,MAAK;QACTN,mBAAmB,CAAC7G,OAAO,GAAG,CAAC;QAC/B8G,mBAAmB,CAAC9G,OAAO,GAAG,KAAK;AACrC;AACD,KAAA,CAAC;GACH,EAAE,EAAE,CAAC;EAENI,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnBD,IAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;GAC7H,EAAE,CAAC2F,KAAK,CAACzD,MAAM,CAAC,CAAC,CAAA;AAElB;EACA9B,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnB,IAAA,IAAIX,aAAa,CAACrG,OAAO,IAAI2F,KAAK,CAACzD,MAAM,GAAG,CAAC,IAAI,CAAC0E,aAAa,CAAC5G,OAAO,EAAE;MACvEwG,sBAAsB,CAACxG,OAAO,GAAG,IAAI;AACrC,MAAA,MAAM0E,SAAS,GAAGsB,aAAa,GAAGe,aAAa,CAAC/G,OAAO;MACvDwE,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAE5B,SAAS,EAAE+D,mBAAmB,CAAC7G,OAAO,CAAC;MAClG2G,eAAe,CAACX,aAAa,CAAC;AAC9B,MAAA,MAAMoB,GAAG,GAAGxG,UAAU,CAAC,MAAK;QAC1B4F,sBAAsB,CAACxG,OAAO,GAAG,KAAK;OACvC,EAAE,GAAG,CAAC;AACP,MAAA,OAAO,MAAMqH,YAAY,CAACD,GAAG,CAAC;AAChC;AACF,GAAC,EAAE,CAACpB,aAAa,EAAEL,KAAK,CAAC,CAAC;AAE1B;EACAvF,KAAK,CAAC4G,SAAS,CAAC,MAAK;IACnB,IAAI,CAACmD,uBAAuB,EAAE;AAC9B,IAAA,IAAI,CAAC9D,aAAa,CAACrG,OAAO,IAAI2F,KAAK,CAACzD,MAAM,KAAK,CAAC,IAAI0E,aAAa,CAAC5G,OAAO,EAAE;IAC3EwG,sBAAsB,CAACxG,OAAO,GAAG,IAAI;AACrC,IAAA,MAAM0E,SAAS,GAAGsB,aAAa,GAAGe,aAAa,CAAC/G,OAAO;AACvDwE,IAAAA,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAEtC,IAAI,CAACuF,MAAM,EAAE,GAAG,KAAK,EAAEd,mBAAmB,CAAC7G,OAAO,CAAC;IAC9G2G,eAAe,CAACX,aAAa,CAAC;AAC9B,IAAA,MAAMoB,GAAG,GAAGxG,UAAU,CAAC,MAAK;MAC1B4F,sBAAsB,CAACxG,OAAO,GAAG,KAAK;KACvC,EAAE,GAAG,CAAC;AACP,IAAA,OAAO,MAAMqH,YAAY,CAACD,GAAG,CAAC;AAChC,GAAC,EAAE,CAAC+C,uBAAuB,CAAC,CAAC,CAAA;EAE7B/J,KAAK,CAAC4K,eAAe,CAAC,MAAK;IACzB,IAAIb,uBAAuB,KAAKrH,SAAS,EAAE;AAC3C,IAAA,MAAMmI,IAAI,GAAGb,sBAAsB,CAACpK,OAAO;IAC3CoK,sBAAsB,CAACpK,OAAO,GAAGmK,uBAAuB;AACxD,IAAA,IAAIA,uBAAuB,GAAG,CAAC,KAAKc,IAAI,KAAKnI,SAAS,IAAIqH,uBAAuB,GAAGc,IAAI,CAAC,EAAE;MACzFZ,iCAAiC,CAACrK,OAAO,GAAGmK,uBAAuB;AACrE;AACF,GAAC,EAAE,CAACA,uBAAuB,CAAC,CAAC;AAE7B;EACA/J,KAAK,CAAC4G,SAAS,CAAC,MAAK;IACnB,MAAMkE,GAAG,GAAGjB,kBAAkB;IAC9B,IAAI,CAACiB,GAAG,IAAIA,GAAG,CAACrF,QAAQ,KAAKA,QAAQ,EAAE;IACvC,MAAMyD,GAAG,GAAGtD,aAAa;AACzB,IAAA,MAAM8E,KAAK,GAAGI,GAAG,CAACJ,KAAK;IACvBrE,2BAA2B,CAACzG,OAAO,GAAG,KAAK;IAC3CsK,oBAAoB,CAACtK,OAAO,GAAG;AAAE4H,MAAAA,KAAK,EAAE0B,GAAG;MAAEwB,KAAK;AAAED,MAAAA,QAAQ,EAAE;KAAG;AACjEE,IAAAA,yBAAyB,EAAE;GAC5B,EAAE,CAACd,kBAAkB,EAAEpE,QAAQ,EAAEG,aAAa,EAAE+E,yBAAyB,CAAC,CAAC;AAE5E;AACA,EAAA,MAAMzD,eAAe,GAAGlH,KAAK,CAACG,MAAM,CAAwB,IAAI,CAAC;AAEjE;EACA,MAAMgH,eAAe,GAAGA,MAAK;AAC3B,IAAA,IAAI,CAAClB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA;AACAsH,IAAAA,eAAe,CAACtH,OAAO,GAAGY,UAAU,CAAC,MAAK;AACxC,MAAA,IAAI,CAACyF,aAAa,CAACrG,OAAO,EAAE;AAE5B,MAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,MAAA,MAAMuC,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE8B,aAAa,CAAC/G,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAC7H,MAAA,MAAMyH,cAAc,GAAG,CAACjB,sBAAsB,CAACxG,OAAO;AACtD,MAAA,MAAM0H,yBAAyB,GAAGjB,2BAA2B,CAACzG,OAAO;MACrE4G,aAAa,CAAC5G,OAAO,GAAG,KAAK;AAC7B,MAAA,MAAMmL,SAAS,GAAGC,OAAO,CAACtF,WAAW,CAAC0B,QAAQ,EAAE3B,QAAQ,EAAE,IAAI,CAAC,CAAC;AAChE,MAAA,MAAMwF,oBAAoB,GAAGf,oBAAoB,CAACtK,OAAO,IAAI,IAAI;AACjE,MAAA,IAAImL,SAAS,EAAE;QACb1E,2BAA2B,CAACzG,OAAO,GAAG,KAAK;AAC7C;MACA,IAAI,CAACmL,SAAS,EAAE;AACd,QAAA,MAAMzG,SAAS,GAAG8C,QAAQ,GAAGT,aAAa,CAAC/G,OAAO;QAClD,MAAM2E,YAAY,GAAGvC,IAAI,CAACuF,MAAM,EAAE,GAAG,KAAK;QAC1CnD,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAEC,YAAY,EAAEkC,mBAAmB,CAAC7G,OAAO,CAAC;AACvG;AACA,MAAA,IAAI,CAACmL,SAAS,IAAIE,oBAAoB,EAAE;QACtC5E,2BAA2B,CAACzG,OAAO,GAAG,KAAK;AAC3C+K,QAAAA,yBAAyB,EAAE;QAC3BvE,sBAAsB,CAACxG,OAAO,GAAG,KAAK;QACtCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAC9B,QAAA;AACF;AACA,MAAA,IAAI,CAACmL,SAAS,IAAIb,oBAAoB,CAACtK,OAAO,IAAI,IAAI,IAAIqK,iCAAiC,CAACrK,OAAO,IAAI,IAAI,EAAE;QAC3GqK,iCAAiC,CAACrK,OAAO,GAAG,IAAI;AAClD;AACA,MAAA,MAAMsL,oBAAoB,GAAGjB,iCAAiC,CAACrK,OAAO,IAAI,IAAI;AAC9E,MAAA,IAAI,CAACmL,SAAS,IAAI1D,cAAc,IAAIC,yBAAyB,EAAE;QAC7DjB,2BAA2B,CAACzG,OAAO,GAAG,KAAK;QAC3C,IAAI,CAACsL,oBAAoB,EAAE;AACzB5L,UAAAA,+BAA+B,CAAC4G,QAAQ,CAACtG,OAAO,CAACwH,QAAQ,CAAC,CAAC;AAC7D;AACF;MACAhB,sBAAsB,CAACxG,OAAO,GAAG,KAAK;MACtCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;KAC/B,EAAE,GAAG,CAAC;GACR;AAED;EACA,MAAM6H,YAAY,GAAGA,MAAK;AACxB,IAAA,IAAI,CAACxB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA,IAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,IAAA,MAAM6C,EAAE,GAAGf,aAAa,CAAC/G,OAAO;AAChC,IAAA,MAAMwH,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE6C,EAAE,EAAEjB,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAC1G,IAAA,MAAM+H,GAAG,GAAGxB,oBAAoB,CAACvG,OAAO;IACxC,IAAIwH,QAAQ,KAAKO,GAAG,EAAE;MACpB,IAAI,CAACvB,sBAAsB,CAACxG,OAAO,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QAC5DyG,2BAA2B,CAACzG,OAAO,GAAG,IAAI;AAC5C;MACA,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QACzBwG,sBAAsB,CAACxG,OAAO,GAAG,KAAK;AACxC;AACF;IACA,IAAIwH,QAAQ,KAAKd,YAAY,EAAE;MAC7BC,eAAe,CAACa,QAAQ,CAAC;AAC3B;IACA,IAAI8C,oBAAoB,CAACtK,OAAO,EAAE;AAChC+K,MAAAA,yBAAyB,EAAE;AAC7B;GACD;AAED;EACA,MAAM/C,UAAU,GAAGrC,KAAK,CAACsC,GAAG,CAAC,CAACC,IAAI,EAAEN,KAAK,KAAI;AAC3C,IAAA,MAAMO,OAAO,GAAGvC,QAAQ,IAAIsC,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,GAAGA,IAAI,CAACtC,QAAQ,CAAC,GAAGsC,IAAI;AAEpF,IAAA,OAAAE,eAAA,CACGC,IAAI,EAAAC,UAAA,CAAA;AACHC,MAAAA,EAAE,EAAE,CAAA,YAAA,EAAe1C,QAAQ,CAAA,CAAA,EAAI+B,KAAK,CAAE,CAAA;AACtC7D,MAAAA,GAAG,EAAE6D,KAAK;MAAAY,GAAA,EACJC,EAAE,IAAMnC,QAAQ,CAACtG,OAAO,CAAC4H,KAAK,CAAC,GAAGa,EAAG;MAC3CC,SAAS,EAAE,oBAAoBd,KAAK,KAAKlB,YAAY,GAAG,8BAA8B,GAAG,EAAE,CAAA;AAAE,KAAA,EACxFR,qBAAqB,GACtB;MAAEyC,OAAO,EAAEA,MAAMnI,cAAc,CAAC,CAAeqF,YAAAA,EAAAA,QAAQ,CAAI+B,CAAAA,EAAAA,KAAK,CAAE,CAAA;KAAG,GACrE,EAAE,EAAA;AAAA,MAAA,IACNgB,KAAKA,GAAA;QAAA,OAAE;AACLC,UAAAA,MAAM,EAAEhI,kBAAkB;AAC1BiI,UAAAA,KAAK,EAAElB,KAAK,KAAKlB,YAAY,GACxBT,MAAM,CAAC8C,iBAAiB,IAAIjG,SAAS,GACrCmD,MAAM,CAAC+C,gBAAgB,IAAIlG;SACjC;AAAA,OAAA;AAAAmG,MAAAA,QAAA,EAEAd;AAAO,KAAA,CAAA,CAAA;AAGd,GAAC,CAAC;EAEF,MAAMe,eAAe,GAAG,CACtB,GAAG,IAAIC,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAauF,UAAAA,EAAAA,GAAG,CAAE,CAAA;IACvBZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;GAEtC,CAAA,CAAC,EACJ,GAAGmH,UAAU,EACb,GAAG,IAAImB,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAgBuF,aAAAA,EAAAA,GAAG,CAAE,CAAA;IAC1BZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;AAAE,GAAA,CAExC,CAAC,CACL;EAED,MAAM0I,oBAAoB,GAAGrD,qBAAqB,GAC9C;IAAEhG,cAAc;AAAEsJ,IAAAA,uBAAuB,EAAE;GAAmB,GAC9D,EAAE;EAEN,OAAApB,eAAA,CACGC,IAAI,EAAA;IAACK,SAAS,EAAA,oBAAA;AAAA,IAAA,IAAAO,QAAA,GAAA;MAAA,OAAAb,CAAAA,eAAA,CACZC,IAAI,EAAA;QAACK,SAAS,EAAA;AAAA,OAAA,CAAA,EAAAN,eAAA,CACdC,IAAI,EAAAC,UAAA,CAAA;QACHI,SAAS,EAAA;AAAA,OAAA,EACJvC,cAAc,GAAG;AAAEyC,QAAAA,KAAK,EAAEzC;OAAgB,GAAG,EAAE,CAAA,CAAA,EAAAiC,eAAA,CAErDqB,UAAU,EAAAnB,UAAA,CAAA;AAAAE,QAAAA,GAAA,EACJnC,aAAa;QAClBqD,OAAO,EAAA,IAAA;AACPC,QAAAA,aAAa,EAAE,KAAK;QACpBjB,SAAS,EAAA,sBAAA;AACTE,QAAAA,KAAK,EAAE;UACLC,MAAM,EAAEhI,kBAAkB,GAAGC;SAC9B;AACDmE,QAAAA,SAAS,EAAEmB;AAAe,OAAA,EACtBmD,oBAAoB,EAAA;AACxBK,QAAAA,QAAQ,EAAE/B,YAAY;QACtBgC,YAAY,EAAEA;UAAQjD,aAAa,CAAC5G,OAAO,GAAG,IAAI;SAAE;AACpD8J,QAAAA,WAAW,EAAEvC,eAAe;QAC5BwC,mBAAmB,EAAA,IAAA;AAAAd,QAAAA,QAAA,EAElBC;AAAe,OAAA,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,CAAA;AAIxB;AAEA;AACM,SAAUqC,eAAeA,CAAC7F,KAAuB,EAAA;EACrD,MAAM;AACJC,IAAAA,KAAK,GAAG,EAAE;IACVE,QAAQ;IACR2F,SAAS;AACTxF,IAAAA,aAAa,GAAG,CAAC;IACjBC,MAAM,GAAG,EAAE;AACXC,IAAAA,qBAAqB,GAAG;AAAI,GAC7B,GAAGR,KAAK;AAET,EAAA,MAAMS,cAAc,GAAGF,MAAM,CAAChF,SAAS,GAAGD,iBAAiB,CAACiF,MAAM,CAAChF,SAAS,CAAC,GAAG,IAAI;EACpF,MAAM,CAACmF,eAAe,EAAE3B,kBAAkB,CAAC,GAAGrE,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACH,cAAc,EAAEM,cAAc,CAAC,GAAGP,2BAA2B,EAAE;AACtE,EAAA,MAAMoG,aAAa,GAAGjG,KAAK,CAACG,MAAM,CAAiB,IAAI,CAAC;AACxD,EAAA,MAAM+F,QAAQ,GAAGlG,KAAK,CAACG,MAAM,CAAyB,EAAE,CAAC;AACzD,EAAA,MAAMgG,oBAAoB,GAAGnG,KAAK,CAACG,MAAM,CAACyF,aAAa,CAAC;EACxDO,oBAAoB,CAACvG,OAAO,GAAGgG,aAAa;AAC5C,EAAA,MAAMQ,sBAAsB,GAAGpG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAClD,EAAA,MAAMkG,2BAA2B,GAAGrG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;EACvD,MAAM,CAACmG,YAAY,EAAEC,eAAe,CAAC,GAAGvG,KAAK,CAACC,QAAQ,CAAC2F,aAAa,CAAC;AACrE,EAAA,MAAMY,aAAa,GAAGxG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAEzC,EAAA,MAAMsG,mBAAmB,GAAGzG,KAAK,CAACG,MAAM,CAAC,CAAC,CAAC;AAC3C,EAAA,MAAMuG,mBAAmB,GAAG1G,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAC/C,EAAA,MAAMwG,aAAa,GAAG3G,KAAK,CAACG,MAAM,CAACM,kBAAkB,CAAC;AAEtD;EACAT,KAAK,CAAC4G,SAAS,CAAC,MAAK;IACnBnH,IAAI,CAACoH,aAAa,CAAC;MACjBC,OAAO,EAAGlE,GAAG,IAAI;AACf6D,QAAAA,mBAAmB,CAAC7G,OAAO,GAAGgE,yBAAyB,CAAChB,GAAG,CAAC;AAC5D8D,QAAAA,mBAAmB,CAAC9G,OAAO,GAAG+C,uBAAuB,CAACC,GAAG,CAAC;AAC1D+D,QAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;OAC7H;MACDmH,IAAI,EAAEA,MAAK;QACTN,mBAAmB,CAAC7G,OAAO,GAAG,CAAC;QAC/B8G,mBAAmB,CAAC9G,OAAO,GAAG,KAAK;AACrC;AACD,KAAA,CAAC;GACH,EAAE,EAAE,CAAC;EAENI,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnBD,IAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;GAC7H,EAAE,CAAC2F,KAAK,CAACzD,MAAM,CAAC,CAAC,CAAA;AAElB;EACA9B,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnB,IAAA,IAAIX,aAAa,CAACrG,OAAO,IAAI2F,KAAK,CAACzD,MAAM,GAAG,CAAC,IAAI,CAAC0E,aAAa,CAAC5G,OAAO,EAAE;MACvEwG,sBAAsB,CAACxG,OAAO,GAAG,IAAI;AACrC,MAAA,MAAM0E,SAAS,GAAGsB,aAAa,GAAGe,aAAa,CAAC/G,OAAO;MACvDwE,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAE5B,SAAS,EAAE+D,mBAAmB,CAAC7G,OAAO,CAAC;MAClG2G,eAAe,CAACX,aAAa,CAAC;AAC9B,MAAA,MAAMoB,GAAG,GAAGxG,UAAU,CAAC,MAAK;QAC1B4F,sBAAsB,CAACxG,OAAO,GAAG,KAAK;OACvC,EAAE,GAAG,CAAC;AACP,MAAA,OAAO,MAAMqH,YAAY,CAACD,GAAG,CAAC;AAChC;AACF,GAAC,EAAE,CAACpB,aAAa,EAAEL,KAAK,CAAC,CAAC;AAE1B;AACA,EAAA,MAAM2B,eAAe,GAAGlH,KAAK,CAACG,MAAM,CAAwB,IAAI,CAAC;AAEjE;EACA,MAAMgH,eAAe,GAAGA,MAAK;AAC3B,IAAA,IAAI,CAAClB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AAEA;AACAsH,IAAAA,eAAe,CAACtH,OAAO,GAAGY,UAAU,CAAC,MAAK;AACxC,MAAA,IAAI,CAACyF,aAAa,CAACrG,OAAO,EAAE;AAE5B,MAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,MAAA,MAAMuC,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE8B,aAAa,CAAC/G,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAE7H,MAAA,MAAMyH,cAAc,GAAG,CAACjB,sBAAsB,CAACxG,OAAO;AACtD,MAAA,MAAM0H,yBAAyB,GAAGjB,2BAA2B,CAACzG,OAAO;MAErE4G,aAAa,CAAC5G,OAAO,GAAG,KAAK;AAC7B,MAAA,MAAM0E,SAAS,GAAG8C,QAAQ,GAAGT,aAAa,CAAC/G,OAAO;MAClD,MAAM2E,YAAY,GAAGvC,IAAI,CAACuF,MAAM,EAAE,GAAG,KAAK,CAAA;MAC1CnD,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAEC,YAAY,EAAEkC,mBAAmB,CAAC7G,OAAO,CAAC;AAErG;AACA,MAAA,IAAIwL,SAAS,EAAE;AACb;AACA,QAAA,MAAMC,SAAS,GAAG9F,KAAK,CAAC6B,QAAQ,CAAC,IAAI,EAAE;AACvC,QAAA,MAAMkE,YAAY,GAAG3J,QAAQ,CAAC0J,SAAS,CAACE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/DH,QAAAA,SAAS,CAACI,KAAK,CAACF,YAAY,CAAC,GAAG,CAAC,GAAGA,YAAY,EAAE3J,QAAQ,CAAC8D,QAAQ,CAAC,CAAC;AACvE;MACAY,2BAA2B,CAACzG,OAAO,GAAG,KAAK;MAC3C,IAAIyH,cAAc,IAAIC,yBAAyB,EAAE;AAC/ChI,QAAAA,+BAA+B,CAAC4G,QAAQ,CAACtG,OAAO,CAACwH,QAAQ,CAAC,CAAC;AAC7D;MACAhB,sBAAsB,CAACxG,OAAO,GAAG,KAAK;MACtCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;KAC/B,EAAE,GAAG,CAAC;GACR;AAED;EACA,MAAM6H,YAAY,GAAGA,MAAK;AACxB,IAAA,IAAI,CAACxB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA,IAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,IAAA,MAAM6C,EAAE,GAAGf,aAAa,CAAC/G,OAAO;AAChC,IAAA,MAAMwH,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE6C,EAAE,EAAEjB,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAC1G,IAAA,MAAM+H,GAAG,GAAGxB,oBAAoB,CAACvG,OAAO;IACxC,IAAIwH,QAAQ,KAAKO,GAAG,EAAE;MACpB,IAAI,CAACvB,sBAAsB,CAACxG,OAAO,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QAC5DyG,2BAA2B,CAACzG,OAAO,GAAG,IAAI;AAC5C;MACA,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QACzBwG,sBAAsB,CAACxG,OAAO,GAAG,KAAK;AACxC;AACF;IACA,IAAIwH,QAAQ,KAAKd,YAAY,EAAE;MAC7BC,eAAe,CAACa,QAAQ,CAAC;AAC3B;GACD;AAED;EACA,MAAMQ,UAAU,GAAGrC,KAAK,CAACsC,GAAG,CAAC,CAACC,IAAI,EAAEN,KAAK,KAAI;AAC3C,IAAA,OAAAQ,eAAA,CACGC,IAAI,EAAAC,UAAA,CAAA;AACHC,MAAAA,EAAE,EAAE,CAAA,YAAA,EAAe1C,QAAQ,CAAA,CAAA,EAAI+B,KAAK,CAAE,CAAA;AACtC7D,MAAAA,GAAG,EAAE6D,KAAK;MAAAY,GAAA,EACJC,EAAE,IAAMnC,QAAQ,CAACtG,OAAO,CAAC4H,KAAK,CAAC,GAAGa,EAAG;MAC3CC,SAAS,EAAE,oBAAoBd,KAAK,KAAKlB,YAAY,GAAG,8BAA8B,GAAG,EAAE,CAAA;AAAE,KAAA,EACxFR,qBAAqB,GACtB;MAAEyC,OAAO,EAAEA,MAAMnI,cAAc,CAAC,CAAeqF,YAAAA,EAAAA,QAAQ,CAAI+B,CAAAA,EAAAA,KAAK,CAAE,CAAA;KAAG,GACrE,EAAE,EAAA;AAAA,MAAA,IACNgB,KAAKA,GAAA;QAAA,OAAE;AACLC,UAAAA,MAAM,EAAEhI,kBAAkB;AAC1BiI,UAAAA,KAAK,EAAElB,KAAK,KAAKlB,YAAY,GACxBT,MAAM,CAAC8C,iBAAiB,IAAIjG,SAAS,GACrCmD,MAAM,CAAC+C,gBAAgB,IAAIlG;SACjC;AAAA,OAAA;AAAAmG,MAAAA,QAAA,EAEAf;AAAI,KAAA,CAAA,CAAA;AAGX,GAAC,CAAC;EAEF,MAAMgB,eAAe,GAAG,CACtB,GAAG,IAAIC,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAauF,UAAAA,EAAAA,GAAG,CAAE,CAAA;IACvBZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;GAEtC,CAAA,CAAC,EACJ,GAAGmH,UAAU,EACb,GAAG,IAAImB,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAgBuF,aAAAA,EAAAA,GAAG,CAAE,CAAA;IAC1BZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;AAAE,GAAA,CAExC,CAAC,CACL;EAED,MAAM0I,oBAAoB,GAAGrD,qBAAqB,GAC9C;IAAEhG,cAAc;AAAEsJ,IAAAA,uBAAuB,EAAE;GAAmB,GAC9D,EAAE;EAEN,OAAApB,eAAA,CACGC,IAAI,EAAA;IAACK,SAAS,EAAA,oBAAA;AAAA,IAAA,IAAAO,QAAA,GAAA;MAAA,OAAAb,CAAAA,eAAA,CACZC,IAAI,EAAA;QAACK,SAAS,EAAA;AAAA,OAAA,CAAA,EAAAN,eAAA,CACdC,IAAI,EAAAC,UAAA,CAAA;QACHI,SAAS,EAAA;AAAA,OAAA,EACJvC,cAAc,GAAG;AAAEyC,QAAAA,KAAK,EAAEzC;OAAgB,GAAG,EAAE,CAAA,CAAA,EAAAiC,eAAA,CAErDqB,UAAU,EAAAnB,UAAA,CAAA;AAAAE,QAAAA,GAAA,EACJnC,aAAa;QAClBqD,OAAO,EAAA,IAAA;AACPC,QAAAA,aAAa,EAAE,KAAK;QACpBjB,SAAS,EAAA,sBAAA;AACTE,QAAAA,KAAK,EAAE;UAAEC,MAAM,EAAEhI,kBAAkB,GAAGC;SAAsB;AAC5DmE,QAAAA,SAAS,EAAEmB;AAAe,OAAA,EACtBmD,oBAAoB,EAAA;AACxBK,QAAAA,QAAQ,EAAE/B,YAAY;QACtBgC,YAAY,EAAEA,MAAK;UAAGjD,aAAa,CAAC5G,OAAO,GAAG,IAAI;SAAE;AACpD8J,QAAAA,WAAW,EAAEvC,eAAe;QAC5BwC,mBAAmB,EAAA,IAAA;AAAAd,QAAAA,QAAA,EAElBC;AAAe,OAAA,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,CAAA;AAIxB;AAEA;AACM,SAAU2C,iBAAiBA,CAACnG,KAAuB,EAAA;EACvD,MAAM;AACJC,IAAAA,KAAK,GAAG,EAAE;IACVC,QAAQ;IACRC,QAAQ;IACRC,WAAW;AACXE,IAAAA,aAAa,GAAG,CAAC;AAAE;IACnBC,MAAM,GAAG,EAAE;AACXC,IAAAA,qBAAqB,GAAG;AAAI,GAC7B,GAAGR,KAAK;AAET,EAAA,MAAMS,cAAc,GAAGF,MAAM,CAAChF,SAAS,GAAGD,iBAAiB,CAACiF,MAAM,CAAChF,SAAS,CAAC,GAAG,IAAI;AACpF,EAAA,MAAMoF,aAAa,GAAGjG,KAAK,CAACG,MAAM,CAAM,IAAI,CAAC;EAC7C,MAAM,CAAC6F,eAAe,EAAE3B,kBAAkB,CAAC,GAAGrE,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACH,cAAc,EAAEM,cAAc,CAAC,GAAGP,2BAA2B,EAAE;EACtE,MAAM,CAACyG,YAAY,EAAEC,eAAe,CAAC,GAAGvG,KAAK,CAACC,QAAQ,CAAC2F,aAAa,CAAC;AACrE,EAAA,MAAMY,aAAa,GAAGxG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAEzC,EAAA,MAAMsG,mBAAmB,GAAGzG,KAAK,CAACG,MAAM,CAAC,CAAC,CAAC;AAC3C,EAAA,MAAMuG,mBAAmB,GAAG1G,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAC/C,EAAA,MAAMwG,aAAa,GAAG3G,KAAK,CAACG,MAAM,CAACM,kBAAkB,CAAC;AACtD,EAAA,MAAMyF,QAAQ,GAAGlG,KAAK,CAACG,MAAM,CAAyB,EAAE,CAAC;AACzD,EAAA,MAAMgG,oBAAoB,GAAGnG,KAAK,CAACG,MAAM,CAACyF,aAAa,CAAC;EACxDO,oBAAoB,CAACvG,OAAO,GAAGgG,aAAa;AAC5C,EAAA,MAAMQ,sBAAsB,GAAGpG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAClD,EAAA,MAAMkG,2BAA2B,GAAGrG,KAAK,CAACG,MAAM,CAAC,KAAK,CAAC;AAEvD;EACAH,KAAK,CAAC4G,SAAS,CAAC,MAAK;IACnBnH,IAAI,CAACoH,aAAa,CAAC;MACjBC,OAAO,EAAGlE,GAAG,IAAI;AACf6D,QAAAA,mBAAmB,CAAC7G,OAAO,GAAGgE,yBAAyB,CAAChB,GAAG,CAAC;AAC5D8D,QAAAA,mBAAmB,CAAC9G,OAAO,GAAG+C,uBAAuB,CAACC,GAAG,CAAC;AAC1D+D,QAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;OAC7H;MACDmH,IAAI,EAAEA,MAAK;QACTN,mBAAmB,CAAC7G,OAAO,GAAG,CAAC;QAC/B8G,mBAAmB,CAAC9G,OAAO,GAAG,KAAK;AACrC;AACD,KAAA,CAAC;GACH,EAAE,EAAE,CAAC;EAENI,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnBD,IAAAA,aAAa,CAAC/G,OAAO,GAAGqF,mBAAmB,CAACgB,aAAa,CAACrG,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;GAC7H,EAAE,CAAC2F,KAAK,CAACzD,MAAM,CAAC,CAAC,CAAA;AAElB;EACA9B,KAAK,CAAC4G,SAAS,CAAC,MAAK;AACnB,IAAA,IAAIX,aAAa,CAACrG,OAAO,IAAI2F,KAAK,CAACzD,MAAM,GAAG,CAAC,IAAI,CAAC0E,aAAa,CAAC5G,OAAO,EAAE;MACvEwG,sBAAsB,CAACxG,OAAO,GAAG,IAAI;AACrC,MAAA,MAAM0E,SAAS,GAAGsB,aAAa,GAAGe,aAAa,CAAC/G,OAAO;MACvDwE,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAE5B,SAAS,EAAE+D,mBAAmB,CAAC7G,OAAO,CAAC;MAClG2G,eAAe,CAACX,aAAa,CAAC;AAC9B,MAAA,MAAMoB,GAAG,GAAGxG,UAAU,CAAC,MAAK;QAC1B4F,sBAAsB,CAACxG,OAAO,GAAG,KAAK;OACvC,EAAE,GAAG,CAAC;AACP,MAAA,OAAO,MAAMqH,YAAY,CAACD,GAAG,CAAC;AAChC;AACF,GAAC,EAAE,CAACpB,aAAa,EAAEL,KAAK,CAAC,CAAC;AAE1B;AACA,EAAA,MAAM2B,eAAe,GAAGlH,KAAK,CAACG,MAAM,CAAwB,IAAI,CAAC;EACjE,MAAMgH,eAAe,GAAGA,MAAK;AAC3B,IAAA,IAAI,CAAClB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA;AACAsH,IAAAA,eAAe,CAACtH,OAAO,GAAGY,UAAU,CAAC,MAAK;AACxC,MAAA,IAAI,CAACyF,aAAa,CAACrG,OAAO,EAAE;AAE5B,MAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,MAAA,MAAMuC,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE8B,aAAa,CAAC/G,OAAO,EAAE6G,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAE7H,MAAA,MAAMyH,cAAc,GAAG,CAACjB,sBAAsB,CAACxG,OAAO;AACtD,MAAA,MAAM0H,yBAAyB,GAAGjB,2BAA2B,CAACzG,OAAO;MAErE4G,aAAa,CAAC5G,OAAO,GAAG,KAAK;AAC7B,MAAA,MAAM0E,SAAS,GAAG8C,QAAQ,GAAGT,aAAa,CAAC/G,OAAO;MAClD,MAAM2E,YAAY,GAAGvC,IAAI,CAACuF,MAAM,EAAE,GAAG,KAAK,CAAA;MAC1CnD,2BAA2B,CAACC,kBAAkB,EAAEC,SAAS,EAAEC,YAAY,EAAEkC,mBAAmB,CAAC7G,OAAO,CAAC;MACrG8F,WAAW,CAAC0B,QAAQ,EAAE3B,QAAQ,EAAE,KAAK,EAAE4B,cAAc,CAAC;MACtDhB,2BAA2B,CAACzG,OAAO,GAAG,KAAK;MAC3C,IAAIyH,cAAc,IAAIC,yBAAyB,EAAE;AAC/ChI,QAAAA,+BAA+B,CAAC4G,QAAQ,CAACtG,OAAO,CAACwH,QAAQ,CAAC,CAAC;AAC7D;MACAhB,sBAAsB,CAACxG,OAAO,GAAG,KAAK;MACtCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;KAC/B,EAAE,GAAG,CAAC;GACR;AAED;EACA,MAAM6H,YAAY,GAAGA,MAAK;AACxB,IAAA,IAAI,CAACxB,aAAa,CAACrG,OAAO,EAAE;IAC5B,IAAIsH,eAAe,CAACtH,OAAO,EAAE;AAC3BqH,MAAAA,YAAY,CAACC,eAAe,CAACtH,OAAO,CAAC;MACrCsH,eAAe,CAACtH,OAAO,GAAG,IAAI;AAChC;AACA,IAAA,MAAMiF,SAAS,GAAGoB,aAAa,CAACrG,OAAO,CAACiF,SAAS;AACjD,IAAA,MAAM6C,EAAE,GAAGf,aAAa,CAAC/G,OAAO;AAChC,IAAA,MAAMwH,QAAQ,GAAGxC,gBAAgB,CAACC,SAAS,EAAE6C,EAAE,EAAEjB,mBAAmB,CAAC7G,OAAO,EAAE8G,mBAAmB,CAAC9G,OAAO,CAAC;AAC1G,IAAA,MAAM+H,GAAG,GAAGxB,oBAAoB,CAACvG,OAAO;IACxC,IAAIwH,QAAQ,KAAKO,GAAG,EAAE;MACpB,IAAI,CAACvB,sBAAsB,CAACxG,OAAO,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QAC5DyG,2BAA2B,CAACzG,OAAO,GAAG,IAAI;AAC5C;MACA,IAAI4G,aAAa,CAAC5G,OAAO,EAAE;QACzBwG,sBAAsB,CAACxG,OAAO,GAAG,KAAK;AACxC;AACF;IACA,IAAIwH,QAAQ,KAAKd,YAAY,EAAE;MAC7BC,eAAe,CAACa,QAAQ,CAAC;AAC3B;GACD;AAED;EACA,MAAMQ,UAAU,GAAGrC,KAAK,CAACsC,GAAG,CAAC,CAACC,IAAI,EAAEN,KAAK,KAAI;AAC3C,IAAA,MAAMO,OAAO,GAAGvC,QAAQ,IAAIsC,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,GAAGA,IAAI,CAACtC,QAAQ,CAAC,GAAGsC,IAAI;AAEpF,IAAA,OAAAE,eAAA,CACGC,IAAI,EAAAC,UAAA,CAAA;AACHC,MAAAA,EAAE,EAAE,CAAA,YAAA,EAAe1C,QAAQ,CAAA,CAAA,EAAI+B,KAAK,CAAE,CAAA;AACtC7D,MAAAA,GAAG,EAAE6D,KAAK;MAAAY,GAAA,EACJC,EAAE,IAAMnC,QAAQ,CAACtG,OAAO,CAAC4H,KAAK,CAAC,GAAGa,EAAG;MAC3CC,SAAS,EAAE,oBAAoBd,KAAK,KAAKlB,YAAY,GAAG,8BAA8B,GAAG,EAAE,CAAA;AAAE,KAAA,EACxFR,qBAAqB,GACtB;MAAEyC,OAAO,EAAEA,MAAMnI,cAAc,CAAC,CAAeqF,YAAAA,EAAAA,QAAQ,CAAI+B,CAAAA,EAAAA,KAAK,CAAE,CAAA;KAAG,GACrE,EAAE,EAAA;AAAA,MAAA,IACNgB,KAAKA,GAAA;QAAA,OAAE;AACLC,UAAAA,MAAM,EAAEhI,kBAAkB;AAC1BiI,UAAAA,KAAK,EAAElB,KAAK,KAAKlB,YAAY,GACxBT,MAAM,CAAC8C,iBAAiB,IAAIjG,SAAS,GACrCmD,MAAM,CAAC+C,gBAAgB,IAAIlG;SACjC;AAAA,OAAA;AAAAmG,MAAAA,QAAA,EAEAd;AAAO,KAAA,CAAA,CAAA;AAGd,GAAC,CAAC;EAEF,MAAMe,eAAe,GAAG,CACtB,GAAG,IAAIC,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAauF,UAAAA,EAAAA,GAAG,CAAE,CAAA;IACvBZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;GAEtC,CAAA,CAAC,EACJ,GAAGmH,UAAU,EACb,GAAG,IAAImB,KAAK,CAACpI,kBAAkB,CAAC,CAC7BqI,IAAI,CAAC,IAAI,CAAC,CACVnB,GAAG,CAAC,CAACoB,CAAC,EAAEC,GAAG,KAAAlB,eAAA,CACTC,IAAI,EAAA;IACHtE,GAAG,EAAE,CAAgBuF,aAAAA,EAAAA,GAAG,CAAE,CAAA;IAC1BZ,SAAS,EAAA,4CAAA;AACTE,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEhI;AAAkB;AAAE,GAAA,CAExC,CAAC,CACL;EACD,MAAM0I,oBAAoB,GAAGrD,qBAAqB,GAC9C;IAAEhG,cAAc;AAAEsJ,IAAAA,uBAAuB,EAAE;GAAmB,GAC9D,EAAE;EAEN,OAAApB,eAAA,CACGC,IAAI,EAAA;IAACK,SAAS,EAAA,oBAAA;AAAA,IAAA,IAAAO,QAAA,GAAA;MAAA,OAAAb,CAAAA,eAAA,CACZC,IAAI,EAAA;QAACK,SAAS,EAAA;AAAA,OAAA,CAAA,EAAAN,eAAA,CACdC,IAAI,EAAAC,UAAA,CAAA;QACHI,SAAS,EAAA;AAAA,OAAA,EACJvC,cAAc,GAAG;AAAEyC,QAAAA,KAAK,EAAEzC;OAAgB,GAAG,EAAE,CAAA,CAAA,EAAAiC,eAAA,CAErDqB,UAAU,EAAAnB,UAAA,CAAA;AAAAE,QAAAA,GAAA,EACJnC,aAAa;QAClBqD,OAAO,EAAA,IAAA;AACPC,QAAAA,aAAa,EAAE,KAAK;QACpBjB,SAAS,EAAA,sBAAA;AACTE,QAAAA,KAAK,EAAE;UAAEC,MAAM,EAAEhI,kBAAkB,GAAGC;SAAsB;AAC5DmE,QAAAA,SAAS,EAAEmB;AAAe,OAAA,EACtBmD,oBAAoB,EAAA;AACxBK,QAAAA,QAAQ,EAAE/B,YAAY;QACtBgC,YAAY,EAAEA,MAAK;UAAGjD,aAAa,CAAC5G,OAAO,GAAG,IAAI;SAAE;AACpD8J,QAAAA,WAAW,EAAEvC,eAAe;QAC5BwC,mBAAmB,EAAA,IAAA;AAAAd,QAAAA,QAAA,EAElBC;AAAe,OAAA,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,CAAA;AAIxB;AAEA;AACM,SAAU4C,WAAWA,CAACpG,KAAuB,EAAA;EACjD,QAAQA,KAAK,CAACqG,IAAI;AAChB,IAAA,KAAK,MAAM;AACT,MAAA,OAAA3D,eAAA,CAAQ4B,eAAe,EAAKtE,KAAK,CAAA;AACnC,IAAA,KAAK,MAAM;AACT,MAAA,OAAA0C,eAAA,CAAQmD,eAAe,EAAK7F,KAAK,CAAA;AACnC,IAAA,KAAK,QAAQ;AACX,MAAA,OAAA0C,eAAA,CAAQyD,iBAAiB,EAAKnG,KAAK,CAAA;AACrC,IAAA;AACE,MAAA,OAAA0C,eAAA,CAAQ3C,gBAAgB,EAAKC,KAAK,CAAA;AACtC;AACF;;;;"}
@@ -66,6 +66,8 @@ function scrollHorizontal(container, scrollLeft, left, isAnimation) {
66
66
  }
67
67
  scrollLeft.current = left;
68
68
  }
69
+ /** H5 等环境下 scrollTop 为整数,与带亚像素的受控值比较时允许该误差,避免反复 set scrollTop 与 scrollIntoView 打架 */
70
+ const CONTROLLED_SCROLL_EPSILON = 0.5;
69
71
  function ScrollView(props) {
70
72
  var _a;
71
73
  const _scrollTop = useRef(null);
@@ -74,13 +76,24 @@ function ScrollView(props) {
74
76
  const scrollEndTimerRef = useRef(null);
75
77
  const isScrollingRef = useRef(false);
76
78
  const isInitializedRef = useRef(false);
79
+ /** 与 props.scrollIntoView 比对,同 id 时只走受控 scrollTop,避免与上次锚点反复互顶 */
80
+ const lastAppliedScrollIntoViewIdRef = useRef(null);
77
81
  const [containerHeight, setContainerHeight] = useState(0);
78
82
  const onTouchMove = e => {
79
83
  e.stopPropagation();
80
84
  };
85
+ const applyControlledScrollTopLeft = p => {
86
+ const isAnimation = !!p.scrollWithAnimation;
87
+ const eps = CONTROLLED_SCROLL_EPSILON;
88
+ if (p.scrollY && typeof p.scrollTop === 'number' && (_scrollTop.current === null || Math.abs(p.scrollTop - _scrollTop.current) >= eps)) {
89
+ setTimeout(() => scrollVertical(container, _scrollTop, p.scrollTop, isAnimation), 10);
90
+ }
91
+ if (p.scrollX && typeof p.scrollLeft === 'number' && (_scrollLeft.current === null || Math.abs(p.scrollLeft - _scrollLeft.current) >= eps)) {
92
+ setTimeout(() => scrollHorizontal(container, _scrollLeft, p.scrollLeft, isAnimation), 10);
93
+ }
94
+ };
81
95
  const handleScroll = function (props) {
82
96
  let isInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
83
- // scrollIntoView
84
97
  if (props.scrollIntoView && typeof props.scrollIntoView === 'string' && document && document.querySelector && document.querySelector(`#${props.scrollIntoView}`)) {
85
98
  if (isInit) {
86
99
  setTimeout(() => scrollIntoView(props.scrollIntoView, props.scrollWithAnimation, !!props.scrollX, !!props.scrollY, props.scrollIntoViewAlignment), 500);
@@ -88,25 +101,28 @@ function ScrollView(props) {
88
101
  scrollIntoView(props.scrollIntoView, props.scrollWithAnimation, !!props.scrollX, !!props.scrollY, props.scrollIntoViewAlignment);
89
102
  }
90
103
  } else {
91
- const isAnimation = !!props.scrollWithAnimation;
92
- // Y 轴滚动
93
- if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== _scrollTop.current) {
94
- setTimeout(() => scrollVertical(container, _scrollTop, props.scrollTop, isAnimation), 10);
95
- }
96
- // X 轴滚动
97
- if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== _scrollLeft.current) {
98
- setTimeout(() => scrollHorizontal(container, _scrollLeft, props.scrollLeft, isAnimation), 10);
99
- }
104
+ applyControlledScrollTopLeft(props);
100
105
  }
101
106
  };
102
107
  useEffect(() => {
103
108
  handleScroll(props, true);
104
109
  isInitializedRef.current = true;
105
110
  }, []);
106
- // 监听 scrollTop、scrollLeftscrollIntoView 的变化(排除初始化)
111
+ // scrollTop / scrollLeft / scrollIntoView 受控同步(跳过 mount 时的 init effect)
107
112
  useEffect(() => {
108
- if (isInitializedRef.current && container.current) {
109
- handleScroll(props, false);
113
+ if (!isInitializedRef.current || !container.current) return;
114
+ const sitv = props.scrollIntoView;
115
+ const sitvOk = Boolean(sitv && typeof sitv === 'string' && document && document.querySelector && document.querySelector(`#${sitv}`));
116
+ if (sitvOk) {
117
+ if (sitv !== lastAppliedScrollIntoViewIdRef.current) {
118
+ scrollIntoView(sitv, props.scrollWithAnimation, !!props.scrollX, !!props.scrollY, props.scrollIntoViewAlignment);
119
+ lastAppliedScrollIntoViewIdRef.current = typeof sitv === 'string' ? sitv : null;
120
+ } else {
121
+ applyControlledScrollTopLeft(props);
122
+ }
123
+ } else {
124
+ lastAppliedScrollIntoViewIdRef.current = null;
125
+ applyControlledScrollTopLeft(props);
110
126
  }
111
127
  }, [props.scrollTop, props.scrollLeft, props.scrollIntoView, props.scrollIntoViewAlignment, props.scrollWithAnimation, props.scrollX, props.scrollY]);
112
128
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/scroll-view/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { isFunction } from '@tarojs/shared'\nimport classNames from 'classnames'\n\nimport { ScrollElementContext } from '../../contexts/ScrollElementContext'\nimport { createForwardRefComponent, throttle } from '../../utils'\nimport { useEffect, useRef, useState } from '../../utils/hooks'\n\nimport type React from 'react'\n\nfunction easeOutScroll (from = 0, to = 0, callback) {\n if (from === to || typeof from !== 'number') {\n return\n }\n const change = to - from\n const dur = 500\n const sTime = +new Date()\n function linear (t, b, c, d) {\n return (c * t) / d + b\n }\n const isLarger = to >= from\n\n function step () {\n from = linear(+new Date() - sTime, from, change, dur)\n if ((isLarger && from >= to) || (!isLarger && to >= from)) {\n callback(to)\n return\n }\n callback(from)\n requestAnimationFrame(step)\n }\n step()\n}\n\n/** 未开启的滚动轴使用 nearest 避免原生 scrollIntoView 沿该轴滚动整页 */\nfunction scrollIntoView (\n id = '',\n animated = true,\n scrollX = false,\n scrollY = false,\n scrollIntoViewAlignment?: ScrollLogicalPosition\n) {\n document.querySelector(`#${id}`)?.scrollIntoView({\n behavior: animated ? 'smooth' : 'auto',\n block: scrollY ? (scrollIntoViewAlignment || 'center') : 'nearest',\n inline: scrollX ? (scrollIntoViewAlignment || 'start') : 'nearest'\n })\n}\n\nfunction scrollVertical (container, scrollTop, top, isAnimation) {\n if (isAnimation) {\n easeOutScroll(scrollTop.current, top, pos => {\n if (container.current) container.current.scrollTop = pos\n })\n } else {\n if (container.current) container.current.scrollTop = top\n }\n scrollTop.current = top\n}\n\nfunction scrollHorizontal (container, scrollLeft, left, isAnimation) {\n if (isAnimation) {\n easeOutScroll(scrollLeft.current, left, pos => {\n if (container.current) container.current.scrollLeft = pos\n })\n } else {\n if (container.current) container.current.scrollLeft = left\n }\n scrollLeft.current = left\n}\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n scrollX: boolean\n scrollY: boolean\n upperThreshold: number\n lowerThreshold: number\n scrollTop: number\n scrollLeft: number\n scrollIntoView?: string\n scrollIntoViewAlignment?: ScrollLogicalPosition\n scrollWithAnimation: boolean\n enableBackToTop?: boolean\n forwardedRef?: React.MutableRefObject<HTMLDivElement>\n onScrollToUpper: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollToLower: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScroll: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollStart?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollEnd?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchMove: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchStart?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchEnd?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n showScrollbar?: boolean // 新增参数,默认true\n enhanced?: boolean // 新增参数,默认false\n /** 嵌套滚动:内容在滚动容器中的起始偏移(固定头部等场景) */\n startOffset?: number\n}\n\nfunction ScrollView (props: IProps) {\n const _scrollTop = useRef<any>(null)\n const _scrollLeft = useRef<any>(null)\n const container = useRef<any>(null)\n const scrollEndTimerRef = useRef<NodeJS.Timeout | null>(null)\n const isScrollingRef = useRef<boolean>(false)\n const isInitializedRef = useRef<boolean>(false)\n const [containerHeight, setContainerHeight] = useState(0)\n const onTouchMove = (e) => {\n e.stopPropagation()\n }\n\n const handleScroll = (props: IProps, isInit = false) => {\n // scrollIntoView\n if (\n props.scrollIntoView &&\n typeof props.scrollIntoView === 'string' &&\n document &&\n document.querySelector &&\n document.querySelector(`#${props.scrollIntoView}`)\n ) {\n if (isInit) {\n setTimeout(\n () =>\n scrollIntoView(\n props.scrollIntoView,\n props.scrollWithAnimation,\n !!props.scrollX,\n !!props.scrollY,\n props.scrollIntoViewAlignment\n ),\n 500\n )\n } else {\n scrollIntoView(\n props.scrollIntoView,\n props.scrollWithAnimation,\n !!props.scrollX,\n !!props.scrollY,\n props.scrollIntoViewAlignment\n )\n }\n } else {\n const isAnimation = !!props.scrollWithAnimation\n // Y 轴滚动\n if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== _scrollTop.current) {\n setTimeout(() => scrollVertical(container, _scrollTop, props.scrollTop, isAnimation), 10)\n }\n // X 轴滚动\n if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== _scrollLeft.current) {\n setTimeout(() => scrollHorizontal(container, _scrollLeft, props.scrollLeft, isAnimation), 10)\n }\n }\n }\n\n useEffect(() => {\n handleScroll(props, true)\n isInitializedRef.current = true\n }, [])\n\n // 监听 scrollTop、scrollLeft、scrollIntoView 的变化(排除初始化)\n useEffect(() => {\n if (isInitializedRef.current && container.current) {\n handleScroll(props, false)\n }\n }, [\n props.scrollTop,\n props.scrollLeft,\n props.scrollIntoView,\n props.scrollIntoViewAlignment,\n props.scrollWithAnimation,\n props.scrollX,\n props.scrollY\n ])\n\n const {\n className,\n style = {},\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n scrollX,\n scrollY,\n showScrollbar = true, // 默认显示滚动条\n enhanced = false // 默认不增强\n } = props\n let { upperThreshold = 50, lowerThreshold = 50 } = props\n const cls = classNames(\n 'taro-scroll',\n {\n 'taro-scroll-view__scroll-x': scrollX,\n 'taro-scroll-view__scroll-y': scrollY,\n 'taro-scroll--hidebar': enhanced === true && showScrollbar === false,\n 'taro-scroll--enhanced': enhanced === true\n },\n className\n )\n upperThreshold = Number(upperThreshold)\n lowerThreshold = Number(lowerThreshold)\n const upperAndLower = e => {\n if (!container.current) return\n const { offsetWidth, offsetHeight, scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current\n if (\n onScrollToLower &&\n ((props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight) ||\n (props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth))\n ) {\n onScrollToLower(e)\n }\n if (\n onScrollToUpper &&\n ((props.scrollY && scrollTop <= upperThreshold) || (props.scrollX && scrollLeft <= upperThreshold))\n ) {\n onScrollToUpper(e)\n }\n }\n const upperAndLowerThrottle = throttle(upperAndLower, 200)\n const _onScroll = e => {\n const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current\n _scrollLeft.current = scrollLeft\n _scrollTop.current = scrollTop\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth\n }\n })\n\n // 处理滚动开始\n if (!isScrollingRef.current) {\n isScrollingRef.current = true\n if (props.onScrollStart) {\n props.onScrollStart(e)\n }\n }\n\n // 清除滚动结束定时器\n if (scrollEndTimerRef.current) {\n clearTimeout(scrollEndTimerRef.current)\n scrollEndTimerRef.current = null\n }\n\n // 设置滚动结束定时器(150ms 无滚动事件后触发)\n if (props.onScrollEnd) {\n scrollEndTimerRef.current = setTimeout(() => {\n if (isScrollingRef.current) {\n isScrollingRef.current = false\n props.onScrollEnd?.(e)\n }\n scrollEndTimerRef.current = null\n }, 150)\n }\n\n upperAndLowerThrottle(e)\n onScroll && onScroll(e)\n }\n const _onTouchMove = e => {\n isFunction(props.onTouchMove) ? props.onTouchMove(e) : onTouchMove(e)\n }\n const _onTouchStart = e => {\n if (isFunction(props.onTouchStart)) {\n props.onTouchStart(e)\n }\n }\n const _onTouchEnd = e => {\n if (isFunction(props.onTouchEnd)) {\n props.onTouchEnd(e)\n }\n }\n // 清理定时器\n useEffect(() => {\n return () => {\n if (scrollEndTimerRef.current) {\n clearTimeout(scrollEndTimerRef.current)\n scrollEndTimerRef.current = null\n }\n }\n }, [])\n\n // ScrollElementContext:嵌套滚动时向子组件提供 scrollRef、containerHeight、startOffset\n useEffect(() => {\n const el = container.current\n if (!el) return\n const update = () => {\n if (container.current) {\n setContainerHeight(container.current.clientHeight)\n }\n }\n update()\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(update) : null\n if (ro) {\n ro.observe(el)\n return () => ro.disconnect()\n }\n }, [])\n\n const scrollElementContextValue = {\n scrollRef: container,\n containerHeight,\n startOffset: props.startOffset ?? 0,\n }\n\n return (\n <ScrollElementContext.Provider value={scrollElementContextValue}>\n <div\n ref={e => {\n if (e) {\n container.current = e\n if (props.forwardedRef) props.forwardedRef.current = e\n }\n }}\n style={style}\n className={cls}\n onScroll={_onScroll}\n onTouchMove={_onTouchMove}\n onTouchStart={_onTouchStart}\n onTouchEnd={_onTouchEnd}\n >\n {props.children}\n </div>\n </ScrollElementContext.Provider>\n )\n}\n\nexport default createForwardRefComponent(ScrollView)\n"],"names":["easeOutScroll","from","arguments","length","undefined","to","callback","change","dur","sTime","Date","linear","t","b","c","d","isLarger","step","requestAnimationFrame","scrollIntoView","id","animated","scrollX","scrollY","scrollIntoViewAlignment","_a","document","querySelector","behavior","block","inline","scrollVertical","container","scrollTop","top","isAnimation","current","pos","scrollHorizontal","scrollLeft","left","ScrollView","props","_scrollTop","useRef","_scrollLeft","scrollEndTimerRef","isScrollingRef","isInitializedRef","containerHeight","setContainerHeight","useState","onTouchMove","e","stopPropagation","handleScroll","isInit","setTimeout","scrollWithAnimation","useEffect","className","style","onScroll","onScrollToUpper","onScrollToLower","showScrollbar","enhanced","upperThreshold","lowerThreshold","cls","classNames","Number","upperAndLower","offsetWidth","offsetHeight","scrollHeight","scrollWidth","upperAndLowerThrottle","throttle","_onScroll","Object","defineProperty","enumerable","writable","value","onScrollStart","clearTimeout","onScrollEnd","call","_onTouchMove","isFunction","_onTouchStart","onTouchStart","_onTouchEnd","onTouchEnd","el","update","clientHeight","ro","ResizeObserver","observe","disconnect","scrollElementContextValue","scrollRef","startOffset","_$createComponent","ScrollElementContext","Provider","children","_el$","_tmpl$","$$touchend","$$touchstart","$$touchmove","addEventListener","_$use","forwardedRef","_$insert","_$effect","_$p","_$style","createForwardRefComponent","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/scroll-view/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { isFunction } from '@tarojs/shared'\nimport classNames from 'classnames'\n\nimport { ScrollElementContext } from '../../contexts/ScrollElementContext'\nimport { createForwardRefComponent, throttle } from '../../utils'\nimport { useEffect, useRef, useState } from '../../utils/hooks'\n\nimport type React from 'react'\n\nfunction easeOutScroll (from = 0, to = 0, callback) {\n if (from === to || typeof from !== 'number') {\n return\n }\n const change = to - from\n const dur = 500\n const sTime = +new Date()\n function linear (t, b, c, d) {\n return (c * t) / d + b\n }\n const isLarger = to >= from\n\n function step () {\n from = linear(+new Date() - sTime, from, change, dur)\n if ((isLarger && from >= to) || (!isLarger && to >= from)) {\n callback(to)\n return\n }\n callback(from)\n requestAnimationFrame(step)\n }\n step()\n}\n\n/** 未开启的滚动轴使用 nearest 避免原生 scrollIntoView 沿该轴滚动整页 */\nfunction scrollIntoView (\n id = '',\n animated = true,\n scrollX = false,\n scrollY = false,\n scrollIntoViewAlignment?: ScrollLogicalPosition\n) {\n document.querySelector(`#${id}`)?.scrollIntoView({\n behavior: animated ? 'smooth' : 'auto',\n block: scrollY ? (scrollIntoViewAlignment || 'center') : 'nearest',\n inline: scrollX ? (scrollIntoViewAlignment || 'start') : 'nearest'\n })\n}\n\nfunction scrollVertical (container, scrollTop, top, isAnimation) {\n if (isAnimation) {\n easeOutScroll(scrollTop.current, top, pos => {\n if (container.current) container.current.scrollTop = pos\n })\n } else {\n if (container.current) container.current.scrollTop = top\n }\n scrollTop.current = top\n}\n\nfunction scrollHorizontal (container, scrollLeft, left, isAnimation) {\n if (isAnimation) {\n easeOutScroll(scrollLeft.current, left, pos => {\n if (container.current) container.current.scrollLeft = pos\n })\n } else {\n if (container.current) container.current.scrollLeft = left\n }\n scrollLeft.current = left\n}\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n scrollX: boolean\n scrollY: boolean\n upperThreshold: number\n lowerThreshold: number\n scrollTop: number\n scrollLeft: number\n scrollIntoView?: string\n scrollIntoViewAlignment?: ScrollLogicalPosition\n scrollWithAnimation: boolean\n enableBackToTop?: boolean\n forwardedRef?: React.MutableRefObject<HTMLDivElement>\n onScrollToUpper: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollToLower: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScroll: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollStart?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollEnd?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchMove: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchStart?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchEnd?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n showScrollbar?: boolean // 新增参数,默认true\n enhanced?: boolean // 新增参数,默认false\n /** 嵌套滚动:内容在滚动容器中的起始偏移(固定头部等场景) */\n startOffset?: number\n}\n\n/** H5 等环境下 scrollTop 为整数,与带亚像素的受控值比较时允许该误差,避免反复 set scrollTop 与 scrollIntoView 打架 */\nconst CONTROLLED_SCROLL_EPSILON = 0.5\n\nfunction ScrollView (props: IProps) {\n const _scrollTop = useRef<any>(null)\n const _scrollLeft = useRef<any>(null)\n const container = useRef<any>(null)\n const scrollEndTimerRef = useRef<NodeJS.Timeout | null>(null)\n const isScrollingRef = useRef<boolean>(false)\n const isInitializedRef = useRef<boolean>(false)\n /** 与 props.scrollIntoView 比对,同 id 时只走受控 scrollTop,避免与上次锚点反复互顶 */\n const lastAppliedScrollIntoViewIdRef = useRef<string | null>(null)\n const [containerHeight, setContainerHeight] = useState(0)\n const onTouchMove = (e) => {\n e.stopPropagation()\n }\n\n const applyControlledScrollTopLeft = (p: IProps) => {\n const isAnimation = !!p.scrollWithAnimation\n const eps = CONTROLLED_SCROLL_EPSILON\n if (p.scrollY && typeof p.scrollTop === 'number' &&\n (_scrollTop.current === null || Math.abs(p.scrollTop - _scrollTop.current) >= eps)) {\n setTimeout(() => scrollVertical(container, _scrollTop, p.scrollTop, isAnimation), 10)\n }\n if (p.scrollX && typeof p.scrollLeft === 'number' &&\n (_scrollLeft.current === null || Math.abs(p.scrollLeft - _scrollLeft.current) >= eps)) {\n setTimeout(() => scrollHorizontal(container, _scrollLeft, p.scrollLeft, isAnimation), 10)\n }\n }\n\n const handleScroll = (props: IProps, isInit = false) => {\n if (\n props.scrollIntoView &&\n typeof props.scrollIntoView === 'string' &&\n document &&\n document.querySelector &&\n document.querySelector(`#${props.scrollIntoView}`)\n ) {\n if (isInit) {\n setTimeout(\n () =>\n scrollIntoView(\n props.scrollIntoView,\n props.scrollWithAnimation,\n !!props.scrollX,\n !!props.scrollY,\n props.scrollIntoViewAlignment\n ),\n 500\n )\n } else {\n scrollIntoView(\n props.scrollIntoView,\n props.scrollWithAnimation,\n !!props.scrollX,\n !!props.scrollY,\n props.scrollIntoViewAlignment\n )\n }\n } else {\n applyControlledScrollTopLeft(props)\n }\n }\n\n useEffect(() => {\n handleScroll(props, true)\n isInitializedRef.current = true\n }, [])\n\n // scrollTop / scrollLeft / scrollIntoView 受控同步(跳过 mount 时的 init effect)\n useEffect(() => {\n if (!isInitializedRef.current || !container.current) return\n\n const sitv = props.scrollIntoView\n const sitvOk = Boolean(\n sitv &&\n typeof sitv === 'string' &&\n document &&\n document.querySelector &&\n document.querySelector(`#${sitv}`)\n )\n\n if (sitvOk) {\n if (sitv !== lastAppliedScrollIntoViewIdRef.current) {\n scrollIntoView(\n sitv,\n props.scrollWithAnimation,\n !!props.scrollX,\n !!props.scrollY,\n props.scrollIntoViewAlignment\n )\n lastAppliedScrollIntoViewIdRef.current = typeof sitv === 'string' ? sitv : null\n } else {\n applyControlledScrollTopLeft(props)\n }\n } else {\n lastAppliedScrollIntoViewIdRef.current = null\n applyControlledScrollTopLeft(props)\n }\n }, [\n props.scrollTop,\n props.scrollLeft,\n props.scrollIntoView,\n props.scrollIntoViewAlignment,\n props.scrollWithAnimation,\n props.scrollX,\n props.scrollY\n ])\n\n const {\n className,\n style = {},\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n scrollX,\n scrollY,\n showScrollbar = true, // 默认显示滚动条\n enhanced = false // 默认不增强\n } = props\n let { upperThreshold = 50, lowerThreshold = 50 } = props\n const cls = classNames(\n 'taro-scroll',\n {\n 'taro-scroll-view__scroll-x': scrollX,\n 'taro-scroll-view__scroll-y': scrollY,\n 'taro-scroll--hidebar': enhanced === true && showScrollbar === false,\n 'taro-scroll--enhanced': enhanced === true\n },\n className\n )\n upperThreshold = Number(upperThreshold)\n lowerThreshold = Number(lowerThreshold)\n const upperAndLower = e => {\n if (!container.current) return\n const { offsetWidth, offsetHeight, scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current\n if (\n onScrollToLower &&\n ((props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight) ||\n (props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth))\n ) {\n onScrollToLower(e)\n }\n if (\n onScrollToUpper &&\n ((props.scrollY && scrollTop <= upperThreshold) || (props.scrollX && scrollLeft <= upperThreshold))\n ) {\n onScrollToUpper(e)\n }\n }\n const upperAndLowerThrottle = throttle(upperAndLower, 200)\n const _onScroll = e => {\n const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current\n _scrollLeft.current = scrollLeft\n _scrollTop.current = scrollTop\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth\n }\n })\n\n // 处理滚动开始\n if (!isScrollingRef.current) {\n isScrollingRef.current = true\n if (props.onScrollStart) {\n props.onScrollStart(e)\n }\n }\n\n // 清除滚动结束定时器\n if (scrollEndTimerRef.current) {\n clearTimeout(scrollEndTimerRef.current)\n scrollEndTimerRef.current = null\n }\n\n // 设置滚动结束定时器(150ms 无滚动事件后触发)\n if (props.onScrollEnd) {\n scrollEndTimerRef.current = setTimeout(() => {\n if (isScrollingRef.current) {\n isScrollingRef.current = false\n props.onScrollEnd?.(e)\n }\n scrollEndTimerRef.current = null\n }, 150)\n }\n\n upperAndLowerThrottle(e)\n onScroll && onScroll(e)\n }\n const _onTouchMove = e => {\n isFunction(props.onTouchMove) ? props.onTouchMove(e) : onTouchMove(e)\n }\n const _onTouchStart = e => {\n if (isFunction(props.onTouchStart)) {\n props.onTouchStart(e)\n }\n }\n const _onTouchEnd = e => {\n if (isFunction(props.onTouchEnd)) {\n props.onTouchEnd(e)\n }\n }\n // 清理定时器\n useEffect(() => {\n return () => {\n if (scrollEndTimerRef.current) {\n clearTimeout(scrollEndTimerRef.current)\n scrollEndTimerRef.current = null\n }\n }\n }, [])\n\n // ScrollElementContext:嵌套滚动时向子组件提供 scrollRef、containerHeight、startOffset\n useEffect(() => {\n const el = container.current\n if (!el) return\n const update = () => {\n if (container.current) {\n setContainerHeight(container.current.clientHeight)\n }\n }\n update()\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(update) : null\n if (ro) {\n ro.observe(el)\n return () => ro.disconnect()\n }\n }, [])\n\n const scrollElementContextValue = {\n scrollRef: container,\n containerHeight,\n startOffset: props.startOffset ?? 0,\n }\n\n return (\n <ScrollElementContext.Provider value={scrollElementContextValue}>\n <div\n ref={e => {\n if (e) {\n container.current = e\n if (props.forwardedRef) props.forwardedRef.current = e\n }\n }}\n style={style}\n className={cls}\n onScroll={_onScroll}\n onTouchMove={_onTouchMove}\n onTouchStart={_onTouchStart}\n onTouchEnd={_onTouchEnd}\n >\n {props.children}\n </div>\n </ScrollElementContext.Provider>\n )\n}\n\nexport default createForwardRefComponent(ScrollView)\n"],"names":["easeOutScroll","from","arguments","length","undefined","to","callback","change","dur","sTime","Date","linear","t","b","c","d","isLarger","step","requestAnimationFrame","scrollIntoView","id","animated","scrollX","scrollY","scrollIntoViewAlignment","_a","document","querySelector","behavior","block","inline","scrollVertical","container","scrollTop","top","isAnimation","current","pos","scrollHorizontal","scrollLeft","left","CONTROLLED_SCROLL_EPSILON","ScrollView","props","_scrollTop","useRef","_scrollLeft","scrollEndTimerRef","isScrollingRef","isInitializedRef","lastAppliedScrollIntoViewIdRef","containerHeight","setContainerHeight","useState","onTouchMove","e","stopPropagation","applyControlledScrollTopLeft","p","scrollWithAnimation","eps","Math","abs","setTimeout","handleScroll","isInit","useEffect","sitv","sitvOk","Boolean","className","style","onScroll","onScrollToUpper","onScrollToLower","showScrollbar","enhanced","upperThreshold","lowerThreshold","cls","classNames","Number","upperAndLower","offsetWidth","offsetHeight","scrollHeight","scrollWidth","upperAndLowerThrottle","throttle","_onScroll","Object","defineProperty","enumerable","writable","value","onScrollStart","clearTimeout","onScrollEnd","call","_onTouchMove","isFunction","_onTouchStart","onTouchStart","_onTouchEnd","onTouchEnd","el","update","clientHeight","ro","ResizeObserver","observe","disconnect","scrollElementContextValue","scrollRef","startOffset","_$createComponent","ScrollElementContext","Provider","children","_el$","_tmpl$","$$touchend","$$touchstart","$$touchmove","addEventListener","_$use","forwardedRef","_$insert","_$effect","_$p","_$style","createForwardRefComponent","_$delegateEvents"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/components-react",
3
- "version": "4.1.12-beta.40",
3
+ "version": "4.1.12-beta.42",
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.40",
34
- "@tarojs/shared": "4.1.12-beta.40",
35
- "@tarojs/taro": "4.1.12-beta.40"
33
+ "@tarojs/components": "4.1.12-beta.42",
34
+ "@tarojs/shared": "4.1.12-beta.42",
35
+ "@tarojs/taro": "4.1.12-beta.42"
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/helper": "4.1.12-beta.40",
53
- "@tarojs/runtime": "4.1.12-beta.40"
52
+ "@tarojs/runtime": "4.1.12-beta.42",
53
+ "@tarojs/helper": "4.1.12-beta.42"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "react": "*",