@tarojs/components-react 4.1.4-beta.9 → 4.1.5-beta.0

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 (32) hide show
  1. package/README.md +31 -0
  2. package/dist/components/picker/index.js +749 -0
  3. package/dist/components/picker/index.js.map +1 -0
  4. package/dist/components/picker/picker-group.js +477 -0
  5. package/dist/components/picker/picker-group.js.map +1 -0
  6. package/dist/components/picker/react-style/style.css +2 -0
  7. package/dist/components/picker/react-style/style.css.map +1 -0
  8. package/dist/components/picker/react-style/style.js +4 -0
  9. package/dist/components/picker/react-style/style.js.map +1 -0
  10. package/dist/components/picker/style/index.scss.js +4 -0
  11. package/dist/components/picker/style/index.scss.js.map +1 -0
  12. package/dist/components/scroll-view/index.js +7 -2
  13. package/dist/components/scroll-view/index.js.map +1 -1
  14. package/dist/index.css +1 -1
  15. package/dist/index.js +2 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/solid/components/picker/index.js +794 -0
  18. package/dist/solid/components/picker/index.js.map +1 -0
  19. package/dist/solid/components/picker/picker-group.js +490 -0
  20. package/dist/solid/components/picker/picker-group.js.map +1 -0
  21. package/dist/solid/components/picker/style/index.scss.js +4 -0
  22. package/dist/solid/components/picker/style/index.scss.js.map +1 -0
  23. package/dist/solid/components/scroll-view/index.js +7 -2
  24. package/dist/solid/components/scroll-view/index.js.map +1 -1
  25. package/dist/solid/index.css +1 -1
  26. package/dist/solid/index.js +2 -1
  27. package/dist/solid/index.js.map +1 -1
  28. package/dist/solid/utils/index.js +103 -1
  29. package/dist/solid/utils/index.js.map +1 -1
  30. package/dist/utils/index.js +103 -1
  31. package/dist/utils/index.js.map +1 -1
  32. package/package.json +22 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-group.js","sources":["../../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport * as React from 'react'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\ntype TaroView = React.ElementRef<typeof View>\n\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n } = props\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n // 获取选中的索引\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n }, 100)\n }\n // 滚动处理 - 在滚动时计算索引然后更新选中项样式\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n } = props\n\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n setIsTouching(false)\n // 调用updateIndex执行限位逻辑,获取是否触发了限位\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 如果没有触发限位,才执行归中逻辑\n if (!isLimited) {\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001)\n }\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n } = props\n\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n\n // 更新日期值\n if (updateDay) {\n // 解析文本中的数字(移除年、月、日等后缀)\n const valueText = range[newIndex] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n } = props\n\n const scrollViewRef = React.useRef<any>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const isUserBeginScrollRef = React.useRef(false)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 滚动结束处理\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n updateIndex(newIndex, columnId, false, isUserBeginScrollRef.current)\n }, 100)\n }\n\n // 滚动处理 - 在滚动时计算索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => {\n setIsTouching(true)\n isUserBeginScrollRef.current = true\n }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 默认导出,根据 mode 自动分发\nexport function PickerGroup(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","targetScrollTop","setTargetScrollTop","React","useState","scrollViewRef","useRef","itemRefs","currentIndex","setCurrentIndex","isTouching","setIsTouching","itemHeightRef","useEffect","current","scrollHeight","childNodes","length","getSelectedIndex","scrollTop","Math","round","isCenterTimerId","handleScrollEnd","clearTimeout","setTimeout","newIndex","random","index","handleScroll","pickerItem","map","item","content","_$createComponent","View","id","key","ref","el","className","style","height","children","realPickerItems","Array","fill","_","idx","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","isLimited","Boolean","PickerGroupDate","updateDay","valueText","numericValue","parseInt","replace","isNaN","PickerGroupRegion","isUserBeginScrollRef","PickerGroup","mode"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var undefined$1 = undefined;
2
+
3
+ export { undefined$1 as default };
4
+ //# sourceMappingURL=index.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -110,7 +110,10 @@ function ScrollView(props) {
110
110
  onScrollToUpper,
111
111
  onScrollToLower,
112
112
  scrollX,
113
- scrollY
113
+ scrollY,
114
+ showScrollbar = true,
115
+ // 默认显示滚动条
116
+ enhanced = false // 默认不增强
114
117
  } = props;
