taro-react-uilib 1.3.7 → 1.4.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.
Files changed (77) hide show
  1. package/dist/components/ActionSheet/index.js +1 -1
  2. package/dist/components/ActionSheet/index.js.map +1 -1
  3. package/dist/components/AmountInput/index.js +1 -1
  4. package/dist/components/AmountInput/index.js.map +1 -1
  5. package/dist/components/AmountKeyboard/index.js +1 -1
  6. package/dist/components/AmountKeyboard/index.js.map +1 -1
  7. package/dist/components/BankCardNumberInput/index.js +2 -0
  8. package/dist/components/BankCardNumberInput/index.js.map +1 -0
  9. package/dist/components/DialogRef/index.js +1 -1
  10. package/dist/components/DialogRef/index.js.map +1 -1
  11. package/dist/components/FormInput/index.js +1 -1
  12. package/dist/components/FormInput/index.js.map +1 -1
  13. package/dist/components/IDNumberInput/index.js +2 -0
  14. package/dist/components/IDNumberInput/index.js.map +1 -0
  15. package/dist/components/Icon/index.js.map +1 -1
  16. package/dist/components/LinkMan/index.js +1 -1
  17. package/dist/components/LinkMan/index.js.map +1 -1
  18. package/dist/components/node_modules/tslib/tslib.es6.js +1 -1
  19. package/dist/components/node_modules/tslib/tslib.es6.js.map +1 -1
  20. package/dist/components/src/index.js +1 -1
  21. package/dist/components/src/utils/index.js +1 -1
  22. package/dist/components/src/utils/index.js.map +1 -1
  23. package/dist/index.js +6 -6
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.umd.js +6 -6
  26. package/dist/index.umd.js.map +1 -1
  27. package/dist/styles/components/actionsheet.scss +9 -2
  28. package/dist/styles/components/amountinput.scss +12 -10
  29. package/dist/styles/components/bankcardnumberinput.scss +37 -0
  30. package/dist/styles/components/captcha.scss +1 -2
  31. package/dist/styles/components/checkbox.scss +1 -0
  32. package/dist/styles/components/dialogref.scss +3 -0
  33. package/dist/styles/components/font/iconfont.ttf +0 -0
  34. package/dist/styles/components/font/iconfont.woff +0 -0
  35. package/dist/styles/components/font/iconfont.woff2 +0 -0
  36. package/dist/styles/components/icon.scss +12 -0
  37. package/dist/styles/components/idnumberinput.scss +36 -0
  38. package/dist/styles/components/index.scss +2 -0
  39. package/dist/styles/components/radio.scss +1 -0
  40. package/lib/components/ActionSheet/index.js +16 -6
  41. package/lib/components/ActionSheet/index.js.map +1 -1
  42. package/lib/components/AmountInput/index.js +4 -4
  43. package/lib/components/AmountInput/index.js.map +1 -1
  44. package/lib/components/AmountKeyboard/index.js +35 -2
  45. package/lib/components/AmountKeyboard/index.js.map +1 -1
  46. package/lib/components/BankCardNumberInput/index.js +38 -0
  47. package/lib/components/BankCardNumberInput/index.js.map +1 -0
  48. package/lib/components/DialogRef/index.js +4 -2
  49. package/lib/components/DialogRef/index.js.map +1 -1
  50. package/lib/components/FormInput/index.js +2 -1
  51. package/lib/components/FormInput/index.js.map +1 -1
  52. package/lib/components/IDNumberInput/index.js +36 -0
  53. package/lib/components/IDNumberInput/index.js.map +1 -0
  54. package/lib/components/Icon/index.js.map +1 -1
  55. package/lib/components/LinkMan/index.js +4 -3
  56. package/lib/components/LinkMan/index.js.map +1 -1
  57. package/lib/index.js +2 -0
  58. package/lib/index.js.map +1 -1
  59. package/lib/utils/index.js +86 -0
  60. package/lib/utils/index.js.map +1 -1
  61. package/package.json +1 -1
  62. package/types/components/ActionSheet/index.d.ts +1 -1
  63. package/types/components/AmountInput/index.d.ts +2 -1
  64. package/types/components/AmountKeyboard/index.d.ts +4 -0
  65. package/types/components/BankCardNumberInput/index.d.ts +42 -0
  66. package/types/components/DialogRef/index.d.ts +2 -0
  67. package/types/components/FormInput/index.d.ts +1 -0
  68. package/types/components/IDNumberInput/index.d.ts +34 -0
  69. package/types/components/Icon/index.d.ts +1 -1
  70. package/types/components/LinkMan/index.d.ts +1 -1
  71. package/types/index.d.ts +2 -0
  72. package/types/stories/Button.d.ts +29 -0
  73. package/types/stories/Header.d.ts +10 -0
  74. package/types/stories/Page.d.ts +10 -0
  75. package/types/utils/index.d.ts +18 -0
  76. package/CHANGELOG.md +0 -970
  77. package/dist/styles/components/font/.DS_Store +0 -0
