@tarojs/components-react 4.1.4-beta.13 → 4.1.4-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/components/button/index.js +87 -0
  2. package/dist/components/button/index.js.map +1 -0
  3. package/dist/components/button/style/index.scss.js +4 -0
  4. package/dist/components/button/style/index.scss.js.map +1 -0
  5. package/dist/components/icon/index.js +36 -0
  6. package/dist/components/icon/index.js.map +1 -0
  7. package/dist/components/icon/style/index.scss.js +4 -0
  8. package/dist/components/icon/style/index.scss.js.map +1 -0
  9. package/dist/components/image/index.js +86 -0
  10. package/dist/components/image/index.js.map +1 -0
  11. package/dist/components/image/style/index.css.js +4 -0
  12. package/dist/components/image/style/index.css.js.map +1 -0
  13. package/dist/components/input/index.js +233 -0
  14. package/dist/components/input/index.js.map +1 -0
  15. package/dist/components/input/style/index.scss.js +4 -0
  16. package/dist/components/input/style/index.scss.js.map +1 -0
  17. package/dist/components/picker/index.js +13 -7
  18. package/dist/components/picker/index.js.map +1 -1
  19. package/dist/components/pull-down-refresh/index.js +320 -0
  20. package/dist/components/pull-down-refresh/index.js.map +1 -0
  21. package/dist/components/pull-down-refresh/style/index.css.js +4 -0
  22. package/dist/components/pull-down-refresh/style/index.css.js.map +1 -0
  23. package/dist/components/scroll-view/index.js +184 -0
  24. package/dist/components/scroll-view/index.js.map +1 -0
  25. package/dist/components/scroll-view/style/index.css.js +4 -0
  26. package/dist/components/scroll-view/style/index.css.js.map +1 -0
  27. package/dist/components/swiper/index.js +461 -0
  28. package/dist/components/swiper/index.js.map +1 -0
  29. package/dist/components/swiper/style/index.css.js +4 -0
  30. package/dist/components/swiper/style/index.css.js.map +1 -0
  31. package/dist/components/text/index.js +28 -0
  32. package/dist/components/text/index.js.map +1 -0
  33. package/dist/components/text/style/index.css.js +4 -0
  34. package/dist/components/text/style/index.css.js.map +1 -0
  35. package/dist/components/view/index.js +80 -0
  36. package/dist/components/view/index.js.map +1 -0
  37. package/dist/index.css +1 -1
  38. package/dist/index.js +12 -79
  39. package/dist/index.js.map +1 -1
  40. package/dist/solid/components/button/index.js +95 -0
  41. package/dist/solid/components/button/index.js.map +1 -0
  42. package/dist/solid/components/button/style/index.scss.js +4 -0
  43. package/dist/solid/components/button/style/index.scss.js.map +1 -0
  44. package/dist/solid/components/icon/index.js +39 -0
  45. package/dist/solid/components/icon/index.js.map +1 -0
  46. package/dist/solid/components/icon/style/index.scss.js +4 -0
  47. package/dist/solid/components/icon/style/index.scss.js.map +1 -0
  48. package/dist/solid/components/image/index.js +94 -0
  49. package/dist/solid/components/image/index.js.map +1 -0
  50. package/dist/solid/components/image/style/index.css.js +4 -0
  51. package/dist/solid/components/image/style/index.css.js.map +1 -0
  52. package/dist/solid/components/picker/index.js +15 -7
  53. package/dist/solid/components/picker/index.js.map +1 -1
  54. package/dist/solid/components/scroll-view/index.js +188 -0
  55. package/dist/solid/components/scroll-view/index.js.map +1 -0
  56. package/dist/solid/components/scroll-view/style/index.css.js +4 -0
  57. package/dist/solid/components/scroll-view/style/index.css.js.map +1 -0
  58. package/dist/solid/components/text/index.js +32 -0
  59. package/dist/solid/components/text/index.js.map +1 -0
  60. package/dist/solid/components/text/style/index.css.js +4 -0
  61. package/dist/solid/components/text/style/index.css.js.map +1 -0
  62. package/dist/solid/components/view/index.js +88 -0
  63. package/dist/solid/components/view/index.js.map +1 -0
  64. package/dist/solid/index.css +1 -1
  65. package/dist/solid/index.js +9 -79
  66. package/dist/solid/index.js.map +1 -1
  67. package/dist/styles/picker-styles.css +1 -1
  68. package/dist/styles/picker-styles.css.map +1 -1
  69. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/picker/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { View } from '@tarojs/components'\nimport classNames from 'classnames'\nimport * as React from 'react'\n\nimport {\n compareTime,\n getDayRange,\n getMonthRange,\n getYearRange,\n hoursRange,\n minutesRange,\n omit,\n verifyDate,\n verifyTime,\n verifyValue\n} from '../../utils'\nimport { PickerGroup } from './picker-group'\n\n// 定义 RegionData 类型,与 Taro 官方保持一致\nexport interface RegionData {\n value: string\n code: string\n postcode?: string\n children?: RegionData[]\n}\n\n// 稳定的空数组引用,避免每次渲染都创建新引用\nconst EMPTY_ARRAY: any[] = []\nconst EMPTY_OBJECT: Record<string, any> = {}\n\n// 数据验证函数\nfunction validateRegionData(data: RegionData[], componentName = 'Picker'): { valid: boolean, error?: string } {\n if (!data) {\n return { valid: false, error: `${componentName}: regionData is required for region mode` }\n }\n\n if (!Array.isArray(data)) {\n return { valid: false, error: `${componentName}: regionData must be an array` }\n }\n\n if (data.length === 0) {\n return { valid: false, error: `${componentName}: regionData cannot be empty` }\n }\n\n // 检查数据结构\n const validateItem = (item: RegionData, path: string): { valid: boolean, error?: string } => {\n if (!item || typeof item !== 'object') {\n return { valid: false, error: `${componentName}: Invalid item at ${path}` }\n }\n\n if (!item.value || typeof item.value !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'value' field at ${path}` }\n }\n\n if (!item.code || typeof item.code !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'code' field at ${path}` }\n }\n\n if (item.postcode !== undefined && typeof item.postcode !== 'string') {\n return { valid: false, error: `${componentName}: Invalid 'postcode' field at ${path}` }\n }\n\n if (item.children && !Array.isArray(item.children)) {\n return { valid: false, error: `${componentName}: 'children' must be an array at ${path}` }\n }\n\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n const childResult = validateItem(item.children[i], `${path}.children[${i}]`)\n if (!childResult.valid) return childResult\n }\n }\n\n return { valid: true }\n }\n\n for (let i = 0; i < data.length; i++) {\n const result = validateItem(data[i], `regionData[${i}]`)\n if (!result.valid) return result\n }\n\n return { valid: true }\n}\n\nexport type Mode = 'selector' | 'multiSelector' | 'time' | 'date' | 'region'\nexport type Fields = 'day' | 'month' | 'year'\nexport type RegionLevel = 'province' | 'city' | 'region'\nexport type PickerValue = number | number[] | string | string[]\n\nexport interface PickerText {\n okText?: string\n cancelText?: string\n}\n\nexport interface PickerDate {\n _value: Date\n _start: Date\n _end: Date\n _updateValue: [number, number, number]\n}\n\ninterface IProps {\n mode?: Mode\n disabled?: boolean\n range?: any[]\n rangeKey?: string\n value?: PickerValue\n start?: string\n end?: string\n fields?: Fields\n name?: string\n headerText?: string\n regionData?: RegionData[] // 省市区/县数据(region 模式专用)\n level?: RegionLevel\n textProps?: PickerText\n onChange?: (e: { detail: { value: PickerValue, code?: string, postcode?: string } }) => void\n onColumnChange?: (e: { detail: { column: number, value: number } }) => void\n onCancel?: () => void\n children?: React.ReactNode\n style?: React.CSSProperties\n forwardedRef?: React.MutableRefObject<HTMLDivElement | null>\n formType?: string\n}\n\ninterface IState {\n pickerValue: PickerValue\n selectedIndices: number[] // 索引数组\n hidden: boolean\n fadeOut: boolean\n isWillLoadCalled: boolean\n timestamp: number\n}\n\n// 普通函数,不需要useCallback\nfunction getRegionColumnsCount(level: RegionLevel): number {\n switch (level) {\n case 'province': return 1\n case 'city': return 2\n case 'region': return 3\n default: return 3 // 默认显示省市区/县三列\n }\n}\n\nexport function Picker(props: IProps) {\n const {\n mode = 'selector',\n disabled = false,\n range = EMPTY_ARRAY,\n rangeKey,\n value,\n start = '',\n end = '',\n fields = 'day',\n headerText,\n level = 'region',\n regionData,\n textProps = EMPTY_OBJECT,\n onChange,\n onColumnChange,\n onCancel,\n children,\n style,\n forwardedRef,\n formType,\n ...restProps\n } = props\n const indexRef = React.useRef<number[]>([])\n const pickerDateRef = React.useRef<PickerDate>()\n\n const [state, setState] = React.useState<IState>({\n pickerValue: value || EMPTY_ARRAY,\n selectedIndices: EMPTY_ARRAY.slice(), // 索引数组\n hidden: true,\n fadeOut: false,\n isWillLoadCalled: false,\n timestamp: 0 // 用以部分模式下强制刷新组件的的时间戳,多用于反复限位\n })\n\n // 在组件内部\n const [columnsCount, setColumnsCount] = React.useState(() => getRegionColumnsCount(level))\n\n // 只在level变化时更新列数\n React.useEffect(() => {\n setColumnsCount(getRegionColumnsCount(level))\n }, [level])\n\n // 获取当前索引数组\n const getIndices = React.useCallback(() => {\n return indexRef.current\n }, [])\n\n // 处理属性变化\n const handleProps = React.useCallback(() => {\n if (mode === 'selector') {\n const val = value as number\n indexRef.current = [verifyValue(val, range) ? Math.floor(val) : 0]\n } else if (mode === 'multiSelector') {\n const val = value as number[]\n indexRef.current = []\n range.forEach((rangeItem, index) => {\n const valItem = val?.[index]\n const item = verifyValue(valItem, rangeItem as any[]) ? Math.floor(valItem) : 0\n indexRef.current.push(item)\n })\n } else if (mode === 'time') {\n let val = value as string\n if (!verifyTime(val)) {\n console.warn('time picker value illegal')\n val = '0:0'\n }\n const time = val.split(':').map(n => +n)\n\n // 在 hoursRange 和 minutesRange 中找到对应的索引\n const hourIndex = hoursRange.findIndex(item => parseInt(item) === time[0])\n const minuteIndex = minutesRange.findIndex(item => parseInt(item) === time[1])\n\n // 确保索引在有效范围内\n const safeHourIndex = hourIndex >= 0 ? hourIndex : 0 // 默认为第一项\n const safeMinuteIndex = minuteIndex >= 0 ? minuteIndex : 0 // 默认为第一项\n\n indexRef.current = [\n Math.max(0, Math.min(safeHourIndex, hoursRange.length - 1)),\n Math.max(0, Math.min(safeMinuteIndex, minutesRange.length - 1))\n ]\n } else if (mode === 'date') {\n const val = value as string\n let _value = verifyDate(val) || new Date(new Date().setHours(0, 0, 0, 0))\n const _start = verifyDate(start) || new Date('1970/01/01')\n const _end = verifyDate(end) || new Date('2999/01/01')\n if (!(_start <= _end)) {\n throw new Error(`Picker start time must be less than end time.`)\n }\n if (!(_value >= _start && _value <= _end)) {\n _value = _start\n }\n const currentYear = _value.getFullYear()\n const currentMonth = _value.getMonth() + 1\n const currentDay = _value.getDate()\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n indexRef.current = [\n yearRange.indexOf(currentYear),\n monthRange.indexOf(currentMonth),\n dayRange.indexOf(currentDay)\n ]\n if (\n !pickerDateRef.current ||\n pickerDateRef.current._value.getTime() !== _value.getTime() ||\n pickerDateRef.current._start.getTime() !== _start.getTime() ||\n pickerDateRef.current._end.getTime() !== _end.getTime()\n ) {\n pickerDateRef.current = {\n _value,\n _start,\n _end,\n _updateValue: [currentYear, currentMonth, currentDay]\n }\n }\n } else if (mode === 'region') {\n // region 模式处理 - 验证数据\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n indexRef.current = [0]\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n indexRef.current = [0]\n return\n }\n\n // 获取列数\n const val = Array.isArray(value) ? (value as unknown as string[]) : []\n\n // 根据level和当前值确定索引\n indexRef.current = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i >= val.length || !currentData?.length) {\n indexRef.current.push(0)\n continue\n }\n\n const currentValue = val[i]\n const index = currentData.findIndex(item => item.value === currentValue)\n\n if (index >= 0) {\n indexRef.current.push(index)\n // 为下一列准备数据\n const selectedItem = currentData[index]\n currentData = selectedItem.children || []\n } else {\n indexRef.current.push(0)\n // 如果找不到匹配项,为下一列准备第一项的子数据\n currentData = currentData[0]?.children || []\n }\n }\n } else {\n throw new Error(`Picker not support \"${mode}\" mode.`)\n }\n\n // 更新索引值\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n pickerValue: value || EMPTY_ARRAY\n }))\n }, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices])\n\n // 组件初始化\n React.useEffect(() => {\n setState(prev => ({ ...prev, isWillLoadCalled: true }))\n handleProps()\n }, [])\n\n // 属性变化监听 - 添加 value 依赖以支持联动选择器\n React.useEffect(() => {\n if (state.isWillLoadCalled) {\n handleProps()\n }\n }, [handleProps, state.isWillLoadCalled, JSON.stringify(value)])\n\n // 显示 Picker\n const showPicker = React.useCallback(() => {\n if (disabled) return\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n hidden: false\n }))\n }, [disabled, getIndices])\n\n // 隐藏 Picker\n const hidePicker = React.useCallback(() => {\n setState(prev => ({ ...prev, fadeOut: true }))\n setTimeout(() => {\n setState(prev => ({\n ...prev,\n hidden: true,\n fadeOut: false\n }))\n }, 350)\n }, [])\n\n // 更新索引\n const updateIndex = React.useCallback((index: number, columnId: string, needRevise = false) => {\n const columnIndex = Number(columnId)\n let finalIndices = [...state.selectedIndices]\n finalIndices[columnIndex] = index\n let hasLimited = false\n\n // region 模式的级联更新逻辑\n if (mode === 'region' && regionData) {\n // 重置后续列\n for (let i = columnIndex + 1; i < columnsCount; i++) {\n finalIndices[i] = 0\n }\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n return // 直接返回\n }\n\n // time picker\n if (needRevise && mode === 'time') {\n let startTime = start\n let endTime = end\n\n if (!verifyTime(startTime)) startTime = '00:00'\n if (!verifyTime(endTime)) endTime = '23:59'\n if (!compareTime(startTime, endTime)) return false\n\n const timeRanges = [hoursRange.slice(), minutesRange.slice()]\n // 然后基于更新后的索引数组计算时间\n const timeStr = finalIndices.map((idx, i) => {\n const rangeIdx = Math.max(0, Math.min(idx, timeRanges[i].length - 1))\n return timeRanges[i][rangeIdx] || '00'\n }).join(':')\n\n // 检查是否需要限位\n if (!compareTime(startTime, timeStr)) {\n // 修正到 start\n const startParts = startTime.split(':').map(part => parseInt(part))\n const newIndices = startParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n } else if (!compareTime(timeStr, endTime)) {\n // 修正到 end\n const endParts = endTime.split(':').map(part => parseInt(part))\n const newIndices = endParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n }\n\n // 无论是否限位,都更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n\n return hasLimited\n }\n\n // 常规更新\n finalIndices[columnIndex] = index\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n\n return false // 没有限位\n }, [start, end, mode, regionData, state.selectedIndices, columnsCount])\n\n // 更新日期\n const updateDay = React.useCallback((value: number, fields: number) => {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n\n // 更新当前字段的值\n _updateValue[fields] = value\n\n // 获取当前年月日\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const currentDay = _updateValue[2]\n\n // 保存原始值用于后面比较\n const originalValues = [..._updateValue]\n\n // 准备最终的索引数组 - 复制当前索引状态作为起点\n const finalIndices = [...state.selectedIndices]\n\n // 获取基础范围数据\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n let dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 根据修改的字段进行不同处理\n if (fields === 0) { // 年份变化\n // 年份索引直接更新\n finalIndices[0] = yearRange.indexOf(currentYear)\n\n // 月份限位处理\n if (monthRange.length > 0) {\n if (currentMonth > monthRange[monthRange.length - 1]) {\n _updateValue[1] = monthRange[monthRange.length - 1]\n }\n if (currentMonth < monthRange[0]) {\n _updateValue[1] = monthRange[0]\n }\n\n // 更新月份索引\n finalIndices[1] = monthRange.indexOf(_updateValue[1])\n\n // 重新计算日期范围\n dayRange = getDayRange(_start, _end, currentYear, _updateValue[1])\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n }\n } else if (fields === 1) { // 月份变化\n // 月份索引直接更新\n finalIndices[1] = monthRange.indexOf(currentMonth)\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n } else if (fields === 2) { // 日期变化\n // 日期索引直接更新\n finalIndices[2] = dayRange.indexOf(currentDay)\n }\n\n // 只在有实际变化时更新状态\n if (\n JSON.stringify(originalValues) !== JSON.stringify(_updateValue) ||\n JSON.stringify(finalIndices) !== JSON.stringify(state.selectedIndices)\n ) {\n // 一次性更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n }\n }, [state.selectedIndices])\n\n // 处理确认\n const handleChange = React.useCallback(() => {\n const newIndices = [...state.selectedIndices]\n indexRef.current = newIndices\n\n let newValue: PickerValue = newIndices.length && mode !== 'selector'\n ? newIndices\n : newIndices[0]\n\n if (mode === 'time') {\n const range = [hoursRange.slice(), minutesRange.slice()]\n\n // 安全的时间处理,添加边界检查\n const timeArr = newIndices.map<string>((idx, i) => {\n const index = Math.max(0, Math.min(idx, range[i].length - 1))\n return range[i][index] || (i === 0 ? '00' : '00')\n })\n\n // 确保时间值有效\n const validTimeArr = timeArr.map(time => {\n const num = parseInt(time)\n return isNaN(num) ? '00' : time\n })\n\n indexRef.current = validTimeArr.map(item => parseInt(item))\n newValue = validTimeArr.join(':')\n }\n\n if (mode === 'date') {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 添加边界检查,确保索引有效\n const yearIndex = Math.min(Math.max(Math.floor(newIndices[0]), 0), yearRange.length - 1)\n const monthIndex = Math.min(Math.max(Math.floor(newIndices[1]), 0), monthRange.length - 1)\n const dayIndex = Math.min(Math.max(Math.floor(newIndices[2]), 0), dayRange.length - 1)\n\n const year = yearRange[yearIndex]\n const month = monthRange[monthIndex]\n const day = dayRange[dayIndex]\n\n // 确保所有值都存在\n if (year === undefined || month === undefined || day === undefined) {\n console.warn('Date picker: invalid date values', { year, month, day })\n return\n }\n\n if (fields === 'year') {\n newValue = year.toString()\n } else if (fields === 'month') {\n // YYYY-MM 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}`\n } else {\n // YYYY-MM-DD 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n onChange?.({ detail: { value: newValue } })\n return\n }\n\n if (mode === 'region') {\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n return\n }\n\n // 直接使用索引数组\n const selectedCodes: string[] = []\n let postcode = ''\n\n // 安全获取选中值\n let currentData = regionData\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData || currentData.length === 0) break\n\n const index = newIndices[i] || 0\n if (index < 0 || index >= currentData.length) break\n\n const item = currentData[index]\n selectedCodes.push(item.code)\n\n // 如果是最后一项,获取邮政编码\n if (i === columnsCount - 1 && item.postcode) {\n postcode = item.postcode\n }\n\n // 准备下一级数据\n currentData = item.children || []\n }\n\n // 检查索引数组长度是否符合要求\n if (newIndices.length < columnsCount) {\n console.warn('Region picker: incomplete selection')\n return\n }\n\n // 触发 onChange 事件,包含 code 信息\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newIndices\n }))\n\n onChange?.({\n detail: {\n value: newIndices,\n code: selectedCodes.join(','),\n postcode\n }\n })\n return\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n // 触发 onChange 事件,格式与原始组件一致\n onChange?.({ detail: { value: newValue } })\n }, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount])\n\n // 处理列变化\n const handleColumnChange = React.useCallback((e: { columnId: string, index: number }) => {\n const { columnId, index } = e\n onColumnChange?.({\n detail: {\n column: Number(columnId),\n value: index\n }\n })\n }, [onColumnChange])\n\n // 处理取消\n const handleCancel = React.useCallback(() => {\n hidePicker()\n onCancel?.()\n }, [hidePicker, onCancel])\n\n // 渲染选择器组\n const renderPickerGroup = React.useMemo(() => {\n switch (mode) {\n case 'multiSelector': {\n return range.map((rangeItem, index) => (\n <PickerGroup\n key={index}\n range={rangeItem}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n onColumnChange={handleColumnChange}\n columnId={String(index)}\n selectedIndex={state.selectedIndices[index]} // 传递对应列的selectedIndex\n />\n ))\n }\n case 'time': {\n return [\n <PickerGroup\n key={`hour-${state.timestamp}`}\n mode=\"time\"\n range={hoursRange}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递小时列的selectedIndex\n />,\n <PickerGroup\n key={`minute-${state.timestamp}`}\n mode=\"time\"\n range={minutesRange}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递分钟列的selectedIndex\n />\n ]\n }\n case 'date': {\n if (!pickerDateRef.current) return null\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n .map(item => `${item}年`)\n const monthRange = getMonthRange(_start, _end, currentYear)\n .map(item => `${item < 10 ? `0${item}` : item}月`)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n .map(item => `${item < 10 ? `0${item}` : item}日`)\n\n const renderView = [\n <PickerGroup\n key={`year`}\n mode=\"date\"\n range={yearRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递年份列的selectedIndex\n />\n ]\n if (fields === 'month' || fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`month`}\n mode=\"date\"\n range={monthRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递月份列的selectedIndex\n />\n )\n }\n if (fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`day`}\n mode=\"date\"\n range={dayRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"2\"\n selectedIndex={state.selectedIndices[2]} // 传递日期列的selectedIndex\n />\n )\n }\n return renderView\n }\n case 'region': {\n // region 模式处理 - 自动识别数据层级\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return null\n }\n\n // 简化验证逻辑\n if (!validateRegionData(regionData, 'Picker').valid) {\n return null\n }\n\n const columns: JSX.Element[] = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i > 0 && currentData?.length) {\n // 获取上一级选中项的children作为当前列数据\n const prevIndex = state.selectedIndices[i - 1] || 0\n if (prevIndex >= 0 && prevIndex < currentData.length) {\n currentData = currentData[prevIndex].children || []\n } else {\n currentData = []\n }\n }\n\n columns.push(\n <PickerGroup\n key={`region-${i}`}\n mode=\"region\"\n range={currentData}\n rangeKey=\"value\"\n updateIndex={updateIndex}\n columnId={String(i)}\n selectedIndex={state.selectedIndices[i]}\n />\n )\n }\n\n return columns\n }\n default:\n return (\n <PickerGroup\n range={range}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递selector模式的selectedIndex\n />\n )\n }\n }, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, columnsCount])\n\n // 动画类名控制逻辑\n const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {\n 'taro-picker__animate-fade-out': state.fadeOut\n })\n const clsSlider = classNames('taro-picker', 'taro-picker__animate-slide-up', {\n 'taro-picker__animate-slide-down': state.fadeOut\n })\n\n return (\n <View\n ref={forwardedRef}\n style={style}\n {...(formType ? { 'data-form-type': formType } : {})}\n {...omit(restProps, ['mode', 'disabled', 'range', 'rangeKey', 'value', 'start', 'end', 'fields', 'name', 'textProps', 'onChange', 'onColumnChange', 'onCancel', 'children', 'style', 'forwardedRef', 'formType'])}\n >\n <View onClick={showPicker}>\n {children}\n </View>\n {!state.hidden && (\n <View className=\"taro-picker__overlay\">\n <View className={clsMask} onClick={handleCancel} />\n <View className={clsSlider}>\n <View className=\"taro-picker__hd\">\n <View className=\"taro-picker__action\" onClick={handleCancel}>\n {textProps.cancelText ?? '取消'}\n </View>\n {headerText && (\n <View className=\"taro-picker__title\">{headerText}</View>\n )}\n <View className=\"taro-picker__action\" onClick={handleChange}>\n {textProps.okText ?? '确定'}\n </View>\n </View>\n <View className=\"taro-picker__bd\">{renderPickerGroup}</View>\n </View>\n </View>\n )}\n </View>\n )\n}\n\nexport default Picker\n"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","validateRegionData","data","componentName","arguments","length","undefined","valid","error","Array","isArray","validateItem","item","path","value","code","postcode","children","i","childResult","result","getRegionColumnsCount","level","Picker","props","mode","disabled","range","rangeKey","start","end","fields","headerText","regionData","textProps","onChange","onColumnChange","onCancel","style","forwardedRef","formType","restProps","__rest","indexRef","React","useRef","pickerDateRef","state","setState","useState","pickerValue","selectedIndices","slice","hidden","fadeOut","isWillLoadCalled","timestamp","columnsCount","setColumnsCount","useEffect","getIndices","useCallback","current","handleProps","val","verifyValue","Math","floor","forEach","rangeItem","index","valItem","push","verifyTime","console","warn","time","split","map","n","hourIndex","hoursRange","findIndex","parseInt","minuteIndex","minutesRange","safeHourIndex","safeMinuteIndex","max","min","_value","verifyDate","Date","setHours","_start","_end","Error","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","yearRange","getYearRange","monthRange","getMonthRange","dayRange","getDayRange","indexOf","getTime","_updateValue","validation","currentData","currentValue","selectedItem","_a","newIndices","prev","Object","assign","JSON","stringify","showPicker","hidePicker","setTimeout","updateIndex","columnId","needRevise","columnIndex","Number","finalIndices","hasLimited","now","startTime","endTime","compareTime","timeRanges","timeStr","idx","rangeIdx","join","startParts","part","endParts","updateDay","originalValues","handleChange","newValue","timeArr","validTimeArr","num","isNaN","yearIndex","monthIndex","dayIndex","year","month","day","toString","detail","selectedCodes","handleColumnChange","e","column","handleCancel","renderPickerGroup","useMemo","_$createComponent","PickerGroup","key","String","selectedIndex","renderView","columns","prevIndex","clsMask","classNames","clsSlider","View","_$mergeProps","ref","omit","onClick","_$memo","className","cancelText","okText","_b"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/picker/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { View } from '@tarojs/components'\nimport classNames from 'classnames'\nimport * as React from 'react'\n\nimport {\n compareTime,\n getDayRange,\n getMonthRange,\n getYearRange,\n hoursRange,\n minutesRange,\n omit,\n verifyDate,\n verifyTime,\n verifyValue\n} from '../../utils'\nimport { PickerGroup } from './picker-group'\n\n// 定义 RegionData 类型,与 Taro 官方保持一致\nexport interface RegionData {\n value: string\n code: string\n postcode?: string\n children?: RegionData[]\n}\n\n// 稳定的空数组引用,避免每次渲染都创建新引用\nconst EMPTY_ARRAY: any[] = []\nconst EMPTY_OBJECT: Record<string, any> = {}\n\n// 数据验证函数\nfunction validateRegionData(data: RegionData[], componentName = 'Picker'): { valid: boolean, error?: string } {\n if (!data) {\n return { valid: false, error: `${componentName}: regionData is required for region mode` }\n }\n\n if (!Array.isArray(data)) {\n return { valid: false, error: `${componentName}: regionData must be an array` }\n }\n\n if (data.length === 0) {\n return { valid: false, error: `${componentName}: regionData cannot be empty` }\n }\n\n // 检查数据结构\n const validateItem = (item: RegionData, path: string): { valid: boolean, error?: string } => {\n if (!item || typeof item !== 'object') {\n return { valid: false, error: `${componentName}: Invalid item at ${path}` }\n }\n\n if (!item.value || typeof item.value !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'value' field at ${path}` }\n }\n\n if (!item.code || typeof item.code !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'code' field at ${path}` }\n }\n\n if (item.postcode !== undefined && typeof item.postcode !== 'string') {\n return { valid: false, error: `${componentName}: Invalid 'postcode' field at ${path}` }\n }\n\n if (item.children && !Array.isArray(item.children)) {\n return { valid: false, error: `${componentName}: 'children' must be an array at ${path}` }\n }\n\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n const childResult = validateItem(item.children[i], `${path}.children[${i}]`)\n if (!childResult.valid) return childResult\n }\n }\n\n return { valid: true }\n }\n\n for (let i = 0; i < data.length; i++) {\n const result = validateItem(data[i], `regionData[${i}]`)\n if (!result.valid) return result\n }\n\n return { valid: true }\n}\n\nexport type Mode = 'selector' | 'multiSelector' | 'time' | 'date' | 'region'\nexport type Fields = 'day' | 'month' | 'year'\nexport type RegionLevel = 'province' | 'city' | 'region'\nexport type PickerValue = number | number[] | string | string[]\n\nexport interface PickerText {\n okText?: string\n cancelText?: string\n}\n\nexport interface PickerDate {\n _value: Date\n _start: Date\n _end: Date\n _updateValue: [number, number, number]\n}\n\ninterface IProps {\n mode?: Mode\n disabled?: boolean\n range?: any[]\n rangeKey?: string\n value?: PickerValue\n start?: string\n end?: string\n fields?: Fields\n name?: string\n headerText?: string\n regionData?: RegionData[] // 省市区/县数据(region 模式专用)\n level?: RegionLevel\n textProps?: PickerText\n onChange?: (e: { detail: { value: PickerValue, code?: string, postcode?: string } }) => void\n onColumnChange?: (e: { detail: { column: number, value: number } }) => void\n onCancel?: () => void\n children?: React.ReactNode\n style?: React.CSSProperties\n forwardedRef?: React.MutableRefObject<HTMLDivElement | null>\n formType?: string\n}\n\ninterface IState {\n pickerValue: PickerValue\n selectedIndices: number[] // 索引数组\n hidden: boolean\n fadeOut: boolean\n isWillLoadCalled: boolean\n timestamp: number\n}\n\n// 普通函数,不需要useCallback\nfunction getRegionColumnsCount(level: RegionLevel): number {\n switch (level) {\n case 'province': return 1\n case 'city': return 2\n case 'region': return 3\n default: return 3 // 默认显示省市区/县三列\n }\n}\n\n// 暴露给外部的 ref 类型\nexport interface PickerRef {\n showPicker: () => void\n hidePicker: () => void\n}\n\nconst Picker = React.forwardRef<PickerRef, IProps>((props, ref) => {\n const {\n mode = 'selector',\n disabled = false,\n range = EMPTY_ARRAY,\n rangeKey,\n value,\n start = '',\n end = '',\n fields = 'day',\n headerText,\n level = 'region',\n regionData,\n textProps = EMPTY_OBJECT,\n onChange,\n onColumnChange,\n onCancel,\n children,\n style,\n formType,\n ...restProps\n } = props\n const indexRef = React.useRef<number[]>([])\n const pickerDateRef = React.useRef<PickerDate>()\n\n const [state, setState] = React.useState<IState>({\n pickerValue: value || EMPTY_ARRAY,\n selectedIndices: EMPTY_ARRAY.slice(), // 索引数组\n hidden: true,\n fadeOut: false,\n isWillLoadCalled: false,\n timestamp: 0 // 用以部分模式下强制刷新组件的的时间戳,多用于反复限位\n })\n\n // 在组件内部\n const [columnsCount, setColumnsCount] = React.useState(() => getRegionColumnsCount(level))\n\n // 只在level变化时更新列数\n React.useEffect(() => {\n setColumnsCount(getRegionColumnsCount(level))\n }, [level])\n\n // 获取当前索引数组\n const getIndices = React.useCallback(() => {\n return indexRef.current\n }, [])\n\n // 处理属性变化\n const handleProps = React.useCallback(() => {\n if (mode === 'selector') {\n const val = value as number\n indexRef.current = [verifyValue(val, range) ? Math.floor(val) : 0]\n } else if (mode === 'multiSelector') {\n const val = value as number[]\n indexRef.current = []\n range.forEach((rangeItem, index) => {\n const valItem = val?.[index]\n const item = verifyValue(valItem, rangeItem as any[]) ? Math.floor(valItem) : 0\n indexRef.current.push(item)\n })\n } else if (mode === 'time') {\n let val = value as string\n if (!verifyTime(val)) {\n console.warn('time picker value illegal')\n val = '0:0'\n }\n const time = val.split(':').map(n => +n)\n\n // 在 hoursRange 和 minutesRange 中找到对应的索引\n const hourIndex = hoursRange.findIndex(item => parseInt(item) === time[0])\n const minuteIndex = minutesRange.findIndex(item => parseInt(item) === time[1])\n\n // 确保索引在有效范围内\n const safeHourIndex = hourIndex >= 0 ? hourIndex : 0 // 默认为第一项\n const safeMinuteIndex = minuteIndex >= 0 ? minuteIndex : 0 // 默认为第一项\n\n indexRef.current = [\n Math.max(0, Math.min(safeHourIndex, hoursRange.length - 1)),\n Math.max(0, Math.min(safeMinuteIndex, minutesRange.length - 1))\n ]\n } else if (mode === 'date') {\n const val = value as string\n let _value = verifyDate(val) || new Date(new Date().setHours(0, 0, 0, 0))\n const _start = verifyDate(start) || new Date('1970/01/01')\n const _end = verifyDate(end) || new Date('2999/01/01')\n if (!(_start <= _end)) {\n throw new Error(`Picker start time must be less than end time.`)\n }\n if (!(_value >= _start && _value <= _end)) {\n _value = _start\n }\n const currentYear = _value.getFullYear()\n const currentMonth = _value.getMonth() + 1\n const currentDay = _value.getDate()\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n indexRef.current = [\n yearRange.indexOf(currentYear),\n monthRange.indexOf(currentMonth),\n dayRange.indexOf(currentDay)\n ]\n if (\n !pickerDateRef.current ||\n pickerDateRef.current._value.getTime() !== _value.getTime() ||\n pickerDateRef.current._start.getTime() !== _start.getTime() ||\n pickerDateRef.current._end.getTime() !== _end.getTime()\n ) {\n pickerDateRef.current = {\n _value,\n _start,\n _end,\n _updateValue: [currentYear, currentMonth, currentDay]\n }\n }\n } else if (mode === 'region') {\n // region 模式处理 - 验证数据\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n indexRef.current = [0]\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n indexRef.current = [0]\n return\n }\n\n // 获取列数\n const val = Array.isArray(value) ? (value as unknown as string[]) : []\n\n // 根据level和当前值确定索引\n indexRef.current = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i >= val.length || !currentData?.length) {\n indexRef.current.push(0)\n continue\n }\n\n const currentValue = val[i]\n const index = currentData.findIndex(item => item.value === currentValue)\n\n if (index >= 0) {\n indexRef.current.push(index)\n // 为下一列准备数据\n const selectedItem = currentData[index]\n currentData = selectedItem.children || []\n } else {\n indexRef.current.push(0)\n // 如果找不到匹配项,为下一列准备第一项的子数据\n currentData = currentData[0]?.children || []\n }\n }\n } else {\n throw new Error(`Picker not support \"${mode}\" mode.`)\n }\n\n // 更新索引值\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n pickerValue: value || EMPTY_ARRAY\n }))\n }, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices])\n\n // 组件初始化\n React.useEffect(() => {\n setState(prev => ({ ...prev, isWillLoadCalled: true }))\n handleProps()\n }, [])\n\n // 属性变化监听 - 添加 value 依赖以支持联动选择器\n React.useEffect(() => {\n if (state.isWillLoadCalled) {\n handleProps()\n }\n }, [handleProps, state.isWillLoadCalled, JSON.stringify(value)])\n\n // 显示 Picker\n const showPicker = React.useCallback(() => {\n if (disabled) return\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n hidden: false\n }))\n }, [disabled, getIndices])\n\n // 隐藏 Picker\n const hidePicker = React.useCallback(() => {\n setState(prev => ({ ...prev, fadeOut: true }))\n setTimeout(() => {\n setState(prev => ({\n ...prev,\n hidden: true,\n fadeOut: false\n }))\n }, 350)\n }, [])\n\n // 更新索引\n const updateIndex = React.useCallback((index: number, columnId: string, needRevise = false) => {\n const columnIndex = Number(columnId)\n let finalIndices = [...state.selectedIndices]\n finalIndices[columnIndex] = index\n let hasLimited = false\n\n // region 模式的级联更新逻辑\n if (mode === 'region' && regionData) {\n // 重置后续列\n for (let i = columnIndex + 1; i < columnsCount; i++) {\n finalIndices[i] = 0\n }\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n return // 直接返回\n }\n\n // time picker\n if (needRevise && mode === 'time') {\n let startTime = start\n let endTime = end\n\n if (!verifyTime(startTime)) startTime = '00:00'\n if (!verifyTime(endTime)) endTime = '23:59'\n if (!compareTime(startTime, endTime)) return false\n\n const timeRanges = [hoursRange.slice(), minutesRange.slice()]\n // 然后基于更新后的索引数组计算时间\n const timeStr = finalIndices.map((idx, i) => {\n const rangeIdx = Math.max(0, Math.min(idx, timeRanges[i].length - 1))\n return timeRanges[i][rangeIdx] || '00'\n }).join(':')\n\n // 检查是否需要限位\n if (!compareTime(startTime, timeStr)) {\n // 修正到 start\n const startParts = startTime.split(':').map(part => parseInt(part))\n const newIndices = startParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n } else if (!compareTime(timeStr, endTime)) {\n // 修正到 end\n const endParts = endTime.split(':').map(part => parseInt(part))\n const newIndices = endParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n }\n\n // 无论是否限位,都更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n\n return hasLimited\n }\n\n // 常规更新\n finalIndices[columnIndex] = index\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n\n return false // 没有限位\n }, [start, end, mode, regionData, state.selectedIndices, columnsCount])\n\n // 更新日期\n const updateDay = React.useCallback((value: number, fields: number) => {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n\n // 更新当前字段的值\n _updateValue[fields] = value\n\n // 获取当前年月日\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const currentDay = _updateValue[2]\n\n // 保存原始值用于后面比较\n const originalValues = [..._updateValue]\n\n // 准备最终的索引数组 - 复制当前索引状态作为起点\n const finalIndices = [...state.selectedIndices]\n\n // 获取基础范围数据\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n let dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 根据修改的字段进行不同处理\n if (fields === 0) { // 年份变化\n // 年份索引直接更新\n finalIndices[0] = yearRange.indexOf(currentYear)\n\n // 月份限位处理\n if (monthRange.length > 0) {\n if (currentMonth > monthRange[monthRange.length - 1]) {\n _updateValue[1] = monthRange[monthRange.length - 1]\n }\n if (currentMonth < monthRange[0]) {\n _updateValue[1] = monthRange[0]\n }\n\n // 更新月份索引\n finalIndices[1] = monthRange.indexOf(_updateValue[1])\n\n // 重新计算日期范围\n dayRange = getDayRange(_start, _end, currentYear, _updateValue[1])\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n }\n } else if (fields === 1) { // 月份变化\n // 月份索引直接更新\n finalIndices[1] = monthRange.indexOf(currentMonth)\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n } else if (fields === 2) { // 日期变化\n // 日期索引直接更新\n finalIndices[2] = dayRange.indexOf(currentDay)\n }\n\n // 只在有实际变化时更新状态\n if (\n JSON.stringify(originalValues) !== JSON.stringify(_updateValue) ||\n JSON.stringify(finalIndices) !== JSON.stringify(state.selectedIndices)\n ) {\n // 一次性更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n }\n }, [state.selectedIndices])\n\n // 处理确认\n const handleChange = React.useCallback(() => {\n const newIndices = [...state.selectedIndices]\n indexRef.current = newIndices\n\n let newValue: PickerValue = newIndices.length && mode !== 'selector'\n ? newIndices\n : newIndices[0]\n\n if (mode === 'time') {\n const range = [hoursRange.slice(), minutesRange.slice()]\n\n // 安全的时间处理,添加边界检查\n const timeArr = newIndices.map<string>((idx, i) => {\n const index = Math.max(0, Math.min(idx, range[i].length - 1))\n return range[i][index] || (i === 0 ? '00' : '00')\n })\n\n // 确保时间值有效\n const validTimeArr = timeArr.map(time => {\n const num = parseInt(time)\n return isNaN(num) ? '00' : time\n })\n\n indexRef.current = validTimeArr.map(item => parseInt(item))\n newValue = validTimeArr.join(':')\n }\n\n if (mode === 'date') {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 添加边界检查,确保索引有效\n const yearIndex = Math.min(Math.max(Math.floor(newIndices[0]), 0), yearRange.length - 1)\n const monthIndex = Math.min(Math.max(Math.floor(newIndices[1]), 0), monthRange.length - 1)\n const dayIndex = Math.min(Math.max(Math.floor(newIndices[2]), 0), dayRange.length - 1)\n\n const year = yearRange[yearIndex]\n const month = monthRange[monthIndex]\n const day = dayRange[dayIndex]\n\n // 确保所有值都存在\n if (year === undefined || month === undefined || day === undefined) {\n console.warn('Date picker: invalid date values', { year, month, day })\n return\n }\n\n if (fields === 'year') {\n newValue = year.toString()\n } else if (fields === 'month') {\n // YYYY-MM 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}`\n } else {\n // YYYY-MM-DD 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n onChange?.({ detail: { value: newValue } })\n return\n }\n\n if (mode === 'region') {\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n return\n }\n\n // 直接使用索引数组\n const selectedCodes: string[] = []\n let postcode = ''\n\n // 安全获取选中值\n let currentData = regionData\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData || currentData.length === 0) break\n\n const index = newIndices[i] || 0\n if (index < 0 || index >= currentData.length) break\n\n const item = currentData[index]\n selectedCodes.push(item.code)\n\n // 如果是最后一项,获取邮政编码\n if (i === columnsCount - 1 && item.postcode) {\n postcode = item.postcode\n }\n\n // 准备下一级数据\n currentData = item.children || []\n }\n\n // 检查索引数组长度是否符合要求\n if (newIndices.length < columnsCount) {\n console.warn('Region picker: incomplete selection')\n return\n }\n\n // 触发 onChange 事件,包含 code 信息\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newIndices\n }))\n\n onChange?.({\n detail: {\n value: newIndices,\n code: selectedCodes.join(','),\n postcode\n }\n })\n return\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n // 触发 onChange 事件,格式与原始组件一致\n onChange?.({ detail: { value: newValue } })\n }, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount])\n\n // 处理列变化\n const handleColumnChange = React.useCallback((e: { columnId: string, index: number }) => {\n const { columnId, index } = e\n onColumnChange?.({\n detail: {\n column: Number(columnId),\n value: index\n }\n })\n }, [onColumnChange])\n\n // 处理取消\n const handleCancel = React.useCallback(() => {\n hidePicker()\n onCancel?.()\n }, [hidePicker, onCancel])\n\n // 渲染选择器组\n const renderPickerGroup = React.useMemo(() => {\n switch (mode) {\n case 'multiSelector': {\n return range.map((rangeItem, index) => (\n <PickerGroup\n key={index}\n range={rangeItem}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n onColumnChange={handleColumnChange}\n columnId={String(index)}\n selectedIndex={state.selectedIndices[index]} // 传递对应列的selectedIndex\n />\n ))\n }\n case 'time': {\n return [\n <PickerGroup\n key={`hour-${state.timestamp}`}\n mode=\"time\"\n range={hoursRange}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递小时列的selectedIndex\n />,\n <PickerGroup\n key={`minute-${state.timestamp}`}\n mode=\"time\"\n range={minutesRange}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递分钟列的selectedIndex\n />\n ]\n }\n case 'date': {\n if (!pickerDateRef.current) return null\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n .map(item => `${item}年`)\n const monthRange = getMonthRange(_start, _end, currentYear)\n .map(item => `${item < 10 ? `0${item}` : item}月`)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n .map(item => `${item < 10 ? `0${item}` : item}日`)\n\n const renderView = [\n <PickerGroup\n key={`year`}\n mode=\"date\"\n range={yearRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递年份列的selectedIndex\n />\n ]\n if (fields === 'month' || fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`month`}\n mode=\"date\"\n range={monthRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递月份列的selectedIndex\n />\n )\n }\n if (fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`day`}\n mode=\"date\"\n range={dayRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"2\"\n selectedIndex={state.selectedIndices[2]} // 传递日期列的selectedIndex\n />\n )\n }\n return renderView\n }\n case 'region': {\n // region 模式处理 - 自动识别数据层级\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return null\n }\n\n // 简化验证逻辑\n if (!validateRegionData(regionData, 'Picker').valid) {\n return null\n }\n\n const columns: JSX.Element[] = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i > 0 && currentData?.length) {\n // 获取上一级选中项的children作为当前列数据\n const prevIndex = state.selectedIndices[i - 1] || 0\n if (prevIndex >= 0 && prevIndex < currentData.length) {\n currentData = currentData[prevIndex].children || []\n } else {\n currentData = []\n }\n }\n\n columns.push(\n <PickerGroup\n key={`region-${i}`}\n mode=\"region\"\n range={currentData}\n rangeKey=\"value\"\n updateIndex={updateIndex}\n columnId={String(i)}\n selectedIndex={state.selectedIndices[i]}\n />\n )\n }\n\n return columns\n }\n default:\n return (\n <PickerGroup\n range={range}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递selector模式的selectedIndex\n />\n )\n }\n }, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, columnsCount])\n\n // 动画类名控制逻辑\n const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {\n 'taro-picker__animate-fade-out': state.fadeOut\n })\n const clsSlider = classNames('taro-picker', 'taro-picker__animate-slide-up', {\n 'taro-picker__animate-slide-down': state.fadeOut\n })\n\n // 暴露方法给外部\n React.useImperativeHandle(ref, () => ({\n showPicker,\n hidePicker\n }))\n\n return (\n <View\n ref={ref as any} // 直接绑定 ref\n style={style}\n {...(formType ? { 'data-form-type': formType } : {})}\n {...omit(restProps, ['mode', 'disabled', 'range', 'rangeKey', 'value', 'start', 'end', 'fields', 'name', 'textProps', 'onChange', 'onColumnChange', 'onCancel', 'children', 'style', 'formType'])}\n >\n <View onClick={showPicker}>\n {children}\n </View>\n {!state.hidden && (\n <View className=\"taro-picker__overlay\">\n <View className={clsMask} onClick={handleCancel} />\n <View className={clsSlider}>\n <View className=\"taro-picker__hd\">\n <View className=\"taro-picker__action\" onClick={handleCancel}>\n {textProps.cancelText ?? '取消'}\n </View>\n {headerText && (\n <View className=\"taro-picker__title\">{headerText}</View>\n )}\n <View className=\"taro-picker__action\" onClick={handleChange}>\n {textProps.okText ?? '确定'}\n </View>\n </View>\n <View className=\"taro-picker__bd\">{renderPickerGroup}</View>\n </View>\n </View>\n )}\n </View>\n )\n})\n\nPicker.displayName = 'Picker'\n\nexport default Picker\n"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","validateRegionData","data","componentName","arguments","length","undefined","valid","error","Array","isArray","validateItem","item","path","value","code","postcode","children","i","childResult","result","getRegionColumnsCount","level","Picker","React","forwardRef","props","ref","mode","disabled","range","rangeKey","start","end","fields","headerText","regionData","textProps","onChange","onColumnChange","onCancel","style","formType","restProps","__rest","indexRef","useRef","pickerDateRef","state","setState","useState","pickerValue","selectedIndices","slice","hidden","fadeOut","isWillLoadCalled","timestamp","columnsCount","setColumnsCount","useEffect","getIndices","useCallback","current","handleProps","val","verifyValue","Math","floor","forEach","rangeItem","index","valItem","push","verifyTime","console","warn","time","split","map","n","hourIndex","hoursRange","findIndex","parseInt","minuteIndex","minutesRange","safeHourIndex","safeMinuteIndex","max","min","_value","verifyDate","Date","setHours","_start","_end","Error","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","yearRange","getYearRange","monthRange","getMonthRange","dayRange","getDayRange","indexOf","getTime","_updateValue","validation","currentData","currentValue","selectedItem","_a","newIndices","prev","Object","assign","JSON","stringify","showPicker","hidePicker","setTimeout","updateIndex","columnId","needRevise","columnIndex","Number","finalIndices","hasLimited","now","startTime","endTime","compareTime","timeRanges","timeStr","idx","rangeIdx","join","startParts","part","endParts","updateDay","originalValues","handleChange","newValue","timeArr","validTimeArr","num","isNaN","yearIndex","monthIndex","dayIndex","year","month","day","toString","detail","selectedCodes","handleColumnChange","e","column","handleCancel","renderPickerGroup","useMemo","_$createComponent","PickerGroup","key","String","selectedIndex","renderView","columns","prevIndex","clsMask","classNames","clsSlider","useImperativeHandle","View","_$mergeProps","r$","_ref$","omit","onClick","_$memo","className","cancelText","okText","_b","displayName"],"mappings":";;;;;;;;;AA4BA;AACA,MAAMA,WAAW,GAAU,EAAE;AAC7B,MAAMC,YAAY,GAAwB,EAAE;AAE5C;AACA,SAASC,kBAAkBA,CAACC,IAAkB,EAA0B;AAAA,EAAA,IAAxBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,QAAQ;EACtE,IAAI,CAACF,IAAI,EAAE;IACT,OAAO;AAAEK,MAAAA,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE,GAAGL,aAAa,CAAA,wCAAA;KAA4C;AAC5F;AAEA,EAAA,IAAI,CAACM,KAAK,CAACC,OAAO,CAACR,IAAI,CAAC,EAAE;IACxB,OAAO;AAAEK,MAAAA,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE,GAAGL,aAAa,CAAA,6BAAA;KAAiC;AACjF;AAEA,EAAA,IAAID,IAAI,CAACG,MAAM,KAAK,CAAC,EAAE;IACrB,OAAO;AAAEE,MAAAA,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE,GAAGL,aAAa,CAAA,4BAAA;KAAgC;AAChF;AAEA;AACA,EAAA,MAAMQ,YAAY,GAAGA,CAACC,IAAgB,EAAEC,IAAY,KAAwC;AAC1F,IAAA,IAAI,CAACD,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACrC,OAAO;AAAEL,QAAAA,KAAK,EAAE,KAAK;AAAEC,QAAAA,KAAK,EAAE,CAAA,EAAGL,aAAa,CAAA,kBAAA,EAAqBU,IAAI,CAAA;OAAI;AAC7E;IAEA,IAAI,CAACD,IAAI,CAACE,KAAK,IAAI,OAAOF,IAAI,CAACE,KAAK,KAAK,QAAQ,EAAE;MACjD,OAAO;AAAEP,QAAAA,KAAK,EAAE,KAAK;AAAEC,QAAAA,KAAK,EAAE,CAAA,EAAGL,aAAa,CAAA,sCAAA,EAAyCU,IAAI,CAAA;OAAI;AACjG;IAEA,IAAI,CAACD,IAAI,CAACG,IAAI,IAAI,OAAOH,IAAI,CAACG,IAAI,KAAK,QAAQ,EAAE;MAC/C,OAAO;AAAER,QAAAA,KAAK,EAAE,KAAK;AAAEC,QAAAA,KAAK,EAAE,CAAA,EAAGL,aAAa,CAAA,qCAAA,EAAwCU,IAAI,CAAA;OAAI;AAChG;AAEA,IAAA,IAAID,IAAI,CAACI,QAAQ,KAAKV,SAAS,IAAI,OAAOM,IAAI,CAACI,QAAQ,KAAK,QAAQ,EAAE;MACpE,OAAO;AAAET,QAAAA,KAAK,EAAE,KAAK;AAAEC,QAAAA,KAAK,EAAE,CAAA,EAAGL,aAAa,CAAA,8BAAA,EAAiCU,IAAI,CAAA;OAAI;AACzF;AAEA,IAAA,IAAID,IAAI,CAACK,QAAQ,IAAI,CAACR,KAAK,CAACC,OAAO,CAACE,IAAI,CAACK,QAAQ,CAAC,EAAE;MAClD,OAAO;AAAEV,QAAAA,KAAK,EAAE,KAAK;AAAEC,QAAAA,KAAK,EAAE,CAAA,EAAGL,aAAa,CAAA,iCAAA,EAAoCU,IAAI,CAAA;OAAI;AAC5F;IAEA,IAAID,IAAI,CAACK,QAAQ,EAAE;AACjB,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,IAAI,CAACK,QAAQ,CAACZ,MAAM,EAAEa,CAAC,EAAE,EAAE;AAC7C,QAAA,MAAMC,WAAW,GAAGR,YAAY,CAACC,IAAI,CAACK,QAAQ,CAACC,CAAC,CAAC,EAAE,CAAGL,EAAAA,IAAI,CAAaK,UAAAA,EAAAA,CAAC,GAAG,CAAC;AAC5E,QAAA,IAAI,CAACC,WAAW,CAACZ,KAAK,EAAE,OAAOY,WAAW;AAC5C;AACF;IAEA,OAAO;AAAEZ,MAAAA,KAAK,EAAE;KAAM;GACvB;AAED,EAAA,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,IAAI,CAACG,MAAM,EAAEa,CAAC,EAAE,EAAE;AACpC,IAAA,MAAME,MAAM,GAAGT,YAAY,CAACT,IAAI,CAACgB,CAAC,CAAC,EAAE,CAAA,WAAA,EAAcA,CAAC,CAAA,CAAA,CAAG,CAAC;AACxD,IAAA,IAAI,CAACE,MAAM,CAACb,KAAK,EAAE,OAAOa,MAAM;AAClC;EAEA,OAAO;AAAEb,IAAAA,KAAK,EAAE;GAAM;AACxB;AAmDA;AACA,SAASc,qBAAqBA,CAACC,KAAkB,EAAA;AAC/C,EAAA,QAAQA,KAAK;AACX,IAAA,KAAK,UAAU;AAAE,MAAA,OAAO,CAAC;AACzB,IAAA,KAAK,MAAM;AAAE,MAAA,OAAO,CAAC;AACrB,IAAA,KAAK,QAAQ;AAAE,MAAA,OAAO,CAAC;AACvB,IAAA;AAAS,MAAA,OAAO,CAAC;AAAC;AACpB;AACF;AAQMC,MAAAA,MAAM,GAAGC,KAAK,CAACC,UAAU,CAAoB,CAACC,KAAK,EAAEC,GAAG,KAAI;;EAChE,MAAM;AACJC,MAAAA,IAAI,GAAG,UAAU;AACjBC,MAAAA,QAAQ,GAAG,KAAK;AAChBC,MAAAA,KAAK,GAAG/B,WAAW;MACnBgC,QAAQ;MACRjB,KAAK;AACLkB,MAAAA,KAAK,GAAG,EAAE;AACVC,MAAAA,GAAG,GAAG,EAAE;AACRC,MAAAA,MAAM,GAAG,KAAK;MACdC,UAAU;AACVb,MAAAA,KAAK,GAAG,QAAQ;MAChBc,UAAU;AACVC,MAAAA,SAAS,GAAGrC,YAAY;MACxBsC,QAAQ;MACRC,cAAc;MACdC,QAAQ;MACRvB,QAAQ;MACRwB,KAAK;AACLC,MAAAA;AAEE,KAAA,GAAAhB,KAAK;AADJiB,IAAAA,SAAS,GACVC,MAAA,CAAAlB,KAAK,EApBH,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,CAoBL,CAAQ;AACT,EAAA,MAAMmB,QAAQ,GAAGrB,KAAK,CAACsB,MAAM,CAAW,EAAE,CAAC;AAC3C,EAAA,MAAMC,aAAa,GAAGvB,KAAK,CAACsB,MAAM,EAAc;EAEhD,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGzB,KAAK,CAAC0B,QAAQ,CAAS;IAC/CC,WAAW,EAAErC,KAAK,IAAIf,WAAW;AACjCqD,IAAAA,eAAe,EAAErD,WAAW,CAACsD,KAAK,EAAE;AAAE;AACtCC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,OAAO,EAAE,KAAK;AACdC,IAAAA,gBAAgB,EAAE,KAAK;IACvBC,SAAS,EAAE,CAAC;AACb,GAAA,CAAC;AAEF;AACA,EAAA,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGnC,KAAK,CAAC0B,QAAQ,CAAC,MAAM7B,qBAAqB,CAACC,KAAK,CAAC,CAAC;AAE1F;EACAE,KAAK,CAACoC,SAAS,CAAC,MAAK;AACnBD,IAAAA,eAAe,CAACtC,qBAAqB,CAACC,KAAK,CAAC,CAAC;AAC/C,GAAC,EAAE,CAACA,KAAK,CAAC,CAAC;AAEX;AACA,EAAA,MAAMuC,UAAU,GAAGrC,KAAK,CAACsC,WAAW,CAAC,MAAK;IACxC,OAAOjB,QAAQ,CAACkB,OAAO;GACxB,EAAE,EAAE,CAAC;AAEN;AACA,EAAA,MAAMC,WAAW,GAAGxC,KAAK,CAACsC,WAAW,CAAC,MAAK;;IACzC,IAAIlC,IAAI,KAAK,UAAU,EAAE;MACvB,MAAMqC,GAAG,GAAGnD,KAAe;AAC3B+B,MAAAA,QAAQ,CAACkB,OAAO,GAAG,CAACG,WAAW,CAACD,GAAG,EAAEnC,KAAK,CAAC,GAAGqC,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,GAAG,CAAC,CAAC;AACpE,KAAC,MAAM,IAAIrC,IAAI,KAAK,eAAe,EAAE;MACnC,MAAMqC,GAAG,GAAGnD,KAAiB;MAC7B+B,QAAQ,CAACkB,OAAO,GAAG,EAAE;AACrBjC,MAAAA,KAAK,CAACuC,OAAO,CAAC,CAACC,SAAS,EAAEC,KAAK,KAAI;AACjC,QAAA,MAAMC,OAAO,GAAGP,GAAG,KAAH,IAAA,IAAAA,GAAG,uBAAHA,GAAG,CAAGM,KAAK,CAAC;AAC5B,QAAA,MAAM3D,IAAI,GAAGsD,WAAW,CAACM,OAAO,EAAEF,SAAkB,CAAC,GAAGH,IAAI,CAACC,KAAK,CAACI,OAAO,CAAC,GAAG,CAAC;AAC/E3B,QAAAA,QAAQ,CAACkB,OAAO,CAACU,IAAI,CAAC7D,IAAI,CAAC;AAC7B,OAAC,CAAC;AACJ,KAAC,MAAM,IAAIgB,IAAI,KAAK,MAAM,EAAE;MAC1B,IAAIqC,GAAG,GAAGnD,KAAe;AACzB,MAAA,IAAI,CAAC4D,UAAU,CAACT,GAAG,CAAC,EAAE;AACpBU,QAAAA,OAAO,CAACC,IAAI,CAAC,2BAA2B,CAAC;AACzCX,QAAAA,GAAG,GAAG,KAAK;AACb;AACA,MAAA,MAAMY,IAAI,GAAGZ,GAAG,CAACa,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,CAAC,IAAI,CAACA,CAAC,CAAC;AAExC;AACA,MAAA,MAAMC,SAAS,GAAGC,UAAU,CAACC,SAAS,CAACvE,IAAI,IAAIwE,QAAQ,CAACxE,IAAI,CAAC,KAAKiE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1E,MAAA,MAAMQ,WAAW,GAAGC,YAAY,CAACH,SAAS,CAACvE,IAAI,IAAIwE,QAAQ,CAACxE,IAAI,CAAC,KAAKiE,IAAI,CAAC,CAAC,CAAC,CAAC;AAE9E;MACA,MAAMU,aAAa,GAAGN,SAAS,IAAI,CAAC,GAAGA,SAAS,GAAG,CAAC,CAAA;MACpD,MAAMO,eAAe,GAAGH,WAAW,IAAI,CAAC,GAAGA,WAAW,GAAG,CAAC,CAAA;AAE1DxC,MAAAA,QAAQ,CAACkB,OAAO,GAAG,CACjBI,IAAI,CAACsB,GAAG,CAAC,CAAC,EAAEtB,IAAI,CAACuB,GAAG,CAACH,aAAa,EAAEL,UAAU,CAAC7E,MAAM,GAAG,CAAC,CAAC,CAAC,EAC3D8D,IAAI,CAACsB,GAAG,CAAC,CAAC,EAAEtB,IAAI,CAACuB,GAAG,CAACF,eAAe,EAAEF,YAAY,CAACjF,MAAM,GAAG,CAAC,CAAC,CAAC,CAChE;AACH,KAAC,MAAM,IAAIuB,IAAI,KAAK,MAAM,EAAE;MAC1B,MAAMqC,GAAG,GAAGnD,KAAe;MAC3B,IAAI6E,MAAM,GAAGC,UAAU,CAAC3B,GAAG,CAAC,IAAI,IAAI4B,IAAI,CAAC,IAAIA,IAAI,EAAE,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;MACzE,MAAMC,MAAM,GAAGH,UAAU,CAAC5D,KAAK,CAAC,IAAI,IAAI6D,IAAI,CAAC,YAAY,CAAC;MAC1D,MAAMG,IAAI,GAAGJ,UAAU,CAAC3D,GAAG,CAAC,IAAI,IAAI4D,IAAI,CAAC,YAAY,CAAC;AACtD,MAAA,IAAI,EAAEE,MAAM,IAAIC,IAAI,CAAC,EAAE;AACrB,QAAA,MAAM,IAAIC,KAAK,CAAC,CAAA,6CAAA,CAA+C,CAAC;AAClE;MACA,IAAI,EAAEN,MAAM,IAAII,MAAM,IAAIJ,MAAM,IAAIK,IAAI,CAAC,EAAE;AACzCL,QAAAA,MAAM,GAAGI,MAAM;AACjB;AACA,MAAA,MAAMG,WAAW,GAAGP,MAAM,CAACQ,WAAW,EAAE;MACxC,MAAMC,YAAY,GAAGT,MAAM,CAACU,QAAQ,EAAE,GAAG,CAAC;AAC1C,MAAA,MAAMC,UAAU,GAAGX,MAAM,CAACY,OAAO,EAAE;AACnC,MAAA,MAAMC,SAAS,GAAGC,YAAY,CAACV,MAAM,CAACI,WAAW,EAAE,EAAEH,IAAI,CAACG,WAAW,EAAE,CAAC;MACxE,MAAMO,UAAU,GAAGC,aAAa,CAACZ,MAAM,EAAEC,IAAI,EAAEE,WAAW,CAAC;MAC3D,MAAMU,QAAQ,GAAGC,WAAW,CAACd,MAAM,EAAEC,IAAI,EAAEE,WAAW,EAAEE,YAAY,CAAC;MACrEvD,QAAQ,CAACkB,OAAO,GAAG,CACjByC,SAAS,CAACM,OAAO,CAACZ,WAAW,CAAC,EAC9BQ,UAAU,CAACI,OAAO,CAACV,YAAY,CAAC,EAChCQ,QAAQ,CAACE,OAAO,CAACR,UAAU,CAAC,CAC7B;MACD,IACE,CAACvD,aAAa,CAACgB,OAAO,IACtBhB,aAAa,CAACgB,OAAO,CAAC4B,MAAM,CAACoB,OAAO,EAAE,KAAKpB,MAAM,CAACoB,OAAO,EAAE,IAC3DhE,aAAa,CAACgB,OAAO,CAACgC,MAAM,CAACgB,OAAO,EAAE,KAAKhB,MAAM,CAACgB,OAAO,EAAE,IAC3DhE,aAAa,CAACgB,OAAO,CAACiC,IAAI,CAACe,OAAO,EAAE,KAAKf,IAAI,CAACe,OAAO,EAAE,EACvD;QACAhE,aAAa,CAACgB,OAAO,GAAG;UACtB4B,MAAM;UACNI,MAAM;UACNC,IAAI;AACJgB,UAAAA,YAAY,EAAE,CAACd,WAAW,EAAEE,YAAY,EAAEE,UAAU;SACrD;AACH;AACF,KAAC,MAAM,IAAI1E,IAAI,KAAK,QAAQ,EAAE;AAC5B;MACA,IAAI,CAACQ,UAAU,EAAE;AACfuC,QAAAA,OAAO,CAACnE,KAAK,CAAC,gDAAgD,CAAC;AAC/DqC,QAAAA,QAAQ,CAACkB,OAAO,GAAG,CAAC,CAAC,CAAC;AACtB,QAAA;AACF;AAEA,MAAA,MAAMkD,UAAU,GAAGhH,kBAAkB,CAACmC,UAAU,EAAE,QAAQ,CAAC;AAC3D,MAAA,IAAI,CAAC6E,UAAU,CAAC1G,KAAK,EAAE;AACrBoE,QAAAA,OAAO,CAACnE,KAAK,CAACyG,UAAU,CAACzG,KAAK,CAAC;AAC/BqC,QAAAA,QAAQ,CAACkB,OAAO,GAAG,CAAC,CAAC,CAAC;AACtB,QAAA;AACF;AAEA;MACA,MAAME,GAAG,GAAGxD,KAAK,CAACC,OAAO,CAACI,KAAK,CAAC,GAAIA,KAA6B,GAAG,EAAE;AAEtE;MACA+B,QAAQ,CAACkB,OAAO,GAAG,EAAE;MACrB,IAAImD,WAAW,GAAG9E,UAAU;MAE5B,KAAK,IAAIlB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwC,YAAY,EAAExC,CAAC,EAAE,EAAE;QACrC,IAAIA,CAAC,IAAI+C,GAAG,CAAC5D,MAAM,IAAI,EAAC6G,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,WAAW,CAAE7G,MAAM,CAAA,EAAE;AAC3CwC,UAAAA,QAAQ,CAACkB,OAAO,CAACU,IAAI,CAAC,CAAC,CAAC;AACxB,UAAA;AACF;AAEA,QAAA,MAAM0C,YAAY,GAAGlD,GAAG,CAAC/C,CAAC,CAAC;AAC3B,QAAA,MAAMqD,KAAK,GAAG2C,WAAW,CAAC/B,SAAS,CAACvE,IAAI,IAAIA,IAAI,CAACE,KAAK,KAAKqG,YAAY,CAAC;QAExE,IAAI5C,KAAK,IAAI,CAAC,EAAE;AACd1B,UAAAA,QAAQ,CAACkB,OAAO,CAACU,IAAI,CAACF,KAAK,CAAC;AAC5B;AACA,UAAA,MAAM6C,YAAY,GAAGF,WAAW,CAAC3C,KAAK,CAAC;AACvC2C,UAAAA,WAAW,GAAGE,YAAY,CAACnG,QAAQ,IAAI,EAAE;AAC3C,SAAC,MAAM;AACL4B,UAAAA,QAAQ,CAACkB,OAAO,CAACU,IAAI,CAAC,CAAC,CAAC;AACxB;UACAyC,WAAW,GAAG,CAAA,CAAAG,EAAA,GAAAH,WAAW,CAAC,CAAC,CAAC,MAAE,IAAA,IAAAG,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAApG,QAAQ,KAAI,EAAE;AAC9C;AACF;AACF,KAAC,MAAM;AACL,MAAA,MAAM,IAAIgF,KAAK,CAAC,CAAuBrE,oBAAAA,EAAAA,IAAI,SAAS,CAAC;AACvD;AAEA;AACA,IAAA,MAAM0F,UAAU,GAAGzD,UAAU,EAAE;AAC/BZ,IAAAA,QAAQ,CAACsE,IAAI,IAAIC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EACZF,IAAI,CACP,EAAA;AAAAnE,MAAAA,eAAe,EAAEkE,UAAU;MAC3BnE,WAAW,EAAErC,KAAK,IAAIf;AAAW,KAAA,CACjC,CAAC;GACJ,EAAE,CAAC6B,IAAI,EAAEE,KAAK,EAAEhB,KAAK,EAAEkB,KAAK,EAAEC,GAAG,EAAEC,MAAM,EAAEE,UAAU,EAAEd,KAAK,EAAEoC,YAAY,EAAEG,UAAU,CAAC,CAAC;AAEzF;EACArC,KAAK,CAACoC,SAAS,CAAC,MAAK;AACnBX,IAAAA,QAAQ,CAACsE,IAAI,IAAIC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAMF,IAAI,CAAA,EAAA;AAAE/D,MAAAA,gBAAgB,EAAE;AAAI,KAAA,CAAG,CAAC;AACvDQ,IAAAA,WAAW,EAAE;GACd,EAAE,EAAE,CAAC;AAEN;EACAxC,KAAK,CAACoC,SAAS,CAAC,MAAK;IACnB,IAAIZ,KAAK,CAACQ,gBAAgB,EAAE;AAC1BQ,MAAAA,WAAW,EAAE;AACf;AACF,GAAC,EAAE,CAACA,WAAW,EAAEhB,KAAK,CAACQ,gBAAgB,EAAEkE,IAAI,CAACC,SAAS,CAAC7G,KAAK,CAAC,CAAC,CAAC;AAEhE;AACA,EAAA,MAAM8G,UAAU,GAAGpG,KAAK,CAACsC,WAAW,CAAC,MAAK;AACxC,IAAA,IAAIjC,QAAQ,EAAE;AACd,IAAA,MAAMyF,UAAU,GAAGzD,UAAU,EAAE;AAC/BZ,IAAAA,QAAQ,CAACsE,IAAI,oCACRA,IAAI,CAAA,EAAA;AACPnE,MAAAA,eAAe,EAAEkE,UAAU;AAC3BhE,MAAAA,MAAM,EAAE;AAAK,KAAA,CACb,CAAC;AACL,GAAC,EAAE,CAACzB,QAAQ,EAAEgC,UAAU,CAAC,CAAC;AAE1B;AACA,EAAA,MAAMgE,UAAU,GAAGrG,KAAK,CAACsC,WAAW,CAAC,MAAK;AACxCb,IAAAA,QAAQ,CAACsE,IAAI,IAAIC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAMF,IAAI,CAAA,EAAA;AAAEhE,MAAAA,OAAO,EAAE;AAAI,KAAA,CAAG,CAAC;AAC9CuE,IAAAA,UAAU,CAAC,MAAK;AACd7E,MAAAA,QAAQ,CAACsE,IAAI,oCACRA,IAAI,CAAA,EAAA;AACPjE,QAAAA,MAAM,EAAE,IAAI;AACZC,QAAAA,OAAO,EAAE;AAAK,OAAA,CACd,CAAC;KACJ,EAAE,GAAG,CAAC;GACR,EAAE,EAAE,CAAC;AAEN;EACA,MAAMwE,WAAW,GAAGvG,KAAK,CAACsC,WAAW,CAAC,UAACS,KAAa,EAAEyD,QAAgB,EAAwB;AAAA,IAAA,IAAtBC,UAAU,GAAA7H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK;AACxF,IAAA,MAAM8H,WAAW,GAAGC,MAAM,CAACH,QAAQ,CAAC;AACpC,IAAA,IAAII,YAAY,GAAG,CAAC,GAAGpF,KAAK,CAACI,eAAe,CAAC;AAC7CgF,IAAAA,YAAY,CAACF,WAAW,CAAC,GAAG3D,KAAK;IACjC,IAAI8D,UAAU,GAAG,KAAK;AAEtB;AACA,IAAA,IAAIzG,IAAI,KAAK,QAAQ,IAAIQ,UAAU,EAAE;AACnC;AACA,MAAA,KAAK,IAAIlB,CAAC,GAAGgH,WAAW,GAAG,CAAC,EAAEhH,CAAC,GAAGwC,YAAY,EAAExC,CAAC,EAAE,EAAE;AACnDkH,QAAAA,YAAY,CAAClH,CAAC,CAAC,GAAG,CAAC;AACrB;AACA+B,MAAAA,QAAQ,CAACsE,IAAI,IACRC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAAF,IAAI;AACPnE,QAAAA,eAAe,EAAEgF,YAAY;AAC7B3E,QAAAA,SAAS,EAAEoC,IAAI,CAACyC,GAAG;AAAE,OAAA,CACrB,CAAC;AACH,MAAA,OAAM;AACR;AAEA;AACA,IAAA,IAAIL,UAAU,IAAIrG,IAAI,KAAK,MAAM,EAAE;MACjC,IAAI2G,SAAS,GAAGvG,KAAK;MACrB,IAAIwG,OAAO,GAAGvG,GAAG;MAEjB,IAAI,CAACyC,UAAU,CAAC6D,SAAS,CAAC,EAAEA,SAAS,GAAG,OAAO;MAC/C,IAAI,CAAC7D,UAAU,CAAC8D,OAAO,CAAC,EAAEA,OAAO,GAAG,OAAO;MAC3C,IAAI,CAACC,WAAW,CAACF,SAAS,EAAEC,OAAO,CAAC,EAAE,OAAO,KAAK;AAElD,MAAA,MAAME,UAAU,GAAG,CAACxD,UAAU,CAAC7B,KAAK,EAAE,EAAEiC,YAAY,CAACjC,KAAK,EAAE,CAAC;AAC7D;MACA,MAAMsF,OAAO,GAAGP,YAAY,CAACrD,GAAG,CAAC,CAAC6D,GAAG,EAAE1H,CAAC,KAAI;QAC1C,MAAM2H,QAAQ,GAAG1E,IAAI,CAACsB,GAAG,CAAC,CAAC,EAAEtB,IAAI,CAACuB,GAAG,CAACkD,GAAG,EAAEF,UAAU,CAACxH,CAAC,CAAC,CAACb,MAAM,GAAG,CAAC,CAAC,CAAC;QACrE,OAAOqI,UAAU,CAACxH,CAAC,CAAC,CAAC2H,QAAQ,CAAC,IAAI,IAAI;AACxC,OAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AAEZ;AACA,MAAA,IAAI,CAACL,WAAW,CAACF,SAAS,EAAEI,OAAO,CAAC,EAAE;AACpC;AACA,QAAA,MAAMI,UAAU,GAAGR,SAAS,CAACzD,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACiE,IAAI,IAAI5D,QAAQ,CAAC4D,IAAI,CAAC,CAAC;QACnE,MAAM1B,UAAU,GAAGyB,UAAU,CAAChE,GAAG,CAAC,CAACF,IAAI,EAAE3D,CAAC,KAAI;AAC5C,UAAA,MAAM0H,GAAG,GAAGF,UAAU,CAACxH,CAAC,CAAC,CAACiE,SAAS,CAACvE,IAAI,IAAIwE,QAAQ,CAACxE,IAAI,CAAC,KAAKiE,IAAI,CAAC;AACpE,UAAA,OAAO+D,GAAG,IAAI,CAAC,GAAGA,GAAG,GAAG,CAAC;AAC3B,SAAC,CAAC;AAEFR,QAAAA,YAAY,GAAG,CAAC,GAAGd,UAAU,CAAC;AAC9Be,QAAAA,UAAU,GAAG,IAAI;OAClB,MAAM,IAAI,CAACI,WAAW,CAACE,OAAO,EAAEH,OAAO,CAAC,EAAE;AACzC;AACA,QAAA,MAAMS,QAAQ,GAAGT,OAAO,CAAC1D,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACiE,IAAI,IAAI5D,QAAQ,CAAC4D,IAAI,CAAC,CAAC;QAC/D,MAAM1B,UAAU,GAAG2B,QAAQ,CAAClE,GAAG,CAAC,CAACF,IAAI,EAAE3D,CAAC,KAAI;AAC1C,UAAA,MAAM0H,GAAG,GAAGF,UAAU,CAACxH,CAAC,CAAC,CAACiE,SAAS,CAACvE,IAAI,IAAIwE,QAAQ,CAACxE,IAAI,CAAC,KAAKiE,IAAI,CAAC;AACpE,UAAA,OAAO+D,GAAG,IAAI,CAAC,GAAGA,GAAG,GAAG,CAAC;AAC3B,SAAC,CAAC;AAEFR,QAAAA,YAAY,GAAG,CAAC,GAAGd,UAAU,CAAC;AAC9Be,QAAAA,UAAU,GAAG,IAAI;AACnB;AAEA;AACApF,MAAAA,QAAQ,CAACsE,IAAI,IACRC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAAF,IAAI;AACPnE,QAAAA,eAAe,EAAEgF,YAAY;AAC7B3E,QAAAA,SAAS,EAAEoC,IAAI,CAACyC,GAAG;AAAE,OAAA,CACrB,CAAC;AAEH,MAAA,OAAOD,UAAU;AACnB;AAEA;AACAD,IAAAA,YAAY,CAACF,WAAW,CAAC,GAAG3D,KAAK;AACjCtB,IAAAA,QAAQ,CAACsE,IAAI,IACRC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAAF,IAAI;AACPnE,MAAAA,eAAe,EAAEgF,YAAY;AAC7B3E,MAAAA,SAAS,EAAEoC,IAAI,CAACyC,GAAG;AAAE,KAAA,CACrB,CAAC;IAEH,OAAO,KAAK,CAAA;AACd,GAAC,EAAE,CAACtG,KAAK,EAAEC,GAAG,EAAEL,IAAI,EAAEQ,UAAU,EAAEY,KAAK,CAACI,eAAe,EAAEM,YAAY,CAAC,CAAC;AAEvE;EACA,MAAMwF,SAAS,GAAG1H,KAAK,CAACsC,WAAW,CAAC,CAAChD,KAAa,EAAEoB,MAAc,KAAI;AACpE,IAAA,IAAI,CAACa,aAAa,CAACgB,OAAO,EAAE;IAE5B,MAAM;MAAEgC,MAAM;MAAEC,IAAI;AAAEgB,MAAAA;KAAc,GAAGjE,aAAa,CAACgB,OAAO;AAE5D;AACAiD,IAAAA,YAAY,CAAC9E,MAAM,CAAC,GAAGpB,KAAK;AAE5B;AACA,IAAA,MAAMoF,WAAW,GAAGc,YAAY,CAAC,CAAC,CAAC;AACnC,IAAA,MAAMZ,YAAY,GAAGY,YAAY,CAAC,CAAC,CAAC;AACpC,IAAA,MAAMV,UAAU,GAAGU,YAAY,CAAC,CAAC,CAAC;AAElC;AACA,IAAA,MAAMmC,cAAc,GAAG,CAAC,GAAGnC,YAAY,CAAC;AAExC;AACA,IAAA,MAAMoB,YAAY,GAAG,CAAC,GAAGpF,KAAK,CAACI,eAAe,CAAC;AAE/C;AACA,IAAA,MAAMoD,SAAS,GAAGC,YAAY,CAACV,MAAM,CAACI,WAAW,EAAE,EAAEH,IAAI,CAACG,WAAW,EAAE,CAAC;IACxE,MAAMO,UAAU,GAAGC,aAAa,CAACZ,MAAM,EAAEC,IAAI,EAAEE,WAAW,CAAC;IAC3D,IAAIU,QAAQ,GAAGC,WAAW,CAACd,MAAM,EAAEC,IAAI,EAAEE,WAAW,EAAEE,YAAY,CAAC;AAEnE;IACA,IAAIlE,MAAM,KAAK,CAAC,EAAE;AAAE;AAClB;MACAkG,YAAY,CAAC,CAAC,CAAC,GAAG5B,SAAS,CAACM,OAAO,CAACZ,WAAW,CAAC;AAEhD;AACA,MAAA,IAAIQ,UAAU,CAACrG,MAAM,GAAG,CAAC,EAAE;QACzB,IAAI+F,YAAY,GAAGM,UAAU,CAACA,UAAU,CAACrG,MAAM,GAAG,CAAC,CAAC,EAAE;UACpD2G,YAAY,CAAC,CAAC,CAAC,GAAGN,UAAU,CAACA,UAAU,CAACrG,MAAM,GAAG,CAAC,CAAC;AACrD;AACA,QAAA,IAAI+F,YAAY,GAAGM,UAAU,CAAC,CAAC,CAAC,EAAE;AAChCM,UAAAA,YAAY,CAAC,CAAC,CAAC,GAAGN,UAAU,CAAC,CAAC,CAAC;AACjC;AAEA;AACA0B,QAAAA,YAAY,CAAC,CAAC,CAAC,GAAG1B,UAAU,CAACI,OAAO,CAACE,YAAY,CAAC,CAAC,CAAC,CAAC;AAErD;AACAJ,QAAAA,QAAQ,GAAGC,WAAW,CAACd,MAAM,EAAEC,IAAI,EAAEE,WAAW,EAAEc,YAAY,CAAC,CAAC,CAAC,CAAC;AAElE;AACA,QAAA,IAAIJ,QAAQ,CAACvG,MAAM,GAAG,CAAC,EAAE;UACvB,IAAIiG,UAAU,GAAGM,QAAQ,CAACA,QAAQ,CAACvG,MAAM,GAAG,CAAC,CAAC,EAAE;YAC9C2G,YAAY,CAAC,CAAC,CAAC,GAAGJ,QAAQ,CAACA,QAAQ,CAACvG,MAAM,GAAG,CAAC,CAAC;AACjD;AACA,UAAA,IAAIiG,UAAU,GAAGM,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC5BI,YAAAA,YAAY,CAAC,CAAC,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;AAC/B;AAEA;AACAwB,UAAAA,YAAY,CAAC,CAAC,CAAC,GAAGxB,QAAQ,CAACE,OAAO,CAACE,YAAY,CAAC,CAAC,CAAC,CAAC;AACrD;AACF;AACF,KAAC,MAAM,IAAI9E,MAAM,KAAK,CAAC,EAAE;AAAE;AACzB;MACAkG,YAAY,CAAC,CAAC,CAAC,GAAG1B,UAAU,CAACI,OAAO,CAACV,YAAY,CAAC;AAElD;AACA,MAAA,IAAIQ,QAAQ,CAACvG,MAAM,GAAG,CAAC,EAAE;QACvB,IAAIiG,UAAU,GAAGM,QAAQ,CAACA,QAAQ,CAACvG,MAAM,GAAG,CAAC,CAAC,EAAE;UAC9C2G,YAAY,CAAC,CAAC,CAAC,GAAGJ,QAAQ,CAACA,QAAQ,CAACvG,MAAM,GAAG,CAAC,CAAC;AACjD;AACA,QAAA,IAAIiG,UAAU,GAAGM,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC5BI,UAAAA,YAAY,CAAC,CAAC,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;AAC/B;AAEA;AACAwB,QAAAA,YAAY,CAAC,CAAC,CAAC,GAAGxB,QAAQ,CAACE,OAAO,CAACE,YAAY,CAAC,CAAC,CAAC,CAAC;AACrD;AACF,KAAC,MAAM,IAAI9E,MAAM,KAAK,CAAC,EAAE;AAAE;AACzB;MACAkG,YAAY,CAAC,CAAC,CAAC,GAAGxB,QAAQ,CAACE,OAAO,CAACR,UAAU,CAAC;AAChD;AAEA;AACA,IAAA,IACEoB,IAAI,CAACC,SAAS,CAACwB,cAAc,CAAC,KAAKzB,IAAI,CAACC,SAAS,CAACX,YAAY,CAAC,IAC/DU,IAAI,CAACC,SAAS,CAACS,YAAY,CAAC,KAAKV,IAAI,CAACC,SAAS,CAAC3E,KAAK,CAACI,eAAe,CAAC,EACtE;AACA;AACAH,MAAAA,QAAQ,CAACsE,IAAI,IACRC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAAF,IAAI;AACPnE,QAAAA,eAAe,EAAEgF,YAAY;AAC7B3E,QAAAA,SAAS,EAAEoC,IAAI,CAACyC,GAAG;AAAE,OAAA,CACrB,CAAC;AACL;AACF,GAAC,EAAE,CAACtF,KAAK,CAACI,eAAe,CAAC,CAAC;AAE3B;AACA,EAAA,MAAMgG,YAAY,GAAG5H,KAAK,CAACsC,WAAW,CAAC,MAAK;AAC1C,IAAA,MAAMwD,UAAU,GAAG,CAAC,GAAGtE,KAAK,CAACI,eAAe,CAAC;IAC7CP,QAAQ,CAACkB,OAAO,GAAGuD,UAAU;AAE7B,IAAA,IAAI+B,QAAQ,GAAgB/B,UAAU,CAACjH,MAAM,IAAIuB,IAAI,KAAK,UAAU,GAChE0F,UAAU,GACVA,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAI1F,IAAI,KAAK,MAAM,EAAE;AACnB,MAAA,MAAME,KAAK,GAAG,CAACoD,UAAU,CAAC7B,KAAK,EAAE,EAAEiC,YAAY,CAACjC,KAAK,EAAE,CAAC;AAExD;MACA,MAAMiG,OAAO,GAAGhC,UAAU,CAACvC,GAAG,CAAS,CAAC6D,GAAG,EAAE1H,CAAC,KAAI;QAChD,MAAMqD,KAAK,GAAGJ,IAAI,CAACsB,GAAG,CAAC,CAAC,EAAEtB,IAAI,CAACuB,GAAG,CAACkD,GAAG,EAAE9G,KAAK,CAACZ,CAAC,CAAC,CAACb,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7D,QAAA,OAAOyB,KAAK,CAACZ,CAAC,CAAC,CAACqD,KAAK,CAAC,KAAKrD,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACnD,OAAC,CAAC;AAEF;AACA,MAAA,MAAMqI,YAAY,GAAGD,OAAO,CAACvE,GAAG,CAACF,IAAI,IAAG;AACtC,QAAA,MAAM2E,GAAG,GAAGpE,QAAQ,CAACP,IAAI,CAAC;AAC1B,QAAA,OAAO4E,KAAK,CAACD,GAAG,CAAC,GAAG,IAAI,GAAG3E,IAAI;AACjC,OAAC,CAAC;AAEFhC,MAAAA,QAAQ,CAACkB,OAAO,GAAGwF,YAAY,CAACxE,GAAG,CAACnE,IAAI,IAAIwE,QAAQ,CAACxE,IAAI,CAAC,CAAC;AAC3DyI,MAAAA,QAAQ,GAAGE,YAAY,CAACT,IAAI,CAAC,GAAG,CAAC;AACnC;IAEA,IAAIlH,IAAI,KAAK,MAAM,EAAE;AACnB,MAAA,IAAI,CAACmB,aAAa,CAACgB,OAAO,EAAE;MAE5B,MAAM;QAAEgC,MAAM;QAAEC,IAAI;AAAEgB,QAAAA;OAAc,GAAGjE,aAAa,CAACgB,OAAO;AAC5D,MAAA,MAAMmC,WAAW,GAAGc,YAAY,CAAC,CAAC,CAAC;AACnC,MAAA,MAAMZ,YAAY,GAAGY,YAAY,CAAC,CAAC,CAAC;AACpC,MAAA,MAAMR,SAAS,GAAGC,YAAY,CAACV,MAAM,CAACI,WAAW,EAAE,EAAEH,IAAI,CAACG,WAAW,EAAE,CAAC;MACxE,MAAMO,UAAU,GAAGC,aAAa,CAACZ,MAAM,EAAEC,IAAI,EAAEE,WAAW,CAAC;MAC3D,MAAMU,QAAQ,GAAGC,WAAW,CAACd,MAAM,EAAEC,IAAI,EAAEE,WAAW,EAAEE,YAAY,CAAC;AAErE;AACA,MAAA,MAAMsD,SAAS,GAAGvF,IAAI,CAACuB,GAAG,CAACvB,IAAI,CAACsB,GAAG,CAACtB,IAAI,CAACC,KAAK,CAACkD,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEd,SAAS,CAACnG,MAAM,GAAG,CAAC,CAAC;AACxF,MAAA,MAAMsJ,UAAU,GAAGxF,IAAI,CAACuB,GAAG,CAACvB,IAAI,CAACsB,GAAG,CAACtB,IAAI,CAACC,KAAK,CAACkD,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEZ,UAAU,CAACrG,MAAM,GAAG,CAAC,CAAC;AAC1F,MAAA,MAAMuJ,QAAQ,GAAGzF,IAAI,CAACuB,GAAG,CAACvB,IAAI,CAACsB,GAAG,CAACtB,IAAI,CAACC,KAAK,CAACkD,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEV,QAAQ,CAACvG,MAAM,GAAG,CAAC,CAAC;AAEtF,MAAA,MAAMwJ,IAAI,GAAGrD,SAAS,CAACkD,SAAS,CAAC;AACjC,MAAA,MAAMI,KAAK,GAAGpD,UAAU,CAACiD,UAAU,CAAC;AACpC,MAAA,MAAMI,GAAG,GAAGnD,QAAQ,CAACgD,QAAQ,CAAC;AAE9B;MACA,IAAIC,IAAI,KAAKvJ,SAAS,IAAIwJ,KAAK,KAAKxJ,SAAS,IAAIyJ,GAAG,KAAKzJ,SAAS,EAAE;AAClEqE,QAAAA,OAAO,CAACC,IAAI,CAAC,kCAAkC,EAAE;UAAEiF,IAAI;UAAEC,KAAK;AAAEC,UAAAA;AAAG,SAAE,CAAC;AACtE,QAAA;AACF;MAEA,IAAI7H,MAAM,KAAK,MAAM,EAAE;AACrBmH,QAAAA,QAAQ,GAAGQ,IAAI,CAACG,QAAQ,EAAE;AAC5B,OAAC,MAAM,IAAI9H,MAAM,KAAK,OAAO,EAAE;AAC7B;AACAmH,QAAAA,QAAQ,GAAG,CAAA,EAAGQ,IAAI,CAAA,CAAA,EAAIC,KAAK,GAAG,EAAE,GAAG,CAAIA,CAAAA,EAAAA,KAAK,CAAE,CAAA,GAAGA,KAAK,CAAE,CAAA;AAC1D,OAAC,MAAM;AACL;QACAT,QAAQ,GAAG,GAAGQ,IAAI,CAAA,CAAA,EAAIC,KAAK,GAAG,EAAE,GAAG,CAAA,CAAA,EAAIA,KAAK,CAAA,CAAE,GAAGA,KAAK,CAAA,CAAA,EAAIC,GAAG,GAAG,EAAE,GAAG,IAAIA,GAAG,CAAA,CAAE,GAAGA,GAAG,CAAE,CAAA;AACxF;AAEAlC,MAAAA,UAAU,EAAE;AACZ5E,MAAAA,QAAQ,CAACsE,IAAI,IAAIC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EACZF,IAAI,CAAA,EAAA;AACPpE,QAAAA,WAAW,EAAEkG;AAAQ,OAAA,CACrB,CAAC;AAEH/G,MAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,CAAG;AAAE2H,QAAAA,MAAM,EAAE;AAAEnJ,UAAAA,KAAK,EAAEuI;AAAU;AAAA,OAAE,CAAC;AAC3C,MAAA;AACF;IAEA,IAAIzH,IAAI,KAAK,QAAQ,EAAE;MACrB,IAAI,CAACQ,UAAU,EAAE;AACfuC,QAAAA,OAAO,CAACnE,KAAK,CAAC,gDAAgD,CAAC;AAC/D,QAAA;AACF;AAEA,MAAA,MAAMyG,UAAU,GAAGhH,kBAAkB,CAACmC,UAAU,EAAE,QAAQ,CAAC;AAC3D,MAAA,IAAI,CAAC6E,UAAU,CAAC1G,KAAK,EAAE;AACrBoE,QAAAA,OAAO,CAACnE,KAAK,CAACyG,UAAU,CAACzG,KAAK,CAAC;AAC/B,QAAA;AACF;AAEA;MACA,MAAM0J,aAAa,GAAa,EAAE;MAClC,IAAIlJ,QAAQ,GAAG,EAAE;AAEjB;MACA,IAAIkG,WAAW,GAAG9E,UAAU;MAC5B,KAAK,IAAIlB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwC,YAAY,EAAExC,CAAC,EAAE,EAAE;QACrC,IAAI,CAACgG,WAAW,IAAIA,WAAW,CAAC7G,MAAM,KAAK,CAAC,EAAE;AAE9C,QAAA,MAAMkE,KAAK,GAAG+C,UAAU,CAACpG,CAAC,CAAC,IAAI,CAAC;QAChC,IAAIqD,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAI2C,WAAW,CAAC7G,MAAM,EAAE;AAE9C,QAAA,MAAMO,IAAI,GAAGsG,WAAW,CAAC3C,KAAK,CAAC;AAC/B2F,QAAAA,aAAa,CAACzF,IAAI,CAAC7D,IAAI,CAACG,IAAI,CAAC;AAE7B;QACA,IAAIG,CAAC,KAAKwC,YAAY,GAAG,CAAC,IAAI9C,IAAI,CAACI,QAAQ,EAAE;UAC3CA,QAAQ,GAAGJ,IAAI,CAACI,QAAQ;AAC1B;AAEA;AACAkG,QAAAA,WAAW,GAAGtG,IAAI,CAACK,QAAQ,IAAI,EAAE;AACnC;AAEA;AACA,MAAA,IAAIqG,UAAU,CAACjH,MAAM,GAAGqD,YAAY,EAAE;AACpCiB,QAAAA,OAAO,CAACC,IAAI,CAAC,qCAAqC,CAAC;AACnD,QAAA;AACF;AAEA;AACAiD,MAAAA,UAAU,EAAE;AACZ5E,MAAAA,QAAQ,CAACsE,IAAI,IAAIC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EACZF,IAAI,CAAA,EAAA;AACPpE,QAAAA,WAAW,EAAEmE;AAAU,OAAA,CACvB,CAAC;AAEHhF,MAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,CAAG;AACT2H,QAAAA,MAAM,EAAE;AACNnJ,UAAAA,KAAK,EAAEwG,UAAU;AACjBvG,UAAAA,IAAI,EAAEmJ,aAAa,CAACpB,IAAI,CAAC,GAAG,CAAC;AAC7B9H,UAAAA;AACD;AACF,OAAA,CAAC;AACF,MAAA;AACF;AAEA6G,IAAAA,UAAU,EAAE;AACZ5E,IAAAA,QAAQ,CAACsE,IAAI,IAAIC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EACZF,IAAI,CAAA,EAAA;AACPpE,MAAAA,WAAW,EAAEkG;AAAQ,KAAA,CACrB,CAAC;AAEH;AACA/G,IAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,CAAG;AAAE2H,MAAAA,MAAM,EAAE;AAAEnJ,QAAAA,KAAK,EAAEuI;AAAU;AAAA,KAAE,CAAC;AAC7C,GAAC,EAAE,CAACxB,UAAU,EAAE7E,KAAK,CAACI,eAAe,EAAExB,IAAI,EAAEM,MAAM,EAAEI,QAAQ,EAAEF,UAAU,EAAEsB,YAAY,CAAC,CAAC;AAEzF;AACA,EAAA,MAAMyG,kBAAkB,GAAG3I,KAAK,CAACsC,WAAW,CAAEsG,CAAsC,IAAI;IACtF,MAAM;MAAEpC,QAAQ;AAAEzD,MAAAA;AAAO,KAAA,GAAG6F,CAAC;AAC7B7H,IAAAA,cAAc,KAAd,IAAA,IAAAA,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,cAAc,CAAG;AACf0H,MAAAA,MAAM,EAAE;AACNI,QAAAA,MAAM,EAAElC,MAAM,CAACH,QAAQ,CAAC;AACxBlH,QAAAA,KAAK,EAAEyD;AACR;AACF,KAAA,CAAC;AACJ,GAAC,EAAE,CAAChC,cAAc,CAAC,CAAC;AAEpB;AACA,EAAA,MAAM+H,YAAY,GAAG9I,KAAK,CAACsC,WAAW,CAAC,MAAK;AAC1C+D,IAAAA,UAAU,EAAE;AACZrF,IAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,EAAI;AACd,GAAC,EAAE,CAACqF,UAAU,EAAErF,QAAQ,CAAC,CAAC;AAE1B;AACA,EAAA,MAAM+H,iBAAiB,GAAG/I,KAAK,CAACgJ,OAAO,CAAC,MAAK;AAC3C,IAAA,QAAQ5I,IAAI;AACV,MAAA,KAAK,eAAe;AAAE,QAAA;UACpB,OAAOE,KAAK,CAACiD,GAAG,CAAC,CAACT,SAAS,EAAEC,KAAK,KAAAkG,eAAA,CAC/BC,WAAW,EAAA;AACVC,YAAAA,GAAG,EAAEpG,KAAK;AACVzC,YAAAA,KAAK,EAAEwC,SAAS;AAChBvC,YAAAA,QAAQ,EAAEA,QAAQ;AAClBgG,YAAAA,WAAW,EAAEA,WAAW;AACxBxF,YAAAA,cAAc,EAAE4H,kBAAkB;AAAA,YAAA,IAClCnC,QAAQA,GAAA;cAAA,OAAE4C,MAAM,CAACrG,KAAK,CAAC;AAAA,aAAA;AAAA,YAAA,IACvBsG,aAAaA,GAAA;AAAA,cAAA,OAAE7H,KAAK,CAACI,eAAe,CAACmB,KAAK,CAAC;AAAA;AAAA,WAAA,CAE9C,CAAC;AACJ;AACA,MAAA,KAAK,MAAM;AAAE,QAAA;UACX,OAAO,CAAAkG,eAAA,CACJC,WAAW,EAAA;AAAA,YAAA,IACVC,GAAGA,GAAA;AAAA,cAAA,OAAE,CAAQ3H,KAAAA,EAAAA,KAAK,CAACS,SAAS,CAAE,CAAA;AAAA,aAAA;YAC9B7B,IAAI,EAAA,MAAA;AACJE,YAAAA,KAAK,EAAEoD,UAAU;AACjB6C,YAAAA,WAAW,EAAEA,WAAW;YACxBC,QAAQ,EAAA,GAAA;AAAA,YAAA,IACR6C,aAAaA,GAAA;AAAA,cAAA,OAAE7H,KAAK,CAACI,eAAe,CAAC,CAAC,CAAC;AAAA;WAAAqH,CAAAA,EAAAA,eAAA,CAExCC,WAAW,EAAA;AAAA,YAAA,IACVC,GAAGA,GAAA;AAAA,cAAA,OAAE,CAAU3H,OAAAA,EAAAA,KAAK,CAACS,SAAS,CAAE,CAAA;AAAA,aAAA;YAChC7B,IAAI,EAAA,MAAA;AACJE,YAAAA,KAAK,EAAEwD,YAAY;AACnByC,YAAAA,WAAW,EAAEA,WAAW;YACxBC,QAAQ,EAAA,GAAA;AAAA,YAAA,IACR6C,aAAaA,GAAA;AAAA,cAAA,OAAE7H,KAAK,CAACI,eAAe,CAAC,CAAC,CAAC;AAAA;WAE1C,CAAA,CAAA;AACH;AACA,MAAA,KAAK,MAAM;AAAE,QAAA;AACX,UAAA,IAAI,CAACL,aAAa,CAACgB,OAAO,EAAE,OAAO,IAAI;UAEvC,MAAM;YAAEgC,MAAM;YAAEC,IAAI;AAAEgB,YAAAA;WAAc,GAAGjE,aAAa,CAACgB,OAAO;AAC5D,UAAA,MAAMmC,WAAW,GAAGc,YAAY,CAAC,CAAC,CAAC;AACnC,UAAA,MAAMZ,YAAY,GAAGY,YAAY,CAAC,CAAC,CAAC;UAEpC,MAAMR,SAAS,GAAGC,YAAY,CAACV,MAAM,CAACI,WAAW,EAAE,EAAEH,IAAI,CAACG,WAAW,EAAE,CAAC,CACrEpB,GAAG,CAACnE,IAAI,IAAI,CAAA,EAAGA,IAAI,CAAA,CAAA,CAAG,CAAC;UAC1B,MAAM8F,UAAU,GAAGC,aAAa,CAACZ,MAAM,EAAEC,IAAI,EAAEE,WAAW,CAAC,CACxDnB,GAAG,CAACnE,IAAI,IAAI,CAAA,EAAGA,IAAI,GAAG,EAAE,GAAG,CAAIA,CAAAA,EAAAA,IAAI,CAAE,CAAA,GAAGA,IAAI,CAAA,CAAA,CAAG,CAAC;AACnD,UAAA,MAAMgG,QAAQ,GAAGC,WAAW,CAACd,MAAM,EAAEC,IAAI,EAAEE,WAAW,EAAEE,YAAY,CAAC,CAClErB,GAAG,CAACnE,IAAI,IAAI,CAAA,EAAGA,IAAI,GAAG,EAAE,GAAG,CAAIA,CAAAA,EAAAA,IAAI,CAAE,CAAA,GAAGA,IAAI,CAAA,CAAA,CAAG,CAAC;AAEnD,UAAA,MAAMkK,UAAU,GAAG,CAAAL,eAAA,CAChBC,WAAW,EAAA;AACVC,YAAAA,GAAG,EAAE,CAAM,IAAA,CAAA;YACX/I,IAAI,EAAA,MAAA;AACJE,YAAAA,KAAK,EAAE0E,SAAS;AAChB0C,YAAAA,SAAS,EAAEA,SAAS;AACpBnB,YAAAA,WAAW,EAAEA,WAAW;YACxBC,QAAQ,EAAA,GAAA;AAAA,YAAA,IACR6C,aAAaA,GAAA;AAAA,cAAA,OAAE7H,KAAK,CAACI,eAAe,CAAC,CAAC,CAAC;AAAA;WAE1C,CAAA,CAAA;AACD,UAAA,IAAIlB,MAAM,KAAK,OAAO,IAAIA,MAAM,KAAK,KAAK,EAAE;AAC1C4I,YAAAA,UAAU,CAACrG,IAAI,CAAAgG,eAAA,CACZC,WAAW,EAAA;AACVC,cAAAA,GAAG,EAAE,CAAO,KAAA,CAAA;cACZ/I,IAAI,EAAA,MAAA;AACJE,cAAAA,KAAK,EAAE4E,UAAU;AACjBwC,cAAAA,SAAS,EAAEA,SAAS;AACpBnB,cAAAA,WAAW,EAAEA,WAAW;cACxBC,QAAQ,EAAA,GAAA;AAAA,cAAA,IACR6C,aAAaA,GAAA;AAAA,gBAAA,OAAE7H,KAAK,CAACI,eAAe,CAAC,CAAC,CAAC;AAAA;AAAA,aAAA,CACvC,CACH;AACH;UACA,IAAIlB,MAAM,KAAK,KAAK,EAAE;AACpB4I,YAAAA,UAAU,CAACrG,IAAI,CAAAgG,eAAA,CACZC,WAAW,EAAA;AACVC,cAAAA,GAAG,EAAE,CAAK,GAAA,CAAA;cACV/I,IAAI,EAAA,MAAA;AACJE,cAAAA,KAAK,EAAE8E,QAAQ;AACfsC,cAAAA,SAAS,EAAEA,SAAS;AACpBnB,cAAAA,WAAW,EAAEA,WAAW;cACxBC,QAAQ,EAAA,GAAA;AAAA,cAAA,IACR6C,aAAaA,GAAA;AAAA,gBAAA,OAAE7H,KAAK,CAACI,eAAe,CAAC,CAAC,CAAC;AAAA;AAAA,aAAA,CACvC,CACH;AACH;AACA,UAAA,OAAO0H,UAAU;AACnB;AACA,MAAA,KAAK,QAAQ;AAAE,QAAA;AACb;UACA,IAAI,CAAC1I,UAAU,EAAE;AACfuC,YAAAA,OAAO,CAACnE,KAAK,CAAC,gDAAgD,CAAC;AAC/D,YAAA,OAAO,IAAI;AACb;AAEA;UACA,IAAI,CAACP,kBAAkB,CAACmC,UAAU,EAAE,QAAQ,CAAC,CAAC7B,KAAK,EAAE;AACnD,YAAA,OAAO,IAAI;AACb;UAEA,MAAMwK,OAAO,GAAkB,EAAE;UACjC,IAAI7D,WAAW,GAAG9E,UAAU;UAE5B,KAAK,IAAIlB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwC,YAAY,EAAExC,CAAC,EAAE,EAAE;YACrC,IAAIA,CAAC,GAAG,CAAC,KAAIgG,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAE7G,MAAM,CAAA,EAAE;AAChC;cACA,MAAM2K,SAAS,GAAGhI,KAAK,CAACI,eAAe,CAAClC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;cACnD,IAAI8J,SAAS,IAAI,CAAC,IAAIA,SAAS,GAAG9D,WAAW,CAAC7G,MAAM,EAAE;gBACpD6G,WAAW,GAAGA,WAAW,CAAC8D,SAAS,CAAC,CAAC/J,QAAQ,IAAI,EAAE;AACrD,eAAC,MAAM;AACLiG,gBAAAA,WAAW,GAAG,EAAE;AAClB;AACF;AAEA6D,YAAAA,OAAO,CAACtG,IAAI,CAAAgG,eAAA,CACTC,WAAW,EAAA;cACVC,GAAG,EAAE,CAAUzJ,OAAAA,EAAAA,CAAC,CAAE,CAAA;cAClBU,IAAI,EAAA,QAAA;AACJE,cAAAA,KAAK,EAAEoF,WAAW;cAClBnF,QAAQ,EAAA,OAAA;AACRgG,cAAAA,WAAW,EAAEA,WAAW;AAAA,cAAA,IACxBC,QAAQA,GAAA;gBAAA,OAAE4C,MAAM,CAAC1J,CAAC,CAAC;AAAA,eAAA;AAAA,cAAA,IACnB2J,aAAaA,GAAA;AAAA,gBAAA,OAAE7H,KAAK,CAACI,eAAe,CAAClC,CAAC,CAAC;AAAA;AAAA,aAAA,CACvC,CACH;AACH;AAEA,UAAA,OAAO6J,OAAO;AAChB;AACA,MAAA;QACE,OAAAN,eAAA,CACGC,WAAW,EAAA;AACV5I,UAAAA,KAAK,EAAEA,KAAK;AACZC,UAAAA,QAAQ,EAAEA,QAAQ;AAClBgG,UAAAA,WAAW,EAAEA,WAAW;UACxBC,QAAQ,EAAA,GAAA;AAAA,UAAA,IACR6C,aAAaA,GAAA;AAAA,YAAA,OAAE7H,KAAK,CAACI,eAAe,CAAC,CAAC,CAAC;AAAA;AAAA,SAAA,CAAA;AAG/C;AACF,GAAC,EAAE,CAACxB,IAAI,EAAEE,KAAK,EAAEC,QAAQ,EAAEG,MAAM,EAAE6F,WAAW,EAAEmB,SAAS,EAAEiB,kBAAkB,EAAEpH,aAAa,CAACgB,OAAO,EAAEzC,KAAK,EAAEc,UAAU,EAAEY,KAAK,CAACI,eAAe,EAAEM,YAAY,CAAC,CAAC;AAE9J;AACA,EAAA,MAAMuH,OAAO,GAAGC,UAAU,CAAC,2BAA2B,EAAE,8BAA8B,EAAE;IACtF,+BAA+B,EAAElI,KAAK,CAACO;AACxC,GAAA,CAAC;AACF,EAAA,MAAM4H,SAAS,GAAGD,UAAU,CAAC,aAAa,EAAE,+BAA+B,EAAE;IAC3E,iCAAiC,EAAElI,KAAK,CAACO;AAC1C,GAAA,CAAC;AAEF;AACA/B,EAAAA,KAAK,CAAC4J,mBAAmB,CAACzJ,GAAG,EAAE,OAAO;IACpCiG,UAAU;AACVC,IAAAA;AACD,GAAA,CAAC,CAAC;AAEH,EAAA,OAAA4C,eAAA,CACGY,IAAI,EAAAC,UAAA,CAAA;AAAA3J,IAAAA,GAAAA,CAAA4J,EAAA,EAAA;MAAA,IAAAC,KAAA,GACE7J,GAAU;MAAA,OAAA6J,KAAA,kBAAAA,KAAA,CAAAD,EAAA,CAAV5J,GAAAA,GAAU,GAAA4J,EAAA;AAAA,KAAA;AACf9I,IAAAA,KAAK,EAAEA;AAAK,GAAA,EACPC,QAAQ,GAAG;AAAE,IAAA,gBAAgB,EAAEA;AAAQ,GAAE,GAAG,EAAE,QAC/C+I,IAAI,CAAC9I,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAA;AAAA,IAAA,IAAA1B,QAAA,GAAA;MAAA,OAAAwJ,CAAAA,eAAA,CAEhMY,IAAI,EAAA;AAACK,QAAAA,OAAO,EAAE9D,UAAU;AAAA3G,QAAAA,QAAA,EACtBA;OAAQ0K,CAAAA,EAAAA,IAAA,CAEVA,MAAAA,IAAA,CAAC3I,MAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACM,MAAM,CAAA,EAAA,IAAAmH,eAAA,CACXY,IAAI,EAAA;QAACO,SAAS,EAAA,sBAAA;AAAA,QAAA,IAAA3K,QAAA,GAAA;UAAA,OAAAwJ,CAAAA,eAAA,CACZY,IAAI,EAAA;AAACO,YAAAA,SAAS,EAAEX,OAAO;AAAES,YAAAA,OAAO,EAAEpB;WAAYG,CAAAA,EAAAA,eAAA,CAC9CY,IAAI,EAAA;AAACO,YAAAA,SAAS,EAAET,SAAS;AAAA,YAAA,IAAAlK,QAAA,GAAA;cAAA,OAAAwJ,CAAAA,eAAA,CACvBY,IAAI,EAAA;gBAACO,SAAS,EAAA,iBAAA;AAAA,gBAAA,IAAA3K,QAAA,GAAA;kBAAA,OAAAwJ,CAAAA,eAAA,CACZY,IAAI,EAAA;oBAACO,SAAS,EAAA,qBAAA;AAAuBF,oBAAAA,OAAO,EAAEpB,YAAY;AAAA,oBAAA,IAAArJ,QAAA,GAAA;AAAA,sBAAA,OACxD,MAAAoB,SAAS,CAACwJ,UAAU,MAAA,IAAA,IAAAxE,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAI,IAAI;AAAA;AAAA,mBAAA,CAAA,EAAAsE,IAAA,CAE9BxJ,MAAAA,UAAU,IAAAsI,eAAA,CACRY,IAAI,EAAA;oBAACO,SAAS,EAAA,oBAAA;AAAA3K,oBAAAA,QAAA,EAAuBkB;mBACvC,CAAA,CAAA,EAAAsI,eAAA,CACAY,IAAI,EAAA;oBAACO,SAAS,EAAA,qBAAA;AAAuBF,oBAAAA,OAAO,EAAEtC,YAAY;AAAA,oBAAA,IAAAnI,QAAA,GAAA;AAAA,sBAAA,OACxD,MAAAoB,SAAS,CAACyJ,MAAM,MAAA,IAAA,IAAAC,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAI,IAAI;AAAA;AAAA,mBAAA,CAAA,CAAA;AAAA;eAAAtB,CAAAA,EAAAA,eAAA,CAG5BY,IAAI,EAAA;gBAACO,SAAS,EAAA,iBAAA;AAAA3K,gBAAAA,QAAA,EAAoBsJ;AAAiB,eAAA,CAAA,CAAA;AAAA;AAAA,WAAA,CAAA,CAAA;AAAA;OAGzD,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,CAAA,CAAA;AAGP,CAAC;AAEDhJ,MAAM,CAACyK,WAAW,GAAG,QAAQ;;;;"}