115
118
  let {
116
119
  upperThreshold = 50,
@@ -118,7 +121,9 @@ function ScrollView(props) {
118
121
  } = props;
119
122
  const cls = classNames('taro-scroll', {
120
123
  'taro-scroll-view__scroll-x': scrollX,
121
- 'taro-scroll-view__scroll-y': scrollY
124
+ 'taro-scroll-view__scroll-y': scrollY,
125
+ 'taro-scroll--hidebar': enhanced === true && showScrollbar === false,
126
+ 'taro-scroll--enhanced': enhanced === true
122
127
  }, className);
123
128
  upperThreshold = Number(upperThreshold);
124
129
  lowerThreshold = Number(lowerThreshold);
@@ -1 +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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"}
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 showScrollbar?: boolean // 新增参数,默认true\n enhanced?: boolean // 新增参数,默认false\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 showScrollbar = true, // 默认显示滚动条\n enhanced = false // 默认不增强\n } = props\n let { upperThreshold = 50, lowerThreshold = 50 } = props\n const cls = classNames(\n 'taro-scroll',\n {\n 'taro-scroll-view__scroll-x': scrollX,\n 'taro-scroll-view__scroll-y': scrollY,\n 'taro-scroll--hidebar': enhanced === true && showScrollbar === false,\n 'taro-scroll--enhanced': enhanced === true\n },\n className\n )\n upperThreshold = Number(upperThreshold)\n lowerThreshold = Number(lowerThreshold)\n const upperAndLower = e => {\n if (!container.current) return\n const { offsetWidth, offsetHeight, scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current\n if (\n onScrollToLower &&\n ((props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight) ||\n (props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth))\n ) {\n onScrollToLower(e)\n }\n if (\n onScrollToUpper &&\n ((props.scrollY && scrollTop <= upperThreshold) || (props.scrollX && scrollLeft <= upperThreshold))\n ) {\n onScrollToUpper(e)\n }\n }\n const upperAndLowerThrottle = throttle(upperAndLower, 200)\n const _onScroll = e => {\n const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current\n _scrollLeft.current = scrollLeft\n _scrollTop.current = scrollTop\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth\n }\n })\n 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","showScrollbar","enhanced","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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"}
@@ -1 +1 @@
1
- @-webkit-keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.taro-button-core[loading]>.weui-loading{animation:weuiLoading 1s steps(12) infinite;background:transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;background-size:100%;display:inline-block;height:20px;vertical-align:middle;width:20px}.taro-button-core[loading]>.weui-loading.weui-btn_primary,.taro-button-core[loading]>.weui-loading.weui-btn_warn{color:hsla(0,0%,100%,.6)}.taro-button-core[loading]>.weui-loading.weui-btn_primary{background-color:#179b16}.taro-button-core[loading]>.weui-loading.weui-btn_warn{background-color:#ce3c39}.taro-button-core{-webkit-tap-highlight-color:rgba(0,0,0,0);appearance:none;background-color:#f8f8f8;border-radius:5px;border-width:0;box-sizing:border-box;color:#000;display:block;font-size:18px;line-height:2.55555556;margin-left:auto;margin-right:auto;outline:0;overflow:hidden;padding-left:14px;padding-right:14px;position:relative;text-align:center;text-decoration:none;width:100%}.taro-button-core:focus{outline:0}.taro-button-core:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core:after{border:1px solid rgba(0,0,0,.2);border-radius:10px;box-sizing:border-box;content:" ";height:200%;left:0;position:absolute;top:0;transform:scale(.5);transform-origin:0 0;width:200%}.taro-button-core+.taro-button-core{margin-top:15px}.taro-button-core[type=default]{background-color:#f8f8f8;color:#000}.taro-button-core[type=default]:not([disabled]):visited{color:#000}.taro-button-core[type=default]:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core[size=mini]{display:inline-block;font-size:13px;line-height:2.3;padding:0 1.32em;width:auto}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default],.taro-button-core[plain=true][type=primary]{background-color:transparent;border-width:1px}.taro-button-core[disabled]{color:hsla(0,0%,100%,.6)}.taro-button-core[disabled][type=default]{background-color:#f7f7f7;color:rgba(0,0,0,.3)}.taro-button-core[disabled][type=primary]{background-color:#9ed99d}.taro-button-core[disabled][type=warn]{background-color:#ec8b89}.taro-button-core[loading] .weui-loading{margin:-.2em .34em 0 0}.taro-button-core[loading][type=primary],.taro-button-core[loading][type=warn]{color:hsla(0,0%,100%,.6)}.taro-button-core[loading][type=primary]{background-color:#179b16}.taro-button-core[loading][type=warn]{background-color:#ce3c39}.taro-button-core[plain=true][type=primary]{border:1px solid #1aad19;color:#1aad19}.taro-button-core[plain=true][type=primary]:not([disabled]):active{background-color:transparent;border-color:rgba(26,173,25,.6);color:rgba(26,173,25,.6)}.taro-button-core[plain=true][type=primary]:after{border-width:0}.taro-button-core[plain=true][type=warn]{border:1px solid #e64340;color:#e64340}.taro-button-core[plain=true][type=warn]:not([disabled]):active{background-color:transparent;border-color:rgba(230,67,64,.6);color:rgba(230,67,64,.6)}.taro-button-core[plain=true][type=warn]:after{border-width:0}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default]{border:1px solid #353535;color:#353535}.taro-button-core[plain=true]:not([disabled]):active,.taro-button-core[plain=true][type=default]:not([disabled]):active{background-color:transparent;border-color:rgba(53,53,53,.6);color:rgba(53,53,53,.6)}.taro-button-core[plain=true]:after,.taro-button-core[plain=true][type=default]:after{border-width:0}.taro-button-core[type=primary]{background-color:#1aad19;color:#fff}.taro-button-core[type=primary]:not([disabled]):visited{color:#fff}.taro-button-core[type=primary]:not([disabled]):active{background-color:#179b16;color:hsla(0,0%,100%,.6)}.taro-button-core[type=warn]{background-color:#e64340;color:#fff}.taro-button-core[type=warn]:not([disabled]):visited{color:#fff}.taro-button-core[type=warn]:not([disabled]):active{background-color:#ce3c39;color:hsla(0,0%,100%,.6)}.taro-button-core[plain=true][disabled],.taro-button-core[plain=true][disabled][type=primary]{background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.3)}.weui-icon-circle:before{content:"\ea01"}.weui-icon-download:before{content:"\ea02"}.weui-icon-info:before{content:"\ea03"}.weui-icon-safe-success:before{content:"\ea04"}.weui-icon-safe-warn:before{content:"\ea05"}.weui-icon-success:before{content:"\ea06"}.weui-icon-success-circle:before{content:"\ea07"}.weui-icon-success-no-circle:before{content:"\ea08"}.weui-icon-waiting:before{content:"\ea09"}.weui-icon-waiting-circle:before{content:"\ea0a"}.weui-icon-warn:before{content:"\ea0b"}.weui-icon-info-circle:before{content:"\ea0c"}.weui-icon-cancel:before{content:"\ea0d"}.weui-icon-search:before{content:"\ea0e"}.weui-icon-clear:before{content:"\ea0f"}.weui-icon-back:before{content:"\ea10"}.weui-icon-delete:before{content:"\ea11"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-clear,.weui-icon-search{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}img[src=""]{opacity:0}.taro-img{display:inline-block;font-size:0;height:240px;overflow:hidden;position:relative;width:320px}.taro-img.taro-img__widthfix,.taro-img__mode-heightfix{height:100%}.taro-img__mode-scaletofill{height:100%;width:100%}.taro-img__mode-aspectfit{height:100%;object-fit:contain;width:100%}.taro-img__mode-aspectfill{height:100%;object-fit:cover;width:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-bottom,.taro-img__mode-top{left:50%;position:absolute;transform:translate(-50%)}.taro-img__mode-bottom{bottom:0}.taro-img__mode-center{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.taro-img__mode-left,.taro-img__mode-right{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{right:0}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{bottom:0;position:absolute}.taro-img__mode-bottomright{bottom:0;position:absolute;right:0}.taro-scroll{-webkit-overflow-scrolling:auto}.taro-scroll::-webkit-scrollbar{display:none}.taro-scroll-view{overflow:hidden}.taro-scroll-view__scroll-x{overflow-x:scroll;overflow-y:hidden}.taro-scroll-view__scroll-y{overflow-x:hidden;overflow-y:scroll}.taro-text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.taro-text__selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}
1
+ @-webkit-keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.taro-button-core[loading]>.weui-loading{animation:weuiLoading 1s steps(12) infinite;background:transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;background-size:100%;display:inline-block;height:20px;vertical-align:middle;width:20px}.taro-button-core[loading]>.weui-loading.weui-btn_primary,.taro-button-core[loading]>.weui-loading.weui-btn_warn{color:hsla(0,0%,100%,.6)}.taro-button-core[loading]>.weui-loading.weui-btn_primary{background-color:#179b16}.taro-button-core[loading]>.weui-loading.weui-btn_warn{background-color:#ce3c39}.taro-button-core{-webkit-tap-highlight-color:rgba(0,0,0,0);appearance:none;background-color:#f8f8f8;border-radius:5px;border-width:0;box-sizing:border-box;color:#000;display:block;font-size:18px;line-height:2.55555556;margin-left:auto;margin-right:auto;outline:0;overflow:hidden;padding-left:14px;padding-right:14px;position:relative;text-align:center;text-decoration:none;width:100%}.taro-button-core:focus{outline:0}.taro-button-core:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core:after{border:1px solid rgba(0,0,0,.2);border-radius:10px;box-sizing:border-box;content:" ";height:200%;left:0;position:absolute;top:0;transform:scale(.5);transform-origin:0 0;width:200%}.taro-button-core+.taro-button-core{margin-top:15px}.taro-button-core[type=default]{background-color:#f8f8f8;color:#000}.taro-button-core[type=default]:not([disabled]):visited{color:#000}.taro-button-core[type=default]:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core[size=mini]{display:inline-block;font-size:13px;line-height:2.3;padding:0 1.32em;width:auto}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default],.taro-button-core[plain=true][type=primary]{background-color:transparent;border-width:1px}.taro-button-core[disabled]{color:hsla(0,0%,100%,.6)}.taro-button-core[disabled][type=default]{background-color:#f7f7f7;color:rgba(0,0,0,.3)}.taro-button-core[disabled][type=primary]{background-color:#9ed99d}.taro-button-core[disabled][type=warn]{background-color:#ec8b89}.taro-button-core[loading] .weui-loading{margin:-.2em .34em 0 0}.taro-button-core[loading][type=primary],.taro-button-core[loading][type=warn]{color:hsla(0,0%,100%,.6)}.taro-button-core[loading][type=primary]{background-color:#179b16}.taro-button-core[loading][type=warn]{background-color:#ce3c39}.taro-button-core[plain=true][type=primary]{border:1px solid #1aad19;color:#1aad19}.taro-button-core[plain=true][type=primary]:not([disabled]):active{background-color:transparent;border-color:rgba(26,173,25,.6);color:rgba(26,173,25,.6)}.taro-button-core[plain=true][type=primary]:after{border-width:0}.taro-button-core[plain=true][type=warn]{border:1px solid #e64340;color:#e64340}.taro-button-core[plain=true][type=warn]:not([disabled]):active{background-color:transparent;border-color:rgba(230,67,64,.6);color:rgba(230,67,64,.6)}.taro-button-core[plain=true][type=warn]:after{border-width:0}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default]{border:1px solid #353535;color:#353535}.taro-button-core[plain=true]:not([disabled]):active,.taro-button-core[plain=true][type=default]:not([disabled]):active{background-color:transparent;border-color:rgba(53,53,53,.6);color:rgba(53,53,53,.6)}.taro-button-core[plain=true]:after,.taro-button-core[plain=true][type=default]:after{border-width:0}.taro-button-core[type=primary]{background-color:#1aad19;color:#fff}.taro-button-core[type=primary]:not([disabled]):visited{color:#fff}.taro-button-core[type=primary]:not([disabled]):active{background-color:#179b16;color:hsla(0,0%,100%,.6)}.taro-button-core[type=warn]{background-color:#e64340;color:#fff}.taro-button-core[type=warn]:not([disabled]):visited{color:#fff}.taro-button-core[type=warn]:not([disabled]):active{background-color:#ce3c39;color:hsla(0,0%,100%,.6)}.taro-button-core[plain=true][disabled],.taro-button-core[plain=true][disabled][type=primary]{background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.3)}.weui-icon-circle:before{content:"\ea01"}.weui-icon-download:before{content:"\ea02"}.weui-icon-info:before{content:"\ea03"}.weui-icon-safe-success:before{content:"\ea04"}.weui-icon-safe-warn:before{content:"\ea05"}.weui-icon-success:before{content:"\ea06"}.weui-icon-success-circle:before{content:"\ea07"}.weui-icon-success-no-circle:before{content:"\ea08"}.weui-icon-waiting:before{content:"\ea09"}.weui-icon-waiting-circle:before{content:"\ea0a"}.weui-icon-warn:before{content:"\ea0b"}.weui-icon-info-circle:before{content:"\ea0c"}.weui-icon-cancel:before{content:"\ea0d"}.weui-icon-search:before{content:"\ea0e"}.weui-icon-clear:before{content:"\ea0f"}.weui-icon-back:before{content:"\ea10"}.weui-icon-delete:before{content:"\ea11"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-clear,.weui-icon-search{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}img[src=""]{opacity:0}.taro-img{display:inline-block;font-size:0;height:240px;overflow:hidden;position:relative;width:320px}.taro-img.taro-img__widthfix,.taro-img__mode-heightfix{height:100%}.taro-img__mode-scaletofill{height:100%;width:100%}.taro-img__mode-aspectfit{height:100%;object-fit:contain;width:100%}.taro-img__mode-aspectfill{height:100%;object-fit:cover;width:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-bottom,.taro-img__mode-top{left:50%;position:absolute;transform:translate(-50%)}.taro-img__mode-bottom{bottom:0}.taro-img__mode-center{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.taro-img__mode-left,.taro-img__mode-right{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{right:0}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{bottom:0;position:absolute}.taro-img__mode-bottomright{bottom:0;position:absolute;right:0}.taro-picker__overlay{position:fixed;z-index:1000}.taro-picker__mask-overlay,.taro-picker__overlay{bottom:0;height:100%;left:0;right:0;top:0;width:100%}.taro-picker__mask-overlay{background-color:rgba(0,0,0,.6);position:absolute;z-index:1001}.taro-picker{background-color:#e5e5e5;bottom:0;font-size:14px;left:0;position:absolute;width:100%;z-index:1002}.taro-picker__hd{align-items:center;background-color:#fff;display:flex;font-size:17px;height:44px;justify-content:space-between;padding:0;position:relative}.taro-picker__hd:after{background-color:#e5e5e5;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleY(.5);width:100%}.taro-picker__action{color:#1aad19;flex:0 0 auto;font-size:14px;height:44px;line-height:44px;padding:0 10px}.taro-picker__action:first-child{color:#888}.taro-picker__title{color:#000;font-size:16px;font-weight:500;left:50%;max-width:40%;overflow:hidden;position:absolute;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.taro-picker__bd{background-color:#fff;height:238px;overflow:hidden;width:100%}.taro-picker__bd,.taro-picker__group{box-sizing:border-box;display:flex;flex:1}.taro-picker__group{align-items:center;height:100%;justify-content:center;min-width:0;position:relative}.taro-picker__group--date .taro-picker__columns{display:flex;height:100%;width:100%}.taro-picker__mask{background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6) 40%,hsla(0,0%,100%,0) 45%,hsla(0,0%,100%,0) 55%,hsla(0,0%,100%,.6) 60%,hsla(0,0%,100%,.95));height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.taro-picker__indicator{box-sizing:border-box;height:34px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:1002}.taro-picker__indicator:after,.taro-picker__indicator:before{background-color:#e5e5e5;content:"";height:1px;left:0;position:absolute;right:0;transform:scaleY(.5)}.taro-picker__indicator:before{top:0}.taro-picker__indicator:after{bottom:0}.taro-picker__content{box-sizing:border-box;height:100%;width:100%}.taro-picker__item{align-items:center;box-sizing:border-box;color:#000;display:flex;font-size:16px;height:34px;justify-content:center;line-height:34px;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.taro-picker__item--selected{color:#1aad19;font-weight:500}.taro-picker__item--disabled{color:#999}.taro-picker__column{flex:1;margin:0 8px}.taro-picker__column:first-child{margin-left:0}.taro-picker__column:last-child{margin-right:0}.taro-picker__item--custom{align-items:center;color:#888;display:flex;font-weight:400;justify-content:center;text-align:center}@keyframes taro-picker__slide-up{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes taro-picker__slide-down{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes taro-picker__fade-in{0%{opacity:0}to{opacity:1}}@keyframes taro-picker__fade-out{0%{opacity:1}to{opacity:0}}.taro-scroll{-webkit-overflow-scrolling:auto}.taro-scroll--hidebar::-webkit-scrollbar{display:none}.taro-scroll-view{overflow:hidden}.taro-scroll-view__scroll-x{overflow-x:scroll;overflow-y:hidden}.taro-scroll-view__scroll-y{overflow-x:hidden;overflow-y:scroll}.taro-text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.taro-text__selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}
@@ -1,7 +1,8 @@
1
- export { Ad, AdCustom, AnimationVideo, AnimationView, ArCamera, Audio, AwemeData, Block, Camera, Canvas, ChannelLive, ChannelVideo, Checkbox, CheckboxGroup, CommentDetail, CommentList, ContactButton, CoverImage, CoverView, CustomWrapper, DraggableSheet, Editor, FollowSwan, Form, FunctionalPageNavigator, GridBuilder, GridView, InlinePaymentPanel, Input, KeyboardAccessory, Label, Lifestyle, Like, ListBuilder, ListView, LivePlayer, LivePusher, Login, Lottie, Map, MatchMedia, MovableArea, MovableView, NativeSlot, NavigationBar, Navigator, NestedScrollBody, NestedScrollHeader, OfficialAccount, OpenContainer, OpenData, PageContainer, PageMeta, Picker, PickerView, PickerViewColumn, Progress, PullToRefresh, Radio, RadioGroup, RichText, RootPortal, RtcRoom, RtcRoomItem, Script, ShareElement, Slider, Slot, Snapshot, Span, StickyHeader, StickySection, Swiper, SwiperItem, Switch, Tabs, Textarea, Video, VoipRoom, WebView } from '@tarojs/components/lib/solid';
1
+ export { Ad, AdCustom, AnimationVideo, AnimationView, ArCamera, Audio, AwemeData, Block, Camera, Canvas, ChannelLive, ChannelVideo, Checkbox, CheckboxGroup, CommentDetail, CommentList, ContactButton, CoverImage, CoverView, CustomWrapper, DraggableSheet, Editor, FollowSwan, Form, FunctionalPageNavigator, GridBuilder, GridView, InlinePaymentPanel, Input, KeyboardAccessory, Label, Lifestyle, Like, ListBuilder, ListView, LivePlayer, LivePusher, Login, Lottie, Map, MatchMedia, MovableArea, MovableView, NativeSlot, NavigationBar, Navigator, NestedScrollBody, NestedScrollHeader, OfficialAccount, OpenContainer, OpenData, PageContainer, PageMeta, PickerView, PickerViewColumn, Progress, PullToRefresh, Radio, RadioGroup, RichText, RootPortal, RtcRoom, RtcRoomItem, Script, ShareElement, Slider, Slot, Snapshot, Span, Swiper, SwiperItem, Switch, Tabs, Textarea, Video, VoipRoom, WebView } from '@tarojs/components/lib/solid';
2
2
  export { default as Button } from './components/button/index.js';
3
3
  export { default as Icon } from './components/icon/index.js';
4
4
  export { default as Image } from './components/image/index.js';
5
+ export { default as Picker } from './components/picker/index.js';
5
6
  export { default as ScrollView } from './components/scroll-view/index.js';
6
7
  export { default as Text } from './components/text/index.js';
7
8
  export { default as View } from './components/view/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.solid.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/solid'\nexport { AdCustom } from '@tarojs/components/lib/solid'\nexport { AnimationVideo } from '@tarojs/components/lib/solid'\nexport { AnimationView } from '@tarojs/components/lib/solid'\nexport { ArCamera } from '@tarojs/components/lib/solid'\nexport { Audio } from '@tarojs/components/lib/solid'\nexport { AwemeData } from '@tarojs/components/lib/solid'\nexport { Block } from '@tarojs/components/lib/solid'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/solid'\nexport { Canvas } from '@tarojs/components/lib/solid'\nexport { ChannelLive } from '@tarojs/components/lib/solid'\nexport { ChannelVideo } from '@tarojs/components/lib/solid'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/solid'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/solid'\nexport { ContactButton } from '@tarojs/components/lib/solid'\nexport { CoverImage } from '@tarojs/components/lib/solid'\nexport { CoverView } from '@tarojs/components/lib/solid'\nexport { CustomWrapper } from '@tarojs/components/lib/solid'\nexport { DraggableSheet } from '@tarojs/components/lib/solid'\nexport { Editor } from '@tarojs/components/lib/solid'\nexport { FollowSwan } from '@tarojs/components/lib/solid'\nexport { Form } from '@tarojs/components/lib/solid'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/solid'\nexport { GridView } from '@tarojs/components/lib/solid'\nexport { GridBuilder } from '@tarojs/components/lib/solid'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/solid'\nexport { Input } from '@tarojs/components/lib/solid'\nexport { KeyboardAccessory } from '@tarojs/components/lib/solid'\nexport { Label } from '@tarojs/components/lib/solid'\nexport { Lifestyle } from '@tarojs/components/lib/solid'\nexport { Like } from '@tarojs/components/lib/solid'\nexport { LivePlayer } from '@tarojs/components/lib/solid'\nexport { LivePusher } from '@tarojs/components/lib/solid'\nexport { ListBuilder } from '@tarojs/components/lib/solid'\nexport { ListView } from '@tarojs/components/lib/solid'\nexport { Login } from '@tarojs/components/lib/solid'\nexport { Lottie } from '@tarojs/components/lib/solid'\nexport { Map } from '@tarojs/components/lib/solid'\nexport { MatchMedia } from '@tarojs/components/lib/solid'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/solid'\nexport { NavigationBar } from '@tarojs/components/lib/solid'\nexport { Navigator } from '@tarojs/components/lib/solid'\nexport { NestedScrollBody } from '@tarojs/components/lib/solid'\nexport { NestedScrollHeader } from '@tarojs/components/lib/solid'\nexport { OfficialAccount } from '@tarojs/components/lib/solid'\nexport { OpenData } from '@tarojs/components/lib/solid'\nexport { OpenContainer } from '@tarojs/components/lib/solid'\nexport { PageContainer } from '@tarojs/components/lib/solid'\nexport { PageMeta } from '@tarojs/components/lib/solid'\nexport { Picker } from '@tarojs/components/lib/solid'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/solid'\nexport { Progress } from '@tarojs/components/lib/solid'\n// export { default as PullDownRefresh } from './components/pull-down-refresh'\nexport { PullToRefresh } from '@tarojs/components/lib/solid'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/solid'\nexport { RichText } from '@tarojs/components/lib/solid'\nexport { RootPortal } from '@tarojs/components/lib/solid'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/solid'\nexport { Script } from '@tarojs/components/lib/solid'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/solid'\nexport { Slider } from '@tarojs/components/lib/solid'\nexport { Snapshot } from '@tarojs/components/lib/solid'\nexport { Span } from '@tarojs/components/lib/solid'\nexport { StickyHeader } from '@tarojs/components/lib/solid'\nexport { StickySection } from '@tarojs/components/lib/solid'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/solid'\nexport { Swiper, SwiperItem } from '@tarojs/components/lib/solid'\nexport { Switch } from '@tarojs/components/lib/solid'\nexport { Tabs } from '@tarojs/components/lib/solid'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/solid'\nexport { Video } from '@tarojs/components/lib/solid'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/solid'\nexport { WebView } from '@tarojs/components/lib/solid'\n"],"names":[],"mappings":";;;;;;;;AAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.solid.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/solid'\nexport { AdCustom } from '@tarojs/components/lib/solid'\nexport { AnimationVideo } from '@tarojs/components/lib/solid'\nexport { AnimationView } from '@tarojs/components/lib/solid'\nexport { ArCamera } from '@tarojs/components/lib/solid'\nexport { Audio } from '@tarojs/components/lib/solid'\nexport { AwemeData } from '@tarojs/components/lib/solid'\nexport { Block } from '@tarojs/components/lib/solid'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/solid'\nexport { Canvas } from '@tarojs/components/lib/solid'\nexport { ChannelLive } from '@tarojs/components/lib/solid'\nexport { ChannelVideo } from '@tarojs/components/lib/solid'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/solid'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/solid'\nexport { ContactButton } from '@tarojs/components/lib/solid'\nexport { CoverImage } from '@tarojs/components/lib/solid'\nexport { CoverView } from '@tarojs/components/lib/solid'\nexport { CustomWrapper } from '@tarojs/components/lib/solid'\nexport { DraggableSheet } from '@tarojs/components/lib/solid'\nexport { Editor } from '@tarojs/components/lib/solid'\nexport { FollowSwan } from '@tarojs/components/lib/solid'\nexport { Form } from '@tarojs/components/lib/solid'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/solid'\nexport { GridView } from '@tarojs/components/lib/solid'\nexport { GridBuilder } from '@tarojs/components/lib/solid'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/solid'\nexport { Input } from '@tarojs/components/lib/solid'\nexport { KeyboardAccessory } from '@tarojs/components/lib/solid'\nexport { Label } from '@tarojs/components/lib/solid'\nexport { Lifestyle } from '@tarojs/components/lib/solid'\nexport { Like } from '@tarojs/components/lib/solid'\nexport { LivePlayer } from '@tarojs/components/lib/solid'\nexport { LivePusher } from '@tarojs/components/lib/solid'\nexport { ListBuilder } from '@tarojs/components/lib/solid'\nexport { ListView } from '@tarojs/components/lib/solid'\nexport { Login } from '@tarojs/components/lib/solid'\nexport { Lottie } from '@tarojs/components/lib/solid'\nexport { Map } from '@tarojs/components/lib/solid'\nexport { MatchMedia } from '@tarojs/components/lib/solid'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/solid'\nexport { NavigationBar } from '@tarojs/components/lib/solid'\nexport { Navigator } from '@tarojs/components/lib/solid'\nexport { NestedScrollBody } from '@tarojs/components/lib/solid'\nexport { NestedScrollHeader } from '@tarojs/components/lib/solid'\nexport { OfficialAccount } from '@tarojs/components/lib/solid'\nexport { OpenData } from '@tarojs/components/lib/solid'\nexport { OpenContainer } from '@tarojs/components/lib/solid'\nexport { PageContainer } from '@tarojs/components/lib/solid'\nexport { PageMeta } from '@tarojs/components/lib/solid'\nexport { default as Picker } from './components/picker'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/solid'\nexport { Progress } from '@tarojs/components/lib/solid'\n// export { default as PullDownRefresh } from './components/pull-down-refresh'\nexport { PullToRefresh } from '@tarojs/components/lib/solid'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/solid'\nexport { RichText } from '@tarojs/components/lib/solid'\nexport { RootPortal } from '@tarojs/components/lib/solid'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/solid'\nexport { Script } from '@tarojs/components/lib/solid'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/solid'\nexport { Slider } from '@tarojs/components/lib/solid'\nexport { Snapshot } from '@tarojs/components/lib/solid'\nexport { Span } from '@tarojs/components/lib/solid'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/solid'\nexport { Swiper, SwiperItem } from '@tarojs/components/lib/solid'\nexport { Switch } from '@tarojs/components/lib/solid'\nexport { Tabs } from '@tarojs/components/lib/solid'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/solid'\nexport { Video } from '@tarojs/components/lib/solid'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/solid'\nexport { WebView } from '@tarojs/components/lib/solid'\n"],"names":[],"mappings":";;;;;;;;;AAAA"}
@@ -53,6 +53,108 @@ const createForwardRefComponent = ReactComponent => {
53
53
  }));
54
54
  return forwardRef(forwardRefComponent);
55
55
  };