@@ -1,2 +1,2 @@
1
- import{__read as e}from"../node_modules/tslib/tslib.es6.js";import n,{useState as t,useEffect as a}from"react";import o from"classnames";import{View as c}from"@tarojs/components";import i from"../Popup/index.js";var l=function(l){var s=l.visible,r=void 0!==s&&s,m=l.title,u=l.description,h=l.data,d=void 0===h?[]:h,f=l.onConfirm,p=l.onCancel,E=l.className,x=l.children,v=l.style,N=l.mode,C=l.submitText,k=void 0===C?"提交":C,b=l.cancelText,g=void 0===b?"取消":b,y=l.showCancel,j=void 0!==y&&y,T=l.renderItem,P=l.ItemWrapper,_=l.onSubmit,w=l.onClick,A=l.showClose,I=void 0!==A&&A,O=l.justifyContent,R=void 0===O?"center":O,V=l.inline,F=void 0!==V&&V,S=e(t(r),2),W=S[0],q=S[1],z=function(e){null==p||p(e),null==w||w(!1),q(!1)};a((function(){q(r)}),[r]);var B=function(){null==_||_()},D=function(){return d.map((function(e,t){return T?T(e,t):n.createElement(c,{className:o("xh-action-sheet-main-panel-item",R),key:t,onClick:function(){!function(e,n){null==f||f(e,n),q(!1)}(e,t)}},"string"==typeof e?e:e.text)}))};return n.createElement(c,{className:o("xh-action-sheet",{inline:F}),onClick:function(){w?w(!r):d.length<=0||q(!0)}},n.createElement(i,{visible:W},n.createElement(c,{className:o("xh-action-sheet-main",E,N),style:v},n.createElement(c,{className:"xh-action-sheet-main-header"},n.createElement(c,{className:"xh-action-sheet-main-header-title"},m),n.createElement(c,{className:"xh-action-sheet-main-header-desc"},u),(I||"controlled"===N&&!j)&&n.createElement(c,{className:"xh-action-sheet-main-header-close",onClick:function(){return z()}})),n.createElement(c,{className:o("xh-action-sheet-main-panel",{panel:!T}),onClick:function(e){return"h5"!==process.env.TARO_ENV&&e.stopPropagation()}},P?n.createElement(P,null,D()):n.createElement(n.Fragment,null,D())),n.createElement(c,{className:"xh-action-sheet-main-action",onClick:function(e){return"h5"!==process.env.TARO_ENV&&e.stopPropagation()}},"controlled"===N?n.createElement(c,null,n.createElement(c,{className:"xh-action-sheet-main-action-submit",onClick:B},k),j&&n.createElement(c,{className:"xh-action-sheet-main-action-cancel mode",onClick:function(){return z(!0)}},g)):n.createElement(c,{className:"xh-action-sheet-main-action-cancel",onClick:function(){return z(!0)}},g)))),x)};export{l as default};
1
+ import{__read as e}from"../node_modules/tslib/tslib.es6.js";import n,{useState as t,useEffect as a}from"react";import o from"classnames";import{View as i}from"@tarojs/components";import l from"../Popup/index.js";var c=function(c){var r=c.visible,s=void 0!==r&&r,m=c.title,u=c.description,h=c.data,d=void 0===h?[]:h,f=c.onConfirm,p=c.onCancel,v=c.className,E=c.children,x=c.style,N=c.mode,C=c.submitText,k=void 0===C?"提交":C,g=c.cancelText,y=void 0===g?"取消":g,b=c.showCancel,T=void 0!==b&&b,j=c.renderItem,P=c.ItemWrapper,V=c.onSubmit,_=c.onClick,w=c.showClose,A=void 0!==w&&w,I=c.justifyContent,O=void 0===I?"center":I,R=c.inline,F=void 0!==R&&R,M=c.defaultValue,S=void 0===M?"":M,W=e(t(s),2),q=W[0],z=W[1],B=e(t("string"==typeof S?S:null==S?void 0:S.value),2),D=B[0],G=B[1],H=function(e){null==p||p(e),null==_||_(!1),z(!1)};a((function(){z(s)}),[s]);var J=function(){null==V||V()},K=function(){return d.map((function(e,t){return j?j(e,t):n.createElement(i,{className:o("xh-action-sheet-main-panel-item",O,{active:"string"==typeof e?e===D:e.value===D}),key:t,onClick:function(){!function(e,n){null==f||f(e,n),z(!1);var t="string"==typeof e?e:e.value;G(t)}(e,t)}},"string"==typeof e?e:e.text)}))},L=A||"controlled"===N&&!T;return n.createElement(i,{className:o("xh-action-sheet",{inline:F}),onClick:function(){_?_(!s):d.length<=0||z(!0)}},n.createElement(l,{visible:q},n.createElement(i,{className:o("xh-action-sheet-main",v,N),style:x},m&&n.createElement(i,{className:"xh-action-sheet-main-header"},n.createElement(i,{className:"xh-action-sheet-main-header-title"},m),n.createElement(i,{className:"xh-action-sheet-main-header-desc"},u),L&&n.createElement(i,{className:"xh-action-sheet-main-header-close",onClick:function(){return H()}})),n.createElement(i,{className:o("xh-action-sheet-main-panel",{noTitle:!m}),onClick:function(e){return"h5"!==process.env.TARO_ENV&&e.stopPropagation()}},P?n.createElement(P,null,K()):n.createElement(n.Fragment,null,K())),n.createElement(i,{className:o("xh-action-sheet-main-action",{noMarinTop:"controlled"!==N&&L}),onClick:function(e){return"h5"!==process.env.TARO_ENV&&e.stopPropagation()}},"controlled"===N?n.createElement(i,null,n.createElement(i,{className:"xh-action-sheet-main-action-submit",onClick:J},k),T&&n.createElement(i,{className:"xh-action-sheet-main-action-cancel mode",onClick:function(){return H(!0)}},y)):L?n.createElement("div",null):n.createElement(i,{className:"xh-action-sheet-main-action-cancel",onClick:function(){return H(!0)}},y)))),E)};export{c as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ActionSheet/index.tsx"],"sourcesContent":["import React, { useState, ReactNode, ReactElement, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport Popup from \"../Popup\";\nimport \"./index.scss\";\n\nexport interface ActionSheetOption {\n text: ReactNode;\n value: string | number;\n [key: string]: any;\n}\n\nexport type ActionValue = string | ActionSheetOption;\nexport interface ActionProps<T extends ActionValue = ActionValue> {\n visible?: boolean;\n title?: ReactNode;\n data: T[];\n defaultValueData?: (string | number)[];\n className?: string;\n style?: React.CSSProperties;\n onConfirm?: (selectedValue: T, index: number) => void;\n onCancel?: (bottom?: boolean) => void;\n onClose?: () => void;\n onClick?: (flag: boolean) => void;\n children?: ReactNode;\n description?: ReactNode;\n /**\n * @summary controlled模式下,组件为受控组件,需要外部来显示和隐藏\n * @description submit 模式下会显示提交按钮,可以自定义,也可以显示取消按钮但是得传进来一个Toggle事件用来显示隐藏\n */\n mode?: \"controlled\";\n cancelText?: ReactNode;\n /**\n * submit模式下,默认不展示取消按钮,可以设置\n */\n showCancel?: boolean;\n submitText?: string;\n renderItem?: (item: T, index: number) => ReactNode;\n ItemWrapper?: React.FC<{}>;\n onSubmit?: () => void;\n justifyContent?: \"start\" | \"end\";\n /**\n * 显示右上角的关闭、默认只有不显示下面的取消的时候才出现\n */\n showClose?: boolean;\n inline?: boolean;\n}\n\nconst ActionSheet = <T extends ActionValue>(\n props: ActionProps<T>\n): ReactElement => {\n const {\n visible = false,\n title,\n description,\n data = [],\n onConfirm,\n onCancel,\n className,\n children,\n style,\n mode,\n submitText = \"提交\",\n cancelText = \"取消\",\n showCancel = false,\n renderItem,\n ItemWrapper,\n onSubmit,\n onClick,\n showClose = false,\n justifyContent = \"center\",\n inline = false,\n } = props;\n\n const [innerVisible, setInnerVisible] = useState(visible);\n\n const handleCancel = (bottom?: boolean) => {\n onCancel?.(bottom);\n onClick?.(false);\n setInnerVisible(false);\n };\n\n useEffect(() => {\n setInnerVisible(visible);\n }, [visible]);\n\n const handleClick = () => {\n if (onClick) {\n onClick(!visible);\n return;\n }\n if (data.length <= 0) return;\n setInnerVisible(true);\n };\n\n const handleConfirm = (item: T, index: number) => {\n onConfirm?.(item, index);\n setInnerVisible(false);\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const submitButton = () => {\n return (\n <View>\n <View\n className=\"xh-action-sheet-main-action-submit\"\n onClick={handleSubmit}\n >\n {submitText}\n </View>\n {showCancel && (\n <View\n className=\"xh-action-sheet-main-action-cancel mode\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n );\n };\n\n const itemRender = () =>\n data.map((item, index) => {\n return renderItem ? (\n renderItem(item, index)\n ) : (\n <View\n className={classNames(\n \"xh-action-sheet-main-panel-item\",\n justifyContent\n )}\n key={index}\n onClick={() => {\n handleConfirm(item, index);\n }}\n >\n {typeof item === \"string\" ? item : item.text}\n </View>\n );\n });\n\n return (\n <View\n className={classNames(\"xh-action-sheet\", { inline })}\n onClick={handleClick}\n >\n <Popup visible={innerVisible}>\n <View\n className={classNames(\"xh-action-sheet-main\", className, mode)}\n style={style}\n >\n <View className=\"xh-action-sheet-main-header\">\n <View className=\"xh-action-sheet-main-header-title\">{title}</View>\n <View className=\"xh-action-sheet-main-header-desc\">\n {description}\n </View>\n {(showClose || (mode === \"controlled\" && !showCancel)) && (\n <View\n className=\"xh-action-sheet-main-header-close\"\n onClick={() => handleCancel()}\n ></View>\n )}\n </View>\n <View\n className={classNames(\"xh-action-sheet-main-panel\", {\n panel: !renderItem,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {ItemWrapper ? (\n <ItemWrapper>{itemRender()}</ItemWrapper>\n ) : (\n <React.Fragment>{itemRender()}</React.Fragment>\n )}\n </View>\n <View\n className=\"xh-action-sheet-main-action\"\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {mode === \"controlled\" ? (\n submitButton()\n ) : (\n <View\n className=\"xh-action-sheet-main-action-cancel\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n </View>\n </Popup>\n {children}\n </View>\n );\n};\n\nexport default ActionSheet;\n"],"names":["ActionSheet","props","_a","visible","title","description","_b","data","onConfirm","onCancel","className","children","style","mode","_c","submitText","_d","cancelText","_e","showCancel","renderItem","ItemWrapper","onSubmit","onClick","_f","showClose","_g","justifyContent","_h","inline","_j","__read","useState","innerVisible","setInnerVisible","handleCancel","bottom","useEffect","handleSubmit","itemRender","map","item","index","React","createElement","View","classNames","key","handleConfirm","text","length","Popup","panel","e","process","env","TARO_ENV","stopPropagation","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ActionSheet/index.tsx"],"sourcesContent":["import React, { useState, ReactNode, ReactElement, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport Popup from \"../Popup\";\nimport \"./index.scss\";\n\nexport interface ActionSheetOption {\n text: ReactNode;\n value: string | number;\n [key: string]: any;\n}\n\nexport type ActionValue = string | ActionSheetOption;\nexport interface ActionProps<T extends ActionValue = ActionValue> {\n visible?: boolean;\n title?: ReactNode;\n data: T[];\n defaultValue?: T;\n className?: string;\n style?: React.CSSProperties;\n onConfirm?: (selectedValue: T, index: number) => void;\n onCancel?: (bottom?: boolean) => void;\n onClose?: () => void;\n onClick?: (flag: boolean) => void;\n children?: ReactNode;\n description?: ReactNode;\n /**\n * @summary controlled模式下,组件为受控组件,需要外部来显示和隐藏\n * @description submit 模式下会显示提交按钮,可以自定义,也可以显示取消按钮但是得传进来一个Toggle事件用来显示隐藏\n */\n mode?: \"controlled\";\n cancelText?: ReactNode;\n /**\n * submit模式下,默认不展示取消按钮,可以设置\n */\n showCancel?: boolean;\n submitText?: string;\n renderItem?: (item: T, index: number) => ReactNode;\n ItemWrapper?: React.FC<{}>;\n onSubmit?: () => void;\n justifyContent?: \"start\" | \"end\";\n /**\n * 显示右上角的关闭、默认只有不显示下面的取消的时候才出现\n */\n showClose?: boolean;\n inline?: boolean;\n}\n\nconst ActionSheet = <T extends ActionValue>(\n props: ActionProps<T>\n): ReactElement => {\n const {\n visible = false,\n title,\n description,\n data = [],\n onConfirm,\n onCancel,\n className,\n children,\n style,\n mode,\n submitText = \"提交\",\n cancelText = \"取消\",\n showCancel = false,\n renderItem,\n ItemWrapper,\n onSubmit,\n onClick,\n showClose = false,\n justifyContent = \"center\",\n inline = false,\n defaultValue = \"\",\n } = props;\n\n const [innerVisible, setInnerVisible] = useState(visible);\n const [value, selectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue?.value\n );\n\n const handleCancel = (bottom?: boolean) => {\n onCancel?.(bottom);\n onClick?.(false);\n setInnerVisible(false);\n };\n\n useEffect(() => {\n setInnerVisible(visible);\n }, [visible]);\n\n const handleClick = () => {\n if (onClick) {\n onClick(!visible);\n return;\n }\n if (data.length <= 0) return;\n setInnerVisible(true);\n };\n\n const handleConfirm = (item: T, index: number) => {\n onConfirm?.(item, index);\n setInnerVisible(false);\n const checkValue = typeof item === \"string\" ? item : item.value;\n selectedValue(checkValue);\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const submitButton = () => {\n return (\n <View>\n <View\n className=\"xh-action-sheet-main-action-submit\"\n onClick={handleSubmit}\n >\n {submitText}\n </View>\n {showCancel && (\n <View\n className=\"xh-action-sheet-main-action-cancel mode\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n );\n };\n\n const itemRender = () =>\n data.map((item, index) => {\n return renderItem ? (\n renderItem(item, index)\n ) : (\n <View\n className={classNames(\n \"xh-action-sheet-main-panel-item\",\n justifyContent,\n {\n active:\n typeof item === \"string\"\n ? item === value\n : item.value === value,\n }\n )}\n key={index}\n onClick={() => {\n handleConfirm(item, index);\n }}\n >\n {typeof item === \"string\" ? item : item.text}\n </View>\n );\n });\n\n const innerShowClose = showClose || (mode === \"controlled\" && !showCancel);\n\n return (\n <View\n className={classNames(\"xh-action-sheet\", { inline })}\n onClick={handleClick}\n >\n <Popup visible={innerVisible}>\n <View\n className={classNames(\"xh-action-sheet-main\", className, mode)}\n style={style}\n >\n {title && (\n <View className=\"xh-action-sheet-main-header\">\n <View className=\"xh-action-sheet-main-header-title\">{title}</View>\n <View className=\"xh-action-sheet-main-header-desc\">\n {description}\n </View>\n {innerShowClose && (\n <View\n className=\"xh-action-sheet-main-header-close\"\n onClick={() => handleCancel()}\n ></View>\n )}\n </View>\n )}\n <View\n className={classNames(\"xh-action-sheet-main-panel\", {\n noTitle: !title,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {ItemWrapper ? (\n <ItemWrapper>{itemRender()}</ItemWrapper>\n ) : (\n <React.Fragment>{itemRender()}</React.Fragment>\n )}\n </View>\n <View\n className={classNames(\"xh-action-sheet-main-action\", {\n noMarinTop: mode !== \"controlled\" && innerShowClose,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {mode === \"controlled\" ? (\n submitButton()\n ) : !innerShowClose ? (\n <View\n className=\"xh-action-sheet-main-action-cancel\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n ) : (\n <div></div>\n )}\n </View>\n </View>\n </Popup>\n {children}\n </View>\n );\n};\n\nexport default ActionSheet;\n"],"names":["ActionSheet","props","_a","visible","title","description","_b","data","onConfirm","onCancel","className","children","style","mode","_c","submitText","_d","cancelText","_e","showCancel","renderItem","ItemWrapper","onSubmit","onClick","_f","showClose","_g","justifyContent","_h","inline","_j","defaultValue","_k","__read","useState","innerVisible","setInnerVisible","_l","value","selectedValue","handleCancel","bottom","useEffect","handleSubmit","itemRender","map","item","index","React","createElement","View","classNames","active","key","checkValue","handleConfirm","text","innerShowClose","length","Popup","noTitle","e","process","env","TARO_ENV","stopPropagation","Fragment","noMarinTop"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import t from"react";import{View as e}from"@tarojs/components";import a from"classnames";var n=function(n){var o=n.value,m=n.maxlength,u=void 0===m?o.length:m,c=n.onFocus,r=n.className,s=n.focus,l=void 0!==s&&s,p=n.shortcut,i=void 0===p?"借全部":p,h=n.step,x=void 0===h?100:h,N=n.errTip,E=void 0===N?"":N,v=n.onUpgrade,d=n.minAmount,f=n.maxAmount,g=n.showUpgrade,k=void 0!==g&&g,b=n.loanOnekey,y=void 0===b?function(){}:b,C=n.placeholder,A=void 0===C?"单笔".concat(d,"-").concat(f,"元,").concat(x,"的整数倍"):C,P=n.slot;var U=a("xh-amount-input",r);return t.createElement(e,{className:U},t.createElement(e,{className:"xh-amount-input-top"},t.createElement(e,{className:"xh-amount-input-top-unit"},"¥"),t.createElement(e,{className:"xh-amount-input-top-amount",onClick:function(t){t.stopPropagation(),c&&c(t)}},t.createElement(e,{className:"xh-amount-input-top-amount-num"},t.createElement(e,{className:"xh-amount-input-top-amount-num-key"}," "),function(){var a=[""];if(""===o)return t.createElement(e,{className:"xh-amount-input-top-amount-num-placeholder"},A);for(var n=0;n<u;n++){var m=o[n];a.push(t.createElement(e,{key:n,className:"xh-amount-input-top-amount-num-key"},m))}return a}(),t.createElement(e,{className:a("xh-amount-input-top-amount-num-cursor",{focus:l})})),t.createElement(e,{className:"xh-amount-input-top-amount-shortcut",onClick:y},i)),E&&t.createElement(e,{className:"xh-amount-input-top-error"},E)),P&&t.createElement(e,{className:"xh-amount-input-slot"},P),t.createElement(e,{className:"xh-amount-input-bottom"},t.createElement(e,{className:"xh-amount-input-bottom-range"},"单笔可借:",t.createElement(e,{className:"xh-amount-input-bottom-range-number"},d,"-",f,"元")),k&&t.createElement(e,{className:"xh-amount-input-bottom-tip"},"额度不满意?",t.createElement(e,{className:"xh-amount-input-bottom-tip-update",onClick:function(t){t.stopPropagation(),null==v||v()}},"立即提额"))))};export{n as default};
1
+ import t from"react";import{View as e}from"@tarojs/components";import a from"classnames";var n=function(n){var o=n.value,m=n.maxlength,u=void 0===m?o.length:m,c=n.onFocus,r=n.className,s=n.focus,l=void 0!==s&&s,p=n.shortcut,i=void 0===p?"借全部":p,h=n.step,x=void 0===h?100:h,N=n.errTip,E=void 0===N?"":N,v=n.onUpgrade,d=n.minAmount,f=n.maxAmount,g=n.showUpgrade,k=void 0!==g&&g,b=n.loanOnekey,y=void 0===b?function(){}:b,C=n.placeholder,w=void 0===C?"单笔".concat(d,"-").concat(f,"元,").concat(x,"的整数倍"):C,A=n.slot,P=n.showBottom,U=void 0===P||P;var j=a("xh-amount-input",r);return t.createElement(e,{className:j},t.createElement(e,{className:"xh-amount-input-top"},t.createElement(e,{className:"xh-amount-input-top-unit"},"¥"),t.createElement(e,{className:"xh-amount-input-top-amount",onClick:function(t){t.stopPropagation(),c&&c(t)}},t.createElement(e,{className:"xh-amount-input-top-amount-num"},t.createElement(e,{className:"xh-amount-input-top-amount-num-key"}," "),function(){var a=[""];if(""===o)return t.createElement(e,{className:"xh-amount-input-top-amount-num-placeholder"},w);for(var n=0;n<u;n++){var m=o[n];a.push(t.createElement(e,{key:n,className:"xh-amount-input-top-amount-num-key"},m))}return a}(),t.createElement(e,{className:a("xh-amount-input-top-amount-num-cursor",{focus:l})})),t.createElement(e,{className:"xh-amount-input-top-amount-shortcut",onClick:y},"string"==typeof i?t.createElement(e,{className:"xh-amount-input-top-amount-shortcut-text"},i):i)),E&&t.createElement(e,{className:"xh-amount-input-top-error"},E)),A&&t.createElement(e,{className:"xh-amount-input-slot"},A),U&&t.createElement(e,{className:"xh-amount-input-bottom"},t.createElement(e,{className:"xh-amount-input-bottom-range"},"单笔可借:",t.createElement(e,{className:"xh-amount-input-bottom-range-number"},d,"-",f,"元")),k&&t.createElement(e,{className:"xh-amount-input-bottom-tip"},"额度不满意?",t.createElement(e,{className:"xh-amount-input-bottom-tip-update",onClick:function(t){t.stopPropagation(),null==v||v()}},"立即提额"))))};export{n as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/AmountInput/index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type AmountInputProps = {\n space?: number;\n value: string;\n maxlength: number;\n onFocus?: (e) => void;\n unit?: string;\n slot?: ReactNode;\n shortcut?: string;\n errTip?: string;\n maxAmount?: number | string;\n minAmount?: number | string;\n showUpgrade?: boolean;\n onUpgrade?: () => void;\n loanOnekey?: () => void;\n placeholder?: string;\n focus?: boolean;\n /** 借款步长 */\n step?: number;\n} & XHComponentCommonProps;\n\nconst AmountInput: React.FC<AmountInputProps> = props => {\n const {\n value,\n maxlength = value.length,\n onFocus,\n className,\n focus = false,\n shortcut = \"借全部\",\n step = 100,\n errTip = \"\",\n onUpgrade,\n minAmount,\n maxAmount,\n showUpgrade = false,\n loanOnekey = () => {},\n placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`,\n slot,\n } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [\"\"];\n\n if (value === \"\")\n return (\n <View className=\"xh-amount-input-top-amount-num-placeholder\">\n {placeholder}\n </View>\n );\n for (let i = 0; i < maxlength; i++) {\n const char = value[i];\n Inputs.push(\n <View key={i} className=\"xh-amount-input-top-amount-num-key\">\n {char}\n </View>\n );\n }\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const cls = classNames(\"xh-amount-input\", className);\n\n const handleUpgrade = (e: ITouchEvent) => {\n e.stopPropagation();\n onUpgrade?.();\n };\n\n return (\n <View className={cls}>\n <View className=\"xh-amount-input-top\">\n <View className=\"xh-amount-input-top-unit\">&yen;</View>\n <View className=\"xh-amount-input-top-amount\" onClick={handlerClick}>\n <View className=\"xh-amount-input-top-amount-num\">\n <View className=\"xh-amount-input-top-amount-num-key\">&nbsp;</View>\n {renderInputs()}\n <View\n className={classNames(\"xh-amount-input-top-amount-num-cursor\", {\n focus,\n })}\n ></View>\n </View>\n <View\n className=\"xh-amount-input-top-amount-shortcut\"\n onClick={loanOnekey}\n >\n {shortcut}\n </View>\n </View>\n {errTip && <View className=\"xh-amount-input-top-error\">{errTip}</View>}\n </View>\n {slot && <View className=\"xh-amount-input-slot\">{slot}</View>}\n <View className=\"xh-amount-input-bottom\">\n <View className=\"xh-amount-input-bottom-range\">\n 单笔可借:\n <View className=\"xh-amount-input-bottom-range-number\">\n {minAmount}-{maxAmount}元\n </View>\n </View>\n {showUpgrade && (\n <View className=\"xh-amount-input-bottom-tip\">\n 额度不满意?\n <View\n className=\"xh-amount-input-bottom-tip-update\"\n onClick={handleUpgrade}\n >\n 立即提额\n </View>\n </View>\n )}\n </View>\n </View>\n );\n};\n\nexport default AmountInput;\n"],"names":["AmountInput","props","value","_a","maxlength","length","onFocus","className","_b","focus","_c","shortcut","_d","step","_e","errTip","onUpgrade","minAmount","maxAmount","_f","showUpgrade","_g","loanOnekey","_h","placeholder","concat","slot","cls","classNames","React","createElement","View","onClick","e","stopPropagation","Inputs","i","char","push","key","renderInputs"],"mappings":"yFA0BM,IAAAA,EAA0C,SAAAC,GAE5C,IAAAC,EAeED,EAfGC,MACLC,EAcEF,EAAKG,UAdPA,OAAY,IAAAD,EAAAD,EAAMG,OAAMF,EACxBG,EAaEL,EAbKK,QACPC,EAYEN,EAAKM,UAXPC,EAWEP,EAXWQ,MAAbA,OAAK,IAAAD,GAAQA,EACbE,EAUET,EAAKU,SAVPA,OAAW,IAAAD,EAAA,QACXE,EASEX,EAAKY,KATPA,OAAO,IAAAD,EAAA,IAAGA,EACVE,EAQEb,EARSc,OAAXA,OAAS,IAAAD,EAAA,GAAEA,EACXE,EAOEf,EAAKe,UANPC,EAMEhB,EANOgB,UACTC,EAKEjB,EALOiB,UACTC,EAIElB,EAJiBmB,YAAnBA,OAAW,IAAAD,GAAQA,EACnBE,EAGEpB,EAHmBqB,WAArBA,OAAU,IAAAD,EAAG,aAAQA,EACrBE,EAEEtB,EAFsDuB,YAAxDA,OAAW,IAAAD,EAAG,YAAKN,EAAS,KAAAQ,OAAIP,EAAS,MAAAO,OAAKZ,EAAI,QAAMU,EACxDG,EACEzB,EAAKyB,KA0BT,IAAMC,EAAMC,EAAW,kBAAmBrB,GAO1C,OACEsB,EAACC,cAAAC,EAAK,CAAAxB,UAAWoB,GACfE,EAAAC,cAACC,EAAI,CAACxB,UAAU,uBACdsB,EAAAC,cAACC,EAAI,CAACxB,UAAU,4BAAuC,KACvDsB,EAACC,cAAAC,GAAKxB,UAAU,6BAA6ByB,QAfnD,SAAsBC,GACpBA,EAAEC,kBACF5B,GAAWA,EAAQ2B,EACpB,GAaOJ,EAAAC,cAACC,EAAI,CAACxB,UAAU,kCACdsB,EAAAC,cAACC,EAAI,CAACxB,UAAU,sCAAkD,KArC5E,WACE,IAAM4B,EAAc,CAAC,IAErB,GAAc,KAAVjC,EACF,OACE2B,EAACC,cAAAC,EAAK,CAAAxB,UAAU,8CACbiB,GAGP,IAAK,IAAIY,EAAI,EAAGA,EAAIhC,EAAWgC,IAAK,CAClC,IAAMC,EAAOnC,EAAMkC,GACnBD,EAAOG,KACLT,EAACC,cAAAC,GAAKQ,IAAKH,EAAG7B,UAAU,sCACrB8B,GAGN,CACD,OAAOF,CACR,CAoBUK,GACDX,EAAAC,cAACC,EACC,CAAAxB,UAAWqB,EAAW,wCAAyC,CAC7DnB,MAAKA,OAIXoB,EAAAC,cAACC,EAAI,CACHxB,UAAU,sCACVyB,QAASV,GAERX,IAGJI,GAAUc,EAACC,cAAAC,EAAK,CAAAxB,UAAU,6BAA6BQ,IAEzDW,GAAQG,gBAACE,EAAI,CAACxB,UAAU,wBAAwBmB,GACjDG,EAAAC,cAACC,EAAI,CAACxB,UAAU,0BACdsB,EAAAC,cAACC,EAAI,CAACxB,UAAU,wCAEdsB,EAAAC,cAACC,EAAI,CAACxB,UAAU,uCACbU,MAAYC,QAGhBE,GACCS,EAAAC,cAACC,EAAK,CAAAxB,UAAU,uCAEdsB,EAAAC,cAACC,EAAI,CACHxB,UAAU,oCACVyB,QAzCU,SAACC,GACrBA,EAAEC,kBACFlB,SAAAA,GACF,aA+CF"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/AmountInput/index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type AmountInputProps = {\n space?: number;\n value: string;\n maxlength: number;\n onFocus?: (e) => void;\n unit?: string;\n slot?: ReactNode;\n shortcut?: ReactNode;\n errTip?: string;\n maxAmount?: number | string;\n minAmount?: number | string;\n showUpgrade?: boolean;\n onUpgrade?: () => void;\n loanOnekey?: () => void;\n placeholder?: string;\n focus?: boolean;\n /** 借款步长 */\n step?: number;\n showBottom?: boolean;\n} & XHComponentCommonProps;\n\nconst AmountInput: React.FC<AmountInputProps> = props => {\n const {\n value,\n maxlength = value.length,\n onFocus,\n className,\n focus = false,\n shortcut = \"借全部\",\n step = 100,\n errTip = \"\",\n onUpgrade,\n minAmount,\n maxAmount,\n showUpgrade = false,\n loanOnekey = () => {},\n placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`,\n slot,\n showBottom = true,\n } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [\"\"];\n\n if (value === \"\")\n return (\n <View className=\"xh-amount-input-top-amount-num-placeholder\">\n {placeholder}\n </View>\n );\n for (let i = 0; i < maxlength; i++) {\n const char = value[i];\n Inputs.push(\n <View key={i} className=\"xh-amount-input-top-amount-num-key\">\n {char}\n </View>\n );\n }\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const cls = classNames(\"xh-amount-input\", className);\n\n const handleUpgrade = (e: ITouchEvent) => {\n e.stopPropagation();\n onUpgrade?.();\n };\n\n return (\n <View className={cls}>\n <View className=\"xh-amount-input-top\">\n <View className=\"xh-amount-input-top-unit\">&yen;</View>\n <View className=\"xh-amount-input-top-amount\" onClick={handlerClick}>\n <View className=\"xh-amount-input-top-amount-num\">\n <View className=\"xh-amount-input-top-amount-num-key\">&nbsp;</View>\n {renderInputs()}\n <View\n className={classNames(\"xh-amount-input-top-amount-num-cursor\", {\n focus,\n })}\n ></View>\n </View>\n <View\n className=\"xh-amount-input-top-amount-shortcut\"\n onClick={loanOnekey}\n >\n {typeof shortcut === \"string\" ? (\n <View className=\"xh-amount-input-top-amount-shortcut-text\">\n {shortcut}\n </View>\n ) : (\n shortcut\n )}\n </View>\n </View>\n {errTip && <View className=\"xh-amount-input-top-error\">{errTip}</View>}\n </View>\n {slot && <View className=\"xh-amount-input-slot\">{slot}</View>}\n {showBottom && (\n <View className=\"xh-amount-input-bottom\">\n <View className=\"xh-amount-input-bottom-range\">\n 单笔可借:\n <View className=\"xh-amount-input-bottom-range-number\">\n {minAmount}-{maxAmount}元\n </View>\n </View>\n {showUpgrade && (\n <View className=\"xh-amount-input-bottom-tip\">\n 额度不满意?\n <View\n className=\"xh-amount-input-bottom-tip-update\"\n onClick={handleUpgrade}\n >\n 立即提额\n </View>\n </View>\n )}\n </View>\n )}\n </View>\n );\n};\n\nexport default AmountInput;\n"],"names":["AmountInput","props","value","_a","maxlength","length","onFocus","className","_b","focus","_c","shortcut","_d","step","_e","errTip","onUpgrade","minAmount","maxAmount","_f","showUpgrade","_g","loanOnekey","_h","placeholder","concat","slot","_j","showBottom","cls","classNames","React","createElement","View","onClick","e","stopPropagation","Inputs","i","char","push","key","renderInputs"],"mappings":"yFA2BM,IAAAA,EAA0C,SAAAC,GAE5C,IAAAC,EAgBED,EAAKC,MAfPC,EAeEF,EAAKG,UAfPA,OAAY,IAAAD,EAAAD,EAAMG,OAAMF,EACxBG,EAcEL,EAAKK,QAbPC,EAaEN,EAbOM,UACTC,EAYEP,EAZWQ,MAAbA,OAAK,IAAAD,GAAQA,EACbE,EAWET,EAAKU,SAXPA,OAAW,IAAAD,EAAA,MAAKA,EAChBE,EAUEX,EAVQY,KAAVA,OAAI,IAAAD,EAAG,IAAGA,EACVE,EASEb,EAAKc,OATPA,OAAS,IAAAD,EAAA,GAAEA,EACXE,EAQEf,EAAKe,UAPPC,EAOEhB,EAPOgB,UACTC,EAMEjB,EAAKiB,UALPC,EAKElB,EAAKmB,YALPA,OAAc,IAAAD,GAAKA,EACnBE,EAIEpB,EAJmBqB,WAArBA,OAAU,IAAAD,EAAG,WAAO,EAACA,EACrBE,EAGEtB,EAHsDuB,YAAxDA,OAAW,IAAAD,EAAG,KAAKE,OAAAR,EAAa,KAAAQ,OAAAP,EAAc,MAAAO,OAAAZ,EAAU,QAAAU,EACxDG,EAEEzB,EAFEyB,KACJC,EACE1B,EADe2B,WAAjBA,OAAU,IAAAD,GAAOA,EA2BnB,IAAME,EAAMC,EAAW,kBAAmBvB,GAO1C,OACEwB,EAACC,cAAAC,EAAK,CAAA1B,UAAWsB,GACfE,EAAAC,cAACC,EAAI,CAAC1B,UAAU,uBACdwB,EAAAC,cAACC,EAAI,CAAC1B,UAAU,4BAAuC,KACvDwB,EAACC,cAAAC,GAAK1B,UAAU,6BAA6B2B,QAfnD,SAAsBC,GACpBA,EAAEC,kBACF9B,GAAWA,EAAQ6B,EACpB,GAaOJ,EAAAC,cAACC,EAAI,CAAC1B,UAAU,kCACdwB,EAAAC,cAACC,EAAI,CAAC1B,UAAU,sCAAkD,KArC5E,WACE,IAAM8B,EAAc,CAAC,IAErB,GAAc,KAAVnC,EACF,OACE6B,EAACC,cAAAC,EAAK,CAAA1B,UAAU,8CACbiB,GAGP,IAAK,IAAIc,EAAI,EAAGA,EAAIlC,EAAWkC,IAAK,CAClC,IAAMC,EAAOrC,EAAMoC,GACnBD,EAAOG,KACLT,EAACC,cAAAC,GAAKQ,IAAKH,EAAG/B,UAAU,sCACrBgC,GAGN,CACD,OAAOF,CACR,CAoBUK,GACDX,EAAAC,cAACC,EACC,CAAA1B,UAAWuB,EAAW,wCAAyC,CAC7DrB,MAAKA,OAIXsB,EAAAC,cAACC,EAAI,CACH1B,UAAU,sCACV2B,QAASZ,GAEY,iBAAbX,EACNoB,EAAAC,cAACC,EAAK,CAAA1B,UAAU,4CACbI,OAORI,GAAUgB,EAACC,cAAAC,EAAK,CAAA1B,UAAU,6BAA6BQ,IAEzDW,GAAQK,gBAACE,EAAI,CAAC1B,UAAU,wBAAwBmB,GAChDE,GACCG,EAAAC,cAACC,EAAK,CAAA1B,UAAU,0BACdwB,EAAAC,cAACC,EAAI,CAAC1B,UAAU,wCAEdwB,EAAAC,cAACC,EAAI,CAAC1B,UAAU,uCACbU,MAAYC,QAGhBE,GACCW,EAAAC,cAACC,EAAK,CAAA1B,UAAU,uCAEdwB,EAAAC,cAACC,EACC,CAAA1B,UAAU,oCACV2B,QAhDQ,SAACC,GACrBA,EAAEC,kBACFpB,SAAAA,GACF,GA6CoC,UAUtC"}
@@ -1,2 +1,2 @@
1
- import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as n,useEffect as a,useCallback as o}from"react";import r from"classnames";import{View as l}from"@tarojs/components";import{pxTransform as m}from"../src/utils/index.js";import u from"../Badge/index.js";import c from"../Space/index.js";import i from"../node_modules/react-transition-group/esm/CSSTransition.js";var s=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"00",value:"00",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],p=function(p){var d=p.onBlur,y=p.show,v=p.maxLength,x=void 0===v?Number.MAX_SAFE_INTEGER:v,f=p.closeOnClickSpace,b=void 0===f||f,k=p.onClose,h=p.onChange,E=p.value,g=p.className,N=p.onConfirm,C=p.recommend,j=void 0===C?[]:C,S=p.header,_=p.disabled,L=void 0!==_&&_,w=p.tip,A=e(n(E),2),O=A[0],P=A[1];function T(e){k&&k(e),d&&d(e)}a((function(){return b&&document.addEventListener("click",T),function(){document.removeEventListener("click",T)}}),[]),a((function(){P(E)}),[E]);var B=o((function(e,t){var n=t.type,a=t.value;if("h5"===process.env.TARO_ENV&&e.stopImmediatePropagation(),!L&&"none"!==n)if("close"!==n){var o=O;"delete"===n?o=O.slice(0,O.length-1):o.replace(/^0+/g,"").length<x&&(o=O+a),o!==O&&(P(o),null==h||h(o))}else T(e)}),[O,L]),I=r("xh-amount-keyboard",g);return t.createElement(i,{classNames:"slide-up",in:y,unmountOnExit:!0,timeout:200},t.createElement(l,{className:I},t.createElement(l,{className:"xh-amount-keyboard-header"},t.createElement(l,{className:"xh-amount-keyboard-header-wrapper"},S||j.length>0&&t.createElement(l,{className:"xh-amount-keyboard-header-wrapper-text"},"猜您想借"," ",t.createElement(c,{style:{marginLeft:m(24)}},null==j?void 0:j.map((function(e,n){return t.createElement(l,{key:n,onClick:function(t){return function(e,t){e.stopPropagation(),null==N||N("".concat(t),!0)}(t,e)}},t.createElement(u,{content:"¥".concat(e),key:n}))})))),w)),t.createElement(l,{className:"xh-amount-keyboard-body"},s.map((function(e,n){return t.createElement(l,{key:n,className:r("xh-amount-keyboard-body-key",{none:"none"===e.type,delete:"delete"===e.type,close:"close"===e.type}),onClick:function(t){B(t,e)}},e.text)})),t.createElement(l,{className:"xh-amount-keyboard-body-key confirm-fake",onClick:function(e){e.stopPropagation(),null==N||N(O)}},"确定"))))};export{p as default};
1
+ import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as n,useEffect as a,useCallback as o}from"react";import r from"classnames";import{View as l}from"@tarojs/components";import{pxTransform as u}from"../src/utils/index.js";import m from"../Badge/index.js";import c from"../Space/index.js";import p from"../node_modules/react-transition-group/esm/CSSTransition.js";var i=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"00",value:"00",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],s=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"·",value:".",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],y=function(y){var x=y.onBlur,v=y.show,d=y.maxLength,b=void 0===d?Number.MAX_SAFE_INTEGER:d,f=y.closeOnClickSpace,h=void 0===f||f,k=y.onClose,E=y.onChange,g=y.value,N=y.className,C=y.onConfirm,j=y.recommend,O=void 0===j?[]:j,S=y.header,_=y.disabled,L=void 0!==_&&_,w=y.tip,A=y.decimal,P=e(n(g),2),T=P[0],B=P[1];function I(e){k&&k(e),x&&x(e)}a((function(){return h&&document.addEventListener("click",I),function(){document.removeEventListener("click",I)}}),[]),a((function(){B(g)}),[g]);var R=o((function(e,t){var n=t.type,a=t.value;if("h5"===process.env.TARO_ENV&&e.stopImmediatePropagation(),!L&&"none"!==n&&("."!==a||""!==T))if("close"!==n){var o=T;"delete"===n?o=T.slice(0,T.length-1):o.replace(/^0+/g,"").length<b&&(o=T+a),A&&0===a&&""===T&&(o=a+"."),"."===a&&T.includes(".")||"number"===n&&T.indexOf(".")>-1&&T.length-T.indexOf(".")==3||o!==T&&(B(o),null==E||E(o))}else I(e)}),[T,L]),F=A?s:i,G=r("xh-amount-keyboard",N);return t.createElement(p,{classNames:"slide-up",in:v,unmountOnExit:!0,timeout:200},t.createElement(l,{className:G},t.createElement(l,{className:"xh-amount-keyboard-header"},t.createElement(l,{className:"xh-amount-keyboard-header-wrapper"},S||O.length>0&&t.createElement(l,{className:"xh-amount-keyboard-header-wrapper-text"},"猜您想借"," ",t.createElement(c,{style:{marginLeft:u(24)}},null==O?void 0:O.map((function(e,n){return t.createElement(l,{key:n,onClick:function(t){return function(e,t){e.stopPropagation(),null==C||C("".concat(t),!0)}(t,e)}},t.createElement(m,{content:"¥".concat(e),key:n}))})))),w)),t.createElement(l,{className:"xh-amount-keyboard-body"},F.map((function(e,n){return t.createElement(l,{key:n,className:r("xh-amount-keyboard-body-key",{none:"none"===e.type,delete:"delete"===e.type,close:"close"===e.type}),onClick:function(t){R(t,e)}},e.text)})),t.createElement(l,{className:"xh-amount-keyboard-body-key confirm-fake",onClick:function(e){e.stopPropagation(),null==C||C(T)}},"确定"))))};export{y as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/AmountKeyboard/index.tsx"],"sourcesContent":["import React, {\n FC,\n useState,\n useEffect,\n MouseEvent,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\n\nimport Badge from \"../Badge\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Space from \"../Space\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n header?: ReactNode;\n /**\n *\n * @param value 输入值\n * @param recommend 是否是点击推荐金额触发\n * @returns void\n */\n onConfirm?: (value: string, recommend?: boolean) => void;\n recommend?: Array<number | string>;\n tip?: ReactNode;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\" | \"close\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst XHAmountKeys: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"00\", value: \"00\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst AmountKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n className,\n onConfirm,\n recommend = [],\n header,\n disabled = false,\n tip,\n } = props;\n const [input, setInput] = useState(value);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n const handleOnRecommand = (e: ITouchEvent, amount: number | string) => {\n e.stopPropagation();\n onConfirm?.(`${amount}`, true);\n };\n\n const handleKeyPress = useCallback(\n (e, { type, value }: IKey): void => {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (disabled) return;\n if (type === \"none\") return;\n\n if (type === \"close\") {\n handleClose(e);\n return;\n }\n let newInput = input;\n\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.replace(/^0+/g, \"\").length < maxLength) {\n newInput = input + value;\n }\n\n // 前后两个值相等就不触发onchange\n if (newInput === input) return;\n setInput(newInput);\n onChange?.(newInput);\n },\n [input, disabled]\n );\n\n const handleConfirm = (e: ITouchEvent) => {\n e.stopPropagation();\n onConfirm?.(input);\n };\n const keyboardcls = classNames(\"xh-amount-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-amount-keyboard-header\">\n <View className=\"xh-amount-keyboard-header-wrapper\">\n {header ||\n (recommend.length > 0 && (\n <View className=\"xh-amount-keyboard-header-wrapper-text\">\n 猜您想借{\" \"}\n <Space style={{ marginLeft: pxTransform(24) }}>\n {recommend?.map((amount, index) => (\n <View\n key={index}\n onClick={e => handleOnRecommand(e, amount)}\n >\n <Badge content={`¥${amount}`} key={index} />\n </View>\n ))}\n </Space>\n </View>\n ))}\n {tip}\n </View>\n </View>\n <View className=\"xh-amount-keyboard-body\">\n {XHAmountKeys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-amount-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n close: key.type === \"close\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n <View\n className=\"xh-amount-keyboard-body-key confirm-fake\"\n onClick={handleConfirm}\n >\n 确定\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default AmountKeyboard;\n"],"names":["XHAmountKeys","text","value","type","AmountKeyboard","props","onBlur","show","_a","maxLength","Number","MAX_SAFE_INTEGER","_b","closeOnClickSpace","onClose","onChange","className","onConfirm","_c","recommend","header","_d","disabled","tip","_e","__read","useState","input","setInput","handleClose","e","useEffect","document","addEventListener","removeEventListener","handleKeyPress","useCallback","process","env","TARO_ENV","stopImmediatePropagation","newInput","slice","length","replace","keyboardcls","classNames","React","createElement","CSSTransition","in","unmountOnExit","timeout","View","Space","style","marginLeft","pxTransform","map","amount","index","key","onClick","stopPropagation","concat","handleOnRecommand","Badge","content","none","delete","close"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/AmountKeyboard/index.tsx"],"sourcesContent":["import React, {\n FC,\n useState,\n useEffect,\n MouseEvent,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\n\nimport Badge from \"../Badge\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Space from \"../Space\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n /**\n * 是否支持小数,小数保留小数点后两位,默认不支持\n */\n decimal?: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n header?: ReactNode;\n /**\n *\n * @param value 输入值\n * @param recommend 是否是点击推荐金额触发\n * @returns void\n */\n onConfirm?: (value: string, recommend?: boolean) => void;\n recommend?: Array<number | string>;\n tip?: ReactNode;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\" | \"close\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst XHAmountKeys: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"00\", value: \"00\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst XHAmountKeysWithDot: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"·\", value: \".\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst AmountKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n className,\n onConfirm,\n recommend = [],\n header,\n disabled = false,\n tip,\n decimal,\n } = props;\n const [input, setInput] = useState(value);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n const handleOnRecommand = (e: ITouchEvent, amount: number | string) => {\n e.stopPropagation();\n onConfirm?.(`${amount}`, true);\n };\n\n const handleKeyPress = useCallback(\n (e, { type, value }: IKey): void => {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (disabled) return;\n if (type === \"none\") return;\n // 第一个字符不能是.\n if (value === \".\" && input === \"\") return;\n if (type === \"close\") {\n handleClose(e);\n return;\n }\n let newInput = input;\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.replace(/^0+/g, \"\").length < maxLength) {\n newInput = input + value;\n }\n // 支持小数点的情况下,如果第一个是0,自动填充.\n if (decimal && value === 0 && input === \"\") newInput = value + \".\";\n\n // 不能包含多个小数点\n if (value === \".\" && input.includes(\".\")) return;\n // 保留两位小数\n if (\n type === \"number\" &&\n input.indexOf(\".\") > -1 &&\n input.length - input.indexOf(\".\") === 3\n )\n return;\n\n // 前后两个值相等就不触发onchange\n if (newInput === input) return;\n setInput(newInput);\n onChange?.(newInput);\n },\n [input, disabled]\n );\n\n const renderKeys = decimal ? XHAmountKeysWithDot : XHAmountKeys;\n\n const handleConfirm = (e: ITouchEvent) => {\n e.stopPropagation();\n onConfirm?.(input);\n };\n const keyboardcls = classNames(\"xh-amount-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-amount-keyboard-header\">\n <View className=\"xh-amount-keyboard-header-wrapper\">\n {header ||\n (recommend.length > 0 && (\n <View className=\"xh-amount-keyboard-header-wrapper-text\">\n 猜您想借{\" \"}\n <Space style={{ marginLeft: pxTransform(24) }}>\n {recommend?.map((amount, index) => (\n <View\n key={index}\n onClick={e => handleOnRecommand(e, amount)}\n >\n <Badge content={`¥${amount}`} key={index} />\n </View>\n ))}\n </Space>\n </View>\n ))}\n {tip}\n </View>\n </View>\n <View className=\"xh-amount-keyboard-body\">\n {renderKeys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-amount-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n close: key.type === \"close\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n <View\n className=\"xh-amount-keyboard-body-key confirm-fake\"\n onClick={handleConfirm}\n >\n 确定\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default AmountKeyboard;\n"],"names":["XHAmountKeys","text","value","type","XHAmountKeysWithDot","AmountKeyboard","props","onBlur","show","_a","maxLength","Number","MAX_SAFE_INTEGER","_b","closeOnClickSpace","onClose","onChange","className","onConfirm","_c","recommend","header","_d","disabled","tip","decimal","_e","__read","useState","input","setInput","handleClose","e","useEffect","document","addEventListener","removeEventListener","handleKeyPress","useCallback","process","env","TARO_ENV","stopImmediatePropagation","newInput","slice","length","replace","includes","indexOf","renderKeys","keyboardcls","classNames","React","createElement","CSSTransition","in","unmountOnExit","timeout","View","Space","style","marginLeft","pxTransform","map","amount","index","key","onClick","stopPropagation","concat","handleOnRecommand","Badge","content","none","delete","close"],"mappings":"qYAoDA,IAAMA,EAAuB,CAC3B,CAAEC,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,UAC7B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,QAC7B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,QAC7B,CAAEF,KAAM,KAAMC,MAAO,KAAMC,KAAM,UACjC,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,SAC7B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,SAGzBC,EAA8B,CAClC,CAAEH,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,UAC7B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,QAC7B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,QAC7B,CAAEF,KAAM,IAAKC,MAAO,IAAKC,KAAM,UAC/B,CAAEF,KAAM,EAAGC,MAAO,EAAGC,KAAM,UAC3B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,SAC7B,CAAEF,KAAM,GAAIC,MAAO,GAAIC,KAAM,SAGzBE,EAA0C,SAAAC,GAE5C,IAAAC,EAcED,SAbFE,EAaEF,EAAKE,KAZPC,EAYEH,EAZiCI,UAAnCA,OAAY,IAAAD,EAAAE,OAAOC,iBAAgBH,EACnCI,EAWEP,EAXsBQ,kBAAxBA,OAAoB,IAAAD,KACpBE,EAUET,EAAKS,QATPC,EASEV,EATMU,SACRd,EAQEI,EARGJ,MACLe,EAOEX,YANFY,EAMEZ,EAAKY,UALPC,EAKEb,YALFc,aAAY,GAAED,EACdE,EAIEf,EAAKe,OAHPC,EAGEhB,WAHFiB,cAAgBD,EAChBE,EAEElB,EAFCkB,IACHC,EACEnB,UACEoB,EAAAC,EAAoBC,EAAS1B,GAAM,GAAlC2B,EAAKH,EAAA,GAAEI,OAgBd,SAASC,EAAYC,GACnBjB,GAAWA,EAAQiB,GACnBzB,GAAUA,EAAOyB,EAClB,CAjBDC,GAAU,WAKR,OAJInB,GACFoB,SAASC,iBAAiB,QAASJ,GAG9B,WACLG,SAASE,oBAAoB,QAASL,EACxC,CACD,GAAE,IAEHE,GAAU,WACRH,EAAS5B,EACX,GAAG,CAACA,IAOJ,IAKMmC,EAAiBC,GACrB,SAACN,EAAGvB,OAAEN,EAAIM,EAAAN,KAAED,EAAKO,EAAAP,MAIf,GAH6B,OAAzBqC,QAAQC,IAAIC,UACdT,EAAEU,4BAEAnB,GACS,SAATpB,IAEU,MAAVD,GAA2B,KAAV2B,GACrB,GAAa,UAAT1B,EAAJ,CAIA,IAAIwC,EAAWd,EACF,WAAT1B,EACFwC,EAAWd,EAAMe,MAAM,EAAGf,EAAMgB,OAAS,GAChCF,EAASG,QAAQ,OAAQ,IAAID,OAASnC,IAC/CiC,EAAWd,EAAQ3B,GAGjBuB,GAAqB,IAAVvB,GAAyB,KAAV2B,IAAcc,EAAWzC,EAAQ,KAGjD,MAAVA,GAAiB2B,EAAMkB,SAAS,MAGzB,WAAT5C,GACA0B,EAAMmB,QAAQ,MAAQ,GACtBnB,EAAMgB,OAAShB,EAAMmB,QAAQ,MAAS,GAKpCL,IAAad,IACjBC,EAASa,GACT3B,SAAAA,EAAW2B,GAvBV,MAFCZ,EAAYC,EA0BhB,GACA,CAACH,EAAON,IAGJ0B,EAAaxB,EAAUrB,EAAsBJ,EAM7CkD,EAAcC,EAAW,qBAAsBlC,GAErD,OACEmC,EAACC,cAAAC,EAAc,CAAAH,WAAW,WAAWI,GAAI/C,EAAMgD,eAAc,EAAAC,QAAS,KACpEL,EAAAC,cAACK,EAAI,CAACzC,UAAWiC,GACfE,EAAAC,cAACK,EAAI,CAACzC,UAAU,6BACdmC,EAAAC,cAACK,EAAI,CAACzC,UAAU,qCACbI,GACED,EAAUyB,OAAS,GAClBO,EAAAC,cAACK,EAAI,CAACzC,UAAU,iDACT,IACLmC,EAACC,cAAAM,GAAMC,MAAO,CAAEC,WAAYC,EAAY,MACrC1C,aAAS,EAATA,EAAW2C,KAAI,SAACC,EAAQC,GAAU,OACjCb,EAACC,cAAAK,GACCQ,IAAKD,EACLE,QAAS,SAAAnC,GAAK,OAlEV,SAACA,EAAgBgC,GACzChC,EAAEoC,kBACFlD,SAAAA,EAAY,GAAGmD,OAAAL,IAAU,EAC3B,CA+DoCM,CAAkBtC,EAAGgC,KAEnCZ,EAACC,cAAAkB,GAAMC,QAAS,WAAIR,GAAUE,IAAKD,IALJ,MAW1CzC,IAGL4B,EAAAC,cAACK,EAAI,CAACzC,UAAU,2BACbgC,EAAWc,KAAI,SAACG,EAAKD,GAAU,OAC9Bb,EAAAC,cAACK,EACC,CAAAQ,IAAKD,EACLhD,UAAWkC,EAAW,8BAA+B,CACnDsB,KAAmB,SAAbP,EAAI/D,KACVuE,OAAqB,WAAbR,EAAI/D,KACZwE,MAAoB,UAAbT,EAAI/D,OAEbgE,QAAS,SAAAnC,GACPK,EAAeL,EAAGkC,EACnB,GAEAA,EAAIjE,SAGTmD,EAAAC,cAACK,EAAI,CACHzC,UAAU,2CACVkD,QAhDY,SAACnC,GACrBA,EAAEoC,kBACFlD,SAAAA,EAAYW,EACd,GAgDe,QAKjB"}
@@ -0,0 +1,2 @@
1
+ import e,{forwardRef as n,useImperativeHandle as a}from"react";import r from"classnames";import{View as o}from"@tarojs/components";import t from"../FormInput/index.js";import{checkBankCard as l,creditCard as c}from"../src/utils/index.js";var i=n((function(n,i){var m=n.showScan,u=void 0!==m&&m,s=n.label,d=n.value,p=n.bankName,f=n.readOnly,b=n.direction,h=void 0===b?"column":b,v=n.onScan,x=n.placeholder,g=void 0===x?"请输入卡号":x,E=n.onError,k=n.onChange,N=n.maxlength,j=void 0===N?23:N,y=n.slot,C=n.className,w=n.border;return a(i,(function(){return{isValid:l(d.replace(/\s/g,"")),focus:function(){var e;"object"==typeof i&&(null===(e=null==i?void 0:i.current)||void 0===e||e.focus())}}})),e.createElement(o,{className:r("xh-bankcard-number-input",C)},e.createElement(t,{padding:!0,ref:i,RightComponent:u&&e.createElement(o,{onClick:function(){null==v||v()},className:"xh-bankcard-number-input-scan"}),direction:h,label:s,mainExtra:"row"!==h&&e.createElement(o,{className:"xh-bankcard-number-input-name"},p),maxlength:j,placeholder:g,readonly:f,type:"tel",border:w,value:c(d),onBlur:function(e){l(e)||null==E||E()},onChange:function(e){var n=c(e);null==k||k(n)}}),y&&e.createElement(o,{className:"xh-bankcard-number-input-slot"},y))}));export{i as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/BankCardNumberInput/index.tsx"],"sourcesContent":["import React, { ReactNode, forwardRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput from \"../FormInput\";\nimport { checkBankCard, creditCard } from \"../../utils\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type PhoneNumberInputProps = {\n showScan?: boolean;\n label?: string;\n /**\n * 只有在direction为column才生效\n */\n bankName?: ReactNode;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: () => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n} & XHComponentCommonProps;\n\nconst BankCardNumberInput = forwardRef<any, PhoneNumberInputProps>(\n (props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n bankName,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入卡号\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n } = props;\n\n const handleBlur = value => {\n console.log(\"blur\");\n if (!checkBankCard(value)) onError?.();\n };\n\n const handleChange = value => {\n const formatValue = creditCard(value);\n onChange?.(formatValue);\n };\n\n const handleOnScan = () => {\n console.log(fromRef, \"fromRef...\");\n onScan?.();\n };\n\n useImperativeHandle(fromRef, () => {\n return {\n isValid: checkBankCard(value.replace(/\\s/g, \"\")),\n focus: () => {\n if (typeof fromRef === \"object\") {\n fromRef?.current?.focus();\n }\n },\n };\n });\n\n return (\n <View className={classNames(\"xh-bankcard-number-input\", className)}>\n <XHFormInput\n padding\n ref={fromRef}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-bankcard-number-input-scan\"\n ></View>\n )\n }\n direction={direction}\n label={label}\n mainExtra={\n direction !== \"row\" && (\n <View className=\"xh-bankcard-number-input-name\">{bankName}</View>\n )\n }\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type=\"tel\"\n border={border}\n value={creditCard(value)}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-bankcard-number-input-slot\">{slot}</View>}\n </View>\n );\n }\n);\n\nexport default BankCardNumberInput;\n"],"names":["BankCardNumberInput","forwardRef","props","fromRef","_a","showScan","label","value","bankName","readOnly","_b","direction","onScan","_c","placeholder","onError","onChange","_d","maxlength","slot","className","border","useImperativeHandle","isValid","checkBankCard","replace","focus","current","React","createElement","View","classNames","XHFormInput","padding","ref","RightComponent","onClick","mainExtra","readonly","type","creditCard","onBlur","formatValue"],"mappings":"8OA6BA,IAAMA,EAAsBC,GAC1B,SAACC,EAAOC,GAEJ,IAAAC,EAcEF,EAAKG,SAdPA,OAAQ,IAAAD,GAAQA,EAChBE,EAaEJ,EAbGI,MACLC,EAYEL,QAXFM,EAWEN,WAVFO,EAUEP,EAAKO,SATPC,EASER,EATkBS,UAApBA,OAAY,IAAAD,EAAA,WACZE,EAQEV,EAAKU,OAPPC,EAOEX,EAPmBY,YAArBA,OAAc,IAAAD,EAAA,UACdE,EAMEb,UALFc,EAKEd,EAAKc,SAJPC,EAIEf,EAJYgB,UAAdA,OAAY,IAAAD,EAAA,KACZE,EAGEjB,EAAKiB,KAFPC,EAEElB,EAFOkB,UACTC,EACEnB,SA4BJ,OAXAoB,EAAoBnB,GAAS,WAC3B,MAAO,CACLoB,QAASC,EAAcjB,EAAMkB,QAAQ,MAAO,KAC5CC,MAAO,iBACkB,iBAAZvB,IACO,QAAhBC,EAAAD,aAAA,EAAAA,EAASwB,eAAO,IAAAvB,GAAAA,EAAEsB,QAErB,EAEL,IAGEE,EAACC,cAAAC,EAAK,CAAAV,UAAWW,EAAW,2BAA4BX,IACtDQ,EAAAC,cAACG,EACC,CAAAC,WACAC,IAAK/B,EACLgC,eACE9B,GACEuB,EAAAC,cAACC,EACC,CAAAM,QAxBS,WAEnBxB,SAAAA,GACF,EAsBYQ,UAAU,kCAIhBT,UAAWA,EACXL,MAAOA,EACP+B,UACgB,QAAd1B,GACEiB,EAACC,cAAAC,EAAK,CAAAV,UAAU,iCAAiCZ,GAGrDU,UAAWA,EACXJ,YAAaA,EACbwB,SAAU7B,EACV8B,KAAK,MACLlB,OAAQA,EACRd,MAAOiC,EAAWjC,GAClBkC,OApDa,SAAAlC,GAEZiB,EAAcjB,IAAQQ,SAAAA,GAC7B,EAkDMC,SAhDe,SAAAT,GACnB,IAAMmC,EAAcF,EAAWjC,GAC/BS,SAAAA,EAAW0B,EACb,IA+CKvB,GAAQS,EAAAC,cAACC,EAAI,CAACV,UAAU,iCAAiCD,GAGhE"}
@@ -1,2 +1,2 @@
1
- import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as o,useState as n,useImperativeHandle as a,useEffect as r}from"react";import s from"classnames";import{View as c}from"@tarojs/components";import l from"../Button/index.js";import i from"../Mask/index.js";import m from"../node_modules/react-transition-group/esm/CSSTransition.js";var f=o((function(o,f){var d=o.header,u=o.content,p=o.className,h=void 0===p?"":p,g=o.visible,v=o.showCancel,x=void 0===v||v,E=o.confirmText,N=void 0===E?"确定":E,C=o.cancelText,b=void 0===C?"取消":C,j=o.footer,T=void 0!==j&&j,k=o.onConfirm,w=o.onCancel,y=o.onClose,z=o.tranparent,S=void 0!==z&&z,_=e(n(!1),2),B=_[0],M=_[1];a(f,(function(){return{close:q,open:A}}));var q=function(){y&&y(),M(!1)},A=function(){M(!0)};r((function(){g||y&&y(),M(g)}),[g]);var D=s("xh-dialog-ref",h,{show:B}),F=t.createElement(c,{className:"xh-dialog-ref-content-footer-buttons"},x&&t.createElement(l,{ghost:!0,size:"full",shape:"rectangle",preventTime:0,onClick:function(){w&&w(),q()},className:"xh-dialog-ref-content-footer-buttons-cancel"},b),t.createElement(l,{type:"primary",shape:"rectangle",size:"full",ghost:!0,className:"xh-dialog-ref-content-footer-buttons--confirm",onClick:function(){k&&k()},preventTime:0},N));return t.createElement(c,{className:D},t.createElement(i,null),t.createElement(m,{in:B,timeout:200,classNames:"scale"},t.createElement(c,{className:s("xh-dialog-ref-content",{tranparent:S})},d&&t.createElement(c,{className:"xh-dialog-ref-content-header"},d),t.createElement(c,{className:"xh-dialog-ref-content-content"},u),T||t.createElement(c,{className:"xh-dialog-ref-content-footer"},F))))}));export{f as default};
1
+ import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as o,useState as n,useImperativeHandle as r,useEffect as a}from"react";import s from"classnames";import{View as c}from"@tarojs/components";import i from"../Button/index.js";import l from"../Mask/index.js";import m from"../node_modules/react-transition-group/esm/CSSTransition.js";var f=o((function(o,f){var d=o.header,p=o.content,u=o.className,h=void 0===u?"":u,v=o.visible,g=o.showCancel,x=void 0===g||g,E=o.confirmText,N=void 0===E?"确定":E,C=o.cancelText,b=void 0===C?"取消":C,j=o.footer,T=void 0!==j&&j,k=o.onConfirm,w=o.onCancel,y=o.onClose,z=o.portrait,S=void 0!==z&&z,_=o.tranparent,B=void 0!==_&&_,M=e(n(!1),2),q=M[0],A=M[1];r(f,(function(){return{close:D,open:F}}));var D=function(){y&&y(),A(!1)},F=function(){A(!0)};a((function(){v||y&&y(),A(v)}),[v]);var G=s("xh-dialog-ref",h,{show:q}),H=t.createElement(c,{className:s("xh-dialog-ref-content-footer-buttons",{portrait:S})},x&&t.createElement(i,{ghost:!0,size:"full",shape:"rectangle",preventTime:0,onClick:function(){w&&w(),D()},className:"xh-dialog-ref-content-footer-buttons-cancel"},b),t.createElement(i,{type:"primary",shape:"rectangle",size:"full",ghost:!0,className:"xh-dialog-ref-content-footer-buttons--confirm",onClick:function(){k&&k()},preventTime:0},N));return t.createElement(c,{className:G},t.createElement(l,null),t.createElement(m,{in:q,timeout:200,classNames:"scale"},t.createElement(c,{className:s("xh-dialog-ref-content",{tranparent:B})},d&&t.createElement(c,{className:"xh-dialog-ref-content-header"},d),t.createElement(c,{className:"xh-dialog-ref-content-content"},p),T||t.createElement(c,{className:"xh-dialog-ref-content-footer"},H))))}));export{f as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/DialogRef/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n useState,\n useImperativeHandle,\n forwardRef,\n useEffect,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport \"./index.scss\";\n\nexport type DialogProps = {\n header?: string | ReactNode;\n content: string | ReactNode;\n footer?: ReactNode;\n cancelText?: string;\n confirmText?: string;\n showCancel?: boolean;\n visible: boolean;\n onConfirm?: () => void;\n onCancel?: () => void;\n onClose?: () => void;\n tranparent?: boolean;\n} & XHComponentCommonProps;\n\nexport type IDialogRef = {\n close: () => void;\n open: () => void;\n};\nconst DialogCom = forwardRef<IDialogRef, DialogProps>((props, fromRef) => {\n const {\n header,\n content,\n className = \"\",\n visible,\n showCancel = true,\n confirmText = \"确定\",\n cancelText = \"取消\",\n footer = false,\n onConfirm,\n onCancel,\n onClose,\n tranparent = false,\n } = props;\n const [selfVisible, setSelfVisible] = useState(false);\n\n useImperativeHandle(fromRef, () => ({\n close,\n open,\n }));\n\n const close = () => {\n onClose && onClose();\n setSelfVisible(false);\n };\n\n const open = () => {\n setSelfVisible(true);\n };\n\n const handleConfirm = () => {\n onConfirm && onConfirm();\n // close();\n };\n const handleCancel = () => {\n onCancel && onCancel();\n close();\n };\n\n useEffect(() => {\n if (!visible) {\n onClose && onClose();\n }\n setSelfVisible(visible);\n }, [visible]);\n\n const dialogcls = classNames(\"xh-dialog-ref\", className, {\n show: selfVisible,\n });\n\n const dialogFooter = (\n <View className=\"xh-dialog-ref-content-footer-buttons\">\n {showCancel && (\n <Button\n ghost\n size=\"full\"\n shape=\"rectangle\"\n preventTime={0}\n onClick={handleCancel}\n className=\"xh-dialog-ref-content-footer-buttons-cancel\"\n >\n {cancelText}\n </Button>\n )}\n <Button\n type=\"primary\"\n shape=\"rectangle\"\n size=\"full\"\n ghost\n className=\"xh-dialog-ref-content-footer-buttons--confirm\"\n onClick={handleConfirm}\n preventTime={0}\n >\n {confirmText}\n </Button>\n </View>\n );\n\n const DialogMain = (\n <View className={dialogcls}>\n <Mask />\n <CSSTransition in={selfVisible} timeout={200} classNames=\"scale\">\n <View className={classNames(\"xh-dialog-ref-content\", { tranparent })}>\n {header && (\n <View className=\"xh-dialog-ref-content-header\">{header}</View>\n )}\n <View className=\"xh-dialog-ref-content-content\">{content}</View>\n {footer || (\n <View className=\"xh-dialog-ref-content-footer\">{dialogFooter}</View>\n )}\n </View>\n </CSSTransition>\n </View>\n );\n return DialogMain;\n});\n\nexport default DialogCom;\n"],"names":["DialogCom","forwardRef","props","fromRef","header","content","_a","className","visible","_b","showCancel","_c","confirmText","_d","cancelText","_e","footer","onConfirm","onCancel","onClose","_f","tranparent","_g","__read","useState","selfVisible","setSelfVisible","useImperativeHandle","close","open","useEffect","dialogcls","classNames","show","dialogFooter","React","createElement","View","Button","ghost","size","shape","preventTime","onClick","type","Mask","CSSTransition","in","timeout"],"mappings":"yWAiCA,IAAMA,EAAYC,GAAoC,SAACC,EAAOC,GAE1D,IAAAC,EAYEF,EAZIE,OACNC,EAWEH,EAXKG,QACPC,EAUEJ,EAAKK,UAVPA,OAAS,IAAAD,EAAG,GAAEA,EACdE,EASEN,EATKM,QACPC,EAQEP,EAAKQ,WARPA,OAAU,IAAAD,GAAOA,EACjBE,EAOET,cAPFU,aAAc,KAAID,EAClBE,EAMEX,EANeY,WAAjBA,OAAa,IAAAD,EAAA,OACbE,EAKEb,EAAKc,OALPA,OAAM,IAAAD,GAAQA,EACdE,EAIEf,EAJOe,UACTC,EAGEhB,WAFFiB,EAEEjB,EAAKiB,QADPC,EACElB,EADgBmB,WAAlBA,OAAa,IAAAD,KAETE,EAAAC,EAAgCC,GAAS,GAAM,GAA9CC,EAAWH,EAAA,GAAEI,OAEpBC,EAAoBxB,GAAS,WAAM,MAAC,CAClCyB,MAAKA,EACLC,KAAIA,EACJ,IAEF,IAAMD,EAAQ,WACZT,GAAWA,IACXO,GAAe,EACjB,EAEMG,EAAO,WACXH,GAAe,EACjB,EAWAI,GAAU,WACHtB,GACHW,GAAWA,IAEbO,EAAelB,EACjB,GAAG,CAACA,IAEJ,IAAMuB,EAAYC,EAAW,gBAAiBzB,EAAW,CACvD0B,KAAMR,IAGFS,EACJC,EAAAC,cAACC,EAAK,CAAA9B,UAAU,wCACbG,GACCyB,EAACC,cAAAE,EACC,CAAAC,OACA,EAAAC,KAAK,OACLC,MAAM,YACNC,YAAa,EACbC,QAxBa,WACnBzB,GAAYA,IACZU,GACF,EAsBQrB,UAAU,+CAETO,GAGLqB,EAAAC,cAACE,EAAM,CACLM,KAAK,UACLH,MAAM,YACND,KAAK,OACLD,OAAK,EACLhC,UAAU,gDACVoC,QAxCgB,WACpB1B,GAAaA,GAEf,EAsCMyB,YAAa,GAEZ9B,IAqBP,OAfEuB,EAAAC,cAACC,EAAK,CAAA9B,UAAWwB,GACfI,EAAAC,cAACS,EAAO,MACRV,EAAAC,cAACU,EAAa,CAACC,GAAItB,EAAauB,QAAS,IAAKhB,WAAW,SACvDG,EAAAC,cAACC,EAAI,CAAC9B,UAAWyB,EAAW,wBAAyB,CAAEX,WAAUA,KAC9DjB,GACC+B,EAAAC,cAACC,EAAI,CAAC9B,UAAU,gCAAgCH,GAElD+B,EAAAC,cAACC,EAAK,CAAA9B,UAAU,iCAAiCF,GAChDW,GACCmB,EAAAC,cAACC,EAAI,CAAC9B,UAAU,gCAAgC2B,KAO5D"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/DialogRef/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n useState,\n useImperativeHandle,\n forwardRef,\n useEffect,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport \"./index.scss\";\n\nexport type DialogProps = {\n header?: string | ReactNode;\n content: string | ReactNode;\n footer?: ReactNode;\n cancelText?: string;\n confirmText?: string;\n showCancel?: boolean;\n visible: boolean;\n onConfirm?: () => void;\n onCancel?: () => void;\n onClose?: () => void;\n tranparent?: boolean;\n portrait?: boolean;\n} & XHComponentCommonProps;\n\nexport type IDialogRef = {\n close: () => void;\n open: () => void;\n};\nconst DialogCom = forwardRef<IDialogRef, DialogProps>((props, fromRef) => {\n const {\n header,\n content,\n className = \"\",\n visible,\n showCancel = true,\n confirmText = \"确定\",\n cancelText = \"取消\",\n footer = false,\n onConfirm,\n onCancel,\n onClose,\n portrait = false,\n tranparent = false,\n } = props;\n const [selfVisible, setSelfVisible] = useState(false);\n\n useImperativeHandle(fromRef, () => ({\n close,\n open,\n }));\n\n const close = () => {\n onClose && onClose();\n setSelfVisible(false);\n };\n\n const open = () => {\n setSelfVisible(true);\n };\n\n const handleConfirm = () => {\n onConfirm && onConfirm();\n // close();\n };\n const handleCancel = () => {\n onCancel && onCancel();\n close();\n };\n\n useEffect(() => {\n if (!visible) {\n onClose && onClose();\n }\n setSelfVisible(visible);\n }, [visible]);\n\n const dialogcls = classNames(\"xh-dialog-ref\", className, {\n show: selfVisible,\n });\n\n const dialogFooter = (\n <View\n className={classNames(\"xh-dialog-ref-content-footer-buttons\", {\n portrait,\n })}\n >\n {showCancel && (\n <Button\n ghost\n size=\"full\"\n shape=\"rectangle\"\n preventTime={0}\n onClick={handleCancel}\n className=\"xh-dialog-ref-content-footer-buttons-cancel\"\n >\n {cancelText}\n </Button>\n )}\n <Button\n type=\"primary\"\n shape=\"rectangle\"\n size=\"full\"\n ghost\n className=\"xh-dialog-ref-content-footer-buttons--confirm\"\n onClick={handleConfirm}\n preventTime={0}\n >\n {confirmText}\n </Button>\n </View>\n );\n\n const DialogMain = (\n <View className={dialogcls}>\n <Mask />\n <CSSTransition in={selfVisible} timeout={200} classNames=\"scale\">\n <View className={classNames(\"xh-dialog-ref-content\", { tranparent })}>\n {header && (\n <View className=\"xh-dialog-ref-content-header\">{header}</View>\n )}\n <View className=\"xh-dialog-ref-content-content\">{content}</View>\n {footer || (\n <View className=\"xh-dialog-ref-content-footer\">{dialogFooter}</View>\n )}\n </View>\n </CSSTransition>\n </View>\n );\n return DialogMain;\n});\n\nexport default DialogCom;\n"],"names":["DialogCom","forwardRef","props","fromRef","header","content","_a","className","visible","_b","showCancel","_c","confirmText","_d","cancelText","_e","footer","onConfirm","onCancel","onClose","_f","portrait","_g","tranparent","_h","__read","useState","selfVisible","setSelfVisible","useImperativeHandle","close","open","useEffect","dialogcls","classNames","show","dialogFooter","React","createElement","View","Button","ghost","size","shape","preventTime","onClick","type","Mask","CSSTransition","in","timeout"],"mappings":"yWAkCA,IAAMA,EAAYC,GAAoC,SAACC,EAAOC,GAE1D,IAAAC,EAaEF,EAAKE,OAZPC,EAYEH,EAZKG,QACPC,EAWEJ,EAAKK,UAXPA,OAAS,IAAAD,EAAG,GAAEA,EACdE,EAUEN,UATFO,EASEP,EATeQ,WAAjBA,OAAa,IAAAD,KACbE,EAQET,EARgBU,YAAlBA,OAAc,IAAAD,EAAA,OACdE,EAOEX,EAPeY,WAAjBA,OAAa,IAAAD,EAAA,OACbE,EAMEb,EANYc,OAAdA,OAAS,IAAAD,KACTE,EAKEf,EAAKe,UAJPC,EAIEhB,EAJMgB,SACRC,EAGEjB,UAFFkB,EAEElB,EAFcmB,SAAhBA,OAAW,IAAAD,KACXE,EACEpB,EADgBqB,WAAlBA,OAAa,IAAAD,KAETE,EAAAC,EAAgCC,GAAS,GAAM,GAA9CC,EAAWH,EAAA,GAAEI,OAEpBC,EAAoB1B,GAAS,WAAM,MAAC,CAClC2B,MAAKA,EACLC,KAAIA,EACJ,IAEF,IAAMD,EAAQ,WACZX,GAAWA,IACXS,GAAe,EACjB,EAEMG,EAAO,WACXH,GAAe,EACjB,EAWAI,GAAU,WACHxB,GACHW,GAAWA,IAEbS,EAAepB,EACjB,GAAG,CAACA,IAEJ,IAAMyB,EAAYC,EAAW,gBAAiB3B,EAAW,CACvD4B,KAAMR,IAGFS,EACJC,EAACC,cAAAC,EACC,CAAAhC,UAAW2B,EAAW,uCAAwC,CAC5Db,SAAQA,KAGTX,GACC2B,EAACC,cAAAE,EACC,CAAAC,OACA,EAAAC,KAAK,OACLC,MAAM,YACNC,YAAa,EACbC,QA5Ba,WACnB3B,GAAYA,IACZY,GACF,EA0BQvB,UAAU,+CAETO,GAGLuB,EAAAC,cAACE,EAAM,CACLM,KAAK,UACLH,MAAM,YACND,KAAK,OACLD,OAAK,EACLlC,UAAU,gDACVsC,QA5CgB,WACpB5B,GAAaA,GAEf,EA0CM2B,YAAa,GAEZhC,IAqBP,OAfEyB,EAAAC,cAACC,EAAK,CAAAhC,UAAW0B,GACfI,EAAAC,cAACS,EAAO,MACRV,EAAAC,cAACU,EAAa,CAACC,GAAItB,EAAauB,QAAS,IAAKhB,WAAW,SACvDG,EAAAC,cAACC,EAAI,CAAChC,UAAW2B,EAAW,wBAAyB,CAAEX,WAAUA,KAC9DnB,GACCiC,EAAAC,cAACC,EAAI,CAAChC,UAAU,gCAAgCH,GAElDiC,EAAAC,cAACC,EAAK,CAAAhC,UAAU,iCAAiCF,GAChDW,GACCqB,EAAAC,cAACC,EAAI,CAAChC,UAAU,gCAAgC6B,KAO5D"}
@@ -1,2 +1,2 @@
1
- import{__rest as e,__assign as a}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as n,useRef as l,useImperativeHandle as r}from"react";import{View as m,Text as o,Input as i}from"@tarojs/components";import c from"classnames";import{inputRange as s}from"../src/utils/index.js";var u=n((function(n,u){var p=n.onChange,f=n.maxlength,h=n.value,d=n.type,v=n.placeholder,x=n.label,E=n.labelHtml,N=n.RightComponent,b=n.onBlur,g=n.pattern,y=n.LeftComponent,w=n.LeftIcon,L=n.name,C=n.readonly,I=void 0!==C&&C,_=n.withArrow,B=void 0!==_&&_,H=n.direction,j=void 0===H?"row":H,A=n.border,R=void 0===A||A,T=n.mainExtra,M=n.padding,S=void 0!==M&&M,O=e(n,["onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","readonly","withArrow","direction","border","mainExtra","padding"]);function V(e){var a=s(e.target.value);e.target.value=a,p&&p(a)}function k(e){var a=s(e.target.value);b&&b(a)}var q=l(null);r(u,(function(){return{focus:function(){var e;null===(e=q.current)||void 0===e||e.focus()}}}));var z=c("xh-form-input",{column:"column"===j,border:R,padding:S});return"h5"!==process.env.TARO_ENV?t.createElement(m,{className:z},t.createElement(m,{className:"xh-form-input-main"},t.createElement(m,{className:"xh-form-input-main-left"},x&&t.createElement(m,{className:"xh-form-input-main-left-label"},x,w&&t.createElement(m,{className:"xh-form-input-main-left-label-icon"},w)),E&&t.createElement("label",{dangerouslySetInnerHTML:{__html:E},className:"label"}),t.createElement(m,null,y)),t.createElement(m,{className:"xh-form-input-main-center"},I?t.createElement(o,{className:c("xh-form-input-readonly",{"xh-form-input-placeholder":!h})},h||v):t.createElement(i,a({},O,{ref:q,className:"xh-form-input-main-center-native",maxlength:f,name:L,placeholder:v,type:d,value:h,onBlur:k,onInput:V}))),T&&t.createElement(m,{className:"xh-form-input-main-extra"},T)),t.createElement(m,{className:"xh-form-input-right"},N,B&&t.createElement(m,{className:"arrow"}))):t.createElement("div",{className:z},t.createElement("div",{className:"xh-form-input-main"},t.createElement("div",{className:"xh-form-input-main-left"},x&&t.createElement("label",{className:"xh-form-input-main-left-label"},x,w&&t.createElement("div",{className:"xh-form-input-main-left-label-icon"},w)),E&&t.createElement("label",{dangerouslySetInnerHTML:{__html:E},className:"label"}),t.createElement("div",null,y)),t.createElement("div",{className:"xh-form-input-main-center"},I?t.createElement("p",{className:c("xh-form-input-main-center-readonly",{"xh-form-input-main-placeholder":!h})},h||v):t.createElement("input",{ref:q,className:"xh-form-input-main-center-native",maxLength:f,name:L,pattern:g,placeholder:v,type:d,value:h,onBlur:k,onInput:V})),T&&t.createElement("div",{className:"xh-form-input-main-extra"},T)),t.createElement("div",{className:"xh-form-input-right"},N,B&&t.createElement("span",{className:"arrow"})))}));export{u as default};
1
+ import{__rest as e,__assign as a}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as n,useRef as l,useImperativeHandle as r}from"react";import{View as m,Text as o,Input as c}from"@tarojs/components";import i from"classnames";import{inputRange as s}from"../src/utils/index.js";var u=n((function(n,u){var p=n.onChange,f=n.maxlength,h=n.value,d=n.type,v=n.placeholder,x=n.label,E=n.labelHtml,N=n.RightComponent,b=n.onBlur,g=n.pattern,y=n.LeftComponent,w=n.LeftIcon,L=n.name,C=n.readonly,I=void 0!==C&&C,_=n.withArrow,B=void 0!==_&&_,H=n.direction,j=void 0===H?"row":H,A=n.border,R=void 0===A||A,T=n.mainExtra,M=n.padding,S=void 0!==M&&M,O=n.className,V=e(n,["onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","readonly","withArrow","direction","border","mainExtra","padding","className"]);function k(e){var a=s(e.target.value);e.target.value=a,p&&p(a)}function q(e){var a=s(e.target.value);b&&b(a)}var z=l(null);r(u,(function(){return{focus:function(){var e;null===(e=z.current)||void 0===e||e.focus()}}}));var D=i("xh-form-input",{column:"column"===j,border:R,padding:S,className:O});return"h5"!==process.env.TARO_ENV?t.createElement(m,{className:D},t.createElement(m,{className:"xh-form-input-main"},t.createElement(m,{className:"xh-form-input-main-left"},x&&t.createElement(m,{className:"xh-form-input-main-left-label"},x,w&&t.createElement(m,{className:"xh-form-input-main-left-label-icon"},w)),E&&t.createElement("label",{dangerouslySetInnerHTML:{__html:E},className:"label"}),t.createElement(m,null,y)),t.createElement(m,{className:"xh-form-input-main-center"},I?t.createElement(o,{className:i("xh-form-input-readonly",{"xh-form-input-placeholder":!h})},h||v):t.createElement(c,a({},V,{ref:z,className:"xh-form-input-main-center-native",maxlength:f,name:L,placeholder:v,type:d,value:h,onBlur:q,onInput:k}))),T&&t.createElement(m,{className:"xh-form-input-main-extra"},T)),t.createElement(m,{className:"xh-form-input-right"},N,B&&t.createElement(m,{className:"arrow"}))):t.createElement("div",{className:D},t.createElement("div",{className:"xh-form-input-main"},t.createElement("div",{className:"xh-form-input-main-left"},x&&t.createElement("label",{className:"xh-form-input-main-left-label"},x,w&&t.createElement("div",{className:"xh-form-input-main-left-label-icon"},w)),E&&t.createElement("label",{dangerouslySetInnerHTML:{__html:E},className:"label"}),t.createElement("div",null,y)),t.createElement("div",{className:"xh-form-input-main-center"},I?t.createElement("p",{className:i("xh-form-input-main-center-readonly",{"xh-form-input-main-placeholder":!h})},h||v):t.createElement("input",{ref:z,className:"xh-form-input-main-center-native",maxLength:f,name:L,pattern:g,placeholder:v,type:d,value:h,onBlur:q,onInput:k})),T&&t.createElement("div",{className:"xh-form-input-main-extra"},T)),t.createElement("div",{className:"xh-form-input-right"},N,B&&t.createElement("span",{className:"arrow"})))}));export{u as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/FormInput/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport {\n Input,\n View,\n Text,\n InputProps,\n CommonEventFunction,\n} from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { inputRange } from \"../../utils/index\";\n\nimport \"./index.scss\";\n\nexport type HTMLFormType =\n | \"tel\"\n | \"text\"\n | \"number\"\n | \"password\"\n | \"idcard\"\n | \"digit\"\n | \"safe-password\"\n | \"nickname\";\n\nexport type FormInputProps = {\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n /** 当键盘输入时,触发input事件,event.detail = {value, cursor, keyCode},处理函数可以直接 return 一个字符串,将替换输入框的内容。\n * @supported weapp, h5, rn\n */\n onInput?: CommonEventFunction<InputProps.inputEventDetail>;\n\n /** 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度\n * @supported weapp, h5, rn\n */\n onFocus?: CommonEventFunction<InputProps.inputForceEventDetail>;\n\n /** 输入框失去焦点时触发\n *\n * event.detail = {value: value}\n * @supported weapp, h5, rn\n */\n value?: string;\n maxlength?: number;\n placeholder?: string;\n type?: HTMLFormType;\n pattern?: string;\n RightComponent?: ReactNode;\n label?: string;\n labelHtml?: string;\n LeftComponent?: ReactNode;\n LeftIcon?: ReactNode;\n name?: string;\n readonly?: boolean;\n withArrow?: boolean;\n direction?: \"row\" | \"column\";\n border?: boolean;\n mainExtra?: ReactNode;\n padding?: boolean;\n password?: boolean;\n focus?: boolean;\n /** 设置键盘右下角按钮的文字\n * @default done\n * @supported weapp, rn\n */\n confirmType?: \"send\" | \"search\" | \"next\" | \"go\" | \"done\";\n /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上\n * @supported h5\n */\n nativeProps?: Record<string, unknown>;\n};\n\nexport type FocusHandler = { focus: () => void };\n\nconst FormInput = forwardRef<FocusHandler, FormInputProps>((props, formRef) => {\n const {\n onChange,\n maxlength,\n value,\n type,\n placeholder,\n label,\n labelHtml,\n RightComponent,\n onBlur,\n pattern,\n LeftComponent,\n LeftIcon,\n name,\n readonly = false,\n withArrow = false,\n direction = \"row\",\n border = true,\n mainExtra,\n padding = false,\n ...rest\n } = props;\n\n function handleChange(e): any {\n let inputValue = inputRange(e.target.value);\n e.target.value = inputValue;\n onChange && onChange(inputValue);\n }\n\n function handleBlur(e): any {\n let inputValue = inputRange(e.target.value);\n onBlur && onBlur(inputValue);\n }\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(formRef, () => ({\n focus() {\n inputRef.current?.focus();\n },\n }));\n\n const wrapperCls = classNames(\"xh-form-input\", {\n column: direction === \"column\",\n border,\n padding,\n });\n\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={wrapperCls}>\n <View className=\"xh-form-input-main\">\n <View className=\"xh-form-input-main-left\">\n {label && (\n <View className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <View className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </View>\n )}\n </View>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <View>{LeftComponent}</View>\n </View>\n <View className=\"xh-form-input-main-center\">\n {readonly ? (\n <Text\n className={classNames(\"xh-form-input-readonly\", {\n \"xh-form-input-placeholder\": !value,\n })}\n >\n {value || placeholder}\n </Text>\n ) : (\n <Input\n {...rest}\n ref={inputRef}\n className=\"xh-form-input-main-center-native\"\n maxlength={maxlength}\n name={name}\n placeholder={placeholder}\n type={type as InputProps[\"type\"]}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </View>\n {mainExtra && (\n <View className=\"xh-form-input-main-extra\">{mainExtra}</View>\n )}\n </View>\n <View className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <View className=\"arrow\" />}\n </View>\n </View>\n );\n }\n\n return (\n <div className={wrapperCls}>\n <div className=\"xh-form-input-main\">\n <div className=\"xh-form-input-main-left\">\n {label && (\n <label className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <div className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </div>\n )}\n </label>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <div>{LeftComponent}</div>\n </div>\n <div className=\"xh-form-input-main-center\">\n {readonly ? (\n <p\n className={classNames(\"xh-form-input-main-center-readonly\", {\n \"xh-form-input-main-placeholder\": !value,\n })}\n >\n {value || placeholder}\n </p>\n ) : (\n <input\n ref={inputRef}\n className=\"xh-form-input-main-center-native\"\n maxLength={maxlength}\n name={name}\n pattern={pattern}\n placeholder={placeholder}\n type={type}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </div>\n {mainExtra && (\n <div className=\"xh-form-input-main-extra\">{mainExtra}</div>\n )}\n </div>\n <div className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <span className=\"arrow\" />}\n </div>\n </div>\n );\n});\nexport default FormInput;\n"],"names":["FormInput","forwardRef","props","formRef","onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","_a","readonly","_b","withArrow","_c","direction","_d","border","mainExtra","_e","padding","rest","__rest","handleChange","e","inputValue","inputRange","target","handleBlur","inputRef","useRef","useImperativeHandle","focus","current","wrapperCls","classNames","column","process","env","TARO_ENV","React","createElement","View","className","dangerouslySetInnerHTML","__html","Text","Input","ref","onInput","maxLength"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/FormInput/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport {\n Input,\n View,\n Text,\n InputProps,\n CommonEventFunction,\n} from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { inputRange } from \"../../utils/index\";\n\nimport \"./index.scss\";\n\nexport type HTMLFormType =\n | \"tel\"\n | \"text\"\n | \"number\"\n | \"password\"\n | \"idcard\"\n | \"digit\"\n | \"safe-password\"\n | \"nickname\";\n\nexport type FormInputProps = {\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n /** 当键盘输入时,触发input事件,event.detail = {value, cursor, keyCode},处理函数可以直接 return 一个字符串,将替换输入框的内容。\n * @supported weapp, h5, rn\n */\n onInput?: CommonEventFunction<InputProps.inputEventDetail>;\n\n /** 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度\n * @supported weapp, h5, rn\n */\n onFocus?: CommonEventFunction<InputProps.inputForceEventDetail>;\n\n /** 输入框失去焦点时触发\n *\n * event.detail = {value: value}\n * @supported weapp, h5, rn\n */\n value?: string;\n maxlength?: number;\n placeholder?: string;\n type?: HTMLFormType;\n pattern?: string;\n RightComponent?: ReactNode;\n label?: string;\n labelHtml?: string;\n LeftComponent?: ReactNode;\n LeftIcon?: ReactNode;\n name?: string;\n readonly?: boolean;\n withArrow?: boolean;\n direction?: \"row\" | \"column\";\n border?: boolean;\n mainExtra?: ReactNode;\n padding?: boolean;\n password?: boolean;\n focus?: boolean;\n /** 设置键盘右下角按钮的文字\n * @default done\n * @supported weapp, rn\n */\n confirmType?: \"send\" | \"search\" | \"next\" | \"go\" | \"done\";\n /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上\n * @supported h5\n */\n nativeProps?: Record<string, unknown>;\n className?: string;\n};\n\nexport type FocusHandler = { focus: () => void };\n\nconst FormInput = forwardRef<FocusHandler, FormInputProps>((props, formRef) => {\n const {\n onChange,\n maxlength,\n value,\n type,\n placeholder,\n label,\n labelHtml,\n RightComponent,\n onBlur,\n pattern,\n LeftComponent,\n LeftIcon,\n name,\n readonly = false,\n withArrow = false,\n direction = \"row\",\n border = true,\n mainExtra,\n padding = false,\n className,\n ...rest\n } = props;\n\n function handleChange(e): any {\n let inputValue = inputRange(e.target.value);\n e.target.value = inputValue;\n onChange && onChange(inputValue);\n }\n\n function handleBlur(e): any {\n let inputValue = inputRange(e.target.value);\n onBlur && onBlur(inputValue);\n }\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(formRef, () => ({\n focus() {\n inputRef.current?.focus();\n },\n }));\n\n const wrapperCls = classNames(\"xh-form-input\", {\n column: direction === \"column\",\n border,\n padding,\n className,\n });\n\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={wrapperCls}>\n <View className=\"xh-form-input-main\">\n <View className=\"xh-form-input-main-left\">\n {label && (\n <View className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <View className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </View>\n )}\n </View>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <View>{LeftComponent}</View>\n </View>\n <View className=\"xh-form-input-main-center\">\n {readonly ? (\n <Text\n className={classNames(\"xh-form-input-readonly\", {\n \"xh-form-input-placeholder\": !value,\n })}\n >\n {value || placeholder}\n </Text>\n ) : (\n <Input\n {...rest}\n ref={inputRef}\n className=\"xh-form-input-main-center-native\"\n maxlength={maxlength}\n name={name}\n placeholder={placeholder}\n type={type as InputProps[\"type\"]}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </View>\n {mainExtra && (\n <View className=\"xh-form-input-main-extra\">{mainExtra}</View>\n )}\n </View>\n <View className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <View className=\"arrow\" />}\n </View>\n </View>\n );\n }\n\n return (\n <div className={wrapperCls}>\n <div className=\"xh-form-input-main\">\n <div className=\"xh-form-input-main-left\">\n {label && (\n <label className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <div className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </div>\n )}\n </label>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <div>{LeftComponent}</div>\n </div>\n <div className=\"xh-form-input-main-center\">\n {readonly ? (\n <p\n className={classNames(\"xh-form-input-main-center-readonly\", {\n \"xh-form-input-main-placeholder\": !value,\n })}\n >\n {value || placeholder}\n </p>\n ) : (\n <input\n ref={inputRef}\n className=\"xh-form-input-main-center-native\"\n maxLength={maxlength}\n name={name}\n pattern={pattern}\n placeholder={placeholder}\n type={type}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </div>\n {mainExtra && (\n <div className=\"xh-form-input-main-extra\">{mainExtra}</div>\n )}\n </div>\n <div className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <span className=\"arrow\" />}\n </div>\n </div>\n );\n});\nexport default FormInput;\n"],"names":["FormInput","forwardRef","props","formRef","onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","_a","readonly","_b","withArrow","_c","direction","_d","border","mainExtra","_e","padding","className","rest","__rest","handleChange","e","inputValue","inputRange","target","handleBlur","inputRef","useRef","useImperativeHandle","focus","current","wrapperCls","classNames","column","process","env","TARO_ENV","React","createElement","View","dangerouslySetInnerHTML","__html","Text","Input","ref","onInput","maxLength"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import e,{forwardRef as n,useImperativeHandle as o}from"react";import r from"classnames";import{View as l}from"@tarojs/components";import a from"../FormInput/index.js";import{verifyIdcard as t}from"../src/utils/index.js";var c=n((function(n,c){var i=n.showScan,s=void 0!==i&&i,u=n.label,m=n.value,d=n.readOnly,p=n.direction,f=void 0===p?"column":p,v=n.onScan,h=n.placeholder,g=void 0===h?"请输入身份证":h,b=n.onError,x=n.onChange,E=n.maxlength,N=void 0===E?23:E,j=n.slot,y=n.className,C=n.border;return o(c,(function(){return{isValid:t(m.replace(/\s/g,"")),focus:function(){var e;"object"==typeof c&&(null===(e=null==c?void 0:c.current)||void 0===e||e.focus())}}})),e.createElement(l,{className:r("xh-idnumber-input",y)},e.createElement(a,{padding:!0,ref:c,RightComponent:s&&e.createElement(l,{onClick:function(){null==v||v()},className:"xh-idnumber-input-scan"}),border:C,direction:f,label:u,maxlength:N,placeholder:g,readonly:d,type:"weapp"===process.env.TARO_ENV?"idcard":"tel",value:m.replace(/\s/g,""),onBlur:function(e){t(e)||null==b||b()},onChange:function(e){var n=e.replace(/\s/g,"");null==x||x(n)}}),j&&e.createElement(l,{className:"xh-idnumber-input-slot"},j))}));export{c as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/IDNumberInput/index.tsx"],"sourcesContent":["import React, { ReactNode, forwardRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput from \"../FormInput\";\nimport \"./index.scss\";\nimport { verifyIdcard } from \"../../utils\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type IDNumberInputProps = {\n showScan?: boolean;\n label?: string;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: () => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n} & XHComponentCommonProps;\n\nconst BankCardNumberInput = forwardRef<any, IDNumberInputProps>(\n (props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入身份证\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n } = props;\n\n const handleBlur = value => {\n if (!verifyIdcard(value)) onError?.();\n };\n\n const handleChange = value => {\n const newValue = value.replace(/\\s/g, \"\");\n\n onChange?.(newValue);\n };\n\n const handleOnScan = () => {\n onScan?.();\n };\n\n useImperativeHandle(fromRef, () => {\n return {\n isValid: verifyIdcard(value.replace(/\\s/g, \"\")),\n focus: () => {\n if (typeof fromRef === \"object\") {\n fromRef?.current?.focus();\n }\n },\n };\n });\n\n return (\n <View className={classNames(\"xh-idnumber-input\", className)}>\n <XHFormInput\n padding\n ref={fromRef}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-idnumber-input-scan\"\n ></View>\n )\n }\n border={border}\n direction={direction}\n label={label}\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type={process.env.TARO_ENV === \"weapp\" ? \"idcard\" : \"tel\"}\n value={value.replace(/\\s/g, \"\")}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-idnumber-input-slot\">{slot}</View>}\n </View>\n );\n }\n);\n\nexport default BankCardNumberInput;\n"],"names":["BankCardNumberInput","forwardRef","props","fromRef","_a","showScan","label","value","readOnly","_b","direction","onScan","_c","placeholder","onError","onChange","_d","maxlength","slot","className","border","useImperativeHandle","isValid","verifyIdcard","replace","focus","current","React","createElement","View","classNames","XHFormInput","padding","ref","RightComponent","onClick","readonly","type","process","env","TARO_ENV","onBlur","newValue"],"mappings":"6NAyBA,IAAMA,EAAsBC,GAC1B,SAACC,EAAOC,GAEJ,IAAAC,EAaEF,EAAKG,SAbPA,cAAgBD,EAChBE,EAYEJ,EAAKI,MAXPC,EAWEL,EAXGK,MACLC,EAUEN,EAVMM,SACRC,EASEP,YATFQ,OAAY,IAAAD,EAAA,WACZE,EAQET,EAAKS,OAPPC,EAOEV,EAPoBW,YAAtBA,OAAc,IAAAD,EAAA,SAAQA,EACtBE,EAMEZ,EANKY,QACPC,EAKEb,WAJFc,EAIEd,EAJYe,UAAdA,OAAS,IAAAD,EAAG,GAAEA,EACdE,EAGEhB,EAHEgB,KACJC,EAEEjB,EAFOiB,UACTC,EACElB,SA2BJ,OAXAmB,EAAoBlB,GAAS,WAC3B,MAAO,CACLmB,QAASC,EAAahB,EAAMiB,QAAQ,MAAO,KAC3CC,MAAO,iBACkB,iBAAZtB,IACO,QAAhBC,EAAAD,aAAA,EAAAA,EAASuB,eAAO,IAAAtB,GAAAA,EAAEqB,QAErB,EAEL,IAGEE,EAACC,cAAAC,EAAK,CAAAV,UAAWW,EAAW,oBAAqBX,IAC/CQ,EAAAC,cAACG,EACC,CAAAC,WACAC,IAAK9B,EACL+B,eACE7B,GACEsB,EAAAC,cAACC,EACC,CAAAM,QAvBS,WACnBxB,SAAAA,GACF,EAsBYQ,UAAU,2BAIhBC,OAAQA,EACRV,UAAWA,EACXJ,MAAOA,EACPW,UAAWA,EACXJ,YAAaA,EACbuB,SAAU5B,EACV6B,KAA+B,UAAzBC,QAAQC,IAAIC,SAAuB,SAAW,MACpDjC,MAAOA,EAAMiB,QAAQ,MAAO,IAC5BiB,OA9Ca,SAAAlC,GACZgB,EAAahB,IAAQO,SAAAA,GAC5B,EA6CMC,SA3Ce,SAAAR,GACnB,IAAMmC,EAAWnC,EAAMiB,QAAQ,MAAO,IAEtCT,SAAAA,EAAW2B,EACb,IAyCKxB,GAAQS,EAAAC,cAACC,EAAI,CAACV,UAAU,0BAA0BD,GAGzD"}
@@ -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 | \"user\"\n | \"play\"\n | \"arrowLeft\"\n | \"arrowRight\"\n | \"keyboardClose\"\n | \"add\"\n | \"tongxunlu\"\n | \"zhuyi\"\n | \"duigou\";\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":"6KA4DM,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,EAAA,CAAA,EACXR,GAAK,CACRS,SAAUC,EAAYb,GACtBE,MAAKA,IAGP,OAAOY,EAAMC,cAAA,OAAAJ,EAAA,CAAAV,UAAWO,GAAa,CAAEL,MAAOO,GAAkBN,GAClE"}
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 | \"user\"\n | \"play\"\n | \"arrowLeft\"\n | \"arrowRight\"\n | \"keyboardClose\"\n | \"add\"\n | \"tongxunlu\"\n | \"zhuyi\"\n | \"duigou\"\n | \"edit2\"\n | \"alipay\"\n | \"wechat\";\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":"6KA+DM,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,EAAA,CAAA,EACXR,GAAK,CACRS,SAAUC,EAAYb,GACtBE,MAAKA,IAGP,OAAOY,EAAMC,cAAA,OAAAJ,EAAA,CAAAV,UAAWO,GAAa,CAAEL,MAAOO,GAAkBN,GAClE"}
@@ -1,2 +1,2 @@
1
- import{__read as n,__spreadArray as e}from"../node_modules/tslib/tslib.es6.js";import{View as a,Input as t}from"@tarojs/components";import l,{forwardRef as i,useState as m,useEffect as r,useCallback as o,useMemo as u,useImperativeHandle as c}from"react";import{inputRange as s}from"../src/utils/index.js";import k from"classnames";import h from"../ActionSheet/index.js";var p=["一","二","三","四","五","六","七","八","九","十"],f={linkmanName:"请输入联系人姓名",linkmanPhone:"请输入正确的手机号",relationType:"请选择与联系人关系"},N=[{value:"FATHER",text:"父亲"},{value:"MOTHER",text:"母亲"},{value:"MATE",text:"配偶"},{value:"CHILDREN",text:"子女"},{value:"SIBLING",text:"兄弟姐妹"},{value:"FRIENDS",text:"朋友"},{value:"COLLEAGUE",text:"同事"},{value:"RELATIVES",text:"亲戚"},{value:"OTHER",text:"其他"}],E="h5"!==process.env.TARO_ENV||window.navigator.userAgent.includes("xhqb"),x=i((function(i,x){var v=i.linkManNum,P=i.relations,T=void 0===P?N:P,d=i.onChange,g=i.onGetContacts,V=i.showImportIcon,y=void 0===V?E:V,A=i.onBlur,R=i.onCheckRelation,b=i.onInputChange,C=i.needName,I=void 0===C||C,O=n(m([]),2),_=O[0],B=O[1],F=n(m([]),2),L=F[0],M=F[1];r((function(){B(Array(v).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:"",relationValue:""}}))),M(Array(v).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:""}})))}),[v]);var S=o((function(n){return!!/1\d{10}/.test(n)}),[]),j=o((function(n,e){return"linkmanName"===n?!(!e||!e.replace(/^\s+|\s+$/gm,""))&&!(e.length>20):"linkmanPhone"===n?!(!e||!S(e)):"relationType"===n&&!!e}),[]),w=u((function(){for(var n=_,e=n.length,a={linkmanName:[],linkmanPhone:[],relationValue:[]},t=!0,l=0;l<e;l++){if(I)if(!j("linkmanName",n[l].linkmanName)){t=!1;break}if(!j("linkmanPhone",n[l].linkmanPhone)){t=!1;break}if(0!==l&&a.linkmanPhone.includes(n[l].linkmanPhone)){t=!1;break}if(a.linkmanPhone.push(n[l].linkmanPhone),!j("relationType",n[l].relationValue)){t=!1;break}a.relationValue.push(n[l].relationValue)}return a.relationValue.filter((function(n){return"MATE"===n})).length>=2&&(t=!1),t}),[_,I]);r((function(){null==d||d(_,w)}),[_,w]),c(x,(function(){return{canSubmit:w,setContacts:function(a,t){B((function(l){return l[t].linkmanName=a.linkmanName,l[t].linkmanPhone=a.linkmanPhone,e([],n(l),!1)})),q("linkmanName",t),q("linkmanPhone",t)}}}),[w]);var H=function(n,e){for(var a=_[e],t=0,l=_.length;t<l;t++)if(t!==e){var i=_[t];if("linkmanPhone"===n){if(""!==a.linkmanPhone&&""!==i.linkmanPhone&&i.linkmanPhone===a.linkmanPhone)return{pass:!1,message:"手机号与第".concat(t+1,"联系人号码重复,请修改")}}else if("relationValue"===n&&""!==a.relationValue&&"MATE"===i.relationValue&&"MATE"===a.relationValue)return{pass:!1,message:"关系与第".concat(t+1,"联系人关系重复,请修改")}}return{pass:!0,message:""}},G=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=s(l);B((function(a){return a[t].linkmanName=i,e([],n(a),!1)})),null==b||b("linkmanName",t)}),[]),D=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=s(l);B((function(a){return a[t].linkmanPhone=i,e([],n(a),!1)})),null==b||b("linkmanPhone",t)}),[]),q=o((function(a,t){if(j(a,_[t][a])){var l=H(a,t),i=l.pass,m=l.message;i||M((function(l){return l[t][a]=m,e([],n(l),!1)})),null==A||A(a,t)}else M((function(l){return l[t][a]=f[a],e([],n(l),!1)}))}),[_]),U=o((function(a,t){M((function(l){return l[t][a]="",e([],n(l),!1)}))}),[]);return l.createElement(a,{className:"xh-linkman"},_.map((function(i,m){return l.createElement(a,{key:m,className:"xh-linkman-item"},l.createElement(a,{className:"xh-linkman-title"},"第",p[m],"联系人"),I&&l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"姓名"),l.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?l.createElement("input",{className:"xh-linkman-main-input-main-input",type:"text",placeholder:"紧急联系人姓名",onChange:function(n){return G(n,m)},value:i.linkmanName,onBlur:function(){return q("linkmanName",m)},onFocus:function(){return U("linkmanName",m)}}):l.createElement(t,{placeholder:"紧急联系人姓名",className:"xh-linkman-main-input-main-input",onBlur:function(){return q("linkmanName",m)},value:i.linkmanName,type:"text",onInput:function(n){return G(n,m)},onFocus:function(){return U("linkmanName",m)}}),L[m].linkmanName&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].linkmanName)),y&&l.createElement(a,{className:"xh-linkman-main-input-contacts",onClick:function(){return null==g?void 0:g(m)}}))),l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"电话"),l.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?l.createElement("input",{className:"xh-linkman-main-input-main-input",type:"tel",placeholder:"紧急联系人手机号",onBlur:function(){return q("linkmanPhone",m)},maxLength:11,onChange:function(n){return D(n,m)},value:i.linkmanPhone,onFocus:function(){return U("linkmanPhone",m)}}):l.createElement(t,{placeholder:"紧急联系人手机号",className:"xh-linkman-main-input-main-input",type:"number",maxlength:11,onBlur:function(){return q("linkmanPhone",m)},value:i.linkmanPhone,onInput:function(n){return D(n,m)},onFocus:function(){return U("linkmanPhone",m)}}),L[m].linkmanPhone&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].linkmanPhone)))),l.createElement(h,{data:T,title:"选择与联系人的关系",onConfirm:function(a){M((function(a){return a[m].relationType="",e([],n(a),!1)})),B((function(t){return t[m].relationType=a.text,t[m].relationValue=a.value,e([],n(t),!1)})),Promise.resolve().then((function(){var t=H("relationValue",m),l=t.pass,i=t.message;l||M((function(a){return a[m].relationType=i,e([],n(a),!1)})),null==R||R(a,m)}))},onCancel:function(){return q("relationType",m)}},l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"关系"),l.createElement(a,{className:"xh-linkman-main-input-main"},l.createElement(a,{className:k("xh-linkman-main-input-main-input",{placeholder:!i.relationValue,tt:"tt"===process.env.TARO_ENV})},i.relationType||"选择与联系人关系"),L[m].relationType&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].relationType)),l.createElement(a,{className:"xh-linkman-main-input-arrow"})))))})))}));export{x as default};
1
+ import{__read as n,__spreadArray as e}from"../node_modules/tslib/tslib.es6.js";import{View as a,Input as t}from"@tarojs/components";import l,{forwardRef as i,useState as m,useEffect as r,useCallback as o,useMemo as u,useImperativeHandle as c}from"react";import{inputRange as s}from"../src/utils/index.js";import k from"classnames";import h from"../ActionSheet/index.js";var p=["一","二","三","四","五","六","七","八","九","十"],f={linkmanName:"请输入联系人姓名",linkmanPhone:"请输入正确的手机号",relationType:"请选择与联系人关系"},N=[{value:"FATHER",text:"父亲"},{value:"MOTHER",text:"母亲"},{value:"MATE",text:"配偶"},{value:"CHILDREN",text:"子女"},{value:"SIBLING",text:"兄弟姐妹"},{value:"FRIENDS",text:"朋友"},{value:"COLLEAGUE",text:"同事"},{value:"RELATIVES",text:"亲戚"},{value:"OTHER",text:"其他"}],E="h5"!==process.env.TARO_ENV||window.navigator.userAgent.includes("xhqb"),x=i((function(i,x){var v=i.linkManNum,P=i.relations,T=void 0===P?N:P,d=i.onChange,g=i.onGetContacts,V=i.showImportIcon,y=void 0===V?E:V,A=i.onBlur,C=i.onCheckRelation,R=i.onInputChange,b=i.needName,I=void 0===b||b,O=n(m([]),2),_=O[0],B=O[1],F=n(m([]),2),L=F[0],M=F[1];r((function(){B(Array(v).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:"",relationValue:""}}))),M(Array(v).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:""}})))}),[v]);var S=o((function(n){return!!/1\d{10}/.test(n)}),[]),j=o((function(n,e){return"linkmanName"===n?!(!e||!e.replace(/^\s+|\s+$/gm,""))&&!(e.length>20):"linkmanPhone"===n?!(!e||!S(e)):"relationType"===n&&!!e}),[]),w=u((function(){for(var n=_,e=n.length,a={linkmanName:[],linkmanPhone:[],relationValue:[]},t=!0,l=0;l<e;l++){if(I)if(!j("linkmanName",n[l].linkmanName)){t=!1;break}if(!j("linkmanPhone",n[l].linkmanPhone)){t=!1;break}if(0!==l&&a.linkmanPhone.includes(n[l].linkmanPhone)){t=!1;break}if(a.linkmanPhone.push(n[l].linkmanPhone),!j("relationType",n[l].relationValue)){t=!1;break}a.relationValue.push(n[l].relationValue)}return a.relationValue.filter((function(n){return"MATE"===n})).length>=2&&(t=!1),t}),[_,I]);r((function(){null==d||d(_,w)}),[_,w]),c(x,(function(){return{canSubmit:w,setContacts:function(a,t){B((function(l){return l[t].linkmanName=a.linkmanName||"",l[t].linkmanPhone=a.linkmanPhone||"",e([],n(l),!1)})),q("linkmanName",t),q("linkmanPhone",t)}}}),[w]);var H=function(n,e){for(var a=_[e],t=0,l=_.length;t<l;t++)if(t!==e){var i=_[t];if("linkmanPhone"===n){if(""!==a.linkmanPhone&&""!==i.linkmanPhone&&i.linkmanPhone===a.linkmanPhone)return{pass:!1,message:"手机号与第".concat(t+1,"联系人号码重复,请修改")}}else if("relationValue"===n&&""!==a.relationValue&&"MATE"===i.relationValue&&"MATE"===a.relationValue)return{pass:!1,message:"关系与第".concat(t+1,"联系人关系重复,请修改")}}return{pass:!0,message:""}},G=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=s(l);B((function(a){return a[t].linkmanName=i,e([],n(a),!1)})),null==R||R("linkmanName",t)}),[]),D=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=s(l);B((function(a){return a[t].linkmanPhone=i,e([],n(a),!1)})),null==R||R("linkmanPhone",t)}),[]),q=o((function(a,t){if(j(a,_[t][a])){var l=H(a,t),i=l.pass,m=l.message;i||M((function(l){return l[t][a]=m,e([],n(l),!1)})),null==A||A(a,t)}else M((function(l){return l[t][a]=f[a],e([],n(l),!1)}))}),[_]),U=o((function(a,t){M((function(l){return l[t][a]="",e([],n(l),!1)}))}),[]);return l.createElement(a,{className:"xh-linkman"},_.map((function(i,m){return l.createElement(a,{key:m,className:"xh-linkman-item"},l.createElement(a,{className:"xh-linkman-title"},"第",p[m],"联系人"),I&&l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"姓名"),l.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?l.createElement("input",{className:"xh-linkman-main-input-main-input",type:"text",placeholder:"紧急联系人姓名",onChange:function(n){return G(n,m)},value:i.linkmanName,onBlur:function(){return q("linkmanName",m)},onFocus:function(){return U("linkmanName",m)}}):l.createElement(t,{placeholder:"紧急联系人姓名",className:"xh-linkman-main-input-main-input",onBlur:function(){return q("linkmanName",m)},value:i.linkmanName,type:"text",onInput:function(n){return G(n,m)},onFocus:function(){return U("linkmanName",m)}}),L[m].linkmanName&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].linkmanName)),y&&l.createElement(a,{className:"xh-linkman-main-input-contacts",onClick:function(){return null==g?void 0:g(m)}}))),l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"电话"),l.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?l.createElement("input",{className:"xh-linkman-main-input-main-input",type:"tel",placeholder:"紧急联系人手机号",onBlur:function(){return q("linkmanPhone",m)},maxLength:11,onChange:function(n){return D(n,m)},value:i.linkmanPhone,onFocus:function(){return U("linkmanPhone",m)}}):l.createElement(t,{placeholder:"紧急联系人手机号",className:"xh-linkman-main-input-main-input",type:"number",maxlength:11,onBlur:function(){return q("linkmanPhone",m)},value:i.linkmanPhone,onInput:function(n){return D(n,m)},onFocus:function(){return U("linkmanPhone",m)}}),L[m].linkmanPhone&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].linkmanPhone)),y&&!I&&l.createElement(a,{className:"xh-linkman-main-input-contacts",onClick:function(){return null==g?void 0:g(m)}}))),l.createElement(h,{data:T,title:"选择与联系人的关系",onConfirm:function(a){M((function(a){return a[m].relationType="",e([],n(a),!1)})),B((function(t){return t[m].relationType=a.text,t[m].relationValue=a.value,e([],n(t),!1)})),Promise.resolve().then((function(){var t=H("relationValue",m),l=t.pass,i=t.message;l||M((function(a){return a[m].relationType=i,e([],n(a),!1)})),null==C||C(a,m)}))},onCancel:function(){return q("relationType",m)}},l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"关系"),l.createElement(a,{className:"xh-linkman-main-input-main"},l.createElement(a,{className:k("xh-linkman-main-input-main-input",{placeholder:!i.relationValue,tt:"tt"===process.env.TARO_ENV})},i.relationType||"选择与联系人关系"),L[m].relationType&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].relationType)),l.createElement(a,{className:"xh-linkman-main-input-arrow"})))))})))}));export{x as default};
2
2
  //# sourceMappingURL=index.js.map