taro-ui 3.3.3 → 3.4.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.
- package/LICENSE +1 -1
- package/README.md +85 -0
- package/dist/common/utils.d.ts +2 -1
- package/dist/common/utils.js +3 -0
- package/dist/common/utils.js.map +1 -1
- package/dist/components/accordion/index.d.ts +16 -13
- package/dist/components/accordion/index.js +77 -97
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/action-sheet/body/index.d.ts +2 -4
- package/dist/components/action-sheet/body/index.js +8 -6
- package/dist/components/action-sheet/body/index.js.map +1 -1
- package/dist/components/action-sheet/body/item/index.d.ts +7 -7
- package/dist/components/action-sheet/body/item/index.js +14 -14
- package/dist/components/action-sheet/body/item/index.js.map +1 -1
- package/dist/components/action-sheet/footer/index.d.ts +7 -7
- package/dist/components/action-sheet/footer/index.js +14 -17
- package/dist/components/action-sheet/footer/index.js.map +1 -1
- package/dist/components/action-sheet/header/index.d.ts +2 -4
- package/dist/components/action-sheet/header/index.js +8 -9
- package/dist/components/action-sheet/header/index.js.map +1 -1
- package/dist/components/action-sheet/index.d.ts +12 -13
- package/dist/components/action-sheet/index.js +53 -57
- package/dist/components/action-sheet/index.js.map +1 -1
- package/dist/components/activity-indicator/index.d.ts +12 -6
- package/dist/components/activity-indicator/index.js +19 -22
- package/dist/components/activity-indicator/index.js.map +1 -1
- package/dist/components/avatar/index.d.ts +14 -8
- package/dist/components/avatar/index.js +36 -43
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/badge/index.d.ts +11 -8
- package/dist/components/badge/index.js +18 -34
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/button/index.d.ts +29 -14
- package/dist/components/button/index.js +97 -112
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/calendar/body/index.d.ts +3 -26
- package/dist/components/calendar/body/index.js +215 -235
- package/dist/components/calendar/body/index.js.map +1 -1
- package/dist/components/calendar/controller/index.d.ts +3 -5
- package/dist/components/calendar/controller/index.js +47 -43
- package/dist/components/calendar/controller/index.js.map +1 -1
- package/dist/components/calendar/index.d.ts +3 -20
- package/dist/components/calendar/index.js +219 -201
- package/dist/components/calendar/index.js.map +1 -1
- package/dist/components/calendar/ui/date-list/index.d.ts +2 -6
- package/dist/components/calendar/ui/date-list/index.js +36 -41
- package/dist/components/calendar/ui/date-list/index.js.map +1 -1
- package/dist/components/calendar/ui/day-list/index.d.ts +2 -4
- package/dist/components/calendar/ui/day-list/index.js +6 -5
- package/dist/components/calendar/ui/day-list/index.js.map +1 -1
- package/dist/components/card/index.d.ts +15 -7
- package/dist/components/card/index.js +42 -43
- package/dist/components/card/index.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +11 -7
- package/dist/components/checkbox/index.js +30 -35
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/config-provider/context.d.ts +6 -0
- package/dist/components/config-provider/context.js +13 -0
- package/dist/components/config-provider/context.js.map +1 -0
- package/dist/components/config-provider/index.d.ts +7 -0
- package/dist/components/config-provider/index.js +15 -0
- package/dist/components/config-provider/index.js.map +1 -0
- package/dist/components/countdown/index.d.ts +19 -19
- package/dist/components/countdown/index.js +183 -118
- package/dist/components/countdown/index.js.map +1 -1
- package/dist/components/countdown/item/index.d.ts +8 -7
- package/dist/components/countdown/item/index.js +10 -13
- package/dist/components/countdown/item/index.js.map +1 -1
- package/dist/components/curtain/index.d.ts +11 -8
- package/dist/components/curtain/index.js +36 -45
- package/dist/components/curtain/index.js.map +1 -1
- package/dist/components/divider/index.d.ts +13 -6
- package/dist/components/divider/index.js +29 -38
- package/dist/components/divider/index.js.map +1 -1
- package/dist/components/drawer/index.d.ts +13 -15
- package/dist/components/drawer/index.js +100 -93
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/fab/index.d.ts +8 -7
- package/dist/components/fab/index.js +16 -16
- package/dist/components/fab/index.js.map +1 -1
- package/dist/components/flex/index.d.ts +11 -5
- package/dist/components/flex/index.js +17 -18
- package/dist/components/flex/index.js.map +1 -1
- package/dist/components/flex/item/index.d.ts +11 -5
- package/dist/components/flex/item/index.js +17 -18
- package/dist/components/flex/item/index.js.map +1 -1
- package/dist/components/float-layout/index.d.ts +20 -12
- package/dist/components/float-layout/index.js +56 -72
- package/dist/components/float-layout/index.js.map +1 -1
- package/dist/components/form/index.d.ts +11 -8
- package/dist/components/form/index.js +28 -28
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/grid/index.d.ts +22 -7
- package/dist/components/grid/index.js +61 -66
- package/dist/components/grid/index.js.map +1 -1
- package/dist/components/icon/index.d.ts +13 -7
- package/dist/components/icon/index.js +24 -34
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/image-picker/index.d.ts +19 -9
- package/dist/components/image-picker/index.js +83 -102
- package/dist/components/image-picker/index.js.map +1 -1
- package/dist/components/indexes/index.d.ts +16 -28
- package/dist/components/indexes/index.js +198 -209
- package/dist/components/indexes/index.js.map +1 -1
- package/dist/components/input/index.d.ts +37 -15
- package/dist/components/input/index.js +152 -161
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input-number/index.d.ts +20 -11
- package/dist/components/input-number/index.js +107 -126
- package/dist/components/input-number/index.js.map +1 -1
- package/dist/components/list/index.d.ts +7 -6
- package/dist/components/list/index.js +15 -15
- package/dist/components/list/index.js.map +1 -1
- package/dist/components/list/item/index.d.ts +27 -9
- package/dist/components/list/item/index.js +89 -117
- package/dist/components/list/item/index.js.map +1 -1
- package/dist/components/load-more/index.d.ts +15 -7
- package/dist/components/load-more/index.js +29 -50
- package/dist/components/load-more/index.js.map +1 -1
- package/dist/components/loading/index.d.ts +8 -7
- package/dist/components/loading/index.js +14 -20
- package/dist/components/loading/index.js.map +1 -1
- package/dist/components/message/index.d.ts +9 -14
- package/dist/components/message/index.js +45 -59
- package/dist/components/message/index.js.map +1 -1
- package/dist/components/modal/action/index.d.ts +7 -6
- package/dist/components/modal/action/index.js +15 -15
- package/dist/components/modal/action/index.js.map +1 -1
- package/dist/components/modal/content/index.d.ts +2 -4
- package/dist/components/modal/content/index.js +8 -6
- package/dist/components/modal/content/index.js.map +1 -1
- package/dist/components/modal/header/index.d.ts +2 -4
- package/dist/components/modal/header/index.js +8 -6
- package/dist/components/modal/header/index.js.map +1 -1
- package/dist/components/modal/index.d.ts +16 -14
- package/dist/components/modal/index.js +63 -77
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/nav-bar/index.d.ts +20 -10
- package/dist/components/nav-bar/index.js +146 -162
- package/dist/components/nav-bar/index.js.map +1 -1
- package/dist/components/noticebar/index.d.ts +17 -15
- package/dist/components/noticebar/index.js +115 -128
- package/dist/components/noticebar/index.js.map +1 -1
- package/dist/components/pagination/index.d.ts +13 -11
- package/dist/components/pagination/index.js +64 -120
- package/dist/components/pagination/index.js.map +1 -1
- package/dist/components/progress/index.d.ts +11 -5
- package/dist/components/progress/index.js +39 -36
- package/dist/components/progress/index.js.map +1 -1
- package/dist/components/radio/index.d.ts +11 -7
- package/dist/components/radio/index.js +29 -33
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/range/index.d.ts +19 -21
- package/dist/components/range/index.js +146 -153
- package/dist/components/range/index.js.map +1 -1
- package/dist/components/rate/index.d.ts +13 -7
- package/dist/components/rate/index.js +47 -62
- package/dist/components/rate/index.js.map +1 -1
- package/dist/components/search-bar/index.d.ts +23 -15
- package/dist/components/search-bar/index.js +120 -146
- package/dist/components/search-bar/index.js.map +1 -1
- package/dist/components/segmented-control/index.d.ts +14 -7
- package/dist/components/segmented-control/index.js +52 -66
- package/dist/components/segmented-control/index.js.map +1 -1
- package/dist/components/slider/index.d.ts +21 -12
- package/dist/components/slider/index.js +66 -90
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/steps/index.d.ts +11 -7
- package/dist/components/steps/index.js +43 -48
- package/dist/components/steps/index.js.map +1 -1
- package/dist/components/swipe-action/index.d.ts +12 -25
- package/dist/components/swipe-action/index.js +118 -115
- package/dist/components/swipe-action/index.js.map +1 -1
- package/dist/components/swipe-action/options/index.d.ts +2 -4
- package/dist/components/swipe-action/options/index.js +18 -17
- package/dist/components/swipe-action/options/index.js.map +1 -1
- package/dist/components/switch/index.d.ts +14 -7
- package/dist/components/switch/index.js +36 -41
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/tab-bar/index.d.ts +17 -7
- package/dist/components/tab-bar/index.js +108 -135
- package/dist/components/tab-bar/index.js.map +1 -1
- package/dist/components/tabs/index.d.ts +17 -23
- package/dist/components/tabs/index.js +185 -174
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs-pane/index.d.ts +11 -6
- package/dist/components/tabs-pane/index.js +26 -28
- package/dist/components/tabs-pane/index.js.map +1 -1
- package/dist/components/tag/index.d.ts +14 -7
- package/dist/components/tag/index.js +31 -40
- package/dist/components/tag/index.js.map +1 -1
- package/dist/components/textarea/index.d.ts +29 -11
- package/dist/components/textarea/index.js +72 -92
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/timeline/index.d.ts +9 -6
- package/dist/components/timeline/index.js +50 -56
- package/dist/components/timeline/index.js.map +1 -1
- package/dist/components/toast/img.json +3 -6
- package/dist/components/toast/index.d.ts +16 -15
- package/dist/components/toast/index.js +85 -94
- package/dist/components/toast/index.js.map +1 -1
- package/dist/hooks/useComponentLocale.d.ts +2 -0
- package/dist/hooks/useComponentLocale.js +12 -0
- package/dist/hooks/useComponentLocale.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +4006 -4404
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4032 -4434
- package/dist/index.js.map +1 -1
- package/dist/locale/en_US.d.ts +3 -0
- package/dist/locale/en_US.js +34 -0
- package/dist/locale/en_US.js.map +1 -0
- package/dist/locale/index.d.ts +4 -0
- package/dist/locale/index.js +10 -0
- package/dist/locale/index.js.map +1 -0
- package/dist/locale/types.d.ts +34 -0
- package/dist/locale/types.js +1 -0
- package/dist/locale/types.js.map +1 -0
- package/dist/locale/zh_CN.d.ts +3 -0
- package/dist/locale/zh_CN.js +34 -0
- package/dist/locale/zh_CN.js.map +1 -0
- package/dist/style/components/avatar.scss +1 -1
- package/dist/style/components/badge.scss +7 -2
- package/dist/style/components/calendar.scss +1 -1
- package/dist/style/components/countdown.scss +2 -1
- package/dist/style/components/flex.scss +1 -1
- package/dist/style/components/grid.scss +2 -2
- package/dist/style/components/icon.scss +302 -101
- package/dist/style/components/input.scss +2 -2
- package/dist/style/components/progress.scss +1 -1
- package/dist/style/components/search-bar.scss +1 -1
- package/dist/style/components/steps.scss +2 -2
- package/dist/style/components/tabs.scss +1 -1
- package/dist/style/components/tag.scss +1 -1
- package/dist/style/components/timeline.scss +1 -1
- package/dist/style/components/toast.scss +7 -3
- package/dist/style/index.css +176 -176
- package/dist/style/index.css.map +1 -1
- package/dist/style/mixins/libs/hairline.scss +4 -19
- package/dist/style/mixins/libs/shade.scss +3 -6
- package/dist/style/mixins/libs/tint.scss +4 -7
- package/dist/style/themes/purple.scss +15 -15
- package/dist/style/themes/red.scss +16 -13
- package/dist/style/variables/default.scss +69 -73
- package/package.json +5 -3
- package/rn/components/accordion/index.tsx +2 -9
- package/rn/components/action-sheet/body/index.tsx +1 -3
- package/rn/components/action-sheet/body/item/index.tsx +1 -3
- package/rn/components/action-sheet/footer/index.tsx +1 -3
- package/rn/components/action-sheet/header/index.tsx +1 -3
- package/rn/components/activity-indicator/index.tsx +1 -3
- package/rn/components/avatar/index.tsx +5 -5
- package/rn/components/calendar/controller/index.tsx +2 -7
- package/rn/components/card/index.tsx +4 -4
- package/rn/components/countdown/index.scss +5 -4
- package/rn/components/countdown/item/index.tsx +1 -3
- package/rn/components/curtain/index.tsx +5 -5
- package/rn/components/flex/index.scss +2 -2
- package/rn/components/flex/item/index.scss +2 -2
- package/rn/components/grid/index.tsx +15 -15
- package/rn/components/icon/index.tsx +4 -4
- package/rn/components/image-picker/index.tsx +7 -7
- package/rn/components/pagination/index.tsx +7 -7
- package/rn/components/progress/index.tsx +5 -5
- package/rn/components/radio/index.tsx +7 -7
- package/rn/components/rate/index.tsx +4 -4
- package/rn/components/segmented-control/index.tsx +8 -8
- package/rn/components/slider/index.tsx +9 -9
- package/rn/components/steps/index.tsx +8 -8
- package/rn/components/swipe-action/options/index.tsx +1 -3
- package/rn/components/switch/index.tsx +2 -9
- package/rn/components/toast/img.json +3 -6
- package/rn/components/toast/index.tsx +8 -8
- package/rn/style/components/accordion.scss +1 -1
- package/rn/style/components/action-sheet.scss +1 -1
- package/rn/style/components/avatar.scss +1 -1
- package/rn/style/components/badge.scss +8 -3
- package/rn/style/components/button.scss +1 -1
- package/rn/style/components/calendar.scss +1 -1
- package/rn/style/components/checkbox.scss +1 -1
- package/rn/style/components/curtain.scss +1 -1
- package/rn/style/components/fab.scss +1 -4
- package/rn/style/components/flex.scss +1 -1
- package/rn/style/components/grid.scss +2 -6
- package/rn/style/components/icon.scss +302 -101
- package/rn/style/components/index.scss +41 -41
- package/rn/style/components/input.scss +1 -1
- package/rn/style/components/list.scss +2 -4
- package/rn/style/components/loading.scss +4 -4
- package/rn/style/components/message.scss +1 -1
- package/rn/style/components/modal.scss +0 -2
- package/rn/style/components/nav-bar.scss +3 -3
- package/rn/style/components/noticebar.scss +0 -4
- package/rn/style/components/progress.scss +1 -1
- package/rn/style/components/radio.scss +2 -2
- package/rn/style/components/range.scss +1 -1
- package/rn/style/components/search-bar.scss +1 -1
- package/rn/style/components/segmented-control.scss +4 -1
- package/rn/style/components/slider.scss +0 -1
- package/rn/style/components/steps.scss +3 -3
- package/rn/style/components/switch.scss +0 -1
- package/rn/style/components/tabs.scss +2 -2
- package/rn/style/components/tag.scss +1 -1
- package/rn/style/components/timeline.scss +0 -2
- package/rn/style/components/toast.scss +5 -2
- package/rn/style/index.scss +1 -1
- package/rn/style/mixins/libs/hairline.scss +4 -22
- package/rn/style/mixins/libs/shade.scss +1 -4
- package/rn/style/mixins/libs/tint.scss +2 -5
- package/rn/style/themes/purple.scss +15 -15
- package/rn/style/themes/red.scss +16 -13
- package/rn/style/variables/default.scss +69 -73
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/range/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes, { InferProps } from 'prop-types'\nimport React from 'react'\nimport { View } from '@tarojs/components'\nimport { CommonEvent, ITouchEvent } from '@tarojs/components/types/common'\nimport { AtRangeProps, AtRangeState } from '../../../types/range'\nimport {\n delayQuerySelector,\n getEventDetail,\n mergeStyle\n} from '../../common/utils'\n\nexport default class AtRange extends React.Component<\n AtRangeProps,\n AtRangeState\n> {\n public static defaultProps: AtRangeProps\n public static propTypes: InferProps<AtRangeProps>\n\n private width: number\n private left: number\n private deltaValue: number\n private currentSlider: string\n\n public constructor(props: AtRangeProps) {\n super(props)\n const { min = 0, max = 100 } = props\n // range 宽度\n this.width = 0\n // range 到屏幕左边的距离\n this.left = 0\n this.deltaValue = max - min\n this.currentSlider = ''\n this.state = {\n aX: 0,\n bX: 0\n }\n }\n\n private handleClick = (event: CommonEvent): void => {\n if (this.currentSlider && !this.props.disabled) {\n let sliderValue = 0\n const detail = getEventDetail(event)\n sliderValue = detail.x - this.left\n this.setSliderValue(this.currentSlider, sliderValue, 'onChange')\n }\n }\n\n private handleTouchMove(sliderName: string, event: ITouchEvent): void {\n if (this.props.disabled) return\n event.stopPropagation()\n\n const clientX = event.touches[0].clientX\n this.setSliderValue(sliderName, clientX - this.left, 'onChange')\n }\n\n private handleTouchEnd(sliderName: string): void {\n if (this.props.disabled) return\n\n this.currentSlider = sliderName\n this.triggerEvent('onAfterChange')\n }\n\n private setSliderValue(\n sliderName: string,\n targetValue: number,\n funcName: string\n ): void {\n const distance = Math.min(Math.max(targetValue, 0), this.width)\n const sliderValue = Math.floor((distance / this.width) * 100)\n if (funcName) {\n this.setState(\n {\n [sliderName]: sliderValue\n },\n () => this.triggerEvent(funcName)\n )\n } else {\n this.setState({\n [sliderName]: sliderValue\n })\n }\n }\n\n private setValue(value: number[]): void {\n const { min = 0 } = this.props\n const aX = Math.round(((value[0] - min) / this.deltaValue) * 100) // fix issue #670\n const bX = Math.round(((value[1] - min) / this.deltaValue) * 100) // fix issue #670\n this.setState({ aX, bX })\n }\n\n private triggerEvent(funcName: string): void {\n const { min = 0 } = this.props\n const { aX, bX } = this.state\n const a = Math.round((aX / 100) * this.deltaValue) + min // fix issue #670\n const b = Math.round((bX / 100) * this.deltaValue) + min // fix issue #670\n const result = [a, b].sort((x, y) => x - y) as [number, number]\n\n if (funcName === 'onChange') {\n this.props.onChange && this.props.onChange(result)\n } else if (funcName === 'onAfterChange') {\n this.props.onAfterChange && this.props.onAfterChange(result)\n }\n }\n\n private updatePos(): void {\n delayQuerySelector('.at-range__container', 0).then(rect => {\n this.width = Math.round(rect[0]?.width)\n this.left = Math.round(rect[0]?.left)\n })\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: AtRangeProps): void {\n const { value = [] } = nextProps\n this.updatePos()\n if (\n this.props.value?.[0] !== value?.[0] ||\n this.props.value?.[1] !== value?.[1]\n ) {\n this.setValue(value)\n }\n }\n\n public componentDidMount(): void {\n const { value = [] } = this.props\n this.updatePos()\n this.setValue(value)\n }\n\n public render(): JSX.Element {\n const {\n className,\n customStyle,\n sliderStyle = {},\n railStyle = {},\n trackStyle = {},\n blockSize,\n disabled\n } = this.props\n\n const rootCls = classNames(\n 'at-range',\n {\n 'at-range--disabled': disabled\n },\n className\n )\n\n const { aX, bX } = this.state\n const sliderCommonStyle = {\n width: blockSize ? `${blockSize}PX` : '',\n height: blockSize ? `${blockSize}PX` : '',\n marginLeft: blockSize ? `${-blockSize / 2}PX` : ''\n }\n const sliderAStyle = {\n ...sliderCommonStyle,\n left: `${aX}%`\n }\n const sliderBStyle = {\n ...sliderCommonStyle,\n left: `${bX}%`\n }\n const containerStyle = {\n height: blockSize ? `${blockSize}PX` : ''\n }\n const smallerX = Math.min(aX, bX)\n const deltaX = Math.abs(aX - bX)\n const atTrackStyle = {\n left: `${smallerX}%`,\n width: `${deltaX}%`\n }\n\n return (\n <View className={rootCls} style={customStyle} onClick={this.handleClick}>\n <View className='at-range__container' style={containerStyle}>\n <View className='at-range__rail' style={railStyle}></View>\n <View\n className='at-range__track'\n style={mergeStyle(atTrackStyle, trackStyle)}\n ></View>\n <View\n className='at-range__slider'\n style={mergeStyle(sliderAStyle, sliderStyle)}\n onTouchMove={this.handleTouchMove.bind(this, 'aX')}\n onTouchEnd={this.handleTouchEnd.bind(this, 'aX')}\n ></View>\n <View\n className='at-range__slider'\n style={mergeStyle(sliderBStyle, sliderStyle)}\n onTouchMove={this.handleTouchMove.bind(this, 'bX')}\n onTouchEnd={this.handleTouchEnd.bind(this, 'bX')}\n ></View>\n </View>\n </View>\n )\n }\n}\n\nAtRange.defaultProps = {\n customStyle: '',\n className: '',\n sliderStyle: '',\n railStyle: '',\n trackStyle: '',\n value: [0, 0],\n min: 0,\n max: 100,\n disabled: false,\n blockSize: 0\n}\n\nAtRange.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n sliderStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n railStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n trackStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.array,\n min: PropTypes.number,\n max: PropTypes.number,\n disabled: PropTypes.bool,\n blockSize: PropTypes.number,\n onChange: PropTypes.func,\n onAfterChange: PropTypes.func\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/range/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { View } from '@tarojs/components'\nimport { CommonEvent, ITouchEvent } from '@tarojs/components/types/common'\nimport { AtRangeProps } from '../../../types/range'\nimport {\n delayQuerySelector,\n getEventDetail,\n mergeStyle\n} from '../../common/utils'\n\nfunction AtRange({\n customStyle = '',\n className = '',\n sliderStyle = {},\n railStyle = {},\n trackStyle = {},\n value = [0, 0],\n min = 0,\n max = 100,\n disabled = false,\n blockSize = 0,\n onChange,\n onAfterChange\n}: AtRangeProps): JSX.Element {\n const widthRef = useRef(0)\n const leftRef = useRef(0)\n const deltaValueRef = useRef(max - min)\n const currentSliderRef = useRef('')\n const [{ aX, bX }, setAxis] = useState({ aX: 0, bX: 0 })\n const stateRef = useRef({ aX: 0, bX: 0 })\n stateRef.current = { aX, bX }\n\n deltaValueRef.current = max - min\n\n const triggerEvent = (funcName: string): void => {\n const { aX: stateAX, bX: stateBX } = stateRef.current\n const a = Math.round((stateAX / 100) * deltaValueRef.current) + min\n const b = Math.round((stateBX / 100) * deltaValueRef.current) + min\n const result = [a, b].sort((x, y) => x - y) as [number, number]\n\n if (funcName === 'onChange') {\n onChange && onChange(result)\n } else if (funcName === 'onAfterChange') {\n onAfterChange && onAfterChange(result)\n }\n }\n\n const setValue = (nextValue: number[]): void => {\n const aXVal = Math.round(\n ((nextValue[0] - min) / deltaValueRef.current) * 100\n )\n const bXVal = Math.round(\n ((nextValue[1] - min) / deltaValueRef.current) * 100\n )\n setAxis({ aX: aXVal, bX: bXVal })\n }\n\n const setSliderValue = (\n sliderName: string,\n targetValue: number,\n funcName: string\n ): void => {\n const distance = Math.min(Math.max(targetValue, 0), widthRef.current)\n const sliderValue = Math.floor((distance / widthRef.current) * 100)\n if (funcName) {\n setAxis(prev => {\n const next = { ...prev, [sliderName]: sliderValue }\n stateRef.current = next\n const a = Math.round((next.aX / 100) * deltaValueRef.current) + min\n const b = Math.round((next.bX / 100) * deltaValueRef.current) + min\n const result = [a, b].sort((x, y) => x - y) as [number, number]\n if (funcName === 'onChange') {\n onChange && onChange(result)\n } else if (funcName === 'onAfterChange') {\n onAfterChange && onAfterChange(result)\n }\n return next\n })\n } else {\n setAxis(prev => ({ ...prev, [sliderName]: sliderValue }))\n }\n }\n\n const updatePos = (): void => {\n delayQuerySelector('.at-range__container', 0).then(rect => {\n widthRef.current = Math.round(rect[0]?.width)\n leftRef.current = Math.round(rect[0]?.left)\n })\n }\n\n const handleClick = (event: CommonEvent): void => {\n if (currentSliderRef.current && !disabled) {\n let sliderValue = 0\n const detail = getEventDetail(event)\n sliderValue = detail.x - leftRef.current\n setSliderValue(currentSliderRef.current, sliderValue, 'onChange')\n }\n }\n\n const handleTouchMove = (sliderName: string, event: ITouchEvent): void => {\n if (disabled) return\n event.stopPropagation()\n\n const clientX = event.touches[0].clientX\n setSliderValue(sliderName, clientX - leftRef.current, 'onChange')\n }\n\n const handleTouchEnd = (sliderName: string): void => {\n if (disabled) return\n\n currentSliderRef.current = sliderName\n triggerEvent('onAfterChange')\n }\n\n useEffect(() => {\n updatePos()\n setValue(value)\n // componentDidMount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const prevValueRef = useRef(value)\n useEffect(() => {\n updatePos()\n if (\n prevValueRef.current?.[0] !== value?.[0] ||\n prevValueRef.current?.[1] !== value?.[1]\n ) {\n setValue(value)\n }\n prevValueRef.current = value\n }, [value, min, max])\n\n const rootCls = classNames(\n 'at-range',\n {\n 'at-range--disabled': disabled\n },\n className\n )\n\n const sliderCommonStyle = {\n width: blockSize ? `${blockSize}PX` : '',\n height: blockSize ? `${blockSize}PX` : '',\n marginLeft: blockSize ? `${-blockSize / 2}PX` : ''\n }\n const sliderAStyle = {\n ...sliderCommonStyle,\n left: `${aX}%`\n }\n const sliderBStyle = {\n ...sliderCommonStyle,\n left: `${bX}%`\n }\n const containerStyle = {\n height: blockSize ? `${blockSize}PX` : ''\n }\n const smallerX = Math.min(aX, bX)\n const deltaX = Math.abs(aX - bX)\n const atTrackStyle = {\n left: `${smallerX}%`,\n width: `${deltaX}%`\n }\n\n return (\n <View className={rootCls} style={customStyle} onClick={handleClick}>\n <View className='at-range__container' style={containerStyle}>\n <View className='at-range__rail' style={railStyle}></View>\n <View\n className='at-range__track'\n style={mergeStyle(atTrackStyle, trackStyle)}\n ></View>\n <View\n className='at-range__slider'\n style={mergeStyle(sliderAStyle, sliderStyle)}\n onTouchMove={(event: ITouchEvent) => handleTouchMove('aX', event)}\n onTouchEnd={() => handleTouchEnd('aX')}\n ></View>\n <View\n className='at-range__slider'\n style={mergeStyle(sliderBStyle, sliderStyle)}\n onTouchMove={(event: ITouchEvent) => handleTouchMove('bX', event)}\n onTouchEnd={() => handleTouchEnd('bX')}\n ></View>\n </View>\n </View>\n )\n}\n\nAtRange.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n sliderStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n railStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n trackStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.array,\n min: PropTypes.number,\n max: PropTypes.number,\n disabled: PropTypes.bool,\n blockSize: PropTypes.number,\n onChange: PropTypes.func,\n onAfterChange: PropTypes.func\n}\n\nexport default AtRange\n"],"mappings":"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","names":[]}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React from 'react';
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
3
2
|
import { AtRateProps } from '../../../types/rate';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
declare function AtRate({ customStyle, className, value, max, size, margin, onChange }: AtRateProps): JSX.Element;
|
|
4
|
+
declare namespace AtRate {
|
|
5
|
+
var propTypes: {
|
|
6
|
+
customStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
|
|
7
|
+
className: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
|
|
8
|
+
size: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
|
|
9
|
+
value: PropTypes.Requireable<number>;
|
|
10
|
+
max: PropTypes.Requireable<number>;
|
|
11
|
+
margin: PropTypes.Requireable<number>;
|
|
12
|
+
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
13
|
+
};
|
|
9
14
|
}
|
|
15
|
+
export default AtRate;
|
|
@@ -3,70 +3,54 @@ import PropTypes from "prop-types";
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { Text, View } from "@tarojs/components";
|
|
5
5
|
import { pxTransform } from "../../common/utils";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
classNameArr.push("at-rate__icon at-rate__icon--off");
|
|
35
|
-
}
|
|
6
|
+
function AtRate({
|
|
7
|
+
customStyle = "",
|
|
8
|
+
className = "",
|
|
9
|
+
value = 0,
|
|
10
|
+
max = 5,
|
|
11
|
+
size = 0,
|
|
12
|
+
margin = 5,
|
|
13
|
+
onChange
|
|
14
|
+
}) {
|
|
15
|
+
const handleClick = (event) => {
|
|
16
|
+
onChange && onChange(event);
|
|
17
|
+
};
|
|
18
|
+
const iconStyle = {
|
|
19
|
+
marginRight: pxTransform(margin)
|
|
20
|
+
};
|
|
21
|
+
const starIconStyle = {
|
|
22
|
+
fontSize: size ? `${size}px` : ""
|
|
23
|
+
};
|
|
24
|
+
const classNameArr = [];
|
|
25
|
+
const floorValue = Math.floor(value);
|
|
26
|
+
const ceilValue = Math.ceil(value);
|
|
27
|
+
for (let i = 0; i < max; i++) {
|
|
28
|
+
if (floorValue > i) {
|
|
29
|
+
classNameArr.push("at-rate__icon at-rate__icon--on");
|
|
30
|
+
} else if (ceilValue - 1 === i) {
|
|
31
|
+
classNameArr.push("at-rate__icon at-rate__icon--half");
|
|
32
|
+
} else {
|
|
33
|
+
classNameArr.push("at-rate__icon at-rate__icon--off");
|
|
36
34
|
}
|
|
37
|
-
return /* @__PURE__ */ React.createElement(View, { className: classNames("at-rate", className), style: customStyle }, classNameArr.map((cls, i) => /* @__PURE__ */ React.createElement(
|
|
38
|
-
View,
|
|
39
|
-
{
|
|
40
|
-
className: cls,
|
|
41
|
-
key: `at-rate-star-${i}`,
|
|
42
|
-
style: iconStyle,
|
|
43
|
-
onClick: this.handleClick.bind(this, i + 1)
|
|
44
|
-
},
|
|
45
|
-
/* @__PURE__ */ React.createElement(
|
|
46
|
-
Text,
|
|
47
|
-
{
|
|
48
|
-
className: "at-icon at-icon-star-2",
|
|
49
|
-
style: starIconStyle
|
|
50
|
-
}
|
|
51
|
-
),
|
|
52
|
-
/* @__PURE__ */ React.createElement(View, { className: "at-rate__left" }, /* @__PURE__ */ React.createElement(
|
|
53
|
-
Text,
|
|
54
|
-
{
|
|
55
|
-
className: "at-icon at-icon-star-2",
|
|
56
|
-
style: starIconStyle
|
|
57
|
-
}
|
|
58
|
-
))
|
|
59
|
-
)));
|
|
60
35
|
}
|
|
36
|
+
return /* @__PURE__ */ React.createElement(View, { className: classNames("at-rate", className), style: customStyle }, classNameArr.map((cls, i) => /* @__PURE__ */ React.createElement(
|
|
37
|
+
View,
|
|
38
|
+
{
|
|
39
|
+
className: cls,
|
|
40
|
+
key: `at-rate-star-${i}`,
|
|
41
|
+
style: iconStyle,
|
|
42
|
+
onClick: handleClick.bind(null, i + 1)
|
|
43
|
+
},
|
|
44
|
+
/* @__PURE__ */ React.createElement(Text, { className: "at-icon at-icon-star-2", style: starIconStyle }),
|
|
45
|
+
/* @__PURE__ */ React.createElement(View, { className: "at-rate__left" }, /* @__PURE__ */ React.createElement(
|
|
46
|
+
Text,
|
|
47
|
+
{
|
|
48
|
+
className: "at-icon at-icon-star-2",
|
|
49
|
+
style: starIconStyle
|
|
50
|
+
}
|
|
51
|
+
))
|
|
52
|
+
)));
|
|
61
53
|
}
|
|
62
|
-
AtRate.defaultProps = {
|
|
63
|
-
customStyle: "",
|
|
64
|
-
className: "",
|
|
65
|
-
size: 0,
|
|
66
|
-
value: 0,
|
|
67
|
-
max: 5,
|
|
68
|
-
margin: 5
|
|
69
|
-
};
|
|
70
54
|
AtRate.propTypes = {
|
|
71
55
|
customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
|
|
72
56
|
className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
|
|
@@ -76,7 +60,8 @@ AtRate.propTypes = {
|
|
|
76
60
|
margin: PropTypes.number,
|
|
77
61
|
onChange: PropTypes.func
|
|
78
62
|
};
|
|
63
|
+
var rate_default = AtRate;
|
|
79
64
|
export {
|
|
80
|
-
|
|
65
|
+
rate_default as default
|
|
81
66
|
};
|
|
82
67
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/rate/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes
|
|
1
|
+
{"version":3,"sources":["../../../src/components/rate/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { Text, View } from '@tarojs/components'\nimport { CommonEvent } from '@tarojs/components/types/common'\nimport { AtRateProps } from '../../../types/rate'\nimport { pxTransform } from '../../common/utils'\n\nfunction AtRate({\n customStyle = '',\n className = '',\n value = 0,\n max = 5,\n size = 0,\n margin = 5,\n onChange\n}: AtRateProps): JSX.Element {\n const handleClick = (event: CommonEvent): void => {\n onChange && onChange(event)\n }\n\n const iconStyle = {\n marginRight: pxTransform(margin)\n }\n const starIconStyle = {\n fontSize: size ? `${size}px` : ''\n }\n\n // 生成星星颜色 className 数组,方便在jsx中直接map\n const classNameArr: string[] = []\n const floorValue = Math.floor(value)\n const ceilValue = Math.ceil(value)\n for (let i = 0; i < max; i++) {\n if (floorValue > i) {\n classNameArr.push('at-rate__icon at-rate__icon--on')\n } else if (ceilValue - 1 === i) {\n classNameArr.push('at-rate__icon at-rate__icon--half')\n } else {\n classNameArr.push('at-rate__icon at-rate__icon--off')\n }\n }\n\n return (\n <View className={classNames('at-rate', className)} style={customStyle}>\n {classNameArr.map((cls, i) => (\n <View\n className={cls}\n key={`at-rate-star-${i}`}\n style={iconStyle}\n onClick={handleClick.bind(null, i + 1)}\n >\n <Text className='at-icon at-icon-star-2' style={starIconStyle}></Text>\n <View className='at-rate__left'>\n <Text\n className='at-icon at-icon-star-2'\n style={starIconStyle}\n ></Text>\n </View>\n </View>\n ))}\n </View>\n )\n}\n\nAtRate.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n value: PropTypes.number,\n max: PropTypes.number,\n margin: PropTypes.number,\n onChange: PropTypes.func\n}\n\nexport default AtRate\n"],"mappings":"AAAA,OAAO,gBAAgB;AACvB,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,MAAM,YAAY;AAG3B,SAAS,mBAAmB;AAE5B,SAAS,OAAO;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AACF,GAA6B;AAC3B,QAAM,cAAc,CAAC,UAA6B;AAChD,gBAAY,SAAS,KAAK;AAAA,EAC5B;AAEA,QAAM,YAAY;AAAA,IAChB,aAAa,YAAY,MAAM;AAAA,EACjC;AACA,QAAM,gBAAgB;AAAA,IACpB,UAAU,OAAO,GAAG,IAAI,OAAO;AAAA,EACjC;AAGA,QAAM,eAAyB,CAAC;AAChC,QAAM,aAAa,KAAK,MAAM,KAAK;AACnC,QAAM,YAAY,KAAK,KAAK,KAAK;AACjC,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,QAAI,aAAa,GAAG;AAClB,mBAAa,KAAK,iCAAiC;AAAA,IACrD,WAAW,YAAY,MAAM,GAAG;AAC9B,mBAAa,KAAK,mCAAmC;AAAA,IACvD,OAAO;AACL,mBAAa,KAAK,kCAAkC;AAAA,IACtD;AAAA,EACF;AAEA,SACE,oCAAC,QAAK,WAAW,WAAW,WAAW,SAAS,GAAG,OAAO,eACvD,aAAa,IAAI,CAAC,KAAK,MACtB;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,KAAK,gBAAgB,CAAC;AAAA,MACtB,OAAO;AAAA,MACP,SAAS,YAAY,KAAK,MAAM,IAAI,CAAC;AAAA;AAAA,IAErC,oCAAC,QAAK,WAAU,0BAAyB,OAAO,eAAe;AAAA,IAC/D,oCAAC,QAAK,WAAU,mBACd;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA;AAAA,IACR,CACH;AAAA,EACF,CACD,CACH;AAEJ;AAEA,OAAO,YAAY;AAAA,EACjB,aAAa,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EACrE,WAAW,UAAU,UAAU,CAAC,UAAU,OAAO,UAAU,MAAM,CAAC;AAAA,EAClE,MAAM,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EAC9D,OAAO,UAAU;AAAA,EACjB,KAAK,UAAU;AAAA,EACf,QAAQ,UAAU;AAAA,EAClB,UAAU,UAAU;AACtB;AAEA,IAAO,eAAQ;","names":[]}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import { AtSearchBarProps } from '../../../types/search-bar';
|
|
3
|
+
declare function AtSearchBar({ value, placeholder, maxLength, fixed, focus, disabled, showActionButton, actionName, inputType, className, customStyle, enableNative, onChange, onFocus, onBlur, onConfirm, onActionClick, onClear }: AtSearchBarProps): JSX.Element;
|
|
4
|
+
declare namespace AtSearchBar {
|
|
5
|
+
var propTypes: {
|
|
6
|
+
value: PropTypes.Requireable<string>;
|
|
7
|
+
placeholder: PropTypes.Requireable<string>;
|
|
8
|
+
maxLength: PropTypes.Requireable<number>;
|
|
9
|
+
fixed: PropTypes.Requireable<boolean>;
|
|
10
|
+
focus: PropTypes.Requireable<boolean>;
|
|
11
|
+
disabled: PropTypes.Requireable<boolean>;
|
|
12
|
+
showActionButton: PropTypes.Requireable<boolean>;
|
|
13
|
+
actionName: PropTypes.Requireable<string>;
|
|
14
|
+
inputType: PropTypes.Requireable<string>;
|
|
15
|
+
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
16
|
+
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
17
|
+
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
18
|
+
onConfirm: PropTypes.Requireable<(...args: any[]) => any>;
|
|
19
|
+
onActionClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
20
|
+
onClear: PropTypes.Requireable<(...args: any[]) => any>;
|
|
21
|
+
enableNative: PropTypes.Requireable<boolean>;
|
|
22
|
+
};
|
|
16
23
|
}
|
|
24
|
+
export default AtSearchBar;
|
|
@@ -1,157 +1,130 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
|
-
import React from "react";
|
|
3
|
+
import React, { useEffect, useState } from "react";
|
|
4
4
|
import { Input, Text, View } from "@tarojs/components";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
5
|
+
import { useComponentLocale } from "../../hooks/useComponentLocale";
|
|
6
|
+
function AtSearchBar({
|
|
7
|
+
value = "",
|
|
8
|
+
placeholder,
|
|
9
|
+
maxLength = 140,
|
|
10
|
+
fixed = false,
|
|
11
|
+
focus = false,
|
|
12
|
+
disabled = false,
|
|
13
|
+
showActionButton = false,
|
|
14
|
+
actionName,
|
|
15
|
+
inputType = "text",
|
|
16
|
+
className,
|
|
17
|
+
customStyle,
|
|
18
|
+
enableNative = true,
|
|
19
|
+
onChange,
|
|
20
|
+
onFocus,
|
|
21
|
+
onBlur,
|
|
22
|
+
onConfirm,
|
|
23
|
+
onActionClick,
|
|
24
|
+
onClear
|
|
25
|
+
}) {
|
|
26
|
+
const locale = useComponentLocale("SearchBar");
|
|
27
|
+
const resolvedPlaceholder = placeholder != null ? placeholder : locale.placeholder;
|
|
28
|
+
const resolvedActionName = actionName != null ? actionName : locale.actionName;
|
|
29
|
+
const [isFocus, setIsFocus] = useState(!!focus);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
setIsFocus(!!focus);
|
|
32
|
+
}, [focus]);
|
|
33
|
+
const handleFocus = (event) => {
|
|
34
|
+
setIsFocus(true);
|
|
35
|
+
onFocus && onFocus(event);
|
|
36
|
+
};
|
|
37
|
+
const handleBlur = (event) => {
|
|
38
|
+
setIsFocus(false);
|
|
39
|
+
onBlur && onBlur(event);
|
|
40
|
+
};
|
|
41
|
+
const handleChange = (e) => {
|
|
42
|
+
onChange && onChange(e.detail.value, e);
|
|
43
|
+
};
|
|
44
|
+
const handleClear = (event) => {
|
|
45
|
+
if (onClear) {
|
|
46
|
+
onClear(event);
|
|
47
|
+
} else {
|
|
48
|
+
onChange && onChange("", event);
|
|
43
49
|
}
|
|
50
|
+
};
|
|
51
|
+
const handleConfirm = (event) => {
|
|
52
|
+
onConfirm && onConfirm(event);
|
|
53
|
+
};
|
|
54
|
+
const handleActionClick = (event) => {
|
|
55
|
+
onActionClick && onActionClick(event);
|
|
56
|
+
};
|
|
57
|
+
const fontSize = 14;
|
|
58
|
+
const rootCls = classNames(
|
|
59
|
+
"at-search-bar",
|
|
60
|
+
{
|
|
61
|
+
"at-search-bar--fixed": fixed
|
|
62
|
+
},
|
|
63
|
+
className
|
|
64
|
+
);
|
|
65
|
+
const placeholderWrapStyle = {};
|
|
66
|
+
const actionStyle = {};
|
|
67
|
+
if (isFocus || !isFocus && value) {
|
|
68
|
+
actionStyle.opacity = 1;
|
|
69
|
+
actionStyle.marginRight = `0`;
|
|
70
|
+
placeholderWrapStyle.flexGrow = 0;
|
|
71
|
+
} else if (!isFocus && !value) {
|
|
72
|
+
placeholderWrapStyle.flexGrow = 1;
|
|
73
|
+
actionStyle.opacity = 0;
|
|
74
|
+
actionStyle.marginRight = `-${(resolvedActionName.length + 1) * fontSize + fontSize / 2 + 10}px`;
|
|
75
|
+
}
|
|
76
|
+
if (showActionButton) {
|
|
77
|
+
actionStyle.opacity = 1;
|
|
78
|
+
actionStyle.marginRight = `0`;
|
|
44
79
|
}
|
|
45
|
-
|
|
46
|
-
|
|
80
|
+
const clearIconStyle = { display: "flex" };
|
|
81
|
+
const placeholderStyle = { visibility: "hidden" };
|
|
82
|
+
if (!value.length) {
|
|
83
|
+
clearIconStyle.display = "none";
|
|
84
|
+
placeholderStyle.visibility = "visible";
|
|
85
|
+
}
|
|
86
|
+
return /* @__PURE__ */ React.createElement(View, { className: rootCls, style: customStyle }, /* @__PURE__ */ React.createElement(View, { className: "at-search-bar__input-cnt" }, /* @__PURE__ */ React.createElement(
|
|
87
|
+
View,
|
|
88
|
+
{
|
|
89
|
+
className: "at-search-bar__placeholder-wrap",
|
|
90
|
+
style: placeholderWrapStyle
|
|
91
|
+
},
|
|
92
|
+
/* @__PURE__ */ React.createElement(Text, { className: "at-icon at-icon-search" }),
|
|
93
|
+
/* @__PURE__ */ React.createElement(Text, { className: "at-search-bar__placeholder", style: placeholderStyle }, isFocus ? "" : resolvedPlaceholder)
|
|
94
|
+
), /* @__PURE__ */ React.createElement(
|
|
95
|
+
Input,
|
|
96
|
+
{
|
|
97
|
+
className: "at-search-bar__input",
|
|
98
|
+
type: inputType,
|
|
99
|
+
confirmType: "search",
|
|
47
100
|
value,
|
|
48
|
-
|
|
49
|
-
maxLength,
|
|
50
|
-
fixed,
|
|
101
|
+
focus: isFocus,
|
|
51
102
|
disabled,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
enableNative
|
|
59
|
-
} = this.props;
|
|
60
|
-
const { isFocus } = this.state;
|
|
61
|
-
const fontSize = 14;
|
|
62
|
-
const rootCls = classNames(
|
|
63
|
-
"at-search-bar",
|
|
64
|
-
{
|
|
65
|
-
"at-search-bar--fixed": fixed
|
|
66
|
-
},
|
|
67
|
-
className
|
|
68
|
-
);
|
|
69
|
-
const placeholderWrapStyle = {};
|
|
70
|
-
const actionStyle = {};
|
|
71
|
-
if (isFocus || !isFocus && value) {
|
|
72
|
-
actionStyle.opacity = 1;
|
|
73
|
-
actionStyle.marginRight = `0`;
|
|
74
|
-
placeholderWrapStyle.flexGrow = 0;
|
|
75
|
-
} else if (!isFocus && !value) {
|
|
76
|
-
placeholderWrapStyle.flexGrow = 1;
|
|
77
|
-
actionStyle.opacity = 0;
|
|
78
|
-
actionStyle.marginRight = `-${(actionName.length + 1) * fontSize + fontSize / 2 + 10}px`;
|
|
79
|
-
}
|
|
80
|
-
if (showActionButton) {
|
|
81
|
-
actionStyle.opacity = 1;
|
|
82
|
-
actionStyle.marginRight = `0`;
|
|
103
|
+
maxlength: maxLength,
|
|
104
|
+
enableNative,
|
|
105
|
+
onInput: handleChange,
|
|
106
|
+
onFocus: handleFocus,
|
|
107
|
+
onBlur: handleBlur,
|
|
108
|
+
onConfirm: handleConfirm
|
|
83
109
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
style: placeholderStyle
|
|
102
|
-
},
|
|
103
|
-
isFocus ? "" : placeholder
|
|
104
|
-
)
|
|
105
|
-
), /* @__PURE__ */ React.createElement(
|
|
106
|
-
Input,
|
|
107
|
-
{
|
|
108
|
-
className: "at-search-bar__input",
|
|
109
|
-
type: inputType,
|
|
110
|
-
confirmType: "search",
|
|
111
|
-
value,
|
|
112
|
-
focus: isFocus,
|
|
113
|
-
disabled,
|
|
114
|
-
maxlength: maxLength,
|
|
115
|
-
enableNative,
|
|
116
|
-
onInput: this.handleChange,
|
|
117
|
-
onFocus: this.handleFocus,
|
|
118
|
-
onBlur: this.handleBlur,
|
|
119
|
-
onConfirm: this.handleConfirm
|
|
120
|
-
}
|
|
121
|
-
), /* @__PURE__ */ React.createElement(
|
|
122
|
-
View,
|
|
123
|
-
{
|
|
124
|
-
className: "at-search-bar__clear",
|
|
125
|
-
style: clearIconStyle,
|
|
126
|
-
onTouchStart: this.handleClear
|
|
127
|
-
},
|
|
128
|
-
/* @__PURE__ */ React.createElement(Text, { className: "at-icon at-icon-close-circle" })
|
|
129
|
-
)), /* @__PURE__ */ React.createElement(
|
|
130
|
-
View,
|
|
131
|
-
{
|
|
132
|
-
className: "at-search-bar__action",
|
|
133
|
-
style: actionStyle,
|
|
134
|
-
onClick: this.handleActionClick
|
|
135
|
-
},
|
|
136
|
-
actionName
|
|
137
|
-
));
|
|
138
|
-
}
|
|
110
|
+
), /* @__PURE__ */ React.createElement(
|
|
111
|
+
View,
|
|
112
|
+
{
|
|
113
|
+
className: "at-search-bar__clear",
|
|
114
|
+
style: clearIconStyle,
|
|
115
|
+
onTouchStart: handleClear
|
|
116
|
+
},
|
|
117
|
+
/* @__PURE__ */ React.createElement(Text, { className: "at-icon at-icon-close-circle" })
|
|
118
|
+
)), /* @__PURE__ */ React.createElement(
|
|
119
|
+
View,
|
|
120
|
+
{
|
|
121
|
+
className: "at-search-bar__action",
|
|
122
|
+
style: actionStyle,
|
|
123
|
+
onClick: handleActionClick
|
|
124
|
+
},
|
|
125
|
+
resolvedActionName
|
|
126
|
+
));
|
|
139
127
|
}
|
|
140
|
-
AtSearchBar.defaultProps = {
|
|
141
|
-
value: "",
|
|
142
|
-
placeholder: "\u641C\u7D22",
|
|
143
|
-
maxLength: 140,
|
|
144
|
-
fixed: false,
|
|
145
|
-
focus: false,
|
|
146
|
-
disabled: false,
|
|
147
|
-
showActionButton: false,
|
|
148
|
-
actionName: "\u641C\u7D22",
|
|
149
|
-
inputType: "text",
|
|
150
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
151
|
-
onChange: () => {
|
|
152
|
-
},
|
|
153
|
-
enableNative: true
|
|
154
|
-
};
|
|
155
128
|
AtSearchBar.propTypes = {
|
|
156
129
|
value: PropTypes.string,
|
|
157
130
|
placeholder: PropTypes.string,
|
|
@@ -170,7 +143,8 @@ AtSearchBar.propTypes = {
|
|
|
170
143
|
onClear: PropTypes.func,
|
|
171
144
|
enableNative: PropTypes.bool
|
|
172
145
|
};
|
|
146
|
+
var search_bar_default = AtSearchBar;
|
|
173
147
|
export {
|
|
174
|
-
|
|
148
|
+
search_bar_default as default
|
|
175
149
|
};
|
|
176
150
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search-bar/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes
|
|
1
|
+
{"version":3,"sources":["../../../src/components/search-bar/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React, { useEffect, useState } from 'react'\nimport { Input, Text, View } from '@tarojs/components'\nimport { CommonEvent } from '@tarojs/components/types/common'\nimport { useComponentLocale } from '../../hooks/useComponentLocale'\nimport { AtSearchBarProps } from '../../../types/search-bar'\n\ntype ExtendEvent = {\n target: {\n value: string\n }\n}\n\nfunction AtSearchBar({\n value = '',\n placeholder,\n maxLength = 140,\n fixed = false,\n focus = false,\n disabled = false,\n showActionButton = false,\n actionName,\n inputType = 'text',\n className,\n customStyle,\n enableNative = true,\n onChange,\n onFocus,\n onBlur,\n onConfirm,\n onActionClick,\n onClear\n}: AtSearchBarProps): JSX.Element {\n const locale = useComponentLocale('SearchBar')\n const resolvedPlaceholder = placeholder ?? locale.placeholder\n const resolvedActionName = actionName ?? locale.actionName\n const [isFocus, setIsFocus] = useState(!!focus)\n\n useEffect(() => {\n setIsFocus(!!focus)\n }, [focus])\n\n const handleFocus = (event: CommonEvent): void => {\n setIsFocus(true)\n onFocus && onFocus(event)\n }\n\n const handleBlur = (event: CommonEvent): void => {\n setIsFocus(false)\n onBlur && onBlur(event)\n }\n\n const handleChange = (e: CommonEvent & ExtendEvent): void => {\n onChange && onChange(e.detail.value, e)\n }\n\n const handleClear = (event: CommonEvent): void => {\n if (onClear) {\n onClear(event)\n } else {\n onChange && onChange('', event)\n }\n }\n\n const handleConfirm = (event: CommonEvent): void => {\n onConfirm && onConfirm(event)\n }\n\n const handleActionClick = (event: CommonEvent): void => {\n onActionClick && onActionClick(event)\n }\n\n const fontSize = 14\n const rootCls = classNames(\n 'at-search-bar',\n {\n 'at-search-bar--fixed': fixed\n },\n className\n )\n const placeholderWrapStyle: React.CSSProperties = {}\n const actionStyle: React.CSSProperties = {}\n if (isFocus || (!isFocus && value)) {\n actionStyle.opacity = 1\n actionStyle.marginRight = `0`\n placeholderWrapStyle.flexGrow = 0\n } else if (!isFocus && !value) {\n placeholderWrapStyle.flexGrow = 1\n actionStyle.opacity = 0\n actionStyle.marginRight = `-${\n (resolvedActionName.length + 1) * fontSize + fontSize / 2 + 10\n }px`\n }\n if (showActionButton) {\n actionStyle.opacity = 1\n actionStyle.marginRight = `0`\n }\n\n const clearIconStyle: React.CSSProperties = { display: 'flex' }\n const placeholderStyle: React.CSSProperties = { visibility: 'hidden' }\n if (!value.length) {\n clearIconStyle.display = 'none'\n placeholderStyle.visibility = 'visible'\n }\n\n return (\n <View className={rootCls} style={customStyle}>\n <View className='at-search-bar__input-cnt'>\n <View\n className='at-search-bar__placeholder-wrap'\n style={placeholderWrapStyle}\n >\n <Text className='at-icon at-icon-search'></Text>\n <Text className='at-search-bar__placeholder' style={placeholderStyle}>\n {isFocus ? '' : resolvedPlaceholder}\n </Text>\n </View>\n <Input\n className='at-search-bar__input'\n type={inputType}\n confirmType='search'\n value={value}\n focus={isFocus}\n disabled={disabled}\n maxlength={maxLength}\n // @ts-ignore ci 上面这个检查不通过, 暂时跳过ts检查\n enableNative={enableNative}\n onInput={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onConfirm={handleConfirm}\n />\n <View\n className='at-search-bar__clear'\n style={clearIconStyle}\n onTouchStart={handleClear}\n >\n <Text className='at-icon at-icon-close-circle'></Text>\n </View>\n </View>\n <View\n className='at-search-bar__action'\n style={actionStyle}\n onClick={handleActionClick}\n >\n {resolvedActionName}\n </View>\n </View>\n )\n}\n\nAtSearchBar.propTypes = {\n value: PropTypes.string,\n placeholder: PropTypes.string,\n maxLength: PropTypes.number,\n fixed: PropTypes.bool,\n focus: PropTypes.bool,\n disabled: PropTypes.bool,\n showActionButton: PropTypes.bool,\n actionName: PropTypes.string,\n inputType: PropTypes.oneOf(['text', 'number', 'idcard', 'digit']),\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onConfirm: PropTypes.func,\n onActionClick: PropTypes.func,\n onClear: PropTypes.func,\n enableNative: PropTypes.bool\n}\n\nexport default AtSearchBar\n"],"mappings":"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","names":[]}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React from 'react';
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
3
2
|
import { AtSegmentedControlProps } from '../../../types/segmented-control';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
declare function AtSegmentedControl({ customStyle, className, disabled, values, selectedColor, current, color, fontSize, onClick }: AtSegmentedControlProps): JSX.Element;
|
|
4
|
+
declare namespace AtSegmentedControl {
|
|
5
|
+
var propTypes: {
|
|
6
|
+
customStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
|
|
7
|
+
className: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
|
|
8
|
+
current: PropTypes.Requireable<number>;
|
|
9
|
+
color: PropTypes.Requireable<string>;
|
|
10
|
+
fontSize: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
|
|
11
|
+
disabled: PropTypes.Requireable<boolean>;
|
|
12
|
+
values: PropTypes.Requireable<any[]>;
|
|
13
|
+
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
14
|
+
};
|
|
9
15
|
}
|
|
16
|
+
export default AtSegmentedControl;
|