56
+ // Picker 工具函数
57
+ function getTimeRange(begin, end) {
58
+ const range = [];
59
+ for (let i = begin; i <= end; i++) {
60
+ range.push(`${i < 10 ? '0' : ''}${i}`);
61
+ }
62
+ return range;
63
+ }
64
+ const hoursRange = getTimeRange(0, 23);
65
+ const minutesRange = getTimeRange(0, 59);
66
+ /**
67
+ * 校验传入的 value 是否合法
68
+ */
69
+ function verifyValue(value, range) {
70
+ if (!isNaN(+value) && value >= 0 && value < range.length) return true;
71
+ return false;
72
+ }
73
+ /**
74
+ * 检验传入的 time value 是否合法
75
+ */
76
+ function verifyTime(value) {
77
+ if (!/^\d{1,2}:\d{1,2}$/.test(value)) return false;
78
+ const time = value.split(':').map(num => +num);
79
+ if (time[0] < 0 || time[0] > 23) return false;
80
+ if (time[1] < 0 || time[1] > 59) return false;
81
+ return true;
82
+ }
83
+ /**
84
+ * 比较时间
85
+ * return t1 <= t2
86
+ */
87
+ function compareTime(t1, t2) {
88
+ const t1List = t1.split(':').map(i => +i);
89
+ const t2List = t2.split(':').map(i => +i);
90
+ if (t1List[0] < t2List[0]) return true;
91
+ if (t1List[0] === t2List[0] && t1List[1] <= t2List[1]) return true;
92
+ return false;
93
+ }
94
+ /**
95
+ * 校验日期合法性,返回合法性和日期数组
96
+ */
97
+ function verifyDate(dateStr) {
98
+ if (!dateStr) return false;
99
+ const date = new Date(dateStr.replace(/-/g, '/'));
100
+ return isNaN(date.getMonth()) ? false : date;
101
+ }
102
+ /**
103
+ * 获取当月最大天数
104
+ */
105
+ function getMaxDay(year, month) {
106
+ if (month === 4 || month === 6 || month === 9 || month === 11) return 30;
107
+ if (month === 2) {
108
+ if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) return 29;else return 28;
109
+ }
110
+ return 31;
111
+ }
112
+ /**
113
+ * 获取时间数组
114
+ */
115
+ function getDateRange(start, end) {
116
+ const range = [];
117
+ for (let i = start; i <= end; i++) {
118
+ range.push(i);
119
+ }
120
+ return range;
121
+ }
122
+ /**
123
+ * 获取年份区间数组
124
+ */
125
+ function getYearRange(start, end) {
126
+ return getDateRange(start, end);
127
+ }
128
+ /**
129
+ * 获取月份区间数组
130
+ */
131
+ function getMonthRange(start, end, year) {
132
+ let rangeStart = 1;
133
+ let rangeEnd = 12;
134
+ // 当前年份等于开始年份,由开始对应的月份约束开始值
135
+ if (start.getFullYear() === year) {
136
+ rangeStart = start.getMonth() + 1;
137
+ }
138
+ // 当前年份等于结束年份,由结束对应的月份约束结束值
139
+ if (end.getFullYear() === year) {
140
+ rangeEnd = end.getMonth() + 1;
141
+ }
142
+ return getDateRange(rangeStart, rangeEnd);
143
+ }
144
+ /**
145
+ * 获取日期区间数组
146
+ */
147
+ function getDayRange(start, end, year, month) {
148
+ let rangeStart = 1;
149
+ let rangeEnd = getMaxDay(year, month);
150
+ if (start.getFullYear() === year && start.getMonth() + 1 === month) {
151
+ rangeStart = start.getDate();
152
+ }
153
+ if (end.getFullYear() === year && end.getMonth() + 1 === month) {
154
+ rangeEnd = end.getDate();
155
+ }
156
+ return getDateRange(rangeStart, rangeEnd);
157
+ }
56
158
 
