taro-react-uilib 1.4.22-0 → 1.4.22-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Checkbox/Group/index.js +1 -1
- package/dist/components/Checkbox/Group/index.js.map +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/Icon/index.js +1 -1
- package/dist/components/Icon/index.js.map +1 -1
- package/dist/components/Notice/index.js +2 -0
- package/dist/components/Notice/index.js.map +1 -0
- package/dist/components/Radio/Group/index.js +1 -1
- package/dist/components/Radio/Group/index.js.map +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/Radio/index.js.map +1 -1
- package/dist/components/src/index.js +1 -1
- package/dist/components/src/utils/index.js +1 -1
- package/dist/components/src/utils/index.js.map +1 -1
- package/dist/index.esm.js +6 -6
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +4 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/components/font/iconfont.ttf +0 -0
- package/dist/styles/components/font/iconfont.woff +0 -0
- package/dist/styles/components/font/iconfont.woff2 +0 -0
- package/dist/styles/components/icon.scss +5 -1
- package/dist/styles/components/index.scss +2 -0
- package/dist/styles/components/notice.scss +43 -0
- package/dist/styles/components/tabnav.scss +97 -0
- package/package.json +2 -2
- package/types/components/ActionSheet/index.d.ts +43 -44
- package/types/components/ActivityIndicator/index.d.ts +12 -13
- package/types/components/AmountInput/index.d.ts +25 -26
- package/types/components/AmountKeyboard/index.d.ts +35 -36
- package/types/components/Animated/Animated.d.ts +11 -12
- package/types/components/Animated/Fade/index.d.ts +9 -9
- package/types/components/Animated/Scale/index.d.ts +9 -9
- package/types/components/Animated/Slide/index.d.ts +11 -11
- package/types/components/Animated/index.d.ts +3 -3
- package/types/components/Badge/index.d.ts +7 -8
- package/types/components/BankCardNumberInput/index.d.ts +47 -48
- package/types/components/BankIcon/index.d.ts +8 -9
- package/types/components/Button/DotJump.d.ts +7 -7
- package/types/components/Button/index.d.ts +29 -30
- package/types/components/Captcha/index.d.ts +24 -25
- package/types/components/Cell/index.d.ts +29 -30
- package/types/components/Checkbox/Group/index.d.ts +23 -23
- package/types/components/Checkbox/index.d.ts +28 -29
- package/types/components/CheckboxButton/index.d.ts +23 -24
- package/types/components/Collapse/index.d.ts +10 -11
- package/types/components/Countdown/index.d.ts +10 -11
- package/types/components/Dialog/Alert/index.d.ts +26 -26
- package/types/components/Dialog/Confirm/index.d.ts +37 -37
- package/types/components/Dialog/index.d.ts +11 -11
- package/types/components/DialogComponent/index.d.ts +18 -19
- package/types/components/DialogRef/index.d.ts +37 -38
- package/types/components/Echarts/index.d.ts +5 -5
- package/types/components/Echarts/types.d.ts +34 -34
- package/types/components/Echarts/weapp/wx-canvas.d.ts +21 -21
- package/types/components/Echarts/weapp/wx-touch.d.ts +13 -13
- package/types/components/FormInput/index.d.ts +55 -56
- package/types/components/IDNumberInput/index.d.ts +39 -40
- package/types/components/Icon/index.d.ts +13 -14
- package/types/components/Image/index.d.ts +11 -12
- package/types/components/LicensePlateInput/Keyboard.d.ts +26 -27
- package/types/components/LicensePlateInput/index.d.ts +37 -38
- package/types/components/LinkMan/index.d.ts +33 -34
- package/types/components/List/index.d.ts +21 -22
- package/types/components/Loading/index.d.ts +11 -12
- package/types/components/Mask/index.d.ts +9 -10
- package/types/components/NavBar/index.d.ts +11 -12
- package/types/components/Notice/index.d.ts +13 -0
- package/types/components/NumberKeyboard/index.d.ts +24 -25
- package/types/components/Page/index.d.ts +21 -22
- package/types/components/PasswordInput/index.d.ts +10 -11
- package/types/components/Picker/Picker.d.ts +24 -24
- package/types/components/Picker/PickerSlot.d.ts +23 -24
- package/types/components/Picker/index.d.ts +12 -13
- package/types/components/Popup/index.d.ts +10 -11
- package/types/components/Progress/index.d.ts +21 -22
- package/types/components/ProgressCircle/index.d.ts +13 -14
- package/types/components/Radio/Group/index.d.ts +29 -29
- package/types/components/Radio/index.d.ts +29 -30
- package/types/components/Rank/index.d.ts +13 -14
- package/types/components/Result/index.d.ts +23 -24
- package/types/components/ScrollView/index.d.ts +11 -11
- package/types/components/Space/Item.d.ts +11 -11
- package/types/components/Space/config-provider.d.ts +12 -12
- package/types/components/Space/index.d.ts +20 -21
- package/types/components/Step/Steps/index.d.ts +14 -14
- package/types/components/Step/index.d.ts +19 -20
- package/types/components/Switch/index.d.ts +11 -12
- package/types/components/TabNav/TabNavItem/index.d.ts +8 -0
- package/types/components/TabNav/index.d.ts +27 -0
- package/types/components/Tabbar/index.d.ts +8 -9
- package/types/components/Tabbar/tabbar/TabItem.d.ts +8 -8
- package/types/components/Tabbar/tabbar/Tabbar.d.ts +31 -31
- package/types/components/ThemeProvider/index.d.ts +30 -30
- package/types/components/Toast/Toast.d.ts +19 -20
- package/types/components/Toast/index.d.ts +4 -5
- package/types/hooks/index.d.ts +2 -2
- package/types/hooks/useCustomNavbar.d.ts +6 -6
- package/types/hooks/useFirstMountState.d.ts +1 -1
- package/types/hooks/useFlexGapSupport.d.ts +2 -2
- package/types/hooks/useGenerateId.d.ts +1 -1
- package/types/hooks/usePrevious.d.ts +1 -1
- package/types/hooks/useRefs.d.ts +1 -1
- package/types/hooks/useTouch.d.ts +18 -18
- package/types/hooks/useUnMount.d.ts +1 -1
- package/types/hooks/useUpdateEffect.d.ts +1 -1
- package/types/index.d.ts +44 -43
- package/types/types/index.d.ts +5 -5
- package/types/utils/index.d.ts +57 -57
- package/lib/components/ActionSheet/index.js +0 -67
- package/lib/components/ActionSheet/index.js.map +0 -1
- package/lib/components/ActivityIndicator/index.js +0 -30
- package/lib/components/ActivityIndicator/index.js.map +0 -1
- package/lib/components/AmountInput/index.js +0 -53
- package/lib/components/AmountInput/index.js.map +0 -1
- package/lib/components/AmountKeyboard/index.js +0 -134
- package/lib/components/AmountKeyboard/index.js.map +0 -1
- package/lib/components/Animated/Animated.js +0 -20
- package/lib/components/Animated/Animated.js.map +0 -1
- package/lib/components/Animated/Fade/index.js +0 -19
- package/lib/components/Animated/Fade/index.js.map +0 -1
- package/lib/components/Animated/Scale/index.js +0 -19
- package/lib/components/Animated/Scale/index.js.map +0 -1
- package/lib/components/Animated/Slide/index.js +0 -19
- package/lib/components/Animated/Slide/index.js.map +0 -1
- package/lib/components/Animated/index.js +0 -5
- package/lib/components/Animated/index.js.map +0 -1
- package/lib/components/Badge/index.js +0 -11
- package/lib/components/Badge/index.js.map +0 -1
- package/lib/components/BankCardNumberInput/index.js +0 -44
- package/lib/components/BankCardNumberInput/index.js.map +0 -1
- package/lib/components/BankIcon/index.js +0 -12
- package/lib/components/BankIcon/index.js.map +0 -1
- package/lib/components/Button/DotJump.js +0 -13
- package/lib/components/Button/DotJump.js.map +0 -1
- package/lib/components/Button/index.js +0 -62
- package/lib/components/Button/index.js.map +0 -1
- package/lib/components/Captcha/index.js +0 -76
- package/lib/components/Captcha/index.js.map +0 -1
- package/lib/components/Cell/index.js +0 -29
- package/lib/components/Cell/index.js.map +0 -1
- package/lib/components/Checkbox/Group/index.js +0 -49
- package/lib/components/Checkbox/Group/index.js.map +0 -1
- package/lib/components/Checkbox/index.js +0 -55
- package/lib/components/Checkbox/index.js.map +0 -1
- package/lib/components/CheckboxButton/index.js +0 -30
- package/lib/components/CheckboxButton/index.js.map +0 -1
- package/lib/components/Collapse/index.js +0 -47
- package/lib/components/Collapse/index.js.map +0 -1
- package/lib/components/Countdown/index.js +0 -69
- package/lib/components/Countdown/index.js.map +0 -1
- package/lib/components/Dialog/Alert/index.js +0 -35
- package/lib/components/Dialog/Alert/index.js.map +0 -1
- package/lib/components/Dialog/Confirm/index.js +0 -41
- package/lib/components/Dialog/Confirm/index.js.map +0 -1
- package/lib/components/Dialog/index.js +0 -8
- package/lib/components/Dialog/index.js.map +0 -1
- package/lib/components/DialogComponent/index.js +0 -36
- package/lib/components/DialogComponent/index.js.map +0 -1
- package/lib/components/DialogRef/index.js +0 -55
- package/lib/components/DialogRef/index.js.map +0 -1
- package/lib/components/Echarts/index.js +0 -276
- package/lib/components/Echarts/index.js.map +0 -1
- package/lib/components/Echarts/types.js +0 -2
- package/lib/components/Echarts/types.js.map +0 -1
- package/lib/components/Echarts/weapp/wx-canvas.js +0 -125
- package/lib/components/Echarts/weapp/wx-canvas.js.map +0 -1
- package/lib/components/Echarts/weapp/wx-touch.js +0 -75
- package/lib/components/Echarts/weapp/wx-touch.js.map +0 -1
- package/lib/components/FormInput/index.js +0 -75
- package/lib/components/FormInput/index.js.map +0 -1
- package/lib/components/IDNumberInput/index.js +0 -37
- package/lib/components/IDNumberInput/index.js.map +0 -1
- package/lib/components/Icon/index.js +0 -24
- package/lib/components/Icon/index.js.map +0 -1
- package/lib/components/Image/index.js +0 -48
- package/lib/components/Image/index.js.map +0 -1
- package/lib/components/LicensePlateInput/Keyboard.js +0 -168
- package/lib/components/LicensePlateInput/Keyboard.js.map +0 -1
- package/lib/components/LicensePlateInput/index.js +0 -94
- package/lib/components/LicensePlateInput/index.js.map +0 -1
- package/lib/components/LinkMan/index.js +0 -348
- package/lib/components/LinkMan/index.js.map +0 -1
- package/lib/components/List/index.js +0 -26
- package/lib/components/List/index.js.map +0 -1
- package/lib/components/Loading/index.js +0 -18
- package/lib/components/Loading/index.js.map +0 -1
- package/lib/components/Mask/index.js +0 -17
- package/lib/components/Mask/index.js.map +0 -1
- package/lib/components/NavBar/index.js +0 -41
- package/lib/components/NavBar/index.js.map +0 -1
- package/lib/components/NumberKeyboard/index.js +0 -63
- package/lib/components/NumberKeyboard/index.js.map +0 -1
- package/lib/components/Page/index.js +0 -30
- package/lib/components/Page/index.js.map +0 -1
- package/lib/components/PasswordInput/index.js +0 -24
- package/lib/components/PasswordInput/index.js.map +0 -1
- package/lib/components/Picker/Picker.js +0 -205
- package/lib/components/Picker/Picker.js.map +0 -1
- package/lib/components/Picker/PickerSlot.js +0 -226
- package/lib/components/Picker/PickerSlot.js.map +0 -1
- package/lib/components/Picker/index.js +0 -33
- package/lib/components/Picker/index.js.map +0 -1
- package/lib/components/Popup/index.js +0 -60
- package/lib/components/Popup/index.js.map +0 -1
- package/lib/components/Progress/index.js +0 -29
- package/lib/components/Progress/index.js.map +0 -1
- package/lib/components/ProgressCircle/index.js +0 -22
- package/lib/components/ProgressCircle/index.js.map +0 -1
- package/lib/components/Radio/Group/index.js +0 -58
- package/lib/components/Radio/Group/index.js.map +0 -1
- package/lib/components/Radio/index.js +0 -56
- package/lib/components/Radio/index.js.map +0 -1
- package/lib/components/Rank/index.js +0 -22
- package/lib/components/Rank/index.js.map +0 -1
- package/lib/components/Result/index.js +0 -38
- package/lib/components/Result/index.js.map +0 -1
- package/lib/components/ScrollView/index.js +0 -34
- package/lib/components/ScrollView/index.js.map +0 -1
- package/lib/components/Space/Item.js +0 -25
- package/lib/components/Space/Item.js.map +0 -1
- package/lib/components/Space/config-provider.js +0 -8
- package/lib/components/Space/config-provider.js.map +0 -1
- package/lib/components/Space/index.js +0 -77
- package/lib/components/Space/index.js.map +0 -1
- package/lib/components/Step/Steps/index.js +0 -33
- package/lib/components/Step/Steps/index.js.map +0 -1
- package/lib/components/Step/index.js +0 -20
- package/lib/components/Step/index.js.map +0 -1
- package/lib/components/Switch/index.js +0 -26
- package/lib/components/Switch/index.js.map +0 -1
- package/lib/components/Tabbar/index.js +0 -7
- package/lib/components/Tabbar/index.js.map +0 -1
- package/lib/components/Tabbar/tabbar/TabItem.js +0 -9
- package/lib/components/Tabbar/tabbar/TabItem.js.map +0 -1
- package/lib/components/Tabbar/tabbar/Tabbar.js +0 -87
- package/lib/components/Tabbar/tabbar/Tabbar.js.map +0 -1
- package/lib/components/ThemeProvider/index.js +0 -32
- package/lib/components/ThemeProvider/index.js.map +0 -1
- package/lib/components/Toast/Toast.js +0 -38
- package/lib/components/Toast/Toast.js.map +0 -1
- package/lib/components/Toast/index.js +0 -56
- package/lib/components/Toast/index.js.map +0 -1
- package/lib/hooks/index.js +0 -17
- package/lib/hooks/index.js.map +0 -1
- package/lib/hooks/useCustomNavbar.js +0 -24
- package/lib/hooks/useCustomNavbar.js.map +0 -1
- package/lib/hooks/useFirstMountState.js +0 -10
- package/lib/hooks/useFirstMountState.js.map +0 -1
- package/lib/hooks/useFlexGapSupport.js +0 -10
- package/lib/hooks/useFlexGapSupport.js.map +0 -1
- package/lib/hooks/useGenerateId.js +0 -12
- package/lib/hooks/useGenerateId.js.map +0 -1
- package/lib/hooks/usePrevious.js +0 -9
- package/lib/hooks/usePrevious.js.map +0 -1
- package/lib/hooks/useRefs.js +0 -13
- package/lib/hooks/useRefs.js.map +0 -1
- package/lib/hooks/useTouch.js +0 -67
- package/lib/hooks/useTouch.js.map +0 -1
- package/lib/hooks/useUnMount.js +0 -5
- package/lib/hooks/useUnMount.js.map +0 -1
- package/lib/hooks/useUpdateEffect.js +0 -12
- package/lib/hooks/useUpdateEffect.js.map +0 -1
- package/lib/index.js +0 -44
- package/lib/index.js.map +0 -1
- package/lib/types/index.js +0 -2
- package/lib/types/index.js.map +0 -1
- package/lib/utils/index.js +0 -320
- package/lib/utils/index.js.map +0 -1
- package/types/components/BankIcon/bank.d.ts +0 -18
- package/types/components/Dialog/Dialog/index.d.ts +0 -19
- package/types/components/Dialog/DialogComponent/index.d.ts +0 -19
- package/types/components/NumberKeyboard/Key/index.d.ts +0 -8
- package/types/components/PickerSlot/index.d.ts +0 -24
- package/types/components/Tabbar/components/TabItem.d.ts +0 -9
- package/types/components/Tabbar/components/Tabbar.d.ts +0 -30
- package/types/components/Theme/index.d.ts +0 -27
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__read as n,__assign as t,__spreadArray as r}from"../../node_modules/tslib/tslib.es6.js";import l,{useMemo as o,useState as a}from"react";import
|
|
1
|
+
import{__rest as e,__read as n,__assign as t,__spreadArray as r}from"../../node_modules/tslib/tslib.es6.js";import l,{useMemo as o,useState as a,useEffect as c}from"react";import d from"classnames";import i from"../index.js";var u=function(u){var s=u.option,f=u.onChange,m=u.defaultChecked,p=u.padding,h=u.border,v=u.style,b=u.checkboxStyle,k=e(u,["option","onChange","defaultChecked","padding","border","style","checkboxStyle"]),g=o((function(){return s.map((function(e){var n="string"==typeof m?[m]:m;return"string"==typeof e?{label:e,value:e,checked:null==n?void 0:n.includes(e)}:((null==n?void 0:n.includes(e.value))&&(e.checked=!0),e)}))}),[s,m]),y=n(a(g),2),x=y[0],C=y[1];c((function(){C(g)}),[m,g]);var j=d("xh-checkbox-group",{padding:p},{border:h});return l.createElement("div",{className:j,style:v},x.map((function(e,o){return l.createElement(i,t({label:e.label,value:e.value,disabled:e.disabled,checked:e.checked,key:o,style:b,onChange:function(e){return function(e,t){var l=r([],n(x),!1);l[t].checked=e,C(l);var o=l.filter((function(e){return e.checked})).map((function(e){return e.value}));null==f||f(o)}(e,o)}},k))})))};export{u as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Checkbox/Group/index.tsx"],"sourcesContent":["import React, { ReactNode, useMemo, useState } from \"react\";\nimport classNames from \"classnames\";\n\nimport CheckBox from \"..\";\n\nexport type CheckBoxItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type CheckBoxItem = Omit<CheckBoxItemType, \"checked\"> | string;\nexport type CheckboxGroupProps = {\n option: CheckBoxItem[];\n onChange?: (value: string[]) => void;\n defaultChecked?: string[] | string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n checkboxStyle?: React.CSSProperties;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n color?: string;\n};\n\nconst CheckboxGroup: React.FC<CheckboxGroupProps> = props => {\n const {\n option,\n onChange,\n defaultChecked,\n padding,\n border,\n style,\n checkboxStyle,\n ...rest\n } = props;\n\n const getOpions = useMemo(() => {\n return option.map((item: CheckBoxItemType | string) => {\n let checkedItem =\n typeof defaultChecked === \"string\" ? [defaultChecked] : defaultChecked;\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: checkedItem?.includes(item),\n };\n } else {\n if (checkedItem?.includes(item.value)) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n const [innerOption, setInnerOption] = useState(getOpions);\n\n const handleChange = (checked, index) => {\n const newoption = [...innerOption];\n newoption[index].checked = checked;\n setInnerOption(newoption);\n const newValue = newoption.filter(k => k.checked).map(item => item.value);\n onChange?.(newValue);\n };\n\n const cls = classNames(\"xh-checkbox-group\", { padding }, { border });\n return (\n <div className={cls} style={style}>\n {innerOption.map((item, index) => {\n return (\n <CheckBox\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n checked={item.checked}\n key={index}\n style={checkboxStyle}\n onChange={checked => handleChange(checked, index)}\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default CheckboxGroup;\n"],"names":["CheckboxGroup","props","option","onChange","defaultChecked","padding","border","style","checkboxStyle","rest","__rest","getOpions","useMemo","map","item","checkedItem","label","value","checked","includes","_a","__read","useState","innerOption","setInnerOption","cls","classNames","React","createElement","className","index","CheckBox","__assign","disabled","key","newoption","__spreadArray","newValue","filter","k","handleChange"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Checkbox/Group/index.tsx"],"sourcesContent":["import React, { ReactNode, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\n\nimport CheckBox from \"..\";\n\nexport type CheckBoxItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type CheckBoxItem = Omit<CheckBoxItemType, \"checked\"> | string;\nexport type CheckboxGroupProps = {\n option: CheckBoxItem[];\n onChange?: (value: string[]) => void;\n defaultChecked?: string[] | string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n checkboxStyle?: React.CSSProperties;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n color?: string;\n};\n\nconst CheckboxGroup: React.FC<CheckboxGroupProps> = props => {\n const {\n option,\n onChange,\n defaultChecked,\n padding,\n border,\n style,\n checkboxStyle,\n ...rest\n } = props;\n\n const getOpions = useMemo(() => {\n return option.map((item: CheckBoxItemType | string) => {\n let checkedItem =\n typeof defaultChecked === \"string\" ? [defaultChecked] : defaultChecked;\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: checkedItem?.includes(item),\n };\n } else {\n if (checkedItem?.includes(item.value)) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n const [innerOption, setInnerOption] = useState(getOpions);\n\n useEffect(() => {\n setInnerOption(getOpions);\n }, [defaultChecked, getOpions]);\n\n const handleChange = (checked, index) => {\n const newoption = [...innerOption];\n newoption[index].checked = checked;\n setInnerOption(newoption);\n const newValue = newoption.filter(k => k.checked).map(item => item.value);\n onChange?.(newValue);\n };\n\n const cls = classNames(\"xh-checkbox-group\", { padding }, { border });\n return (\n <div className={cls} style={style}>\n {innerOption.map((item, index) => {\n return (\n <CheckBox\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n checked={item.checked}\n key={index}\n style={checkboxStyle}\n onChange={checked => handleChange(checked, index)}\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default CheckboxGroup;\n"],"names":["CheckboxGroup","props","option","onChange","defaultChecked","padding","border","style","checkboxStyle","rest","__rest","getOpions","useMemo","map","item","checkedItem","label","value","checked","includes","_a","__read","useState","innerOption","setInnerOption","useEffect","cls","classNames","React","createElement","className","index","CheckBox","__assign","disabled","key","newoption","__spreadArray","newValue","filter","k","handleChange"],"mappings":"iOA0BM,IAAAA,EAA8C,SAAAC,GAEhD,IAAAC,EAQED,SAPFE,EAOEF,EAAKE,SANPC,EAMEH,EAAKG,eALPC,EAKEJ,EALKI,QACPC,EAIEL,EAJIK,OACNC,EAGEN,QAFFO,EAEEP,EAAKO,cADJC,EAAIC,EACLT,EATE,CAAA,SAAA,WAAA,iBAAA,UAAA,SAAA,QAAA,kBAWAU,EAAYC,GAAQ,WACxB,OAAOV,EAAOW,KAAI,SAACC,GACjB,IAAIC,EACwB,iBAAnBX,EAA8B,CAACA,GAAkBA,EAC1D,MAAoB,iBAATU,EACF,CACLE,MAAOF,EACPG,MAAOH,EACPI,QAASH,aAAW,EAAXA,EAAaI,SAASL,MAG7BC,aAAW,EAAXA,EAAaI,SAASL,EAAKG,UAC7BH,EAAKI,SAAU,GAEVJ,EAEX,GACF,GAAG,CAACZ,EAAQE,IAENgB,EAAAC,EAAgCC,EAASX,GAAU,GAAlDY,EAAWH,EAAA,GAAEI,OAEpBC,GAAU,WACRD,EAAeb,EACjB,GAAG,CAACP,EAAgBO,IAEpB,IAQMe,EAAMC,EAAW,oBAAqB,CAAEtB,QAAOA,GAAI,CAAEC,OAAMA,IACjE,OACEsB,EAAKC,cAAA,MAAA,CAAAC,UAAWJ,EAAKnB,MAAOA,GACzBgB,EAAYV,KAAI,SAACC,EAAMiB,GACtB,OACEH,EAACC,cAAAG,EACCC,EAAA,CAAAjB,MAAOF,EAAKE,MACZC,MAAOH,EAAKG,MACZiB,SAAUpB,EAAKoB,SACfhB,QAASJ,EAAKI,QACdiB,IAAKJ,EACLxB,MAAOC,EACPL,SAAU,SAAAe,GAAW,OApBV,SAACA,EAASa,GAC7B,IAAMK,EAASC,EAAA,GAAAhB,EAAOE,IAAW,GACjCa,EAAUL,GAAOb,QAAUA,EAC3BM,EAAeY,GACf,IAAME,EAAWF,EAAUG,QAAO,SAAAC,GAAK,OAAAA,EAAEtB,OAAO,IAAEL,KAAI,SAAAC,GAAQ,OAAAA,EAAKG,KAAL,IAC9Dd,SAAAA,EAAWmC,EACb,CAc+BG,CAAavB,EAASa,EAAtB,GACjBtB,GAGT,IAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import t from"classnames";import{View as a,CheckboxGroup as c
|
|
1
|
+
import e from"react";import t from"classnames";import{View as a,CheckboxGroup as c}from"@tarojs/components";import l from"../src/hooks/useGenerateId.js";import{pxTransform as s}from"../src/utils/index.js";import r from"./Group/index.js";var o=function(r){var o=r.className,n=r.name,h=r.label,i=r.id,m=r.circle,p=r.onChange,d=r.align,u=r.direction,x=r.justify,b=r.checked,k=r.disabled,v=r.value,E=r.style,N=r.size,f=void 0===N?0:N,g=r.color,y=void 0===g?"var(--color-primary)":g,j=l(i,"xh-checkbox-id"),A=function(e){var t=b||!1,a="";"h5"===process.env.TARO_ENV?(t=e.target.checked,a=e.target.value):(t=e.detail.value.length>0,a=e.detail.value[0]),p&&p(t,a)},C=t("xh-checkbox",o,d,u,x,{h5:"h5"===process.env.TARO_ENV});return"h5"!==process.env.TARO_ENV?e.createElement(a,{className:C,style:E},e.createElement(c,{onChange:A},e.createElement("label",{htmlFor:j},e.createElement("input",{type:"checkbox",id:j,name:n,className:t("xh-checkbox-input",{tt:"tt"===process.env.TARO_ENV}),disabled:k,value:v,checked:b,color:y}),e.createElement("span",{className:t("xh-checkbox-input-fake",m&&"circle",{tt:"tt"===process.env.TARO_ENV}),style:f>0?{width:s(f),height:s(f)}:{}}))),e.createElement("span",{className:"xh-checkbox-label"},h)):e.createElement("label",{htmlFor:j,className:C,style:E},e.createElement("input",{type:"checkbox",id:j,name:n,className:"xh-checkbox-input",onChange:A,value:v,defaultChecked:b}),e.createElement("span",{style:f>0?{width:s(f),height:s(f)}:{},className:t("xh-checkbox-input-fake",m&&"circle")}),e.createElement("span",{className:"xh-checkbox-label"},h))};o.Group=r;export{o as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { CheckboxGroup,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { CheckboxGroup, View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\nimport Group from \"./Group\";\nimport \"./index.scss\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHCheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHCheckboxProps = {\n onChange?: (check: boolean, value: string) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n} & XHComponentCommonProps;\n\nconst XHCheckbox: FC<XHCheckboxProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle,\n onChange,\n align,\n direction,\n justify,\n checked,\n disabled,\n value,\n style,\n size = 0,\n color = \"var(--color-primary)\",\n } = props;\n\n const finalId = useGenerateId(id, \"xh-checkbox-id\");\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value.length > 0;\n value = e.detail.value[0];\n }\n onChange && onChange(finalchecked, value);\n };\n\n const cls = classNames(\"xh-checkbox\", className, align, direction, justify, {\n h5: process.env.TARO_ENV === \"h5\",\n });\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={cls} style={style}>\n <CheckboxGroup onChange={handleOnchange}>\n <label htmlFor={finalId}>\n <input\n type=\"checkbox\"\n id={finalId}\n name={name}\n className={classNames(\"xh-checkbox-input\", {\n tt: process.env.TARO_ENV === \"tt\",\n })}\n disabled={disabled}\n value={value}\n checked={checked}\n color={color}\n />\n <span\n className={classNames(\n \"xh-checkbox-input-fake\",\n circle && \"circle\",\n { tt: process.env.TARO_ENV === \"tt\" }\n )}\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n ></span>\n </label>\n </CheckboxGroup>\n <span className=\"xh-checkbox-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"checkbox\"\n id={finalId}\n name={name}\n className=\"xh-checkbox-input\"\n onChange={handleOnchange}\n value={value}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n ></span>\n <span className=\"xh-checkbox-label\">{label}</span>\n </label>\n );\n};\n\nconst CheckBox = XHCheckbox as CompoundedComponent;\nCheckBox.Group = Group;\n\nexport default CheckBox;\n"],"names":["CheckBox","props","className","name","label","id","circle","onChange","align","direction","justify","checked","disabled","value","style","_a","size","_b","color","finalId","useGenerateId","handleOnchange","e","finalchecked","process","env","TARO_ENV","target","detail","length","cls","classNames","h5","React","createElement","View","CheckboxGroup","htmlFor","type","tt","width","pxTransform","height","defaultChecked","Group"],"mappings":"6OAoCA,IAuGMA,EAvGkC,SAAAC,GAEpC,IAAAC,EAeED,EAfOC,UACTC,EAcEF,EAdEE,KACJC,EAaEH,QAZFI,EAYEJ,EAAKI,GAXPC,EAWEL,EAAKK,OAVPC,EAUEN,EAVMM,SACRC,EASEP,EATGO,MACLC,EAQER,YAPFS,EAOET,UANFU,EAMEV,UALFW,EAKEX,WAJFY,EAIEZ,EAAKY,MAHPC,EAGEb,EAAKa,MAFPC,EAEEd,OAFFe,aAAO,EAACD,EACRE,EACEhB,EAD4BiB,MAA9BA,OAAQ,IAAAD,EAAA,yBAGJE,EAAUC,EAAcf,EAAI,kBAE5BgB,EAAiB,SAAAC,GACrB,IAAIC,EAAeZ,IAAW,EAC1BE,EAAQ,GACiB,OAAzBW,QAAQC,IAAIC,UACdH,EAAeD,EAAEK,OAAOhB,QACxBE,EAAQS,EAAEK,OAAOd,QAEjBU,EAAeD,EAAEM,OAAOf,MAAMgB,OAAS,EACvChB,EAAQS,EAAEM,OAAOf,MAAM,IAEzBN,GAAYA,EAASgB,EAAcV,EACrC,EAEMiB,EAAMC,EAAW,cAAe7B,EAAWM,EAAOC,EAAWC,EAAS,CAC1EsB,GAA6B,OAAzBR,QAAQC,IAAIC,WAElB,MAA6B,OAAzBF,QAAQC,IAAIC,SAEZO,EAACC,cAAAC,EAAK,CAAAjC,UAAW4B,EAAKhB,MAAOA,GAC3BmB,EAAAC,cAACE,EAAa,CAAC7B,SAAUc,GACvBY,EAAOC,cAAA,QAAA,CAAAG,QAASlB,GACdc,EAAAC,cAAA,QAAA,CACEI,KAAK,WACLjC,GAAIc,EACJhB,KAAMA,EACND,UAAW6B,EAAW,oBAAqB,CACzCQ,GAA6B,OAAzBf,QAAQC,IAAIC,WAElBd,SAAUA,EACVC,MAAOA,EACPF,QAASA,EACTO,MAAOA,IAETe,EACEC,cAAA,OAAA,CAAAhC,UAAW6B,EACT,yBACAzB,GAAU,SACV,CAAEiC,GAA6B,OAAzBf,QAAQC,IAAIC,WAEpBZ,MACEE,EAAO,EACH,CACEwB,MAAOC,EAAYzB,GACnB0B,OAAQD,EAAYzB,IAEtB,CAAE,MAKdiB,EAAMC,cAAA,OAAA,CAAAhC,UAAU,qBAAqBE,IAMzC6B,EAAAC,cAAA,QAAA,CAAOG,QAASlB,EAASjB,UAAW4B,EAAKhB,MAAOA,GAC9CmB,EACEC,cAAA,QAAA,CAAAI,KAAK,WACLjC,GAAIc,EACJhB,KAAMA,EACND,UAAU,oBACVK,SAAUc,EACVR,MAAOA,EACP8B,eAAgBhC,IAElBsB,EAAAC,cAAA,OAAA,CACEpB,MACEE,EAAO,EACH,CACEwB,MAAOC,EAAYzB,GACnB0B,OAAQD,EAAYzB,IAEtB,CAAE,EAERd,UAAW6B,EAAW,yBAA0BzB,GAAU,YAE5D2B,EAAMC,cAAA,OAAA,CAAAhC,UAAU,qBAAqBE,GAG3C,EAGAJ,EAAS4C,MAAQA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as o,__assign as s}from"../node_modules/tslib/tslib.es6.js";import e from"react";import r from"classnames";import{pxTransform as t}from"../src/utils/index.js";var i=function(i){var c=i.icon,a=void 0===c?"":c,l=i.size,m=void 0===l?0:l,n=i.className,f=i.color,d=i.style,p=o(i,["icon","size","className","color","style"]),u=a&&"xh-icon-".concat(a),v=r("xh-icon",u,n),x=s(s({},d),{fontSize:t(m),color:f});return e.createElement("span",s({className:v},{style:x},p))};export{i as default};
|
|
1
|
+
import{__rest as o,__assign as s}from"../node_modules/tslib/tslib.es6.js";import e from"react";import r from"classnames";import{pxTransform as t}from"../src/utils/index.js";var i=function(i){var c=i.icon,a=void 0===c?"":c,l=i.size,m=void 0===l?0:l,n=i.className,f=i.color,d=i.style,p=o(i,["icon","size","className","color","style"]),u=a&&"xh-icon-".concat(a),v=r("xh-icon",u,n),x=s(s(s({},d),m>0?{fontSize:t(m)}:{}),{color:f});return e.createElement("span",s({className:v},{style:x},p))};export{i as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Icon/index.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHIcon =\n | \"prompt\"\n | \"score\"\n | \"info\"\n | \"failure\"\n | \"success\"\n | \"loading\"\n | \"back\"\n | \"notice\"\n | \"scan\"\n | \"light\"\n | \"faceScan\"\n | \"delete\"\n | \"radioFull\"\n | \"checkboxFull\"\n | \"checkedSquare\"\n | \"checked2\"\n | \"arrowTop\"\n | \"notice2\"\n | \"position\"\n | \"contacts\"\n | \"billFull\"\n | \"bill2\"\n | \"bill3\"\n | \"bill4\"\n | \"edit\"\n | \"editFull\"\n | \"camera\"\n | \"close\"\n | \"gift\"\n | \"message\"\n | \"user\"\n | \"wenhao\"\n | \"kefu\"\n | \"play\"\n | \"arrowLeft\"\n | \"arrowRight\"\n | \"keyboardClose\"\n | \"add\"\n | \"tongxunlu\"\n | \"zhuyi\"\n | \"duigou\"\n | \"edit2\"\n | \"alipay\"\n | \"wechat\"\n | \"friendPay\"\n | \"pen\"\n | \"location\"\n | \"search\"\n | \"qa\"\n | \"thumbsUp\"\n | \"thumbsDown\"\n | \"thumbsUpFull\"\n | \"thumbsDownFull\"\n | \"waiting\"\n | \"scan2\"\n | \"safety\"\n | (string & {});\n\nexport type XHIconProps = {\n icon: XHIcon;\n size?: number;\n color?: StandardLonghandProperties[\"color\"];\n style?: React.CSSProperties;\n onClick?: () => void;\n} & XHComponentCommonProps;\n\nconst Icon: React.FC<XHIconProps> = props => {\n const { icon = \"\", size = 0, className, color, style, ...rest } = props;\n\n const fixIcon = icon && `xh-icon-${icon}`;\n const iconCls = classNames(\"xh-icon\", fixIcon, className);\n\n const finalStyle: React.CSSProperties = {\n ...style,\n fontSize: pxTransform(size),\n color,\n };\n\n return <span className={iconCls} {...{ style: finalStyle }} {...rest} />;\n};\n\nexport default Icon;\n"],"names":["Icon","props","_a","icon","_b","size","className","color","style","rest","__rest","fixIcon","concat","iconCls","classNames","finalStyle","__assign","fontSize","pxTransform","React","createElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Icon/index.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHIcon =\n | \"prompt\"\n | \"score\"\n | \"info\"\n | \"failure\"\n | \"success\"\n | \"loading\"\n | \"back\"\n | \"notice\"\n | \"scan\"\n | \"light\"\n | \"faceScan\"\n | \"delete\"\n | \"radioFull\"\n | \"checkboxFull\"\n | \"checkedSquare\"\n | \"checked2\"\n | \"arrowTop\"\n | \"notice2\"\n | \"position\"\n | \"contacts\"\n | \"billFull\"\n | \"bill2\"\n | \"bill3\"\n | \"bill4\"\n | \"edit\"\n | \"editFull\"\n | \"camera\"\n | \"close\"\n | \"gift\"\n | \"message\"\n | \"user\"\n | \"wenhao\"\n | \"kefu\"\n | \"play\"\n | \"arrowLeft\"\n | \"arrowRight\"\n | \"keyboardClose\"\n | \"add\"\n | \"tongxunlu\"\n | \"zhuyi\"\n | \"duigou\"\n | \"edit2\"\n | \"alipay\"\n | \"wechat\"\n | \"friendPay\"\n | \"pen\"\n | \"location\"\n | \"search\"\n | \"qa\"\n | \"thumbsUp\"\n | \"thumbsDown\"\n | \"thumbsUpFull\"\n | \"thumbsDownFull\"\n | \"waiting\"\n | \"scan2\"\n | \"safety\"\n | \"report\"\n | (string & {});\n\nexport type XHIconProps = {\n icon: XHIcon;\n size?: number;\n color?: StandardLonghandProperties[\"color\"];\n style?: React.CSSProperties;\n onClick?: () => void;\n} & XHComponentCommonProps;\n\nconst Icon: React.FC<XHIconProps> = props => {\n const { icon = \"\", size = 0, className, color, style, ...rest } = props;\n\n const fixIcon = icon && `xh-icon-${icon}`;\n const iconCls = classNames(\"xh-icon\", fixIcon, className);\n\n const finalStyle: React.CSSProperties = {\n ...style,\n ...(size > 0 ? { fontSize: pxTransform(size) } : {}),\n color,\n };\n\n return <span className={iconCls} {...{ style: finalStyle }} {...rest} />;\n};\n\nexport default Icon;\n"],"names":["Icon","props","_a","icon","_b","size","className","color","style","rest","__rest","fixIcon","concat","iconCls","classNames","finalStyle","__assign","fontSize","pxTransform","React","createElement"],"mappings":"6KA4EM,IAAAA,EAA8B,SAAAC,GAC1B,IAAAC,EAA0DD,EAAKE,KAA/DA,aAAO,GAAED,EAAEE,EAA+CH,EAAvCI,KAARA,OAAO,IAAAD,EAAA,IAAGE,EAAqCL,YAA1BM,EAA0BN,EAAKM,MAAxBC,EAAmBP,EAAKO,MAAdC,EAAIC,EAAKT,EAA5D,CAAA,OAAA,OAAA,YAAA,QAAA,UAEAU,EAAUR,GAAQ,WAAWS,OAAAT,GAC7BU,EAAUC,EAAW,UAAWH,EAASL,GAEzCS,EAAUC,EAAAA,EAAAA,EAAA,CAAA,EACXR,GACCH,EAAO,EAAI,CAAEY,SAAUC,EAAYb,IAAU,CAAA,GACjD,CAAAE,MAAKA,IAGP,OAAOY,EAAMC,cAAA,OAAAJ,EAAA,CAAAV,UAAWO,GAAa,CAAEL,MAAOO,GAAkBN,GAClE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__spreadArray as t,__read as n}from"../node_modules/tslib/tslib.es6.js";import e,{useMemo as r,useRef as o,useState as i,useEffect as c}from"react";import{View as a}from"@tarojs/components";import u from"classnames";import{pxTransform as l}from"@tarojs/taro";import m from"../Icon/index.js";var s=function(s){var f=s.content,v=s.internal,d=void 0===v?3e3:v,h=s.duration,p=void 0===h?500:h,g=s.icon,x=void 0!==g&&g,T=s.itemHeight,j=void 0===T?72:T,E=s.className,I=r((function(){return f.length>0?t(t([],n(f),!1),[f[0]],!1):[]}),[f]),N=o(null),b=o(null),y=n(i(0),2),F=y[0],k=y[1],q=n(i(p),2),z=q[0],D=q[1];c((function(){if(!(I.length<=1))return N.current&&clearInterval(N.current),N.current=setInterval((function(){k((function(t){return t+1}))}),d),function(){N.current&&clearInterval(N.current),b.current&&clearTimeout(b.current)}}),[I.length,d]),c((function(){if(!(I.length<=1))return F===I.length-1&&0!==z?b.current=setTimeout((function(){D(0),k(0)}),p):0===F&&0===z&&(b.current=setTimeout((function(){D(p)}),50)),function(){b.current&&clearTimeout(b.current)}}),[F,I.length,p,z]);var H=u("xh-notice",E);return e.createElement(a,{className:H},"boolean"==typeof x&&x?e.createElement(m,{icon:"notice",color:"#7384F6",size:32}):x,e.createElement("div",{className:"xh-notice-main",style:{transform:"translateY(".concat(l(-F*j),")"),transitionDuration:"".concat(z,"ms"),transitionTimingFunction:"ease-in-out"}},I.map((function(t,n){return e.createElement(a,{className:"xh-notice-main-marquee",key:n},t)}))))};export{s as default};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Notice/index.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState, useMemo } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@tarojs/taro\";\nimport { Property } from \"csstype\";\nimport Icon from \"../Icon\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type RemindProps = {\n content: string[] | ReactNode[];\n internal?: number; // 轮播间隔,毫秒\n duration?: number; // 动画时长,毫秒\n icon?: ReactNode | boolean; // 支持传入 ReactNode 或布尔值控制默认图标\n itemHeight?: number; // 单个轮播项的高度,px,默认为 72\n bgColor?: Property.BackgroundColor;\n} & XHComponentCommonProps;\n\nconst Notice: React.FC<RemindProps> = props => {\n const {\n content: originalContent,\n internal = 3000,\n duration = 500,\n icon = false,\n itemHeight = 72, // 使用默认值 72\n className,\n } = props;\n\n // 使用 useMemo 缓存扩展内容数组,用于无缝轮播\n const content = useMemo(() => {\n return originalContent.length > 0\n ? [...originalContent, originalContent[0]]\n : [];\n }, [originalContent]);\n\n const internalRef = useRef<any>(null);\n const timeoutRef = useRef<any>(null);\n const [currentIndex, setCurrentIndex] = useState(0);\n const [transitionDuration, setTransitionDuration] = useState(duration);\n\n useEffect(() => {\n if (content.length <= 1) return; // 内容少于等于一项无需轮播\n\n if (internalRef.current) clearInterval(internalRef.current);\n\n internalRef.current = setInterval(() => {\n setCurrentIndex(prevIndex => {\n const nextIndex = prevIndex + 1;\n // 正常轮播到下一项,如果下一项是副本,会在下面的 useEffect 中处理瞬移\n return nextIndex;\n });\n }, internal);\n\n return () => {\n internalRef.current && clearInterval(internalRef.current);\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, [content.length, internal]); // 依赖 content.length 和 internal\n\n // 处理到达副本项后的瞬移\n useEffect(() => {\n if (content.length <= 1) return; // 内容少于等于一项无需轮播\n\n if (currentIndex === content.length - 1 && transitionDuration !== 0) {\n // 当准备轮播到最后一个(副本前一个)时,设置一个延时,在动画即将完成时瞬间跳跃\n timeoutRef.current = setTimeout(() => {\n setTransitionDuration(0); // 关闭动画\n setCurrentIndex(0); // 瞬移到第一个\n }, duration); // 延时等于动画时长,等待动画完成再跳\n } else if (currentIndex === 0 && transitionDuration === 0) {\n // 当已经瞬移回第一个后,在一个极短的延迟后恢复动画时长\n timeoutRef.current = setTimeout(() => {\n setTransitionDuration(duration); // 恢复动画\n }, 50); // 极短延迟,确保样式已应用\n }\n\n return () => {\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, [currentIndex, content.length, duration, transitionDuration]);\n\n const cls = classNames(\"xh-notice\", className);\n\n return (\n <View className={cls}>\n {typeof icon === \"boolean\" && icon ? (\n <Icon icon=\"notice\" color=\"#7384F6\" size={32} />\n ) : (\n icon\n )}\n <div\n className=\"xh-notice-main\"\n style={{\n transform: `translateY(${pxTransform(-currentIndex * itemHeight)})`, // 使用 itemHeight\n transitionDuration: `${transitionDuration}ms`,\n transitionTimingFunction: \"ease-in-out\", // 可以根据需要调整缓动函数\n }}\n >\n {content.map((item, index) => (\n // key 使用 index 在这里是安全的,因为我们只是通过 index 来计算 transform\n // 即使内容相同,每个 View 元素在逻辑上是不同的轮播项(包括副本)\n <View className=\"xh-notice-main-marquee\" key={index}>\n {item}\n </View>\n ))}\n </div>\n </View>\n );\n};\n\nexport default Notice;\n"],"names":["Notice","props","originalContent","_a","internal","_b","duration","_c","icon","_d","itemHeight","className","content","useMemo","length","__spreadArray","__read","internalRef","useRef","timeoutRef","_e","useState","currentIndex","setCurrentIndex","_f","transitionDuration","setTransitionDuration","useEffect","current","clearInterval","setInterval","prevIndex","clearTimeout","setTimeout","cls","classNames","React","createElement","View","Icon","color","size","style","transform","pxTransform","concat","transitionTimingFunction","map","item","index","key"],"mappings":"0SAmBM,IAAAA,EAAgC,SAAAC,GAElC,IAASC,EAMPD,UALFE,EAKEF,EALaG,SAAfA,OAAQ,IAAAD,EAAG,IAAIA,EACfE,EAIEJ,EAAKK,SAJPA,OAAQ,IAAAD,EAAG,IAAGA,EACdE,EAGEN,OAHFO,cAAYD,EACZE,EAEER,aAFFS,aAAa,GAAED,EACfE,EACEV,EAAKU,UAGHC,EAAUC,GAAQ,WACtB,OAAOX,EAAgBY,OAAS,EAC7BC,EAAAA,EAAA,GAAAC,EAAKd,IAAe,GAAA,CAAEA,EAAgB,KACvC,GAAE,EACN,GAAG,CAACA,IAEEe,EAAcC,EAAY,MAC1BC,EAAaD,EAAY,MACzBE,EAAAJ,EAAkCK,EAAS,GAAE,GAA5CC,EAAYF,EAAA,GAAEG,OACfC,EAAAR,EAA8CK,EAASf,GAAS,GAA/DmB,EAAkBD,EAAA,GAAEE,OAE3BC,GAAU,WACR,KAAIf,EAAQE,QAAU,GAYtB,OAVIG,EAAYW,SAASC,cAAcZ,EAAYW,SAEnDX,EAAYW,QAAUE,aAAY,WAChCP,GAAgB,SAAAQ,GAGd,OAFkBA,EAAY,CAGhC,GACD,GAAE3B,GAEI,WACLa,EAAYW,SAAWC,cAAcZ,EAAYW,SACjDT,EAAWS,SAAWI,aAAab,EAAWS,QAChD,CACD,GAAE,CAAChB,EAAQE,OAAQV,IAGpBuB,GAAU,WACR,KAAIf,EAAQE,QAAU,GAetB,OAbIQ,IAAiBV,EAAQE,OAAS,GAA4B,IAAvBW,EAEzCN,EAAWS,QAAUK,YAAW,WAC9BP,EAAsB,GACtBH,EAAgB,EACjB,GAAEjB,GACuB,IAAjBgB,GAA6C,IAAvBG,IAE/BN,EAAWS,QAAUK,YAAW,WAC9BP,EAAsBpB,EACvB,GAAE,KAGE,WACLa,EAAWS,SAAWI,aAAab,EAAWS,QAChD,CACF,GAAG,CAACN,EAAcV,EAAQE,OAAQR,EAAUmB,IAE5C,IAAMS,EAAMC,EAAW,YAAaxB,GAEpC,OACEyB,EAACC,cAAAC,EAAK,CAAA3B,UAAWuB,GACE,kBAAT1B,GAAsBA,EAC5B4B,EAAAC,cAACE,EAAI,CAAC/B,KAAK,SAASgC,MAAM,UAAUC,KAAM,KAAM,EAIlDL,EAAAC,cAAA,MAAA,CACE1B,UAAU,iBACV+B,MAAO,CACLC,UAAW,qBAAcC,GAAatB,EAAeZ,GAAc,KACnEe,mBAAoB,GAAGoB,OAAApB,EAAsB,MAC7CqB,yBAA0B,gBAG3BlC,EAAQmC,KAAI,SAACC,EAAMC,GAAU,OAG5Bb,EAAAC,cAACC,EAAK,CAAA3B,UAAU,yBAAyBuC,IAAKD,GAC3CD,EAEJ,KAIT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__read as n,__assign as a,__spreadArray as l}from"../../node_modules/tslib/tslib.es6.js";import r,{useMemo as t,useState as d}from"react";import
|
|
1
|
+
import{__rest as e,__read as n,__assign as a,__spreadArray as l}from"../../node_modules/tslib/tslib.es6.js";import r,{useMemo as t,useState as o,useEffect as d}from"react";import i from"classnames";import c from"../index.js";var s=function(s){var u=s.option,m=s.onChange,h=s.name,f=s.padding,p=s.border,v=s.radioStyle,k=s.defaultChecked,b=s.inline,g=s.style,y=s.checkedClass,C=void 0===y?"":y,x=e(s,["option","onChange","name","padding","border","radioStyle","defaultChecked","inline","style","checkedClass"]),j=t((function(){return null==u?void 0:u.map((function(e){return"string"==typeof e?{label:e,value:e,checked:k===e}:(k===e.value&&(e.checked=!0),e)}))}),[u,k]),E=n(o(j),2),N=E[0],S=E[1];d((function(){S(j)}),[j]);var _=i("xh-radio-group",{padding:f},{border:p},{inline:b});return r.createElement("div",{className:_,style:g},N.map((function(e,t){var o;return r.createElement(c,a({label:e.label,value:e.value,disabled:e.disabled,name:h,key:t,className:i("xh-radio-group-list",(o={},o[C]=e.checked,o)),circle:!0,onChange:function(){return function(e){for(var a=l([],n(N),!1),r="",t=0;t<a.length;t++)t===e?(a[t].checked=!0,r=a[t].value):a[t].checked=!1;S(a),null==m||m(r)}(t)},checked:e.checked,style:v},x))})))};export{s as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Radio/Group/index.tsx"],"sourcesContent":["import React, { useMemo, useState, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport Radio from \"..\";\n\nexport type RadioItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type RadioItem = RadioItemType | string;\nexport type RadioGroupProps = {\n option: RadioItem[];\n onChange?: (value: string | number) => void;\n name: string;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n id?: string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n radioStyle?: React.CSSProperties;\n defaultChecked?: string | number;\n color?: string;\n inline?: boolean;\n fancy?: boolean;\n checkedClass?: string;\n};\n\nconst RadioGroup: React.FC<RadioGroupProps> = props => {\n const {\n option,\n onChange,\n name,\n padding,\n border,\n radioStyle,\n defaultChecked,\n inline,\n style,\n checkedClass = \"\",\n ...rest\n } = props;\n\n let getOpions = useMemo(() => {\n return option?.map(item => {\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: defaultChecked === item,\n };\n } else {\n if (defaultChecked === item.value) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n const [innerOptions, setInnerOptions] = useState(getOpions);\n\n const handleChange = idx => {\n let newoption = [...innerOptions];\n let newValue = \"\";\n for (let index = 0; index < newoption.length; index++) {\n if (index === idx) {\n newoption[index].checked = true;\n newValue = newoption[index].value;\n } else {\n newoption[index].checked = false;\n }\n }\n setInnerOptions(newoption);\n onChange?.(newValue);\n };\n\n const cls = classNames(\"xh-radio-group\", { padding }, { border }, { inline });\n\n return (\n <div className={cls} style={style}>\n {innerOptions.map((item, index) => {\n return (\n <Radio\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n name={name}\n key={index}\n className={classNames(\"xh-radio-group-list\", {\n [checkedClass]: item.checked,\n })}\n circle\n onChange={() => handleChange(index)}\n checked={item.checked}\n style={radioStyle}\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default RadioGroup;\n"],"names":["RadioGroup","props","option","onChange","name","padding","border","radioStyle","defaultChecked","inline","style","_a","checkedClass","rest","__rest","getOpions","useMemo","map","item","label","value","checked","_b","__read","useState","innerOptions","setInnerOptions","cls","classNames","React","createElement","className","index","Radio","__assign","disabled","key","circle","idx","newoption","__spreadArray","newValue","length","handleChange"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Radio/Group/index.tsx"],"sourcesContent":["import React, { useMemo, useState, ReactNode, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport Radio from \"..\";\n\nexport type RadioItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type RadioItem = RadioItemType | string;\nexport type RadioGroupProps = {\n option: RadioItem[];\n onChange?: (value: string | number) => void;\n name: string;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n id?: string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n radioStyle?: React.CSSProperties;\n defaultChecked?: string | number;\n color?: string;\n inline?: boolean;\n fancy?: boolean;\n checkedClass?: string;\n};\n\nconst RadioGroup: React.FC<RadioGroupProps> = props => {\n const {\n option,\n onChange,\n name,\n padding,\n border,\n radioStyle,\n defaultChecked,\n inline,\n style,\n checkedClass = \"\",\n ...rest\n } = props;\n\n let getOpions = useMemo(() => {\n return option?.map(item => {\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: defaultChecked === item,\n };\n } else {\n if (defaultChecked === item.value) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n const [innerOptions, setInnerOptions] = useState(getOpions);\n\n useEffect(() => {\n setInnerOptions(getOpions);\n }, [getOpions]);\n\n const handleChange = idx => {\n let newoption = [...innerOptions];\n let newValue = \"\";\n for (let index = 0; index < newoption.length; index++) {\n if (index === idx) {\n newoption[index].checked = true;\n newValue = newoption[index].value;\n } else {\n newoption[index].checked = false;\n }\n }\n setInnerOptions(newoption);\n onChange?.(newValue);\n };\n\n const cls = classNames(\"xh-radio-group\", { padding }, { border }, { inline });\n\n return (\n <div className={cls} style={style}>\n {innerOptions.map((item, index) => {\n return (\n <Radio\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n name={name}\n key={index}\n className={classNames(\"xh-radio-group-list\", {\n [checkedClass]: item.checked,\n })}\n circle\n onChange={() => handleChange(index)}\n checked={item.checked}\n style={radioStyle}\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default RadioGroup;\n"],"names":["RadioGroup","props","option","onChange","name","padding","border","radioStyle","defaultChecked","inline","style","_a","checkedClass","rest","__rest","getOpions","useMemo","map","item","label","value","checked","_b","__read","useState","innerOptions","setInnerOptions","useEffect","cls","classNames","React","createElement","className","index","Radio","__assign","disabled","key","circle","idx","newoption","__spreadArray","newValue","length","handleChange"],"mappings":"iOA+BM,IAAAA,EAAwC,SAAAC,GAE1C,IAAAC,EAWED,EAAKC,OAVPC,EAUEF,EAVME,SACRC,EASEH,EAAKG,KARPC,EAQEJ,EARKI,QACPC,EAOEL,EAAKK,OANPC,EAMEN,EANQM,WACVC,EAKEP,EAAKO,eAJPC,EAIER,EAJIQ,OACNC,EAGET,EAAKS,MAFPC,EAEEV,EAAKW,aAFPA,OAAe,IAAAD,EAAA,GAAEA,EACdE,EAAIC,EACLb,EAZE,CAYL,SAAA,WAAA,OAAA,UAAA,SAAA,aAAA,iBAAA,SAAA,QAAA,iBAEGc,EAAYC,GAAQ,WACtB,OAAOd,aAAM,EAANA,EAAQe,KAAI,SAAAC,GACjB,MAAoB,iBAATA,EACF,CACLC,MAAOD,EACPE,MAAOF,EACPG,QAASb,IAAmBU,IAG1BV,IAAmBU,EAAKE,QAC1BF,EAAKG,SAAU,GAEVH,EAEX,GACF,GAAG,CAAChB,EAAQM,IAENc,EAAAC,EAAkCC,EAAST,GAAU,GAApDU,EAAYH,EAAA,GAAEI,OAErBC,GAAU,WACRD,EAAgBX,EAClB,GAAG,CAACA,IAEJ,IAeMa,EAAMC,EAAW,iBAAkB,CAAExB,QAAOA,GAAI,CAAEC,UAAU,CAAEG,OAAMA,IAE1E,OACEqB,EAAKC,cAAA,MAAA,CAAAC,UAAWJ,EAAKlB,MAAOA,GACzBe,EAAaR,KAAI,SAACC,EAAMe,SACvB,OACEH,EAAAC,cAACG,EAAKC,EAAA,CACJhB,MAAOD,EAAKC,MACZC,MAAOF,EAAKE,MACZgB,SAAUlB,EAAKkB,SACfhC,KAAMA,EACNiC,IAAKJ,EACLD,UAAWH,EAAW,uBAAqBlB,EAAA,CAAA,EACzCA,EAACC,GAAeM,EAAKG,YAEvBiB,QACA,EAAAnC,SAAU,WAAM,OA/BL,SAAAoC,GAGnB,IAFA,IAAIC,EAASC,EAAA,GAAAlB,EAAOE,IAAY,GAC5BiB,EAAW,GACNT,EAAQ,EAAGA,EAAQO,EAAUG,OAAQV,IACxCA,IAAUM,GACZC,EAAUP,GAAOZ,SAAU,EAC3BqB,EAAWF,EAAUP,GAAOb,OAE5BoB,EAAUP,GAAOZ,SAAU,EAG/BK,EAAgBc,GAChBrC,SAAAA,EAAWuC,EACb,CAkB0BE,CAAaX,EAAM,EACnCZ,QAASH,EAAKG,QACdX,MAAOH,GACHM,GAGT,IAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import a from"classnames";import{
|
|
1
|
+
import e from"react";import a from"classnames";import{RadioGroup as t}from"@tarojs/components";import l from"../src/hooks/useGenerateId.js";import{pxTransform as r}from"../src/utils/index.js";import s from"./Group/index.js";var i=function(s){var i=s.className,o=s.name,n=s.label,c=s.id,d=s.circle,m=void 0===d||d,h=s.onChange,p=s.align,u=s.direction,f=s.justify,v=s.checked,E=s.disabled,N=s.value,x=s.style,y=s.size,b=void 0===y?0:y,g=s.color,k=void 0===g?"#f6ab00":g,j=s.fancy,R=void 0!==j&&j,A=l(c,"xh-radio-id"),C=function(e){var a=v||!1,t="";"h5"===process.env.TARO_ENV?(a=e.target.checked,t=e.target.value):(a=e.detail.value.length>0,t=e.detail.value),null==h||h(a,t)},G=a("xh-radio",i,p,u,f);return"h5"!==process.env.TARO_ENV?e.createElement(t,{onChange:C},e.createElement("label",{htmlFor:A,className:G,style:x},e.createElement("input",{type:"radio",id:A,name:o,className:a("xh-radio-input",{tt:"tt"===process.env.TARO_ENV}),disabled:E,value:N,checked:v,color:k}),e.createElement("span",{style:b>0?{width:r(b),height:r(b)}:{},className:a("xh-radio-input-fake",m&&"circle",{tt:"tt"===process.env.TARO_ENV,fancy:R})}),e.createElement("span",{className:"xh-radio-label"},n))):e.createElement("label",{htmlFor:A,className:G,style:x},e.createElement("input",{type:"radio",id:A,name:o,className:"xh-radio-input",onChange:C,value:N,disabled:E,defaultChecked:v}),e.createElement("span",{style:b>0?{width:r(b),height:r(b)}:{},className:a("xh-radio-input-fake",{circle:m,fancy:R})}),e.createElement("span",{className:"xh-radio-label"},n))};i.Group=s;export{i as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Radio/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Radio/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { RadioGroup } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\n\nimport Group from \"./Group\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHRadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHRadioProps = {\n onChange?: (check: boolean, value: string | number) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n fancy?: boolean;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n} & XHComponentCommonProps;\n\nconst XHRadio: FC<XHRadioProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle = true,\n onChange,\n align,\n direction,\n justify,\n checked,\n disabled,\n value,\n style,\n size = 0,\n color = \"#f6ab00\",\n fancy = false,\n } = props;\n\n const finalId = useGenerateId(id, \"xh-radio-id\");\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value.length > 0;\n value = e.detail.value;\n }\n onChange?.(finalchecked, value);\n };\n\n const cls = classNames(\"xh-radio\", className, align, direction, justify);\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <RadioGroup onChange={handleOnchange}>\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"radio\"\n id={finalId}\n name={name}\n className={classNames(\"xh-radio-input\", {\n tt: process.env.TARO_ENV === \"tt\",\n })}\n disabled={disabled}\n value={value}\n checked={checked}\n color={color}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", circle && \"circle\", {\n tt: process.env.TARO_ENV === \"tt\",\n fancy,\n })}\n ></span>\n <span className=\"xh-radio-label\">{label}</span>\n </label>\n </RadioGroup>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"radio\"\n id={finalId}\n name={name}\n className=\"xh-radio-input\"\n onChange={handleOnchange}\n value={value}\n disabled={disabled}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", { circle, fancy })}\n ></span>\n <span className=\"xh-radio-label\">{label}</span>\n </label>\n );\n};\n\nconst Radio = XHRadio as CompoundedComponent;\nRadio.Group = Group;\n\nexport default Radio;\n"],"names":["Radio","props","className","name","label","id","_a","circle","onChange","align","direction","justify","checked","disabled","value","style","_b","size","_c","color","_d","fancy","finalId","useGenerateId","handleOnchange","e","finalchecked","process","env","TARO_ENV","target","detail","length","cls","classNames","React","createElement","RadioGroup","htmlFor","type","tt","width","pxTransform","height","defaultChecked","Group"],"mappings":"gOAuCA,IAqGMA,EArG4B,SAAAC,GAE9B,IAAAC,EAgBED,EAAKC,UAfPC,EAeEF,EAfEE,KACJC,EAcEH,QAbFI,EAaEJ,EAAKI,GAZPC,EAYEL,SAZFM,cAAaD,EACbE,EAWEP,EAXMO,SACRC,EAUER,QATFS,EASET,EAAKS,UARPC,EAQEV,UAPFW,EAOEX,EAAKW,QANPC,EAMEZ,EANMY,SACRC,EAKEb,QAJFc,EAIEd,EAAKc,MAHPC,EAGEf,EAAKgB,KAHPA,OAAI,IAAAD,EAAG,EAACA,EACRE,EAEEjB,EAAKkB,MAFPA,OAAK,IAAAD,EAAG,UAASA,EACjBE,EACEnB,EAAKoB,MADPA,OAAK,IAAAD,GAAQA,EAGTE,EAAUC,EAAclB,EAAI,eAE5BmB,EAAiB,SAAAC,GACrB,IAAIC,EAAed,IAAW,EAC1BE,EAAQ,GAEiB,OAAzBa,QAAQC,IAAIC,UACdH,EAAeD,EAAEK,OAAOlB,QACxBE,EAAQW,EAAEK,OAAOhB,QAEjBY,EAAeD,EAAEM,OAAOjB,MAAMkB,OAAS,EACvClB,EAAQW,EAAEM,OAAOjB,OAEnBN,SAAAA,EAAWkB,EAAcZ,EAC3B,EAEMmB,EAAMC,EAAW,WAAYhC,EAAWO,EAAOC,EAAWC,GAChE,MAA6B,OAAzBgB,QAAQC,IAAIC,SAEZM,EAACC,cAAAC,EAAW,CAAA7B,SAAUgB,GACpBW,EAAOC,cAAA,QAAA,CAAAE,QAAShB,EAASpB,UAAW+B,EAAKlB,MAAOA,GAC9CoB,EAAAC,cAAA,QAAA,CACEG,KAAK,QACLlC,GAAIiB,EACJnB,KAAMA,EACND,UAAWgC,EAAW,iBAAkB,CACtCM,GAA6B,OAAzBb,QAAQC,IAAIC,WAElBhB,SAAUA,EACVC,MAAOA,EACPF,QAASA,EACTO,MAAOA,IAETgB,EAAAC,cAAA,OAAA,CACErB,MACEE,EAAO,EACH,CACEwB,MAAOC,EAAYzB,GACnB0B,OAAQD,EAAYzB,IAEtB,CAAA,EAENf,UAAWgC,EAAW,sBAAuB3B,GAAU,SAAU,CAC/DiC,GAA6B,OAAzBb,QAAQC,IAAIC,SAChBR,MAAKA,MAGTc,EAAMC,cAAA,OAAA,CAAAlC,UAAU,kBAAkBE,KAOxC+B,EAAAC,cAAA,QAAA,CAAOE,QAAShB,EAASpB,UAAW+B,EAAKlB,MAAOA,GAC9CoB,EAAAC,cAAA,QAAA,CACEG,KAAK,QACLlC,GAAIiB,EACJnB,KAAMA,EACND,UAAU,iBACVM,SAAUgB,EACVV,MAAOA,EACPD,SAAUA,EACV+B,eAAgBhC,IAElBuB,EAAAC,cAAA,OAAA,CACErB,MACEE,EAAO,EACH,CACEwB,MAAOC,EAAYzB,GACnB0B,OAAQD,EAAYzB,IAEtB,GAENf,UAAWgC,EAAW,sBAAuB,CAAE3B,OAAMA,EAAEc,MAAKA,MAE9Dc,EAAMC,cAAA,OAAA,CAAAlC,UAAU,kBAAkBE,GAGxC,EAGAJ,EAAM6C,MAAQA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{default as XHButton}from"../Button/index.js";export{default as XHPage}from"../Page/index.js";export{default as XHLoading}from"../Loading/index.js";export{default as XHBankIcon}from"../BankIcon/index.js";export{default as XHCaptcha}from"../Captcha/index.js";export{default as XHFormInput}from"../FormInput/index.js";export{default as XHList}from"../List/index.js";export{default as XHMask}from"../Mask/index.js";export{default as XHImage}from"../Image/index.js";export{default as XHDialog}from"../Dialog/index.js";export{default as XHNumberKeyboard}from"../NumberKeyboard/index.js";export{default as XHPasswordInput}from"../PasswordInput/index.js";export{default as XHProgress}from"../Progress/index.js";export{default as XHToast}from"../Toast/index.js";export{default as XHDialogRef}from"../DialogRef/index.js";export{default as XHTabbar}from"../Tabbar/index.js";export{default as XHPopup}from"../Popup/index.js";export{default as XHPicker}from"../Picker/index.js";export{default as XHSpace}from"../Space/index.js";export{default as ThemeProvider}from"../ThemeProvider/index.js";export{default as XHCheckbox}from"../Checkbox/index.js";export{default as XHRadio}from"../Radio/index.js";export{default as XHStep}from"../Step/index.js";export{default as XHBadge}from"../Badge/index.js";export{default as XHAmountInput}from"../AmountInput/index.js";export{default as XHAmountKeyboard}from"../AmountKeyboard/index.js";export{default as XHCollapse}from"../Collapse/index.js";export{default as XHNavBar}from"../NavBar/index.js";export{default as XHIcon}from"../Icon/index.js";export{default as XHActionSheet}from"../ActionSheet/index.js";export{default as XHRank}from"../Rank/index.js";export{default as XHCell}from"../Cell/index.js";export{default as XHActivityIndicator}from"../ActivityIndicator/index.js";export{default as XHSwitch}from"../Switch/index.js";export{default as XHLinkMan}from"../LinkMan/index.js";export{default as XHResult}from"../Result/index.js";export{default as XHProgressCircle}from"../ProgressCircle/index.js";export{default as XHLicensePlateInput}from"../LicensePlateInput/index.js";export{default as XHCountdown}from"../Countdown/index.js";export{default as XHCheckboxButton}from"../CheckboxButton/index.js";export{default as XHBankCardNumberInput}from"../BankCardNumberInput/index.js";export{default as XHIDNumberInput}from"../IDNumberInput/index.js";export{default as XHEcharts}from"../Echarts/index.js";
|
|
1
|
+
export{default as XHButton}from"../Button/index.js";export{default as XHPage}from"../Page/index.js";export{default as XHLoading}from"../Loading/index.js";export{default as XHBankIcon}from"../BankIcon/index.js";export{default as XHCaptcha}from"../Captcha/index.js";export{default as XHFormInput}from"../FormInput/index.js";export{default as XHList}from"../List/index.js";export{default as XHMask}from"../Mask/index.js";export{default as XHImage}from"../Image/index.js";export{default as XHDialog}from"../Dialog/index.js";export{default as XHNumberKeyboard}from"../NumberKeyboard/index.js";export{default as XHPasswordInput}from"../PasswordInput/index.js";export{default as XHProgress}from"../Progress/index.js";export{default as XHToast}from"../Toast/index.js";export{default as XHDialogRef}from"../DialogRef/index.js";export{default as XHTabbar}from"../Tabbar/index.js";export{default as XHPopup}from"../Popup/index.js";export{default as XHPicker}from"../Picker/index.js";export{default as XHSpace}from"../Space/index.js";export{default as ThemeProvider}from"../ThemeProvider/index.js";export{default as XHCheckbox}from"../Checkbox/index.js";export{default as XHRadio}from"../Radio/index.js";export{default as XHStep}from"../Step/index.js";export{default as XHBadge}from"../Badge/index.js";export{default as XHAmountInput}from"../AmountInput/index.js";export{default as XHAmountKeyboard}from"../AmountKeyboard/index.js";export{default as XHCollapse}from"../Collapse/index.js";export{default as XHNavBar}from"../NavBar/index.js";export{default as XHIcon}from"../Icon/index.js";export{default as XHActionSheet}from"../ActionSheet/index.js";export{default as XHRank}from"../Rank/index.js";export{default as XHCell}from"../Cell/index.js";export{default as XHActivityIndicator}from"../ActivityIndicator/index.js";export{default as XHSwitch}from"../Switch/index.js";export{default as XHLinkMan}from"../LinkMan/index.js";export{default as XHResult}from"../Result/index.js";export{default as XHProgressCircle}from"../ProgressCircle/index.js";export{default as XHLicensePlateInput}from"../LicensePlateInput/index.js";export{default as XHCountdown}from"../Countdown/index.js";export{default as XHCheckboxButton}from"../CheckboxButton/index.js";export{default as XHNotice}from"../Notice/index.js";export{default as XHBankCardNumberInput}from"../BankCardNumberInput/index.js";export{default as XHIDNumberInput}from"../IDNumberInput/index.js";export{default as XHEcharts}from"../Echarts/index.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__values as r}from"../../node_modules/tslib/tslib.es6.js";import t from"react";var e,n=function(r){return r.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,"")};function u(r,t){if(void 0===t&&(t=750),!r)return"";return"h5"===process.env.TARO_ENV?Math.ceil(parseInt("".concat(r),10)/40*640/t*1e4)/1e4+"rem":"".concat(r/{640:1.17,750:1,828:.905}[t],"rpx")}var a=function(){if(void 0!==e)return e;var r=document.createElement("div");return r.style.display="flex",r.style.flexDirection="column",r.style.rowGap="1px",r.appendChild(document.createElement("div")),r.appendChild(document.createElement("div")),document.body.appendChild(r),e=1===r.scrollHeight,document.body.removeChild(r),e};function c(r,e){void 0===e&&(e={});var n=[];return t.Children.forEach(r,(function(r){var t;(null!=r||e.keepEmpty)&&(Array.isArray(r)?n=n.concat(c(r)):(t=r).$$typeof===Symbol.for("react.element")&&t.type===Symbol.for("react.fragment")&&r.props?n=n.concat(c(r.props.children,e)):n.push(r))})),n}var o=function(r){if(!r)return!1;for(var t=!0,e=0,n=r.length;n>0;n--){var u=+r.substring(n,n-1);(t=!t)&&(u*=2);var a=u%10;e+=a+(u-a)/10}return e%10==0};function
|
|
1
|
+
import{__values as r}from"../../node_modules/tslib/tslib.es6.js";import t from"react";var e,n=function(r){return r.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,"")};function u(r,t){if(void 0===t&&(t=750),!r)return"h5"===process.env.TARO_ENV?"0rem":"0rpx";return"h5"===process.env.TARO_ENV?Math.ceil(parseInt("".concat(r),10)/40*640/t*1e4)/1e4+"rem":"".concat(r/{640:1.17,750:1,828:.905}[t],"rpx")}var a=function(){if(void 0!==e)return e;var r=document.createElement("div");return r.style.display="flex",r.style.flexDirection="column",r.style.rowGap="1px",r.appendChild(document.createElement("div")),r.appendChild(document.createElement("div")),document.body.appendChild(r),e=1===r.scrollHeight,document.body.removeChild(r),e};function c(r,e){void 0===e&&(e={});var n=[];return t.Children.forEach(r,(function(r){var t;(null!=r||e.keepEmpty)&&(Array.isArray(r)?n=n.concat(c(r)):(t=r).$$typeof===Symbol.for("react.element")&&t.type===Symbol.for("react.fragment")&&r.props?n=n.concat(c(r.props.children,e)):n.push(r))})),n}var o=function(r){if(!r)return!1;for(var t=!0,e=0,n=r.length;n>0;n--){var u=+r.substring(n,n-1);(t=!t)&&(u*=2);var a=u%10;e+=a+(u-a)/10}return e%10==0};function s(r,t){var e=r.replace(/[^\d]/g,"").replace(/(\d{4})(?=\d)/g,"$1 ");return t?e.replace(/\s(\d{4})(?!\d)/g," ****"):e}function i(r){if(!r)return!1;switch(r.length){case 15:if((parseInt(r.substr(6,2))+1900)%4==0||(parseInt(r.substr(6,2))+1900)%100==0&&(parseInt(r.substr(6,2))+1900)%4==0){return!!/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/.test(r)}return!!/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/.test(r);case 18:if(/^[1-9][0-7]\d{4}((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))\d{3}(\d|X|x)?$/.test(r)){var t=7*(parseInt(r.charAt(0))+parseInt(r.charAt(10)))+9*(parseInt(r.charAt(1))+parseInt(r.charAt(11)))+10*(parseInt(r.charAt(2))+parseInt(r.charAt(12)))+5*(parseInt(r.charAt(3))+parseInt(r.charAt(13)))+8*(parseInt(r.charAt(4))+parseInt(r.charAt(14)))+4*(parseInt(r.charAt(5))+parseInt(r.charAt(15)))+2*(parseInt(r.charAt(6))+parseInt(r.charAt(16)))+1*parseInt(r.charAt(7))+6*parseInt(r.charAt(8))+3*parseInt(r.charAt(9));return"10X98765432".substr(t%11,1)===r.charAt(17).toUpperCase()}break;default:return!1}return!1}function p(r){setTimeout((function(){return setTimeout((function(){return setTimeout((function(){return r()}))}))}))}function f(r){return"string"==typeof r}function l(r){return"function"==typeof r}function h(t,e){var n,u;if(t===e)return!0;if("object"==typeof t&&null!==t&&"object"==typeof e&&null!==e){var a=Object.keys(t),c=Object.keys(e);if(a.length!==c.length)return!1;try{for(var o=r(a),s=o.next();!s.done;s=o.next()){var i=s.value;if(!h(t[i],e[i]))return!1}}catch(r){n={error:r}}finally{try{s&&!s.done&&(u=o.return)&&u.call(o)}finally{if(n)throw n.error}}return!0}return!1}function d(r,t){var e={};return t.forEach((function(t){e[t]=r[t]})),e}var v={};function A(r){void 0===r&&(r="$unique$"),v[r]||(v[r]=0);var t=++v[r];return"$unique$"===r?"".concat(t):"".concat(r).concat(t)}function m(r,t){for(var e=r.split("."),n=t.split("."),u=Math.max(e.length,n.length);e.length<u;)e.push("0");for(;n.length<u;)n.push("0");for(var a=0;a<u;a++){var c=parseInt(e[a]),o=parseInt(n[a]);if(c>o)return 1;if(c<o)return-1}return 0}var y=function(r,t,e){return r.substring(0,t)+e+r.substring(t+1)},I=function(r){return 7===r.length?/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/.test(r):8===r.length&&/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/.test(r)};export{o as checkBankCard,m as compareVersion,s as creditCard,a as detectFlexGapSupported,n as inputRange,h as isEqual,l as isFunction,I as isLicenseNo,f as isString,d as pick,u as pxTransform,y as replaceCharByIndex,c as toArray,p as tripleDefer,A as uniqueId,i as verifyIdcard};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/utils/index.ts"],"sourcesContent":["/**\n * 禁止输入emoji表情\n * @param {string} val - 输入内容\n * @returns {boolean} - 校验结果 返回 true || false\n */\nimport React from \"react\";\n\nexport const inputRange = (val: string): string => {\n let iconRule1 =\n /[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030/gi;\n return val.replace(iconRule1, \"\");\n};\n\n// function Handler(fn) {\n// this.handler = fn;\n// this.next = null;\n// }\n\n// Handler.prototype.setNext = function setNext(h) {\n// this.next = h;\n// return h;\n// };\n\n// Handler.prototype.passRequest = function () {\n// const ret = this.handler.apply(this, arguments);\n// // 提前结束\n// if (!ret) {\n// return ret;\n// }\n\n// // 向后传递\n// if (this.next) {\n// return this.next.passRequest.apply(this.next, arguments);\n// }\n// return ret;\n// };\n\n// export class ChainHander {\n// public hander: (s: string) => boolean\n// public next\n// constructor(fn: (str: string) => boolean) {\n// this.hander = fn\n// }\n// public setNext(callback): () => boolean {\n// this.next = callback\n// return callback\n// }\n// public checkPass(...arg) {\n// const result = this.hander.apply(this, arg)\n// if (!result) {\n// return result\n// }\n\n// if (this.next != null) {\n// return this.next.checkPass.apply(this.next, arg)\n// }\n\n// return result\n// }\n// }\n\nexport const throtte = (fn: Function, delay: number = 1500) => {\n let timer: NodeJS.Timer;\n let canCall = true;\n return function (arg) {\n if (canCall) {\n canCall = false;\n fn(arg);\n }\n timer = setTimeout(() => {\n canCall = true;\n clearTimeout(timer);\n }, delay);\n };\n};\n\nexport const debounce = (fn: (...arg: any) => any, delay: number = 1500) => {\n let timer: NodeJS.Timeout | null = null;\n return function () {\n const context = this;\n const arg = arguments;\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, arg);\n }, delay);\n };\n};\n\nexport function pxTransform(size: number, designWidth = 750): string {\n if (!size) return \"\";\n const deviceRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2,\n };\n if (process.env.TARO_ENV === \"h5\")\n return (\n Math.ceil(\n (((parseInt(`${size}`, 10) / 40) * 640) / designWidth) * 10000\n ) /\n 10000 +\n \"rem\"\n );\n return `${size / deviceRatio[designWidth]}rpx`;\n}\n\nlet flexGapSupported: boolean | undefined;\nexport const detectFlexGapSupported = () => {\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n\n const flex = document.createElement(\"div\");\n flex.style.display = \"flex\";\n flex.style.flexDirection = \"column\";\n flex.style.rowGap = \"1px\";\n\n flex.appendChild(document.createElement(\"div\"));\n flex.appendChild(document.createElement(\"div\"));\n\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1;\n document.body.removeChild(flex);\n\n return flexGapSupported;\n};\n\nexport interface Option {\n keepEmpty?: boolean;\n}\n\nexport function toArray(\n children: React.ReactNode,\n option: Option = {}\n): React.ReactElement[] {\n let ret: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child: any | any[]) => {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n\n return ret;\n}\n\nfunction isFragment(object) {\n return (\n object.$$typeof === Symbol.for(\"react.element\") &&\n object.type === Symbol.for(\"react.fragment\")\n );\n}\n\n// 获取 校验银行卡\nexport const checkBankCard = (cardNo: string) => {\n if (!cardNo) return false;\n let tmp = true;\n let total = 0;\n for (let i = cardNo.length; i > 0; i--) {\n let num = +cardNo.substring(i, i - 1);\n if (((tmp = !tmp), tmp)) num = num * 2;\n const gw = num % 10;\n total += gw + (num - gw) / 10;\n }\n return total % 10 === 0;\n};\n\n/**\n * 格式化银行卡号\n *\n * @export\n * @param {string} cardNum 6217002712347888987\n * @param {boolean} mask 是否掩码\n * @returns {string} 6217 0027 1234 7888 987\n */\nexport function creditCard(cardNum: string, mask?: boolean): string {\n const newCardNum = cardNum\n .replace(/[^\\d]/g, \"\")\n .replace(/(\\d{4})(?=\\d)/g, \"$1 \");\n\n return mask ? newCardNum.replace(/\\s(\\d{4})(?!\\d)/g, \" ****\") : newCardNum;\n}\n\n/**\n * 校验身份证号是否符合规范\n *\n * @export\n * @param {string} idcard\n * @returns {boolean} true 符合 | false 不符合\n */\nexport function verifyIdcard(idcard: string): boolean {\n if (!idcard) return false;\n let regex1 =\n /^[1-9][0-7]\\d{4}((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))\\d{3}(\\d|X|x)?$/;\n /* 身份号码位数及格式检验 */\n switch (idcard.length) {\n case 15:\n if (\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0 ||\n ((parseInt(idcard.substr(6, 2)) + 1900) % 100 === 0 &&\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0)\n ) {\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n }\n // eslint-disable-next-line\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n\n case 18:\n if (regex1.test(idcard)) {\n let S =\n (parseInt(idcard.charAt(0)) + parseInt(idcard.charAt(10))) * 7 +\n (parseInt(idcard.charAt(1)) + parseInt(idcard.charAt(11))) * 9 +\n (parseInt(idcard.charAt(2)) + parseInt(idcard.charAt(12))) * 10 +\n (parseInt(idcard.charAt(3)) + parseInt(idcard.charAt(13))) * 5 +\n (parseInt(idcard.charAt(4)) + parseInt(idcard.charAt(14))) * 8 +\n (parseInt(idcard.charAt(5)) + parseInt(idcard.charAt(15))) * 4 +\n (parseInt(idcard.charAt(6)) + parseInt(idcard.charAt(16))) * 2 +\n parseInt(idcard.charAt(7)) * 1 +\n parseInt(idcard.charAt(8)) * 6 +\n parseInt(idcard.charAt(9)) * 3;\n let Y = S % 11;\n let M = \"F\";\n let JYM = \"10X98765432\";\n M = JYM.substr(Y, 1);\n /* 判断校验位 */\n if (M === idcard.charAt(17).toUpperCase()) {\n return true;\n }\n return false;\n }\n break;\n default:\n return false;\n }\n\n return false;\n}\n\nexport function tripleDefer(func: () => void): void {\n setTimeout(() => setTimeout(() => setTimeout(() => func())));\n}\n\nexport function isString(v) {\n return typeof v === \"string\";\n}\n\nexport function isFunction(v) {\n return typeof v === \"function\";\n}\n\nexport function isEqual(x, y) {\n if (x === y) {\n return true;\n } else if (\n typeof x === \"object\" &&\n x !== null &&\n typeof y === \"object\" &&\n y !== null\n ) {\n const keysX = Object.keys(x);\n const keysY = Object.keys(y);\n if (keysX.length !== keysY.length) {\n return false;\n }\n for (const key of keysX) {\n if (!isEqual(x[key], y[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\nexport function pick(obj: any, keys) {\n const r = {};\n keys.forEach(key => {\n r[key] = obj[key];\n });\n return r;\n}\n\nconst idCounter = {};\nexport function uniqueId(prefix = \"$unique$\") {\n if (!idCounter[prefix]) {\n idCounter[prefix] = 0;\n }\n\n const id = ++idCounter[prefix];\n if (prefix === \"$unique$\") {\n return `${id}`;\n }\n\n return `${prefix}${id}`;\n}\n\n/**\n * 版本号比较进阶版\n * @param {string} ver1 5.19.1 前一个版本\n * @param {string} ver2 5.18.3 后一个版本\n * @returns {number} 1: 前一个版本 大于 后一个版本\n * -1: 前一个版本 小于 后一个版本\n * 0: 前一个版本 等于 后一个版本\n */\nexport function compareVersion(ver1: string, ver2: string): number {\n let v1 = ver1.split(\".\");\n let v2 = ver2.split(\".\");\n const len = Math.max(v1.length, v2.length);\n\n // 调整两个版本号位数相同\n while (v1.length < len) {\n v1.push(\"0\");\n }\n while (v2.length < len) {\n v2.push(\"0\");\n }\n\n // 循环判断每位数的大小\n for (let i = 0; i < len; i++) {\n const num1 = parseInt(v1[i]);\n const num2 = parseInt(v2[i]);\n\n if (num1 > num2) {\n //前一个版本 大于 后一个版本\n return 1;\n } else if (num1 < num2) {\n //前一个版本 小于 后一个版本\n return -1;\n }\n }\n\n return 0;\n}\n\nexport const replaceCharByIndex = (\n str: string,\n index: number,\n replace: string\n) => {\n return str.substring(0, index) + replace + str.substring(index + 1);\n};\n\n/**\n * 车牌号正则校验\n *\n * @export\n * @param {string} str 车牌号\n * @returns {boolean} false | true\n */\nexport const isLicenseNo = (str: string): boolean => {\n let xreg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;\n let creg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;\n if (str.length === 7) {\n return creg.test(str);\n } else if (str.length === 8) {\n return xreg.test(str);\n }\n return false;\n};\n"],"names":["flexGapSupported","inputRange","val","replace","pxTransform","size","designWidth","process","env","TARO_ENV","Math","ceil","parseInt","concat","detectFlexGapSupported","undefined","flex","document","createElement","style","display","flexDirection","rowGap","appendChild","body","scrollHeight","removeChild","toArray","children","option","ret","React","Children","forEach","child","object","keepEmpty","Array","isArray","$$typeof","Symbol","for","type","props","push","checkBankCard","cardNo","tmp","total","i","length","num","substring","gw","creditCard","cardNum","mask","newCardNum","verifyIdcard","idcard","substr","test","S","charAt","toUpperCase","tripleDefer","func","setTimeout","isString","v","isFunction","isEqual","x","y","keysX","Object","keys","keysY","keysX_1","__values","keysX_1_1","done","next","key","value","pick","obj","r","idCounter","uniqueId","prefix","id","compareVersion","ver1","ver2","v1","split","v2","len","max","num1","num2","replaceCharByIndex","str","index","isLicenseNo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/utils/index.ts"],"sourcesContent":["/**\n * 禁止输入emoji表情\n * @param {string} val - 输入内容\n * @returns {boolean} - 校验结果 返回 true || false\n */\nimport React from \"react\";\n\nexport const inputRange = (val: string): string => {\n let iconRule1 =\n /[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030/gi;\n return val.replace(iconRule1, \"\");\n};\n\n// function Handler(fn) {\n// this.handler = fn;\n// this.next = null;\n// }\n\n// Handler.prototype.setNext = function setNext(h) {\n// this.next = h;\n// return h;\n// };\n\n// Handler.prototype.passRequest = function () {\n// const ret = this.handler.apply(this, arguments);\n// // 提前结束\n// if (!ret) {\n// return ret;\n// }\n\n// // 向后传递\n// if (this.next) {\n// return this.next.passRequest.apply(this.next, arguments);\n// }\n// return ret;\n// };\n\n// export class ChainHander {\n// public hander: (s: string) => boolean\n// public next\n// constructor(fn: (str: string) => boolean) {\n// this.hander = fn\n// }\n// public setNext(callback): () => boolean {\n// this.next = callback\n// return callback\n// }\n// public checkPass(...arg) {\n// const result = this.hander.apply(this, arg)\n// if (!result) {\n// return result\n// }\n\n// if (this.next != null) {\n// return this.next.checkPass.apply(this.next, arg)\n// }\n\n// return result\n// }\n// }\n\nexport const throtte = (fn: Function, delay: number = 1500) => {\n let timer: NodeJS.Timer;\n let canCall = true;\n return function (arg) {\n if (canCall) {\n canCall = false;\n fn(arg);\n }\n timer = setTimeout(() => {\n canCall = true;\n clearTimeout(timer);\n }, delay);\n };\n};\n\nexport const debounce = (fn: (...arg: any) => any, delay: number = 1500) => {\n let timer: NodeJS.Timeout | null = null;\n return function () {\n const context = this;\n const arg = arguments;\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, arg);\n }, delay);\n };\n};\n\nexport function pxTransform(size: number, designWidth = 750): string {\n if (!size) return process.env.TARO_ENV === \"h5\" ? \"0rem\" : \"0rpx\";\n const deviceRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2,\n };\n if (process.env.TARO_ENV === \"h5\")\n return (\n Math.ceil(\n (((parseInt(`${size}`, 10) / 40) * 640) / designWidth) * 10000\n ) /\n 10000 +\n \"rem\"\n );\n return `${size / deviceRatio[designWidth]}rpx`;\n}\n\nlet flexGapSupported: boolean | undefined;\nexport const detectFlexGapSupported = () => {\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n\n const flex = document.createElement(\"div\");\n flex.style.display = \"flex\";\n flex.style.flexDirection = \"column\";\n flex.style.rowGap = \"1px\";\n\n flex.appendChild(document.createElement(\"div\"));\n flex.appendChild(document.createElement(\"div\"));\n\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1;\n document.body.removeChild(flex);\n\n return flexGapSupported;\n};\n\nexport interface Option {\n keepEmpty?: boolean;\n}\n\nexport function toArray(\n children: React.ReactNode,\n option: Option = {}\n): React.ReactElement[] {\n let ret: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child: any | any[]) => {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n\n return ret;\n}\n\nfunction isFragment(object) {\n return (\n object.$$typeof === Symbol.for(\"react.element\") &&\n object.type === Symbol.for(\"react.fragment\")\n );\n}\n\n// 获取 校验银行卡\nexport const checkBankCard = (cardNo: string) => {\n if (!cardNo) return false;\n let tmp = true;\n let total = 0;\n for (let i = cardNo.length; i > 0; i--) {\n let num = +cardNo.substring(i, i - 1);\n if (((tmp = !tmp), tmp)) num = num * 2;\n const gw = num % 10;\n total += gw + (num - gw) / 10;\n }\n return total % 10 === 0;\n};\n\n/**\n * 格式化银行卡号\n *\n * @export\n * @param {string} cardNum 6217002712347888987\n * @param {boolean} mask 是否掩码\n * @returns {string} 6217 0027 1234 7888 987\n */\nexport function creditCard(cardNum: string, mask?: boolean): string {\n const newCardNum = cardNum\n .replace(/[^\\d]/g, \"\")\n .replace(/(\\d{4})(?=\\d)/g, \"$1 \");\n\n return mask ? newCardNum.replace(/\\s(\\d{4})(?!\\d)/g, \" ****\") : newCardNum;\n}\n\n/**\n * 校验身份证号是否符合规范\n *\n * @export\n * @param {string} idcard\n * @returns {boolean} true 符合 | false 不符合\n */\nexport function verifyIdcard(idcard: string): boolean {\n if (!idcard) return false;\n let regex1 =\n /^[1-9][0-7]\\d{4}((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))\\d{3}(\\d|X|x)?$/;\n /* 身份号码位数及格式检验 */\n switch (idcard.length) {\n case 15:\n if (\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0 ||\n ((parseInt(idcard.substr(6, 2)) + 1900) % 100 === 0 &&\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0)\n ) {\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n }\n // eslint-disable-next-line\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n\n case 18:\n if (regex1.test(idcard)) {\n let S =\n (parseInt(idcard.charAt(0)) + parseInt(idcard.charAt(10))) * 7 +\n (parseInt(idcard.charAt(1)) + parseInt(idcard.charAt(11))) * 9 +\n (parseInt(idcard.charAt(2)) + parseInt(idcard.charAt(12))) * 10 +\n (parseInt(idcard.charAt(3)) + parseInt(idcard.charAt(13))) * 5 +\n (parseInt(idcard.charAt(4)) + parseInt(idcard.charAt(14))) * 8 +\n (parseInt(idcard.charAt(5)) + parseInt(idcard.charAt(15))) * 4 +\n (parseInt(idcard.charAt(6)) + parseInt(idcard.charAt(16))) * 2 +\n parseInt(idcard.charAt(7)) * 1 +\n parseInt(idcard.charAt(8)) * 6 +\n parseInt(idcard.charAt(9)) * 3;\n let Y = S % 11;\n let M = \"F\";\n let JYM = \"10X98765432\";\n M = JYM.substr(Y, 1);\n /* 判断校验位 */\n if (M === idcard.charAt(17).toUpperCase()) {\n return true;\n }\n return false;\n }\n break;\n default:\n return false;\n }\n\n return false;\n}\n\nexport function tripleDefer(func: () => void): void {\n setTimeout(() => setTimeout(() => setTimeout(() => func())));\n}\n\nexport function isString(v) {\n return typeof v === \"string\";\n}\n\nexport function isFunction(v) {\n return typeof v === \"function\";\n}\n\nexport function isEqual(x, y) {\n if (x === y) {\n return true;\n } else if (\n typeof x === \"object\" &&\n x !== null &&\n typeof y === \"object\" &&\n y !== null\n ) {\n const keysX = Object.keys(x);\n const keysY = Object.keys(y);\n if (keysX.length !== keysY.length) {\n return false;\n }\n for (const key of keysX) {\n if (!isEqual(x[key], y[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\nexport function pick(obj: any, keys) {\n const r = {};\n keys.forEach(key => {\n r[key] = obj[key];\n });\n return r;\n}\n\nconst idCounter = {};\nexport function uniqueId(prefix = \"$unique$\") {\n if (!idCounter[prefix]) {\n idCounter[prefix] = 0;\n }\n\n const id = ++idCounter[prefix];\n if (prefix === \"$unique$\") {\n return `${id}`;\n }\n\n return `${prefix}${id}`;\n}\n\n/**\n * 版本号比较进阶版\n * @param {string} ver1 5.19.1 前一个版本\n * @param {string} ver2 5.18.3 后一个版本\n * @returns {number} 1: 前一个版本 大于 后一个版本\n * -1: 前一个版本 小于 后一个版本\n * 0: 前一个版本 等于 后一个版本\n */\nexport function compareVersion(ver1: string, ver2: string): number {\n let v1 = ver1.split(\".\");\n let v2 = ver2.split(\".\");\n const len = Math.max(v1.length, v2.length);\n\n // 调整两个版本号位数相同\n while (v1.length < len) {\n v1.push(\"0\");\n }\n while (v2.length < len) {\n v2.push(\"0\");\n }\n\n // 循环判断每位数的大小\n for (let i = 0; i < len; i++) {\n const num1 = parseInt(v1[i]);\n const num2 = parseInt(v2[i]);\n\n if (num1 > num2) {\n //前一个版本 大于 后一个版本\n return 1;\n } else if (num1 < num2) {\n //前一个版本 小于 后一个版本\n return -1;\n }\n }\n\n return 0;\n}\n\nexport const replaceCharByIndex = (\n str: string,\n index: number,\n replace: string\n) => {\n return str.substring(0, index) + replace + str.substring(index + 1);\n};\n\n/**\n * 车牌号正则校验\n *\n * @export\n * @param {string} str 车牌号\n * @returns {boolean} false | true\n */\nexport const isLicenseNo = (str: string): boolean => {\n let xreg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;\n let creg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;\n if (str.length === 7) {\n return creg.test(str);\n } else if (str.length === 8) {\n return xreg.test(str);\n }\n return false;\n};\n"],"names":["flexGapSupported","inputRange","val","replace","pxTransform","size","designWidth","process","env","TARO_ENV","Math","ceil","parseInt","concat","detectFlexGapSupported","undefined","flex","document","createElement","style","display","flexDirection","rowGap","appendChild","body","scrollHeight","removeChild","toArray","children","option","ret","React","Children","forEach","child","object","keepEmpty","Array","isArray","$$typeof","Symbol","for","type","props","push","checkBankCard","cardNo","tmp","total","i","length","num","substring","gw","creditCard","cardNum","mask","newCardNum","verifyIdcard","idcard","substr","test","S","charAt","toUpperCase","tripleDefer","func","setTimeout","isString","v","isFunction","isEqual","x","y","keysX","Object","keys","keysY","keysX_1","__values","keysX_1_1","done","next","key","value","pick","obj","r","idCounter","uniqueId","prefix","id","compareVersion","ver1","ver2","v1","split","v2","len","max","num1","num2","replaceCharByIndex","str","index","isLicenseNo"],"mappings":"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"}
|