@@ -0,0 +1,188 @@
1
+ import { template, use, insert, effect, style, delegateEvents } from 'solid-js/web';
2
+ import './style/index.css.js';
3
+ import { isFunction } from '@tarojs/shared';
4
+ import classNames from 'classnames';
5
+ import { throttle, createForwardRefComponent } from '../../utils/index.js';
6
+ import { useRef, useEffect } from '../../utils/hooks.solid.js';
7
+
8
+ var _tmpl$ = /*#__PURE__*/template(`<div>`);
9
+ function easeOutScroll() {
10
+ let from = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
11
+ let to = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
12
+ let callback = arguments.length > 2 ? arguments[2] : undefined;
13
+ if (from === to || typeof from !== 'number') {
14
+ return;
15
+ }
16
+ const change = to - from;
17
+ const dur = 500;
18
+ const sTime = +new Date();
19
+ function linear(t, b, c, d) {
20
+ return c * t / d + b;
21
+ }
22
+ const isLarger = to >= from;
23
+ function step() {
24
+ from = linear(+new Date() - sTime, from, change, dur);
25
+ if (isLarger && from >= to || !isLarger && to >= from) {
26
+ callback(to);
27
+ return;
28
+ }
29
+ callback(from);
30
+ requestAnimationFrame(step);
31
+ }
32
+ step();
33
+ }
34
+ function scrollIntoView() {
35
+ let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
36
+ let isHorizontal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
37
+ let animated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
38
+ let scrollIntoViewAlignment = arguments.length > 3 ? arguments[3] : undefined;
39
+ var _a;
40
+ (_a = document.querySelector(`#${id}`)) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
41
+ behavior: animated ? 'smooth' : 'auto',
42
+ block: !isHorizontal ? scrollIntoViewAlignment || 'center' : 'center',
43
+ inline: isHorizontal ? scrollIntoViewAlignment || 'start' : 'start'
44
+ });
45
+ }
46
+ function scrollVertical(container, scrollTop, top, isAnimation) {
47
+ if (isAnimation) {
48
+ easeOutScroll(scrollTop.current, top, pos => {
49
+ if (container.current) container.current.scrollTop = pos;
50
+ });
51
+ } else {
52
+ if (container.current) container.current.scrollTop = top;
53
+ }
54
+ scrollTop.current = top;
55
+ }
56
+ function scrollHorizontal(container, scrollLeft, left, isAnimation) {
57
+ if (isAnimation) {
58
+ easeOutScroll(scrollLeft.current, left, pos => {
59
+ if (container.current) container.current.scrollLeft = pos;
60
+ });
61
+ } else {
62
+ if (container.current) container.current.scrollLeft = left;
63
+ }
64
+ scrollLeft.current = left;
65
+ }
66
+ function ScrollView(props) {
67
+ const _scrollTop = useRef(null);
68
+ const _scrollLeft = useRef(null);
69
+ const container = useRef(null);
70
+ const onTouchMove = e => {
71
+ e.stopPropagation();
72
+ };
73
+ const handleScroll = function (props) {
74
+ let isInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
75
+ // scrollIntoView
76
+ if (props.scrollIntoView && typeof props.scrollIntoView === 'string' && document && document.querySelector && document.querySelector(`#${props.scrollIntoView}`)) {
77
+ const isHorizontal = props.scrollX && !props.scrollY;
78
+ if (isInit) {
79
+ setTimeout(() => scrollIntoView(props.scrollIntoView, props.scrollWithAnimation, isHorizontal, props.scrollIntoViewAlignment), 500);
80
+ } else {
81
+ scrollIntoView(props.scrollIntoView, props.scrollWithAnimation, isHorizontal, props.scrollIntoViewAlignment);
82
+ }
83
+ } else {
84
+ const isAnimation = !!props.scrollWithAnimation;
85
+ // Y 轴滚动
86
+ if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== _scrollTop.current) {
87
+ if (isInit) {
88
+ setTimeout(() => scrollVertical(container, _scrollTop, props.scrollTop, isAnimation), 10);
89
+ } else {
90
+ scrollVertical(container, _scrollTop, props.scrollTop, isAnimation);
91
+ }
92
+ }
93
+ // X 轴滚动
94
+ if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== _scrollLeft.current) {
95
+ if (isInit) {
96
+ setTimeout(() => scrollHorizontal(container, _scrollLeft, props.scrollLeft, isAnimation), 10);
97
+ } else {
98
+ scrollHorizontal(container, _scrollLeft, props.scrollLeft, isAnimation);
99
+ }
100
+ }
101
+ }
102
+ };
103
+ useEffect(() => {
104
+ handleScroll(props, true);
105
+ }, []);
106
+ const {
107
+ className,
108
+ style: style$1 = {},
109
+ onScroll,
110
+ onScrollToUpper,
111
+ onScrollToLower,
112
+ scrollX,
113
+ scrollY
114
+ } = props;
115
+ let {
116
+ upperThreshold = 50,
117
+ lowerThreshold = 50
118
+ } = props;
119
+ const cls = classNames('taro-scroll', {
120
+ 'taro-scroll-view__scroll-x': scrollX,
121
+ 'taro-scroll-view__scroll-y': scrollY
122
+ }, className);
123
+ upperThreshold = Number(upperThreshold);
124
+ lowerThreshold = Number(lowerThreshold);
125
+ const upperAndLower = e => {
126
+ if (!container.current) return;
127
+ const {
128
+ offsetWidth,
129
+ offsetHeight,
130
+ scrollLeft,
131
+ scrollTop,
132
+ scrollHeight,
133
+ scrollWidth
134
+ } = container.current;
135
+ if (onScrollToLower && (props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight || props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth)) {
136
+ onScrollToLower(e);
137
+ }
138
+ if (onScrollToUpper && (props.scrollY && scrollTop <= upperThreshold || props.scrollX && scrollLeft <= upperThreshold)) {
139
+ onScrollToUpper(e);
140
+ }
141
+ };
142
+ const upperAndLowerThrottle = throttle(upperAndLower, 200);
143
+ const _onScroll = e => {
144
+ const {
145
+ scrollLeft,
146
+ scrollTop,
147
+ scrollHeight,
148
+ scrollWidth
149
+ } = container.current;
150
+ _scrollLeft.current = scrollLeft;
151
+ _scrollTop.current = scrollTop;
152
+ Object.defineProperty(e, 'detail', {
153
+ enumerable: true,
154
+ writable: true,
155
+ value: {
156
+ scrollLeft,
157
+ scrollTop,
158
+ scrollHeight,
159
+ scrollWidth
160
+ }
161
+ });
162
+ upperAndLowerThrottle(e);
163
+ onScroll && onScroll(e);
164
+ };
165
+ const _onTouchMove = e => {
166
+ isFunction(props.onTouchMove) ? props.onTouchMove(e) : onTouchMove(e);
167
+ };
168
+ return (() => {
169
+ var _el$ = _tmpl$();
170
+ _el$.$$touchmove = _onTouchMove;
171
+ _el$.addEventListener("scroll", _onScroll);
172
+ use(e => {
173
+ if (e) {
174
+ container.current = e;
175
+ if (props.forwardedRef) props.forwardedRef.current = e;
176
+ }
177
+ }, _el$);
178
+ _el$.className = cls;
179
+ insert(_el$, () => props.children);
180
+ effect(_$p => style(_el$, style$1, _$p));
181
+ return _el$;
182
+ })();
183
+ }
184
+ var index = createForwardRefComponent(ScrollView);
185
+ delegateEvents(["touchmove"]);
186
+
187
+ export { index as default };
188
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/scroll-view/index.tsx"],"sourcesContent":["import './style/index.css'\n\nimport { isFunction } from '@tarojs/shared'\nimport classNames from 'classnames'\n\nimport { createForwardRefComponent, throttle } from '../../utils'\nimport { useEffect, useRef } 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\nfunction scrollIntoView (id = '', isHorizontal = false, animated = true, scrollIntoViewAlignment?: ScrollLogicalPosition) {\n document.querySelector(`#${id}`)?.scrollIntoView({\n behavior: animated ? 'smooth' : 'auto',\n block: !isHorizontal ? (scrollIntoViewAlignment || 'center') : 'center',\n inline: isHorizontal ? (scrollIntoViewAlignment || 'start') : 'start'\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 onTouchMove: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\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 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 const isHorizontal = props.scrollX && !props.scrollY\n if (isInit) {\n setTimeout(() => scrollIntoView(props.scrollIntoView, props.scrollWithAnimation, isHorizontal, props.scrollIntoViewAlignment), 500)\n } else {\n scrollIntoView(props.scrollIntoView, props.scrollWithAnimation, isHorizontal, props.scrollIntoViewAlignment)\n }\n } else {\n const isAnimation = !!props.scrollWithAnimation\n // Y 轴滚动\n if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== _scrollTop.current) {\n if (isInit) {\n setTimeout(() => scrollVertical(container, _scrollTop, props.scrollTop, isAnimation), 10)\n } else {\n scrollVertical(container, _scrollTop, props.scrollTop, isAnimation)\n }\n }\n // X 轴滚动\n if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== _scrollLeft.current) {\n if (isInit) {\n setTimeout(() => scrollHorizontal(container, _scrollLeft, props.scrollLeft, isAnimation), 10)\n } else {\n scrollHorizontal(container, _scrollLeft, props.scrollLeft, isAnimation)\n }\n }\n }\n }\n\n useEffect(() => {\n handleScroll(props, true)\n }, [])\n\n const {\n className,\n style = {},\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n scrollX,\n scrollY\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 },\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 upperAndLowerThrottle(e)\n onScroll && onScroll(e)\n }\n const _onTouchMove = e => {\n isFunction(props.onTouchMove) ? props.onTouchMove(e) : onTouchMove(e)\n }\n return (\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 >\n {props.children}\n </div>\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","isHorizontal","animated","scrollIntoViewAlignment","_a","document","querySelector","behavior","block","inline","scrollVertical","container","scrollTop","top","isAnimation","current","pos","scrollHorizontal","scrollLeft","left","ScrollView","props","_scrollTop","useRef","_scrollLeft","onTouchMove","e","stopPropagation","handleScroll","isInit","scrollX","scrollY","setTimeout","scrollWithAnimation","useEffect","className","style","onScroll","onScrollToUpper","onScrollToLower","upperThreshold","lowerThreshold","cls","classNames","Number","upperAndLower","offsetWidth","offsetHeight","scrollHeight","scrollWidth","upperAndLowerThrottle","throttle","_onScroll","Object","defineProperty","enumerable","writable","value","_onTouchMove","isFunction","_el$","_tmpl$","$$touchmove","addEventListener","_$use","forwardedRef","_$insert","children","_$effect","_$p","_$style","createForwardRefComponent","_$delegateEvents"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var undefined$1 = undefined;
2
+
3
+ export { undefined$1 as default };
4
+ //# sourceMappingURL=index.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,32 @@
1
+ import { template, use, spread, mergeProps, insert } from 'solid-js/web';
2
+ import { __rest } from 'tslib';
3
+ import './style/index.css.js';
4
+ import classNames from 'classnames';
5
+ import 'react';
6
+ import { createForwardRefComponent } from '../../utils/index.js';
7
+
8
+ var _tmpl$ = /*#__PURE__*/template(`<span>`);
9
+ function Text(props) {
10
+ const {
11
+ className,
12
+ selectable = false,
13
+ forwardedRef
14
+ } = props,
15
+ restProps = __rest(props, ["className", "selectable", "forwardedRef"]);
16
+ const cls = classNames('taro-text', {
17
+ 'taro-text__selectable': selectable
18
+ }, className);
19
+ return (() => {
20
+ var _el$ = _tmpl$();
21
+ use(forwardedRef, _el$);
22
+ spread(_el$, mergeProps(restProps, {
23
+ "className": cls
24
+ }), false, true);
25
+ insert(_el$, () => props.children);
26
+ return _el$;
27
+ })();
28
+ }
29
+ var index = createForwardRefComponent(Text);
30
+
31
+ export { index as default };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/text/index.tsx"],"sourcesContent":["import './style/index.css'\n\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport { createForwardRefComponent } from '../../utils'\n\ninterface IProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectable?: boolean\n forwardedRef?: React.MutableRefObject<HTMLSpanElement>\n}\n\nfunction Text (props: IProps) {\n const { className, selectable = false, forwardedRef, ...restProps } = props\n const cls = classNames(\n 'taro-text',\n {\n 'taro-text__selectable': selectable\n },\n className\n )\n return (\n <span {...restProps} className={cls} ref={forwardedRef}>\n {props.children}\n </span>\n )\n}\n\nexport default createForwardRefComponent(Text)\n"],"names":["Text","props","className","selectable","forwardedRef","restProps","__rest","cls","classNames","_el$","_tmpl$","_$use","_$spread","_$mergeProps","_$insert","children","createForwardRefComponent"],"mappings":";;;;;;;;AAYA,SAASA,IAAIA,CAAEC,KAAa,EAAA;EAC1B,MAAM;MAAEC,SAAS;AAAEC,MAAAA,UAAU,GAAG,KAAK;AAAEC,MAAAA;AAA+B,KAAA,GAAAH,KAAK;AAAnBI,IAAAA,SAAS,GAAAC,MAAA,CAAKL,KAAK,EAArE,CAAA,WAAA,EAAA,YAAA,EAAA,cAAA,CAA6D,CAAQ;AAC3E,EAAA,MAAMM,GAAG,GAAGC,UAAU,CACpB,WAAW,EACX;AACE,IAAA,uBAAuB,EAAEL;GAC1B,EACDD,SAAS,CACV;AACD,EAAA,OAAA,CAAA,MAAA;IAAA,IAAAO,IAAA,GAAAC,MAAA,EAAA;IAAAC,GAAA,CAC4CP,YAAY,EAAAK,IAAA,CAAA;AAAAG,IAAAA,MAAA,CAAAH,IAAA,EAAAI,UAAA,CAA5CR,SAAS,EAAA;MAAA,WAAaE,EAAAA;AAAG,KAAA,CAAA,EAAA,KAAA,EAAA,IAAA,CAAA;AAAAO,IAAAA,MAAA,CAAAL,IAAA,EAChCR,MAAAA,KAAK,CAACc,QAAQ,CAAA;AAAA,IAAA,OAAAN,IAAA;AAAA,GAAA,GAAA;AAGrB;AAEA,YAAeO,yBAAyB,CAAChB,IAAI,CAAC;;;;"}
@@ -0,0 +1,4 @@
1
+ var undefined$1 = undefined;
2
+
3
+ export { undefined$1 as default };
4
+ //# sourceMappingURL=index.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}