57
- export { createForwardRefComponent, debounce, omit, throttle };
159
+ export { compareTime, createForwardRefComponent, debounce, getDayRange, getMonthRange, getYearRange, hoursRange, minutesRange, omit, throttle, verifyDate, verifyTime, verifyValue };
58
160
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/utils/index.tsx"],"sourcesContent":["/* eslint-disable react/react-in-jsx-scope */\nimport { forwardRef } from './hooks'\n\nexport function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n\nexport function omit (obj, fields) {\n const shallowCopy = Object.assign({}, obj)\n for (let i = 0; i < fields.length; i += 1) {\n const key = fields[i]\n delete shallowCopy[key]\n }\n return shallowCopy\n}\n\nexport const createForwardRefComponent = (ReactComponent: any) => {\n const forwardRefComponent = (\n props,\n ref\n ) => <ReactComponent {...props} forwardedRef={ref} />\n\n return forwardRef(forwardRefComponent)\n}\n\n"],"names":["throttle","fn","threshold","arguments","length","undefined","scope","lastTime","deferTimer","_len","args","Array","_key","context","now","Date","apply","clearTimeout","setTimeout","debounce","ms","timer","_len2","_key2","omit","obj","fields","shallowCopy","Object","assign","i","key","createForwardRefComponent","ReactComponent","forwardRefComponent","props","ref","_$createComponent","_$mergeProps","forwardedRef","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/index.tsx"],"sourcesContent":["/* eslint-disable react/react-in-jsx-scope */\nimport { forwardRef } from './hooks'\n\nexport function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n\nexport function omit (obj, fields) {\n const shallowCopy = Object.assign({}, obj)\n for (let i = 0; i < fields.length; i += 1) {\n const key = fields[i]\n delete shallowCopy[key]\n }\n return shallowCopy\n}\n\nexport const createForwardRefComponent = (ReactComponent: any) => {\n const forwardRefComponent = (\n props,\n ref\n ) => <ReactComponent {...props} forwardedRef={ref} />\n\n return forwardRef(forwardRefComponent)\n}\n\n// Picker 工具函数\nfunction getTimeRange (begin: number, end: number) {\n const range: string[] = []\n for (let i = begin; i <= end; i++) {\n range.push(`${i < 10 ? '0' : ''}${i}`)\n }\n return range\n}\n\nexport const hoursRange = getTimeRange(0, 23)\n\nexport const minutesRange = getTimeRange(0, 59)\n\n/**\n * 校验传入的 value 是否合法\n */\nexport function verifyValue (value: number, range: any[]) {\n if (!isNaN(+value) && value >= 0 && value < range.length) return true\n return false\n}\n\n/**\n * 检验传入的 time value 是否合法\n */\nexport function verifyTime (value: string) {\n if (!/^\\d{1,2}:\\d{1,2}$/.test(value)) return false\n\n const time = value.split(':').map(num => +num)\n\n if (time[0] < 0 || time[0] > 23) return false\n if (time[1] < 0 || time[1] > 59) return false\n\n return true\n}\n\n/**\n * 比较时间\n * return t1 <= t2\n */\nexport function compareTime (t1: string, t2: string) {\n const t1List = t1.split(':').map(i => +i)\n const t2List = t2.split(':').map(i => +i)\n\n if (t1List[0] < t2List[0]) return true\n if (t1List[0] === t2List[0] && t1List[1] <= t2List[1]) return true\n\n return false\n}\n\n/**\n * 校验日期合法性,返回合法性和日期数组\n */\nexport function verifyDate (dateStr: string) {\n if (!dateStr) return false\n const date = new Date(dateStr.replace(/-/g, '/'))\n return isNaN(date.getMonth()) ? false : date\n}\n\n/**\n * 获取当月最大天数\n */\nfunction getMaxDay (year: number, month: number) {\n if (month === 4 || month === 6 || month === 9 || month === 11) return 30\n if (month === 2) {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) return 29\n else return 28\n }\n return 31\n}\n\n/**\n * 获取时间数组\n */\nfunction getDateRange (start: number, end: number) {\n const range: number[] = []\n for (let i = start; i <= end; i++) {\n range.push(i)\n }\n return range\n}\n\n/**\n * 获取年份区间数组\n */\nexport function getYearRange (start: number, end: number) {\n return getDateRange(start, end)\n}\n\n/**\n * 获取月份区间数组\n */\nexport function getMonthRange (start: Date, end: Date, year: number) {\n let rangeStart = 1\n let rangeEnd = 12\n\n // 当前年份等于开始年份,由开始对应的月份约束开始值\n if (start.getFullYear() === year) {\n rangeStart = start.getMonth() + 1\n }\n\n // 当前年份等于结束年份,由结束对应的月份约束结束值\n if (end.getFullYear() === year) {\n rangeEnd = end.getMonth() + 1\n }\n\n return getDateRange(rangeStart, rangeEnd)\n}\n\n/**\n * 获取日期区间数组\n */\nexport function getDayRange (start: Date, end: Date, year: number, month: number) {\n let rangeStart = 1\n let rangeEnd = getMaxDay(year, month)\n\n if (start.getFullYear() === year && start.getMonth() + 1 === month) {\n rangeStart = start.getDate()\n }\n\n if (end.getFullYear() === year && end.getMonth() + 1 === month) {\n rangeEnd = end.getDate()\n }\n\n return getDateRange(rangeStart, rangeEnd)\n}\n\n"],"names":["throttle","fn","threshold","arguments","length","undefined","scope","lastTime","deferTimer","_len","args","Array","_key","context","now","Date","apply","clearTimeout","setTimeout","debounce","ms","timer","_len2","_key2","omit","obj","fields","shallowCopy","Object","assign","i","key","createForwardRefComponent","ReactComponent","forwardRefComponent","props","ref","_$createComponent","_$mergeProps","forwardedRef","forwardRef","getTimeRange","begin","end","range","push","hoursRange","minutesRange","verifyValue","value","isNaN","verifyTime","test","time","split","map","num","compareTime","t1","t2","t1List","t2List","verifyDate","dateStr","date","replace","getMonth","getMaxDay","year","month","getDateRange","start","getYearRange","getMonthRange","rangeStart","rangeEnd","getFullYear","getDayRange","getDate"],"mappings":"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"}
@@ -55,6 +55,108 @@ const createForwardRefComponent = ReactComponent => {
55
55
  });
56
56
  return forwardRef(forwardRefComponent);
57
57
  };
58
+ // Picker 工具函数
59
+ function getTimeRange(begin, end) {
60
+ const range = [];
61
+ for (let i = begin; i <= end; i++) {
62
+ range.push(`${i < 10 ? '0' : ''}${i}`);
63
+ }
64
+ return range;
65
+ }
66
+ const hoursRange = getTimeRange(0, 23);
67
+ const minutesRange = getTimeRange(0, 59);
68
+ /**
69
+ * 校验传入的 value 是否合法
70
+ */
71
+ function verifyValue(value, range) {
72
+ if (!isNaN(+value) && value >= 0 && value < range.length) return true;
73
+ return false;
74
+ }
75
+ /**
76
+ * 检验传入的 time value 是否合法
77
+ */
78
+ function verifyTime(value) {
79
+ if (!/^\d{1,2}:\d{1,2}$/.test(value)) return false;
80
+ const time = value.split(':').map(num => +num);
81
+ if (time[0] < 0 || time[0] > 23) return false;
82
+ if (time[1] < 0 || time[1] > 59) return false;
83
+ return true;
84
+ }
85
+ /**
86
+ * 比较时间
87
+ * return t1 <= t2
88
+ */
89
+ function compareTime(t1, t2) {
90
+ const t1List = t1.split(':').map(i => +i);
91
+ const t2List = t2.split(':').map(i => +i);
92
+ if (t1List[0] < t2List[0]) return true;
93
+ if (t1List[0] === t2List[0] && t1List[1] <= t2List[1]) return true;
94
+ return false;
95
+ }
96
+ /**
97
+ * 校验日期合法性,返回合法性和日期数组
98
+ */
99
+ function verifyDate(dateStr) {
100
+ if (!dateStr) return false;
101
+ const date = new Date(dateStr.replace(/-/g, '/'));
102
+ return isNaN(date.getMonth()) ? false : date;
103
+ }
104
+ /**
105
+ * 获取当月最大天数
106
+ */
107
+ function getMaxDay(year, month) {
108
+ if (month === 4 || month === 6 || month === 9 || month === 11) return 30;
109
+ if (month === 2) {
110
+ if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) return 29;else return 28;
111
+ }
112
+ return 31;
113
+ }
114
+ /**
115
+ * 获取时间数组
116
+ */
117
+ function getDateRange(start, end) {
118
+ const range = [];
119
+ for (let i = start; i <= end; i++) {
120
+ range.push(i);
121
+ }
122
+ return range;
123
+ }
124
+ /**
125
+ * 获取年份区间数组
126
+ */
127
+ function getYearRange(start, end) {
128
+ return getDateRange(start, end);
129
+ }
130
+ /**
131
+ * 获取月份区间数组
132
+ */
133
+ function getMonthRange(start, end, year) {
134
+ let rangeStart = 1;
135
+ let rangeEnd = 12;
136
+ // 当前年份等于开始年份,由开始对应的月份约束开始值
137
+ if (start.getFullYear() === year) {
138
+ rangeStart = start.getMonth() + 1;
139
+ }
140
+ // 当前年份等于结束年份,由结束对应的月份约束结束值
141
+ if (end.getFullYear() === year) {
142
+ rangeEnd = end.getMonth() + 1;
143
+ }
144
+ return getDateRange(rangeStart, rangeEnd);
145
+ }
146
+ /**
147
+ * 获取日期区间数组
148
+ */
149
+ function getDayRange(start, end, year, month) {
150
+ let rangeStart = 1;
151
+ let rangeEnd = getMaxDay(year, month);
152
+ if (start.getFullYear() === year && start.getMonth() + 1 === month) {
153
+ rangeStart = start.getDate();
154
+ }
155
+ if (end.getFullYear() === year && end.getMonth() + 1 === month) {
156
+ rangeEnd = end.getDate();
157
+ }
158
+ return getDateRange(rangeStart, rangeEnd);
159
+ }
58
160
 
59
- export { createForwardRefComponent, debounce, omit, throttle };
161
+ export { compareTime, createForwardRefComponent, debounce, getDayRange, getMonthRange, getYearRange, hoursRange, minutesRange, omit, throttle, verifyDate, verifyTime, verifyValue };
60
162
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/index.tsx"],"sourcesContent":["/* eslint-disable react/react-in-jsx-scope */\nimport { forwardRef } from './hooks'\n\nexport function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n\nexport function omit (obj, fields) {\n const shallowCopy = Object.assign({}, obj)\n for (let i = 0; i < fields.length; i += 1) {\n const key = fields[i]\n delete shallowCopy[key]\n }\n return shallowCopy\n}\n\nexport const createForwardRefComponent = (ReactComponent: any) => {\n const forwardRefComponent = (\n props,\n ref\n ) => <ReactComponent {...props} forwardedRef={ref} />\n\n return forwardRef(forwardRefComponent)\n}\n\n"],"names":["throttle","fn","threshold","arguments","length","undefined","scope","lastTime","deferTimer","_len","args","Array","_key","context","now","Date","apply","clearTimeout","setTimeout","debounce","ms","timer","_len2","_key2","omit","obj","fields","shallowCopy","Object","assign","i","key","createForwardRefComponent","ReactComponent","forwardRefComponent","props","ref","_jsx","forwardedRef","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/index.tsx"],"sourcesContent":["/* eslint-disable react/react-in-jsx-scope */\nimport { forwardRef } from './hooks'\n\nexport function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n\nexport function omit (obj, fields) {\n const shallowCopy = Object.assign({}, obj)\n for (let i = 0; i < fields.length; i += 1) {\n const key = fields[i]\n delete shallowCopy[key]\n }\n return shallowCopy\n}\n\nexport const createForwardRefComponent = (ReactComponent: any) => {\n const forwardRefComponent = (\n props,\n ref\n ) => <ReactComponent {...props} forwardedRef={ref} />\n\n return forwardRef(forwardRefComponent)\n}\n\n// Picker 工具函数\nfunction getTimeRange (begin: number, end: number) {\n const range: string[] = []\n for (let i = begin; i <= end; i++) {\n range.push(`${i < 10 ? '0' : ''}${i}`)\n }\n return range\n}\n\nexport const hoursRange = getTimeRange(0, 23)\n\nexport const minutesRange = getTimeRange(0, 59)\n\n/**\n * 校验传入的 value 是否合法\n */\nexport function verifyValue (value: number, range: any[]) {\n if (!isNaN(+value) && value >= 0 && value < range.length) return true\n return false\n}\n\n/**\n * 检验传入的 time value 是否合法\n */\nexport function verifyTime (value: string) {\n if (!/^\\d{1,2}:\\d{1,2}$/.test(value)) return false\n\n const time = value.split(':').map(num => +num)\n\n if (time[0] < 0 || time[0] > 23) return false\n if (time[1] < 0 || time[1] > 59) return false\n\n return true\n}\n\n/**\n * 比较时间\n * return t1 <= t2\n */\nexport function compareTime (t1: string, t2: string) {\n const t1List = t1.split(':').map(i => +i)\n const t2List = t2.split(':').map(i => +i)\n\n if (t1List[0] < t2List[0]) return true\n if (t1List[0] === t2List[0] && t1List[1] <= t2List[1]) return true\n\n return false\n}\n\n/**\n * 校验日期合法性,返回合法性和日期数组\n */\nexport function verifyDate (dateStr: string) {\n if (!dateStr) return false\n const date = new Date(dateStr.replace(/-/g, '/'))\n return isNaN(date.getMonth()) ? false : date\n}\n\n/**\n * 获取当月最大天数\n */\nfunction getMaxDay (year: number, month: number) {\n if (month === 4 || month === 6 || month === 9 || month === 11) return 30\n if (month === 2) {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) return 29\n else return 28\n }\n return 31\n}\n\n/**\n * 获取时间数组\n */\nfunction getDateRange (start: number, end: number) {\n const range: number[] = []\n for (let i = start; i <= end; i++) {\n range.push(i)\n }\n return range\n}\n\n/**\n * 获取年份区间数组\n */\nexport function getYearRange (start: number, end: number) {\n return getDateRange(start, end)\n}\n\n/**\n * 获取月份区间数组\n */\nexport function getMonthRange (start: Date, end: Date, year: number) {\n let rangeStart = 1\n let rangeEnd = 12\n\n // 当前年份等于开始年份,由开始对应的月份约束开始值\n if (start.getFullYear() === year) {\n rangeStart = start.getMonth() + 1\n }\n\n // 当前年份等于结束年份,由结束对应的月份约束结束值\n if (end.getFullYear() === year) {\n rangeEnd = end.getMonth() + 1\n }\n\n return getDateRange(rangeStart, rangeEnd)\n}\n\n/**\n * 获取日期区间数组\n */\nexport function getDayRange (start: Date, end: Date, year: number, month: number) {\n let rangeStart = 1\n let rangeEnd = getMaxDay(year, month)\n\n if (start.getFullYear() === year && start.getMonth() + 1 === month) {\n rangeStart = start.getDate()\n }\n\n if (end.getFullYear() === year && end.getMonth() + 1 === month) {\n rangeEnd = end.getDate()\n }\n\n return getDateRange(rangeStart, rangeEnd)\n}\n\n"],"names":["throttle","fn","threshold","arguments","length","undefined","scope","lastTime","deferTimer","_len","args","Array","_key","context","now","Date","apply","clearTimeout","setTimeout","debounce","ms","timer","_len2","_key2","omit","obj","fields","shallowCopy","Object","assign","i","key","createForwardRefComponent","ReactComponent","forwardRefComponent","props","ref","_jsx","forwardedRef","forwardRef","getTimeRange","begin","end","range","push","hoursRange","minutesRange","verifyValue","value","isNaN","verifyTime","test","time","split","map","num","compareTime","t1","t2","t1List","t2List","verifyDate","dateStr","date","replace","getMonth","getMaxDay","year","month","getDateRange","start","getYearRange","getMonthRange","rangeStart","rangeEnd","getFullYear","getDayRange","getDate"],"mappings":"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"}