taro-react-uilib 1.3.4-2 → 1.3.4-4

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 (70) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/components/ActivityIndicator/index.js +1 -1
  3. package/dist/components/ActivityIndicator/index.js.map +1 -1
  4. package/dist/components/Button/index.js +1 -1
  5. package/dist/components/Button/index.js.map +1 -1
  6. package/dist/components/Cell/index.js +1 -1
  7. package/dist/components/Cell/index.js.map +1 -1
  8. package/dist/components/Dialog/Confirm/index.js +1 -1
  9. package/dist/components/Dialog/Confirm/index.js.map +1 -1
  10. package/dist/components/Icon/index.js.map +1 -1
  11. package/dist/components/LinkMan/index.js +1 -1
  12. package/dist/components/LinkMan/index.js.map +1 -1
  13. package/dist/components/List/index.js +1 -1
  14. package/dist/components/List/index.js.map +1 -1
  15. package/dist/components/Loading/index.js +1 -1
  16. package/dist/components/Loading/index.js.map +1 -1
  17. package/dist/components/Page/index.js +1 -1
  18. package/dist/components/Page/index.js.map +1 -1
  19. package/dist/components/ProgressCircle/index.js +2 -0
  20. package/dist/components/ProgressCircle/index.js.map +1 -0
  21. package/dist/components/src/index.js +1 -1
  22. package/dist/index.js +6 -6
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.umd.js +6 -6
  25. package/dist/index.umd.js.map +1 -1
  26. package/dist/styles/components/activityindicator.scss +5 -2
  27. package/dist/styles/components/button.scss +24 -18
  28. package/dist/styles/components/captcha.scss +1 -2
  29. package/dist/styles/components/cell.scss +15 -3
  30. package/dist/styles/components/dialog.scss +2 -2
  31. package/dist/styles/components/dialogref.scss +1 -1
  32. package/dist/styles/components/font/iconfont.ttf +0 -0
  33. package/dist/styles/components/font/iconfont.woff +0 -0
  34. package/dist/styles/components/font/iconfont.woff2 +0 -0
  35. package/dist/styles/components/icon.scss +4 -0
  36. package/dist/styles/components/index.scss +1 -0
  37. package/dist/styles/components/list.scss +2 -2
  38. package/dist/styles/components/loading.scss +38 -31
  39. package/dist/styles/components/popup.scss +2 -2
  40. package/dist/styles/components/progresscircle.scss +71 -0
  41. package/dist/styles/components/step.scss +1 -1
  42. package/dist/styles/themes/default.scss +5 -1
  43. package/dist/styles/themes/variable.scss +8 -0
  44. package/lib/components/ActivityIndicator/index.js +20 -4
  45. package/lib/components/ActivityIndicator/index.js.map +1 -1
  46. package/lib/components/Button/index.js +14 -14
  47. package/lib/components/Button/index.js.map +1 -1
  48. package/lib/components/Cell/index.js +5 -3
  49. package/lib/components/Cell/index.js.map +1 -1
  50. package/lib/components/Dialog/Confirm/index.js +1 -1
  51. package/lib/components/Icon/index.js.map +1 -1
  52. package/lib/components/LinkMan/index.js +28 -20
  53. package/lib/components/LinkMan/index.js.map +1 -1
  54. package/lib/components/List/index.js +3 -1
  55. package/lib/components/List/index.js.map +1 -1
  56. package/lib/components/Loading/index.js +7 -4
  57. package/lib/components/Loading/index.js.map +1 -1
  58. package/lib/components/Page/index.js +1 -1
  59. package/lib/components/Page/index.js.map +1 -1
  60. package/lib/components/ProgressCircle/index.js +22 -0
  61. package/lib/components/ProgressCircle/index.js.map +1 -0
  62. package/lib/index.js +1 -0
  63. package/lib/index.js.map +1 -1
  64. package/package.json +1 -1
  65. package/types/components/ActivityIndicator/index.d.ts +7 -5
  66. package/types/components/Cell/index.d.ts +1 -0
  67. package/types/components/Icon/index.d.ts +1 -1
  68. package/types/components/Loading/index.d.ts +1 -0
  69. package/types/components/ProgressCircle/index.d.ts +13 -0
  70. package/types/index.d.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [1.3.4-4](https://code.xhdev.xyz/h5group/taro-uilib/compare/v1.3.4-3...v1.3.4-4) (2023-07-27)
2
+
3
+
4
+ ### Features
5
+
6
+ * Cell优化 ([9de57d1](https://code.xhdev.xyz/h5group/taro-uilib/commits/9de57d146d341fb9b9296848f29de72f4fddfb68))
7
+ * UI优化。loadingButton修复 ([5eafc61](https://code.xhdev.xyz/h5group/taro-uilib/commits/5eafc6104437ece5a718fa4578d2bf99b7ad6956))
8
+ * 新增css变量 ([a6beb40](https://code.xhdev.xyz/h5group/taro-uilib/commits/a6beb40a97ac4f312f7e7bf9dcdabea3f9a338f3))
9
+
10
+
11
+
12
+ ## [1.3.4-3](https://code.xhdev.xyz/h5group/taro-uilib/compare/v1.3.4-2...v1.3.4-3) (2023-07-24)
13
+
14
+
15
+ ### Features
16
+
17
+ * 修复button样式覆盖的问题、修改loading样式 ([ac96dba](https://code.xhdev.xyz/h5group/taro-uilib/commits/ac96dba99f76364009abd82e8c209ae730bb23df))
18
+ * 增加圆形进度条组件、Icon增加 ([0c637b5](https://code.xhdev.xyz/h5group/taro-uilib/commits/0c637b5d8b3ee3d1edc3126cffc855ad7fd2890a))
19
+
20
+
21
+
1
22
  ## [1.3.4-2](https://code.xhdev.xyz/h5group/taro-uilib/compare/v1.3.4-1...v1.3.4-2) (2023-07-20)
2
23
 
3
24
 
@@ -1,2 +1,2 @@
1
- import a from"react";import t from"classnames";import{View as e}from"@tarojs/components";var i=function(i){var c=i.className,r=i.style,m=i.slot,s=t("xh-activity-indicator",c);return a.createElement(e,{className:s,style:r},a.createElement(e,{className:"xh-activity-indicator-main"}),a.createElement(e,{className:"xh-activity-indicator-main"}),a.createElement(e,{className:"xh-activity-indicator-main"}),m)};export{i as default};
1
+ import{__rest as t,__assign as e}from"../node_modules/tslib/tslib.es6.js";import a from"react";import i from"classnames";import{View as s}from"@tarojs/components";import{pxTransform as m}from"../src/utils/index.js";var r=function(r){var c=r.className,o=r.style,l=r.size,n=void 0===l?36:l,d=t(r,["className","style","size"]),f=i("xh-activity-indicator",c),h=e(e({},o),d);return 36!==n&&(h=e(e({},h),{width:m(n),height:m(n)})),a.createElement(s,{className:f,style:h},a.createElement(s,{className:"xh-activity-indicator-main"}),a.createElement(s,{className:"xh-activity-indicator-main"}),a.createElement(s,{className:"xh-activity-indicator-main"}))};export{r as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ActivityIndicator/index.tsx"],"sourcesContent":["import React, { CSSProperties, FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n color?: string;\n tip?: string | ReactNode;\n style?: CSSProperties;\n slot?: ReactNode;\n} & XHComponentCommonProps;\n\nconst Activityindicator: FC<LoadingProps> = ({ className, style, slot }) => {\n const cls = classNames(\"xh-activity-indicator\", className);\n\n return (\n <View className={cls} style={style}>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n {slot}\n </View>\n );\n};\n\nexport default Activityindicator;\n"],"names":["Activityindicator","_a","className","style","slot","cls","classNames","React","createElement","View"],"mappings":"yFAaM,IAAAA,EAAsC,SAACC,GAAE,IAAAC,cAAWC,EAAKF,EAAAE,MAAEC,EAAIH,EAAAG,KAC7DC,EAAMC,EAAW,wBAAyBJ,GAEhD,OACEK,EAACC,cAAAC,EAAK,CAAAP,UAAWG,EAAKF,MAAOA,GAC3BI,EAAAC,cAACC,EAAI,CAACP,UAAU,+BAChBK,EAAAC,cAACC,EAAI,CAACP,UAAU,+BAChBK,EAAAC,cAACC,EAAI,CAACP,UAAU,+BACfE,EAGP"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ActivityIndicator/index.tsx"],"sourcesContent":["import React, { CSSProperties, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n style?: CSSProperties & {\n \"--loading-border-color\"?: StandardLonghandProperties[\"color\"];\n \"--loading-border-width\"?: string;\n };\n size?: number;\n} & XHComponentCommonProps;\n\nconst Activityindicator: FC<LoadingProps> = ({\n className,\n style,\n size = 36,\n ...rest\n}) => {\n const cls = classNames(\"xh-activity-indicator\", className);\n\n let finalStyle = {\n ...style,\n ...rest,\n };\n if (size !== 36) {\n finalStyle = {\n ...finalStyle,\n width: pxTransform(size),\n height: pxTransform(size),\n };\n }\n\n return (\n <View className={cls} style={finalStyle}>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n </View>\n );\n};\n\nexport default Activityindicator;\n"],"names":["Activityindicator","_a","className","style","_b","size","rest","__rest","cls","classNames","finalStyle","__assign","width","pxTransform","height","React","createElement","View"],"mappings":"uNAgBM,IAAAA,EAAsC,SAACC,GAC3C,IAAAC,EAASD,EAAAC,UACTC,EAAKF,EAAAE,MACLC,EAASH,EAAAI,KAATA,OAAI,IAAAD,EAAG,GAAEA,EACNE,EAAIC,EAAAN,EAJoC,8BAMrCO,EAAMC,EAAW,wBAAyBP,GAE5CQ,EACCC,EAAAA,EAAA,CAAA,EAAAR,GACAG,GAUL,OARa,KAATD,IACFK,SACKA,GAAU,CACbE,MAAOC,EAAYR,GACnBS,OAAQD,EAAYR,MAKtBU,EAACC,cAAAC,EAAK,CAAAf,UAAWM,EAAKL,MAAOO,GAC3BK,EAAAC,cAACC,EAAI,CAACf,UAAU,+BAChBa,EAAAC,cAACC,EAAI,CAACf,UAAU,+BAChBa,EAACC,cAAAC,GAAKf,UAAU,+BAGtB"}
@@ -1,2 +1,2 @@
1
- import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as o,useRef as n,useEffect as r}from"react";import a from"classnames";import{Button as s}from"@tarojs/components";import{useTaroEnv as l}from"../src/hooks/index.js";import i from"./DotJump.js";var m=function(m){var u=m.disabled,d=void 0!==u&&u,p=m.type,c=void 0===p?"default":p,h=m.size,b=void 0===h?"normal":h,g=m.shape,f=void 0===g?"round":g,x=m.children,y=m.className,v=m.htmlType,P=m.formType,T=m.text,E=m.openType,M=m.lang,w=m.sessionFrom,C=m.sendMessageTitle,I=m.sendMessagePath,N=m.sendMessageImg,j=m.showMessageCard,k=m.appParameter,G=m.onGetUserInfo,S=m.onGetPhoneNumber,W=m.onOpenSetting,q=m.onError,A=m.onContact,D=m.onClick,F=m.preventTime,O=void 0===F?2500:F,U=m.style,z=m.loading,B=m.loadingStyle,J=m.loadingSpace,_=m.ghost,H=void 0!==_&&_,K=m.hollow,L=void 0!==K&&K,Q=l(),R=e(o(!1),2),V=R[0],X=R[1],Y=n(),Z=a("xh-button",{"xh-button-default":"default"===c,"xh-button-primary":"primary"===c,"xh-button-secondary":"secondary"===c,"xh-button-ghost":H,"xh-button-hollow":L,"xh-button-warn":"warn"===c,"xh-button-square":"square"===f,"xh-button-round":"round"===f,"xh-button-rectangle":"rectangle"===f,"xh-button-normal":"normal"===b,"xh-button-small":"mini"===b,"xh-button-full":"full"===b,"xh-button-disabled":d,"xh-button-webutton":"WEAPP"===Q},y),$=function(e){"WEB"===Q&&e.nativeEvent.stopImmediatePropagation(),e.preventDefault(),V&&0!==O||(0!==O&&(Y.current=setTimeout((function(){X(!1),clearTimeout(Y.current)}),O)),0!==O&&X(!0),D&&D(e))};r((function(){return function(){clearTimeout(Y.current)}}),[]);var ee=t.createElement(s,{className:Z,formType:P,openType:E,lang:M,type:c,sessionFrom:w,sendMessageTitle:C,sendMessagePath:I,sendMessageImg:N,showMessageCard:j,appParameter:k,onGetUserInfo:G,onGetPhoneNumber:S,onOpenSetting:W,onError:q,onContact:A,onClick:$,disabled:d,style:U,loading:z},x);return"WEAPP"===Q?ee:t.createElement("button",{className:Z,disabled:d,type:v,onClick:d?void 0:$,style:U},x||T,z&&t.createElement(i,{style:B,space:J}))};export{m as default};
1
+ import{__read as e}from"../node_modules/tslib/tslib.es6.js";import o,{useState as n,useRef as t,useEffect as r}from"react";import a from"classnames";import{Button as s}from"@tarojs/components";import{useTaroEnv as l}from"../src/hooks/index.js";import i from"./DotJump.js";var m=function(m){var d=m.disabled,p=void 0!==d&&d,c=m.type,u=void 0===c?"default":c,g=m.size,f=void 0===g?"normal":g,y=m.shape,h=void 0===y?"round":y,v=m.children,b=m.className,P=m.htmlType,T=m.formType,E=m.text,M=m.openType,w=m.lang,C=m.sessionFrom,I=m.sendMessageTitle,N=m.sendMessagePath,j=m.sendMessageImg,k=m.showMessageCard,x=m.appParameter,G=m.onGetUserInfo,S=m.onGetPhoneNumber,W=m.onOpenSetting,q=m.onError,A=m.onContact,D=m.onClick,F=m.preventTime,O=void 0===F?2500:F,U=m.style,z=m.loading,B=m.loadingStyle,J=m.loadingSpace,_=m.ghost,H=void 0!==_&&_,K=m.hollow,L=void 0!==K&&K,Q=l(),R=e(n(!1),2),V=R[0],X=R[1],Y=t(),Z=a("xh-button",{default:"default"===u,primary:"primary"===u,secondary:"secondary"===u,ghost:H,hollow:L,warn:"warn"===u,quare:"square"===h,round:"round"===h,rectangle:"rectangle"===h,normal:"normal"===f,small:"mini"===f,full:"full"===f,disabled:p,webutton:"WEAPP"===Q},b),$=function(e){"WEB"===Q&&e.nativeEvent.stopImmediatePropagation(),e.preventDefault(),V&&0!==O||(0!==O&&(Y.current=setTimeout((function(){X(!1),clearTimeout(Y.current)}),O)),0!==O&&X(!0),D&&D(e))};r((function(){return function(){clearTimeout(Y.current)}}),[]);var ee=o.createElement(s,{className:Z,formType:T,openType:M,lang:w,type:u,sessionFrom:C,sendMessageTitle:I,sendMessagePath:N,sendMessageImg:j,showMessageCard:k,appParameter:x,onGetUserInfo:G,onGetPhoneNumber:S,onOpenSetting:W,onError:q,onContact:A,onClick:$,disabled:p,style:U,loading:z},v);return"WEAPP"===Q?ee:o.createElement("button",{className:Z,disabled:p,type:P,onClick:p?void 0:$,style:U},v||E,z&&o.createElement(i,{style:B,space:J}))};export{m as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Button/index.tsx"],"sourcesContent":["import React, {\n FC,\n MouseEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Button } from \"@tarojs/components\";\nimport { ButtonProps } from \"@tarojs/components/types/Button\";\nimport {\n ITouchEvent,\n TouchEventFunction,\n} from \"@tarojs/components/types/common\";\n\nimport { useTaroEnv } from \"../../hooks\";\nimport \"./index.scss\";\nimport DotJump from \"./DotJump\";\n\nexport type ButtonType = \"default\" | \"secondary\" | \"primary\" | \"warn\";\n\nexport type ButtonShape = \"square\" | \"round\" | \"rectangle\";\n\nexport type ButtonSize = \"default\" | \"mini\" | \"full\";\n\nexport type WechatOpenType =\n | \"contact\"\n /** 触发用户转发,使用前建议先阅读使用指引\n * @see https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95\n */\n | \"share\"\n /** 获取用户手机号,可以从 bindgetphonenumber 回调中获取到用户信息\n * @see https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html\n */\n | \"getPhoneNumber\"\n /** 获取用户信息,可以从 bindgetuserinfo 回调中获取到用户信息 */\n | \"getUserInfo\"\n /** 用户实名信息授权,已经弃用 */\n | \"getRealnameAuthInfo\"\n /** 打开APP,可以通过app-parameter属性设定向APP传的参数\n * @see https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html\n */\n | \"launchApp\"\n /** 打开授权设置页 */\n | \"openSetting\"\n /** 打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容 */\n | \"feedback\";\nexport type XhButtonProps = {\n htmlType?: \"button\" | \"submit\" | \"reset\";\n type?: ButtonType;\n size?: ButtonSize;\n shape?: ButtonShape;\n disabled?: boolean;\n className?: string;\n styleName?: string;\n text?: string;\n preventTime?: number;\n onClick?: (e: ITouchEvent | MouseEvent) => void;\n style?: React.CSSProperties;\n loading?: boolean;\n loadingStyle?: React.CSSProperties;\n loadingSpace?: number;\n ghost?: boolean;\n /**\n * 镂空\n */\n hollow?: boolean;\n} & Omit<ButtonProps, \"type\" | \"size\">;\n\nconst XhButton: FC<XhButtonProps> = props => {\n const {\n disabled = false,\n type = \"default\",\n size = \"normal\",\n shape = \"round\",\n children,\n className,\n htmlType,\n formType,\n text,\n openType,\n lang,\n sessionFrom,\n sendMessageTitle,\n sendMessagePath,\n sendMessageImg,\n showMessageCard,\n appParameter,\n onGetUserInfo,\n onGetPhoneNumber,\n onOpenSetting,\n onError,\n onContact,\n onClick,\n preventTime = 2500,\n style,\n loading,\n loadingStyle,\n loadingSpace,\n ghost = false,\n hollow = false,\n } = props;\n const state = useTaroEnv();\n const [preventClick, setPreventClick] = useState(false);\n const timer = useRef<NodeJS.Timeout | undefined>();\n const classObj = classNames(\n \"xh-button\",\n {\n \"xh-button-default\": type === \"default\",\n \"xh-button-primary\": type === \"primary\",\n \"xh-button-secondary\": type === \"secondary\",\n \"xh-button-ghost\": ghost,\n \"xh-button-hollow\": hollow,\n \"xh-button-warn\": type === \"warn\",\n \"xh-button-square\": shape === \"square\",\n \"xh-button-round\": shape === \"round\",\n \"xh-button-rectangle\": shape === \"rectangle\",\n \"xh-button-normal\": size === \"normal\",\n \"xh-button-small\": size === \"mini\",\n \"xh-button-full\": size === \"full\",\n \"xh-button-disabled\": disabled,\n \"xh-button-webutton\": state === \"WEAPP\",\n },\n className\n );\n\n const handleClick: MouseEventHandler & TouchEventFunction = e => {\n state === \"WEB\" && e.nativeEvent.stopImmediatePropagation();\n e.preventDefault();\n\n if (preventClick && preventTime !== 0) {\n console.log(\"重复点击\");\n return;\n }\n if (preventTime !== 0) {\n timer.current = setTimeout(() => {\n setPreventClick(false);\n clearTimeout(timer.current);\n }, preventTime);\n }\n if (preventTime !== 0) setPreventClick(true);\n console.log(\"正常点击\");\n onClick && onClick(e);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n\n const weButton = (\n <Button\n className={classObj}\n formType={formType}\n openType={openType}\n lang={lang}\n type={type as ButtonProps[\"type\"]}\n sessionFrom={sessionFrom}\n sendMessageTitle={sendMessageTitle}\n sendMessagePath={sendMessagePath}\n sendMessageImg={sendMessageImg}\n showMessageCard={showMessageCard}\n appParameter={appParameter}\n onGetUserInfo={onGetUserInfo}\n onGetPhoneNumber={onGetPhoneNumber}\n onOpenSetting={onOpenSetting}\n onError={onError}\n onContact={onContact}\n onClick={handleClick}\n disabled={disabled}\n style={style}\n loading={loading}\n >\n {children}\n </Button>\n );\n\n if (state === \"WEAPP\") {\n return weButton;\n }\n\n return (\n // eslint-disable-next-line react/button-has-type\n <button\n className={classObj}\n disabled={disabled}\n type={htmlType}\n onClick={disabled ? undefined : handleClick}\n style={style}\n >\n {children || text}\n {loading && <DotJump style={loadingStyle} space={loadingSpace} />}\n </button>\n );\n};\n\nexport default XhButton;\n"],"names":["XhButton","props","_a","disabled","_b","type","_c","size","_d","shape","children","className","htmlType","formType","text","openType","lang","sessionFrom","sendMessageTitle","sendMessagePath","sendMessageImg","showMessageCard","appParameter","onGetUserInfo","onGetPhoneNumber","onOpenSetting","onError","onContact","onClick","_e","preventTime","style","loading","loadingStyle","loadingSpace","_f","ghost","_g","hollow","state","useTaroEnv","_h","__read","useState","preventClick","setPreventClick","timer","useRef","classObj","classNames","handleClick","e","nativeEvent","stopImmediatePropagation","preventDefault","current","setTimeout","clearTimeout","useEffect","weButton","React","Button","createElement","undefined","DotJump","space"],"mappings":"gRAqEM,IAAAA,EAA8B,SAAAC,GAEhC,IAAAC,EA8BED,EAAKE,SA9BPA,OAAQ,IAAAD,GAAQA,EAChBE,EA6BEH,OA7BFI,aAAO,UAASD,EAChBE,EA4BEL,EA5BaM,KAAfA,OAAO,IAAAD,EAAA,WACPE,EA2BEP,EA3BaQ,MAAfA,OAAQ,IAAAD,EAAA,UACRE,EA0BET,EAAKS,SAzBPC,EAyBEV,EAAKU,UAxBPC,EAwBEX,EAxBMW,SACRC,EAuBEZ,EAvBMY,SACRC,EAsBEb,OArBFc,EAqBEd,EAAKc,SApBPC,EAoBEf,EAAKe,KAnBPC,EAmBEhB,EAnBSgB,YACXC,EAkBEjB,mBAjBFkB,EAiBElB,EAAKkB,gBAhBPC,EAgBEnB,EAAKmB,eAfPC,EAeEpB,EAfaoB,gBACfC,EAcErB,EAdUqB,aACZC,EAaEtB,gBAZFuB,EAYEvB,EAAKuB,iBAXPC,EAWExB,EAAKwB,cAVPC,EAUEzB,EAVKyB,QACPC,EASE1B,YARF2B,EAQE3B,EAAK2B,QAPPC,EAOE5B,EAPgB6B,YAAlBA,OAAc,IAAAD,EAAA,OACdE,EAME9B,EAAK8B,MALPC,EAKE/B,EALK+B,QACPC,EAIEhC,eAHFiC,EAGEjC,eAFFkC,EAEElC,EAFWmC,MAAbA,OAAQ,IAAAD,KACRE,EACEpC,EADYqC,OAAdA,OAAS,IAAAD,KAELE,EAAQC,IACRC,EAAAC,EAAkCC,GAAS,GAAM,GAAhDC,EAAYH,EAAA,GAAEI,OACfC,EAAQC,IACRC,EAAWC,EACf,YACA,CACE,oBAA8B,YAAT5C,EACrB,oBAA8B,YAATA,EACrB,sBAAgC,cAATA,EACvB,kBAAmB+B,EACnB,mBAAoBE,EACpB,iBAA2B,SAATjC,EAClB,mBAA8B,WAAVI,EACpB,kBAA6B,UAAVA,EACnB,sBAAiC,cAAVA,EACvB,mBAA6B,WAATF,EACpB,kBAA4B,SAATA,EACnB,iBAA2B,SAATA,EAClB,qBAAsBJ,EACtB,qBAAgC,UAAVoC,GAExB5B,GAGIuC,EAAsD,SAAAC,GAChD,QAAVZ,GAAmBY,EAAEC,YAAYC,2BACjCF,EAAEG,iBAEEV,GAAgC,IAAhBd,IAIA,IAAhBA,IACFgB,EAAMS,QAAUC,YAAW,WACzBX,GAAgB,GAChBY,aAAaX,EAAMS,QACpB,GAAEzB,IAEe,IAAhBA,GAAmBe,GAAgB,GAEvCjB,GAAWA,EAAQuB,GACrB,EAEAO,GAAU,WACR,OAAO,WACLD,aAAaX,EAAMS,QACrB,CACD,GAAE,IAEH,IAAMI,GACJC,gBAACC,EAAM,CACLlD,UAAWqC,EACXnC,SAAUA,EACVE,SAAUA,EACVC,KAAMA,EACNX,KAAMA,EACNY,YAAaA,EACbC,iBAAkBA,EAClBC,gBAAiBA,EACjBC,eAAgBA,EAChBC,gBAAiBA,EACjBC,aAAcA,EACdC,cAAeA,EACfC,iBAAkBA,EAClBC,cAAeA,EACfC,QAASA,EACTC,UAAWA,EACXC,QAASsB,EACT/C,SAAUA,EACV4B,MAAOA,EACPC,QAASA,GAERtB,GAIL,MAAc,UAAV6B,EACKoB,GAKPC,EACEE,cAAA,SAAA,CAAAnD,UAAWqC,EACX7C,SAAUA,EACVE,KAAMO,EACNgB,QAASzB,OAAW4D,EAAYb,EAChCnB,MAAOA,GAENrB,GAAYI,EACZkB,GAAW4B,EAAAE,cAACE,EAAO,CAACjC,MAAOE,EAAcgC,MAAO/B,IAGvD"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Button/index.tsx"],"sourcesContent":["import React, {\n FC,\n MouseEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Button } from \"@tarojs/components\";\nimport { ButtonProps } from \"@tarojs/components/types/Button\";\nimport {\n ITouchEvent,\n TouchEventFunction,\n} from \"@tarojs/components/types/common\";\n\nimport { useTaroEnv } from \"../../hooks\";\nimport \"./index.scss\";\nimport DotJump from \"./DotJump\";\n\nexport type ButtonType = \"default\" | \"secondary\" | \"primary\" | \"warn\";\n\nexport type ButtonShape = \"square\" | \"round\" | \"rectangle\";\n\nexport type ButtonSize = \"default\" | \"mini\" | \"full\";\n\nexport type WechatOpenType =\n | \"contact\"\n /** 触发用户转发,使用前建议先阅读使用指引\n * @see https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95\n */\n | \"share\"\n /** 获取用户手机号,可以从 bindgetphonenumber 回调中获取到用户信息\n * @see https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html\n */\n | \"getPhoneNumber\"\n /** 获取用户信息,可以从 bindgetuserinfo 回调中获取到用户信息 */\n | \"getUserInfo\"\n /** 用户实名信息授权,已经弃用 */\n | \"getRealnameAuthInfo\"\n /** 打开APP,可以通过app-parameter属性设定向APP传的参数\n * @see https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html\n */\n | \"launchApp\"\n /** 打开授权设置页 */\n | \"openSetting\"\n /** 打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容 */\n | \"feedback\";\nexport type XhButtonProps = {\n htmlType?: \"button\" | \"submit\" | \"reset\";\n type?: ButtonType;\n size?: ButtonSize;\n shape?: ButtonShape;\n disabled?: boolean;\n className?: string;\n styleName?: string;\n text?: string;\n preventTime?: number;\n onClick?: (e: ITouchEvent | MouseEvent) => void;\n style?: React.CSSProperties;\n loading?: boolean;\n loadingStyle?: React.CSSProperties;\n loadingSpace?: number;\n ghost?: boolean;\n /**\n * 镂空\n */\n hollow?: boolean;\n} & Omit<ButtonProps, \"type\" | \"size\">;\n\nconst XhButton: FC<XhButtonProps> = props => {\n const {\n disabled = false,\n type = \"default\",\n size = \"normal\",\n shape = \"round\",\n children,\n className,\n htmlType,\n formType,\n text,\n openType,\n lang,\n sessionFrom,\n sendMessageTitle,\n sendMessagePath,\n sendMessageImg,\n showMessageCard,\n appParameter,\n onGetUserInfo,\n onGetPhoneNumber,\n onOpenSetting,\n onError,\n onContact,\n onClick,\n preventTime = 2500,\n style,\n loading,\n loadingStyle,\n loadingSpace,\n ghost = false,\n hollow = false,\n } = props;\n const state = useTaroEnv();\n const [preventClick, setPreventClick] = useState(false);\n const timer = useRef<NodeJS.Timeout | undefined>();\n const classObj = classNames(\n \"xh-button\",\n {\n default: type === \"default\",\n primary: type === \"primary\",\n secondary: type === \"secondary\",\n ghost: ghost,\n hollow: hollow,\n warn: type === \"warn\",\n quare: shape === \"square\",\n round: shape === \"round\",\n rectangle: shape === \"rectangle\",\n normal: size === \"normal\",\n small: size === \"mini\",\n full: size === \"full\",\n disabled: disabled,\n webutton: state === \"WEAPP\",\n },\n className\n );\n\n const handleClick: MouseEventHandler & TouchEventFunction = e => {\n state === \"WEB\" && e.nativeEvent.stopImmediatePropagation();\n e.preventDefault();\n\n if (preventClick && preventTime !== 0) {\n console.log(\"重复点击\");\n return;\n }\n if (preventTime !== 0) {\n timer.current = setTimeout(() => {\n setPreventClick(false);\n clearTimeout(timer.current);\n }, preventTime);\n }\n if (preventTime !== 0) setPreventClick(true);\n console.log(\"正常点击\");\n onClick && onClick(e);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n\n const weButton = (\n <Button\n className={classObj}\n formType={formType}\n openType={openType}\n lang={lang}\n type={type as ButtonProps[\"type\"]}\n sessionFrom={sessionFrom}\n sendMessageTitle={sendMessageTitle}\n sendMessagePath={sendMessagePath}\n sendMessageImg={sendMessageImg}\n showMessageCard={showMessageCard}\n appParameter={appParameter}\n onGetUserInfo={onGetUserInfo}\n onGetPhoneNumber={onGetPhoneNumber}\n onOpenSetting={onOpenSetting}\n onError={onError}\n onContact={onContact}\n onClick={handleClick}\n disabled={disabled}\n style={style}\n loading={loading}\n >\n {children}\n </Button>\n );\n\n if (state === \"WEAPP\") {\n return weButton;\n }\n\n return (\n // eslint-disable-next-line react/button-has-type\n <button\n className={classObj}\n disabled={disabled}\n type={htmlType}\n onClick={disabled ? undefined : handleClick}\n style={style}\n >\n {children || text}\n {loading && <DotJump style={loadingStyle} space={loadingSpace} />}\n </button>\n );\n};\n\nexport default XhButton;\n"],"names":["XhButton","props","_a","disabled","_b","type","_c","size","_d","shape","children","className","htmlType","formType","text","openType","lang","sessionFrom","sendMessageTitle","sendMessagePath","sendMessageImg","showMessageCard","appParameter","onGetUserInfo","onGetPhoneNumber","onOpenSetting","onError","onContact","onClick","_e","preventTime","style","loading","loadingStyle","loadingSpace","_f","ghost","_g","hollow","state","useTaroEnv","_h","__read","useState","preventClick","setPreventClick","timer","useRef","classObj","classNames","default","primary","secondary","warn","quare","round","rectangle","normal","small","full","webutton","handleClick","e","nativeEvent","stopImmediatePropagation","preventDefault","current","setTimeout","clearTimeout","useEffect","weButton","React","Button","createElement","undefined","DotJump","space"],"mappings":"gRAqEM,IAAAA,EAA8B,SAAAC,GAEhC,IAAAC,EA8BED,EAAKE,SA9BPA,OAAQ,IAAAD,GAAQA,EAChBE,EA6BEH,OA7BFI,aAAO,UAASD,EAChBE,EA4BEL,EA5BaM,KAAfA,OAAO,IAAAD,EAAA,WACPE,EA2BEP,EA3BaQ,MAAfA,OAAQ,IAAAD,EAAA,UACRE,EA0BET,EAAKS,SAzBPC,EAyBEV,EAAKU,UAxBPC,EAwBEX,EAxBMW,SACRC,EAuBEZ,EAvBMY,SACRC,EAsBEb,OArBFc,EAqBEd,EAAKc,SApBPC,EAoBEf,EAAKe,KAnBPC,EAmBEhB,EAnBSgB,YACXC,EAkBEjB,mBAjBFkB,EAiBElB,EAAKkB,gBAhBPC,EAgBEnB,EAAKmB,eAfPC,EAeEpB,EAfaoB,gBACfC,EAcErB,EAdUqB,aACZC,EAaEtB,gBAZFuB,EAYEvB,EAAKuB,iBAXPC,EAWExB,EAAKwB,cAVPC,EAUEzB,EAVKyB,QACPC,EASE1B,YARF2B,EAQE3B,EAAK2B,QAPPC,EAOE5B,EAPgB6B,YAAlBA,OAAc,IAAAD,EAAA,OACdE,EAME9B,EAAK8B,MALPC,EAKE/B,EALK+B,QACPC,EAIEhC,eAHFiC,EAGEjC,eAFFkC,EAEElC,EAFWmC,MAAbA,OAAQ,IAAAD,KACRE,EACEpC,EADYqC,OAAdA,OAAS,IAAAD,KAELE,EAAQC,IACRC,EAAAC,EAAkCC,GAAS,GAAM,GAAhDC,EAAYH,EAAA,GAAEI,OACfC,EAAQC,IACRC,EAAWC,EACf,YACA,CACEC,QAAkB,YAAT7C,EACT8C,QAAkB,YAAT9C,EACT+C,UAAoB,cAAT/C,EACX+B,MAAOA,EACPE,OAAQA,EACRe,KAAe,SAAThD,EACNiD,MAAiB,WAAV7C,EACP8C,MAAiB,UAAV9C,EACP+C,UAAqB,cAAV/C,EACXgD,OAAiB,WAATlD,EACRmD,MAAgB,SAATnD,EACPoD,KAAe,SAATpD,EACNJ,SAAUA,EACVyD,SAAoB,UAAVrB,GAEZ5B,GAGIkD,EAAsD,SAAAC,GAChD,QAAVvB,GAAmBuB,EAAEC,YAAYC,2BACjCF,EAAEG,iBAEErB,GAAgC,IAAhBd,IAIA,IAAhBA,IACFgB,EAAMoB,QAAUC,YAAW,WACzBtB,GAAgB,GAChBuB,aAAatB,EAAMoB,QACpB,GAAEpC,IAEe,IAAhBA,GAAmBe,GAAgB,GAEvCjB,GAAWA,EAAQkC,GACrB,EAEAO,GAAU,WACR,OAAO,WACLD,aAAatB,EAAMoB,QACrB,CACD,GAAE,IAEH,IAAMI,GACJC,gBAACC,EAAM,CACL7D,UAAWqC,EACXnC,SAAUA,EACVE,SAAUA,EACVC,KAAMA,EACNX,KAAMA,EACNY,YAAaA,EACbC,iBAAkBA,EAClBC,gBAAiBA,EACjBC,eAAgBA,EAChBC,gBAAiBA,EACjBC,aAAcA,EACdC,cAAeA,EACfC,iBAAkBA,EAClBC,cAAeA,EACfC,QAASA,EACTC,UAAWA,EACXC,QAASiC,EACT1D,SAAUA,EACV4B,MAAOA,EACPC,QAASA,GAERtB,GAIL,MAAc,UAAV6B,EACK+B,GAKPC,EACEE,cAAA,SAAA,CAAA9D,UAAWqC,EACX7C,SAAUA,EACVE,KAAMO,EACNgB,QAASzB,OAAWuE,EAAYb,EAChC9B,MAAOA,GAENrB,GAAYI,EACZkB,GAAWuC,EAAAE,cAACE,EAAO,CAAC5C,MAAOE,EAAc2C,MAAO1C,IAGvD"}
@@ -1,2 +1,2 @@
1
- import e from"react";import{View as l,Text as c}from"@tarojs/components";import a from"classnames";var t=function(t){var o=t.icon,r=t.value,n=t.extraIcon,s=t.arrow,i=t.border,m=void 0===i||i,d=t.onClick,p=t.className,u=t.outline,h=void 0===u||u,v=t.descriptionColor,x=void 0===v?"":v,E=t.valueColor,N=t.ellipsis,f=void 0===N||N,b=t.content,y=t.contentDescription,C=t.description,k=t.subDescription,w=t.secondary,D=t.alignItems,I=void 0===D?o?"start":"center":D,g=t.placeholder,j=void 0===g?"":g,q=a("xh-cell",{border:m},{secondary:w},{outline:h},I,p),z=a("xh-cell-main",{ellipsis:f});return e.createElement(l,{className:q,onClick:function(e){d&&d(e)}},o&&e.createElement(l,{className:"xh-cell-icon"},o),e.createElement(l,{className:z},b&&e.createElement(c,{className:"xh-cell-main-content"},b),y&&e.createElement(c,{className:"xh-cell-main-description"},y)),e.createElement(l,{className:"xh-cell-description",style:{color:x}},C?e.createElement(c,null,C):e.createElement(c,{className:"xh-cell-description-placeholder"},j),e.createElement(c,{className:"xh-cell-description-sub"},k)),e.createElement(l,{className:"xh-cell-value"},e.createElement(l,{className:"xh-cell-value-info",style:{color:E}},r),e.createElement(l,{className:"xh-cell-value-icon"},n||s&&e.createElement(l,{className:"arrow"}))))};export{t as default};
1
+ import e from"react";import{View as l,Text as a}from"@tarojs/components";import c from"classnames";var t=function(t){var o=t.icon,n=t.value,r=t.extraIcon,s=t.arrow,i=t.border,m=void 0===i||i,d=t.paddingHorizontal,p=void 0===d||d,u=t.onClick,v=t.className,h=t.outline,x=void 0===h||h,E=t.descriptionColor,N=void 0===E?"":E,f=t.valueColor,b=t.ellipsis,y=void 0===b||b,C=t.content,g=t.contentDescription,k=t.description,w=t.subDescription,z=t.secondary,D=t.alignItems,H=void 0===D?o?"start":"center":D,I=t.placeholder,j=void 0===I?"":I,q=c("xh-cell",{border:m},{secondary:z},{outline:x},{paddingHorizontal:p},H,v),A=c("xh-cell-main",{ellipsis:y});return e.createElement(l,{className:q,onClick:function(e){u&&u(e)}},o&&e.createElement(l,{className:"xh-cell-icon"},o),e.createElement(l,{className:A},C&&e.createElement(a,{className:"xh-cell-main-content"},C),g&&e.createElement(a,{className:"xh-cell-main-description"},g)),e.createElement(l,{className:"xh-cell-description",style:{color:N}},k?e.createElement(a,null,k):e.createElement(a,{className:"xh-cell-description-placeholder"},j),e.createElement(a,{className:"xh-cell-description-sub"},w)),e.createElement(l,{className:"xh-cell-value"},e.createElement(l,{className:"xh-cell-value-info",style:{color:f}},n),e.createElement(l,{className:"xh-cell-value-icon"},r||s&&e.createElement(l,{className:"xh-cell-value-icon-arrow"}))))};export{t as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Cell/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHCellProps = {\n content?: ReactNode;\n contentDescription?: ReactNode;\n description?: ReactNode;\n subDescription?: ReactNode;\n icon?: ReactNode;\n value?: ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: StandardLonghandProperties[\"color\"];\n valueColor?: StandardLonghandProperties[\"color\"];\n ellipsis?: boolean;\n placeholder?: string;\n alignItems?: \"start\" | \"center\" | \"end\";\n /**\n * @description 是否是次级列表\n */\n secondary?: boolean;\n} & XHComponentCommonProps;\n\nconst XHCell: FC<XHCellProps> = props => {\n const {\n icon,\n value,\n extraIcon,\n arrow,\n border = true,\n onClick,\n className,\n outline = true,\n descriptionColor = \"\",\n valueColor,\n ellipsis = true,\n content,\n contentDescription,\n description,\n subDescription,\n secondary,\n alignItems = icon ? \"start\" : \"center\",\n placeholder = \"\",\n } = props;\n\n const cellcls = classNames(\n \"xh-cell\",\n { border },\n { secondary },\n { outline },\n alignItems,\n className\n );\n\n const mainCls = classNames(\"xh-cell-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={cellcls} onClick={handleClick}>\n {icon && <View className=\"xh-cell-icon\">{icon}</View>}\n <View className={mainCls}>\n {content && <Text className=\"xh-cell-main-content\">{content}</Text>}\n {contentDescription && (\n <Text className=\"xh-cell-main-description\">{contentDescription}</Text>\n )}\n </View>\n <View className=\"xh-cell-description\" style={{ color: descriptionColor }}>\n {description ? (\n <Text>{description}</Text>\n ) : (\n <Text className=\"xh-cell-description-placeholder\">{placeholder}</Text>\n )}\n <Text className=\"xh-cell-description-sub\">{subDescription}</Text>\n </View>\n <View className=\"xh-cell-value\">\n <View className=\"xh-cell-value-info\" style={{ color: valueColor }}>\n {value}\n </View>\n <View className=\"xh-cell-value-icon\">\n {extraIcon ? extraIcon : arrow && <View className=\"arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHCell;\n"],"names":["XHCell","props","icon","value","extraIcon","arrow","_a","border","onClick","className","_b","outline","_c","descriptionColor","valueColor","_d","ellipsis","content","contentDescription","description","subDescription","secondary","_e","alignItems","_f","placeholder","cellcls","classNames","mainCls","React","createElement","View","e","Text","style","color"],"mappings":"mGA+BM,IAAAA,EAA0B,SAAAC,GAE5B,IAAAC,EAkBED,EAlBEC,KACJC,EAiBEF,EAAKE,MAhBPC,EAgBEH,EAhBOG,UACTC,EAeEJ,EAAKI,MAdPC,EAcEL,EAAKM,OAdPA,OAAS,IAAAD,GAAIA,EACbE,EAaEP,EAbKO,QACPC,EAYER,EAAKQ,UAXPC,EAWET,EAAKU,QAXPA,OAAU,IAAAD,GAAIA,EACdE,EAUEX,EAVmBY,iBAArBA,OAAgB,IAAAD,EAAG,GAAEA,EACrBE,EASEb,aARFc,EAQEd,EAAKe,SARPA,OAAW,IAAAD,GAAIA,EACfE,EAOEhB,EAAKgB,QANPC,EAMEjB,EANgBiB,mBAClBC,EAKElB,EAAKkB,YAJPC,EAIEnB,EAJYmB,eACdC,EAGEpB,EAAKoB,UAFPC,EAEErB,EAAKsB,WAFPA,OAAa,IAAAD,EAAApB,EAAO,QAAU,SAAQoB,EACtCE,EACEvB,EADcwB,YAAhBA,OAAW,IAAAD,EAAG,GAAEA,EAGZE,EAAUC,EACd,UACA,CAAEpB,OAAMA,GACR,CAAEc,UAASA,GACX,CAAEV,QAAOA,GACTY,EACAd,GAGImB,EAAUD,EAAW,eAAgB,CACzCX,SAAQA,IAOV,OACEa,EAACC,cAAAC,EAAK,CAAAtB,UAAWiB,EAASlB,QALR,SAACwB,GACnBxB,GAAWA,EAAQwB,EACrB,GAIK9B,GAAQ2B,gBAACE,EAAI,CAACtB,UAAU,gBAAgBP,GACzC2B,EAAAC,cAACC,EAAI,CAACtB,UAAWmB,GACdX,GAAWY,gBAACI,EAAI,CAACxB,UAAU,wBAAwBQ,GACnDC,GACCW,EAACC,cAAAG,EAAK,CAAAxB,UAAU,4BAA4BS,IAGhDW,EAAAC,cAACC,EAAI,CAACtB,UAAU,sBAAsByB,MAAO,CAAEC,MAAOtB,IACnDM,EACCU,gBAACI,EAAI,KAAEd,GAEPU,EAACC,cAAAG,EAAK,CAAAxB,UAAU,mCAAmCgB,GAErDI,EAACC,cAAAG,GAAKxB,UAAU,2BAA2BW,IAE7CS,EAAAC,cAACC,EAAI,CAACtB,UAAU,iBACdoB,EAAAC,cAACC,EAAI,CAACtB,UAAU,qBAAqByB,MAAO,CAAEC,MAAOrB,IAClDX,GAEH0B,EAACC,cAAAC,EAAK,CAAAtB,UAAU,sBACbL,GAAwBC,GAASwB,EAAAC,cAACC,EAAI,CAACtB,UAAU,YAK5D"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Cell/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHCellProps = {\n content?: ReactNode;\n contentDescription?: ReactNode;\n description?: ReactNode;\n subDescription?: ReactNode;\n paddingHorizontal?: boolean;\n icon?: ReactNode;\n value?: ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: StandardLonghandProperties[\"color\"];\n valueColor?: StandardLonghandProperties[\"color\"];\n ellipsis?: boolean;\n placeholder?: string;\n alignItems?: \"start\" | \"center\" | \"end\";\n /**\n * @description 是否是次级列表\n */\n secondary?: boolean;\n} & XHComponentCommonProps;\n\nconst XHCell: FC<XHCellProps> = props => {\n const {\n icon,\n value,\n extraIcon,\n arrow,\n border = true,\n paddingHorizontal = true,\n onClick,\n className,\n outline = true,\n descriptionColor = \"\",\n valueColor,\n ellipsis = true,\n content,\n contentDescription,\n description,\n subDescription,\n secondary,\n alignItems = icon ? \"start\" : \"center\",\n placeholder = \"\",\n } = props;\n\n const cellcls = classNames(\n \"xh-cell\",\n { border },\n { secondary },\n { outline },\n { paddingHorizontal },\n alignItems,\n className\n );\n\n const mainCls = classNames(\"xh-cell-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={cellcls} onClick={handleClick}>\n {icon && <View className=\"xh-cell-icon\">{icon}</View>}\n <View className={mainCls}>\n {content && <Text className=\"xh-cell-main-content\">{content}</Text>}\n {contentDescription && (\n <Text className=\"xh-cell-main-description\">{contentDescription}</Text>\n )}\n </View>\n <View className=\"xh-cell-description\" style={{ color: descriptionColor }}>\n {description ? (\n <Text>{description}</Text>\n ) : (\n <Text className=\"xh-cell-description-placeholder\">{placeholder}</Text>\n )}\n <Text className=\"xh-cell-description-sub\">{subDescription}</Text>\n </View>\n <View className=\"xh-cell-value\">\n <View className=\"xh-cell-value-info\" style={{ color: valueColor }}>\n {value}\n </View>\n <View className=\"xh-cell-value-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-cell-value-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHCell;\n"],"names":["XHCell","props","icon","value","extraIcon","arrow","_a","border","_b","paddingHorizontal","onClick","className","_c","outline","_d","descriptionColor","valueColor","_e","ellipsis","content","contentDescription","description","subDescription","secondary","_f","alignItems","_g","placeholder","cellcls","classNames","mainCls","React","createElement","View","e","Text","style","color"],"mappings":"mGAgCM,IAAAA,EAA0B,SAAAC,GAE5B,IAAAC,EAmBED,EAAKC,KAlBPC,EAkBEF,EAlBGE,MACLC,EAiBEH,EAAKG,UAhBPC,EAgBEJ,EAhBGI,MACLC,EAeEL,EAfWM,OAAbA,OAAM,IAAAD,GAAOA,EACbE,EAcEP,EAdsBQ,kBAAxBA,OAAiB,IAAAD,GAAOA,EACxBE,EAaET,EAbKS,QACPC,EAYEV,EAZOU,UACTC,EAWEX,EAXYY,QAAdA,OAAO,IAAAD,GAAOA,EACdE,EAUEb,EAAKc,iBAVPA,aAAmB,GAAED,EACrBE,EASEf,EATQe,WACVC,EAQEhB,EARaiB,SAAfA,OAAQ,IAAAD,GAAOA,EACfE,EAOElB,EAPKkB,QACPC,EAMEnB,EAAKmB,mBALPC,EAKEpB,EALSoB,YACXC,EAIErB,EAJYqB,eACdC,EAGEtB,EAAKsB,UAFPC,EAEEvB,EAAKwB,WAFPA,OAAa,IAAAD,EAAAtB,EAAO,QAAU,SAAQsB,EACtCE,EACEzB,EAAK0B,YADPA,OAAc,IAAAD,EAAA,KAGVE,EAAUC,EACd,UACA,CAAEtB,OAAMA,GACR,CAAEgB,UAASA,GACX,CAAEV,QAAOA,GACT,CAAEJ,kBAAiBA,GACnBgB,EACAd,GAGImB,EAAUD,EAAW,eAAgB,CACzCX,SAAQA,IAOV,OACEa,EAACC,cAAAC,EAAK,CAAAtB,UAAWiB,EAASlB,QALR,SAACwB,GACnBxB,GAAWA,EAAQwB,EACrB,GAIKhC,GAAQ6B,gBAACE,EAAI,CAACtB,UAAU,gBAAgBT,GACzC6B,EAAAC,cAACC,EAAI,CAACtB,UAAWmB,GACdX,GAAWY,gBAACI,EAAI,CAACxB,UAAU,wBAAwBQ,GACnDC,GACCW,EAACC,cAAAG,EAAK,CAAAxB,UAAU,4BAA4BS,IAGhDW,EAAAC,cAACC,EAAI,CAACtB,UAAU,sBAAsByB,MAAO,CAAEC,MAAOtB,IACnDM,EACCU,gBAACI,EAAI,KAAEd,GAEPU,EAACC,cAAAG,EAAK,CAAAxB,UAAU,mCAAmCgB,GAErDI,EAACC,cAAAG,GAAKxB,UAAU,2BAA2BW,IAE7CS,EAAAC,cAACC,EAAI,CAACtB,UAAU,iBACdoB,EAAAC,cAACC,EAAI,CAACtB,UAAU,qBAAqByB,MAAO,CAAEC,MAAOrB,IAClDb,GAEH4B,EAAAC,cAACC,EAAK,CAAAtB,UAAU,sBACbP,GAEGC,GAAS0B,EAAAC,cAACC,EAAK,CAAAtB,UAAU,+BAKvC"}
@@ -1,2 +1,2 @@
1
- import{__rest as e,__assign as o}from"../../node_modules/tslib/tslib.es6.js";import t,{createRef as n}from"react";import r from"react-dom";import{showModal as c}from"@tarojs/taro";import i from"../../DialogComponent/index.js";import m from"../../Button/index.js";var a=function(a){var f=a.title,l=void 0===f?"":f,s=a.content,u=a.confirmText,d=void 0===u?"确定":u,p=a.cancelText,x=void 0===p?"取消":p,h=e(a,["title","content","confirmText","cancelText"]);return new Promise((function(e){if("h5"===process.env.TARO_ENV){var a=document.createElement("div"),f=n(),u=t.createElement("div",{className:"xh-confirm-footer"},t.createElement(m,{ghost:!0,type:"default",shape:"rectangle",className:"xh-confirm-footer-button xh-confirm-footer-cancel-button",onClick:function(){r.unmountComponentAtNode(a),e({errMsg:"ok",confirm:!1,cancel:!0})}},x),t.createElement(m,{ghost:!0,type:"primary",shape:"rectangle",className:"xh-confirm-footer-button xh-confirm-footer-confirm-button",onClick:function(){r.unmountComponentAtNode(a),e({errMsg:"ok",confirm:!0,cancel:!1})}},d));r.render(t.createElement(i,{header:l,footer:u,content:s,visible:!0,ref:f}),a)}else c(o({title:l,content:s,confirmColor:"#f6ab00",cancelText:x,cancelColor:"#666",confirmText:d},h)).then(e)}))};export{a as default};
1
+ import{__rest as e,__assign as o}from"../../node_modules/tslib/tslib.es6.js";import t,{createRef as n}from"react";import r from"react-dom";import{showModal as c}from"@tarojs/taro";import i from"../../DialogComponent/index.js";import m from"../../Button/index.js";var a=function(a){var f=a.title,l=void 0===f?"":f,s=a.content,u=a.confirmText,d=void 0===u?"确定":u,p=a.cancelText,x=void 0===p?"取消":p,h=e(a,["title","content","confirmText","cancelText"]);return new Promise((function(e){if("h5"===process.env.TARO_ENV){var a=document.createElement("div"),f=n(),u=t.createElement("div",{className:"xh-confirm-footer"},t.createElement(m,{ghost:!0,type:"default",shape:"rectangle",className:"xh-confirm-footer-button xh-confirm-footer-cancel-button",onClick:function(){r.unmountComponentAtNode(a),e({errMsg:"ok",confirm:!1,cancel:!0})}},x),t.createElement(m,{ghost:!0,type:"primary",shape:"rectangle",className:"xh-confirm-footer-button xh-confirm-footer-confirm-button",onClick:function(){r.unmountComponentAtNode(a),e({errMsg:"ok",confirm:!0,cancel:!1})}},d));r.render(t.createElement(i,{header:l,footer:u,content:s,visible:!0,ref:f}),a)}else c(o({title:l,content:s,confirmColor:"#fe5e00",cancelText:x,cancelColor:"#666",confirmText:d},h)).then(e)}))};export{a as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Dialog/Confirm/index.tsx"],"sourcesContent":["import React, { createRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport DialogComponent, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../Button\";\n\nexport type ConfirmProps = {\n title?: string;\n header?: string;\n content: string;\n cancelText?: string;\n confirmText?: string;\n} & {\n /** 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n cancelColor?: string;\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: (result: ConfirmPropsResult) => void;\n /** 提示的标题 */\n title?: string;\n};\n\nexport type ConfirmPropsResult = {\n /** 为 true 时,表示用户点击了取消(用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭) */\n cancel: boolean;\n /** 为 true 时,表示用户点击了确定按钮 */\n confirm: boolean;\n /** 调用结果 */\n errMsg: string;\n};\nconst Comfirm = (props: ConfirmProps): Promise<ConfirmPropsResult> => {\n const {\n title = \"\",\n content,\n confirmText = \"确定\",\n cancelText = \"取消\",\n ...rest\n } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <div className=\"xh-confirm-footer\">\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-cancel-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: false, cancel: true });\n }}\n >\n {cancelText}\n </Button>\n <Button\n ghost\n type=\"primary\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-confirm-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: true, cancel: false });\n }}\n >\n {confirmText}\n </Button>\n </div>\n );\n ReactDOM.render(\n <DialogComponent\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n />,\n div\n );\n } else {\n showModal({\n title,\n content,\n confirmColor: \"#f6ab00\",\n cancelText,\n cancelColor: \"#666\",\n confirmText,\n ...rest,\n }).then(resolve);\n }\n });\n};\n\nexport default Comfirm;\n"],"names":["Comfirm","props","_a","title","content","_b","confirmText","_c","cancelText","rest","__rest","Promise","resolve","process","env","TARO_ENV","div_1","document","createElement","dialogRef","createRef","alertFooter","React","className","Button","ghost","type","shape","onClick","ReactDOM","unmountComponentAtNode","errMsg","confirm","cancel","render","DialogComponent","header","footer","visible","ref","showModal","__assign","confirmColor","cancelColor","then"],"mappings":"uQAyCM,IAAAA,EAAU,SAACC,GAEb,IAAAC,EAKED,EAAKE,MALPA,aAAQ,GAAED,EACVE,EAIEH,EAAKG,QAHPC,EAGEJ,cAHFK,OAAc,IAAAD,EAAA,OACdE,EAEEN,EAAKO,WAFPA,OAAU,IAAAD,EAAG,KAAIA,EACdE,EAAIC,EACLT,EANE,CAAA,QAAA,UAAA,cAAA,eAON,OAAO,IAAIU,SAAQ,SAAAC,GACjB,GAA6B,OAAzBC,QAAQC,IAAIC,SAAmB,CACjC,IAAMC,EAAMC,SAASC,cAAc,OAE7BC,EAAYC,IACZC,EACJC,EAAKJ,cAAA,MAAA,CAAAK,UAAU,qBACbD,EAAAJ,cAACM,EACC,CAAAC,OACA,EAAAC,KAAK,UACLC,MAAM,YACNJ,UAAU,2DACVK,QAAS,WACPC,EAASC,uBAAuBd,GAChCJ,EAAQ,CAAEmB,OAAQ,KAAMC,SAAS,EAAOC,QAAQ,GACjD,GAEAzB,GAEHc,EAAAJ,cAACM,EACC,CAAAC,OACA,EAAAC,KAAK,UACLC,MAAM,YACNJ,UAAU,4DACVK,QAAS,WACPC,EAASC,uBAAuBd,GAChCJ,EAAQ,CAAEmB,OAAQ,KAAMC,SAAS,EAAMC,QAAQ,GACjD,GAEC3B,IAIPuB,EAASK,OACPZ,EAACJ,cAAAiB,EACC,CAAAC,OAAQjC,EACRkC,OAAQhB,EACRjB,QAASA,EACTkC,SACA,EAAAC,IAAKpB,IAEPH,EAEH,MACCwB,EACEC,EAAA,CAAAtC,MAAKA,EACLC,QAAOA,EACPsC,aAAc,UACdlC,WAAUA,EACVmC,YAAa,OACbrC,YAAWA,GACRG,IACFmC,KAAKhC,EAEZ,GACF"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Dialog/Confirm/index.tsx"],"sourcesContent":["import React, { createRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport DialogComponent, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../Button\";\n\nexport type ConfirmProps = {\n title?: string;\n header?: string;\n content: string;\n cancelText?: string;\n confirmText?: string;\n} & {\n /** 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n cancelColor?: string;\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: (result: ConfirmPropsResult) => void;\n /** 提示的标题 */\n title?: string;\n};\n\nexport type ConfirmPropsResult = {\n /** 为 true 时,表示用户点击了取消(用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭) */\n cancel: boolean;\n /** 为 true 时,表示用户点击了确定按钮 */\n confirm: boolean;\n /** 调用结果 */\n errMsg: string;\n};\nconst Comfirm = (props: ConfirmProps): Promise<ConfirmPropsResult> => {\n const {\n title = \"\",\n content,\n confirmText = \"确定\",\n cancelText = \"取消\",\n ...rest\n } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <div className=\"xh-confirm-footer\">\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-cancel-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: false, cancel: true });\n }}\n >\n {cancelText}\n </Button>\n <Button\n ghost\n type=\"primary\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-confirm-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: true, cancel: false });\n }}\n >\n {confirmText}\n </Button>\n </div>\n );\n ReactDOM.render(\n <DialogComponent\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n />,\n div\n );\n } else {\n showModal({\n title,\n content,\n confirmColor: \"#fe5e00\",\n cancelText,\n cancelColor: \"#666\",\n confirmText,\n ...rest,\n }).then(resolve);\n }\n });\n};\n\nexport default Comfirm;\n"],"names":["Comfirm","props","_a","title","content","_b","confirmText","_c","cancelText","rest","__rest","Promise","resolve","process","env","TARO_ENV","div_1","document","createElement","dialogRef","createRef","alertFooter","React","className","Button","ghost","type","shape","onClick","ReactDOM","unmountComponentAtNode","errMsg","confirm","cancel","render","DialogComponent","header","footer","visible","ref","showModal","__assign","confirmColor","cancelColor","then"],"mappings":"uQAyCM,IAAAA,EAAU,SAACC,GAEb,IAAAC,EAKED,EAAKE,MALPA,aAAQ,GAAED,EACVE,EAIEH,EAAKG,QAHPC,EAGEJ,cAHFK,OAAc,IAAAD,EAAA,OACdE,EAEEN,EAAKO,WAFPA,OAAU,IAAAD,EAAG,KAAIA,EACdE,EAAIC,EACLT,EANE,CAAA,QAAA,UAAA,cAAA,eAON,OAAO,IAAIU,SAAQ,SAAAC,GACjB,GAA6B,OAAzBC,QAAQC,IAAIC,SAAmB,CACjC,IAAMC,EAAMC,SAASC,cAAc,OAE7BC,EAAYC,IACZC,EACJC,EAAKJ,cAAA,MAAA,CAAAK,UAAU,qBACbD,EAAAJ,cAACM,EACC,CAAAC,OACA,EAAAC,KAAK,UACLC,MAAM,YACNJ,UAAU,2DACVK,QAAS,WACPC,EAASC,uBAAuBd,GAChCJ,EAAQ,CAAEmB,OAAQ,KAAMC,SAAS,EAAOC,QAAQ,GACjD,GAEAzB,GAEHc,EAAAJ,cAACM,EACC,CAAAC,OACA,EAAAC,KAAK,UACLC,MAAM,YACNJ,UAAU,4DACVK,QAAS,WACPC,EAASC,uBAAuBd,GAChCJ,EAAQ,CAAEmB,OAAQ,KAAMC,SAAS,EAAMC,QAAQ,GACjD,GAEC3B,IAIPuB,EAASK,OACPZ,EAACJ,cAAAiB,EACC,CAAAC,OAAQjC,EACRkC,OAAQhB,EACRjB,QAASA,EACTkC,SACA,EAAAC,IAAKpB,IAEPH,EAEH,MACCwB,EACEC,EAAA,CAAAtC,MAAKA,EACLC,QAAOA,EACPsC,aAAc,UACdlC,WAAUA,EACVmC,YAAa,OACbrC,YAAWA,GACRG,IACFmC,KAAKhC,EAEZ,GACF"}
@@ -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\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":"6KA2DM,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\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,2 +1,2 @@
1
- import{__read as n,__spreadArray as e}from"../node_modules/tslib/tslib.es6.js";import{View as a,Input as l}from"@tarojs/components";import t,{forwardRef as i,useState as m,useEffect as r,useCallback as o,useImperativeHandle as u}from"react";import{inputRange as c}from"../src/utils/index.js";import s from"../ActionSheet/index.js";var k=["一","二","三","四","五","六","七","八","九","十"],h={linkmanName:"请输入联系人姓名",linkmanPhone:"请输入正确的手机号",relationType:"请选择与联系人关系"},p=[{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:"其他"}],N="h5"!==process.env.TARO_ENV||window.navigator.userAgent.includes("xhqb"),f=i((function(i,f){var x=i.linkManNum,E=i.relations,v=void 0===E?p:E,P=i.onChange,d=i.onGetContacts,g=i.showImportIcon,T=void 0===g?N:g,y=i.onBlur,V=i.onCheckRelation,b=i.onInputChange,A=n(m([]),2),C=A[0],R=A[1],I=n(m([]),2),O=I[0],L=I[1];r((function(){R(Array(x).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:"",relationValue:""}}))),L(Array(x).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:""}})))}),[x]);var S=o((function(n){return!!/1\d{10}/.test(n)}),[]),_=o((function(n,e){return"linkmanName"===n?!(!e||!e.replace(/^\s+|\s+$/gm,""))&&!(e.length>20):"linkmanPhone"===n?!(!e||!S(e)):"relationType"===n&&!!e}),[]),j=o((function(){for(var n=C,e=n.length,a={linkmanName:[],linkmanPhone:[],relationValue:[]},l=!0,t=0;t<e;t++){if(!_("linkmanName",n[t].linkmanName)){l=!1;break}if(0!==t&&a.linkmanName.includes(n[t].linkmanName)){l=!1;break}if(a.linkmanName.push(n[t].linkmanName),!_("linkmanPhone",n[t].linkmanPhone)){l=!1;break}if(0!==t&&a.linkmanPhone.includes(n[t].linkmanPhone)){l=!1;break}if(a.linkmanPhone.push(n[t].linkmanPhone),!_("relationType",n[t].relationValue)){l=!1;break}if(0!==t&&a.relationValue.includes(n[t].relationValue)){l=!1;break}a.relationValue.push(n[t].relationValue)}return l}),[C]);r((function(){null==P||P(C,j())}),[C]),u(f,(function(){return{canSubmit:j(),setContacts:function(a,l){R((function(t){return t[l].linkmanName=a.linkmanName,t[l].linkmanPhone=a.linkmanPhone,e([],n(t),!1)})),H("linkmanName",l),H("linkmanPhone",l)}}}),[]);var w=o((function(n,e){for(var a=C[e],l={linkmanName:[],linkmanPhone:[],relationValue:[]},t=0,i=C.length;t<i;t++)if(t!==e){var m=C[t];if("linkmanName"===n){if(l.linkmanName.push(C[t].linkmanName),""!==a.linkmanName&&""!==m.linkmanName&&m.linkmanName===a.linkmanName)return{pass:!1,message:"姓名与第".concat(t+1,"联系人姓名重复,请修改")}}else if("linkmanPhone"===n){if(""!==a.linkmanPhone&&""!==m.linkmanPhone&&m.linkmanPhone===a.linkmanPhone)return{pass:!1,message:"手机号与第".concat(t+1,"联系人号码重复,请修改")}}else if("relationValue"===n&&""!==a.relationValue&&m.relationValue===a.relationValue)return{pass:!1,message:"关系与第".concat(t+1,"联系人关系重复,请修改")}}return{pass:!0,message:""}}),[C]),B=o((function(a,l){var t=c(a.target.value);R((function(a){return a[l].linkmanName=t,e([],n(a),!1)})),null==b||b("linkmanName",l)}),[]),F=o((function(a,l){var t=c(a.target.value);R((function(a){return a[l].linkmanPhone=t,e([],n(a),!1)})),null==b||b("linkmanPhone",l)}),[]),H=o((function(a,l){if(_(a,C[l][a])){var t=w(a,l),i=t.pass,m=t.message;i||L((function(t){return t[l][a]=m,e([],n(t),!1)})),null==y||y(a,l)}else L((function(t){return t[l][a]=h[a],e([],n(t),!1)}))}),[C]),G=o((function(a,l){L((function(t){return t[l][a]="",e([],n(t),!1)}))}),[]);return t.createElement(a,{className:"xh-linkman"},C.map((function(i,m){return t.createElement(a,{key:m,className:"xh-linkman-item"},t.createElement(a,{className:"xh-linkman-title"},"第",k[m],"联系人"),t.createElement(a,{className:"xh-linkman-main"},t.createElement(a,{className:"xh-linkman-main-input"},t.createElement(a,{className:"xh-linkman-main-input-label"},"姓名"),t.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?t.createElement("input",{className:"xh-linkman-main-input-main-input",type:"text",placeholder:"紧急联系人姓名",onChange:function(n){return B(n,m)},value:i.linkmanName,onBlur:function(){return H("linkmanName",m)},onFocus:function(){return G("linkmanName",m)}}):t.createElement(l,{placeholder:"紧急联系人姓名",className:"xh-linkman-main-input-main-input"}),O[m].linkmanName&&t.createElement(a,{className:"xh-linkman-main-input-main-err"},O[m].linkmanName)),T&&t.createElement(a,{className:"xh-linkman-main-input-contacts",onClick:function(){return null==d?void 0:d(m)}}))),t.createElement(a,{className:"xh-linkman-main"},t.createElement(a,{className:"xh-linkman-main-input"},t.createElement(a,{className:"xh-linkman-main-input-label"},"电话"),t.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?t.createElement("input",{className:"xh-linkman-main-input-main-input",type:"tel",placeholder:"紧急联系人手机号",onBlur:function(){return H("linkmanPhone",m)},maxLength:11,onChange:function(n){return F(n,m)},value:i.linkmanPhone,onFocus:function(){return G("linkmanPhone",m)}}):t.createElement(l,{placeholder:"紧急联系人手机号",className:"xh-linkman-main-input-main-input"}),O[m].linkmanPhone&&t.createElement(a,{className:"xh-linkman-main-input-main-err"},O[m].linkmanPhone)))),t.createElement(s,{data:v,title:"选择与联系人的关系",onConfirm:function(a){L((function(a){return a[m].relationType="",e([],n(a),!1)})),R((function(l){return l[m].relationType=a.text,l[m].relationValue=a.value,e([],n(l),!1)}));var l=w("relationValue",m),t=l.pass,i=l.message;t||L((function(a){return a[m].relationType=i,e([],n(a),!1)})),null==V||V(a,m)},onCancel:function(){return H("relationType",m)}},t.createElement(a,{className:"xh-linkman-main"},t.createElement(a,{className:"xh-linkman-main-input"},t.createElement(a,{className:"xh-linkman-main-input-label"},"关系"),t.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?t.createElement("input",{type:"text",maxLength:11,className:"xh-linkman-main-input-main-input",readOnly:!0,placeholder:"选择与联系人关系",value:i.relationType}):t.createElement(l,{placeholder:"紧急联系人手机号",className:"xh-linkman-main-input-main-input",type:"digit",maxlength:11,value:i.relationType}),O[m].relationType&&t.createElement(a,{className:"xh-linkman-main-input-main-err"},O[m].relationType)),t.createElement(a,{className:"xh-linkman-main-input-arrow"})))))})))}));export{f 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,useImperativeHandle as u}from"react";import{inputRange as c}from"../src/utils/index.js";import s from"../ActionSheet/index.js";var k=["一","二","三","四","五","六","七","八","九","十"],h={linkmanName:"请输入联系人姓名",linkmanPhone:"请输入正确的手机号",relationType:"请选择与联系人关系"},p=[{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:"其他"}],f="h5"!==process.env.TARO_ENV||window.navigator.userAgent.includes("xhqb"),N=i((function(i,N){var x=i.linkManNum,E=i.relations,v=void 0===E?p:E,P=i.onChange,d=i.onGetContacts,T=i.showImportIcon,g=void 0===T?f:T,y=i.onBlur,V=i.onCheckRelation,b=i.onInputChange,A=n(m([]),2),R=A[0],C=A[1],I=n(m([]),2),O=I[0],L=I[1];r((function(){C(Array(x).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:"",relationValue:""}}))),L(Array(x).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:""}})))}),[x]);var _=o((function(n){return!!/1\d{10}/.test(n)}),[]),B=o((function(n,e){return"linkmanName"===n?!(!e||!e.replace(/^\s+|\s+$/gm,""))&&!(e.length>20):"linkmanPhone"===n?!(!e||!_(e)):"relationType"===n&&!!e}),[]),F=o((function(){for(var n=R,e=n.length,a={linkmanName:[],linkmanPhone:[],relationValue:[]},t=!0,l=0;l<e;l++){if(!B("linkmanName",n[l].linkmanName)){t=!1;break}if(0!==l&&a.linkmanName.includes(n[l].linkmanName)){t=!1;break}if(a.linkmanName.push(n[l].linkmanName),!B("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),!B("relationType",n[l].relationValue)){t=!1;break}if(0!==l&&a.relationValue.includes(n[l].relationValue)){t=!1;break}a.relationValue.push(n[l].relationValue)}return t}),[R]);r((function(){null==P||P(R,F())}),[R]),u(N,(function(){return{canSubmit:F(),setContacts:function(a,t){C((function(l){return l[t].linkmanName=a.linkmanName,l[t].linkmanPhone=a.linkmanPhone,e([],n(l),!1)})),H("linkmanName",t),H("linkmanPhone",t)}}}),[]);var S=function(n,e){for(var a=R[e],t=0,l=R.length;t<l;t++)if(t!==e){var i=R[t];if("linkmanName"===n){if(""!==a.linkmanName&&""!==i.linkmanName&&i.linkmanName===a.linkmanName)return{pass:!1,message:"姓名与第".concat(t+1,"联系人姓名重复,请修改")}}else 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&&i.relationValue===a.relationValue)return{pass:!1,message:"关系与第".concat(t+1,"联系人关系重复,请修改")}}return{pass:!0,message:""}},j=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=c(l);C((function(a){return a[t].linkmanName=i,e([],n(a),!1)})),null==b||b("linkmanName",t)}),[]),w=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=c(l);C((function(a){return a[t].linkmanPhone=i,e([],n(a),!1)})),null==b||b("linkmanPhone",t)}),[]),H=o((function(a,t){if(B(a,R[t][a])){var l=S(a,t),i=l.pass,m=l.message;i||L((function(l){return l[t][a]=m,e([],n(l),!1)})),null==y||y(a,t)}else L((function(l){return l[t][a]=h[a],e([],n(l),!1)}))}),[R]),G=o((function(a,t){L((function(l){return l[t][a]="",e([],n(l),!1)}))}),[]);return l.createElement(a,{className:"xh-linkman"},R.map((function(i,m){return l.createElement(a,{key:m,className:"xh-linkman-item"},l.createElement(a,{className:"xh-linkman-title"},"第",k[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:"text",placeholder:"紧急联系人姓名",onChange:function(n){return j(n,m)},value:i.linkmanName,onBlur:function(){return H("linkmanName",m)},onFocus:function(){return G("linkmanName",m)}}):l.createElement(t,{placeholder:"紧急联系人姓名",className:"xh-linkman-main-input-main-input",onBlur:function(){return H("linkmanName",m)},value:i.linkmanName,type:"text",onInput:function(n){return j(n,m)},onFocus:function(){return G("linkmanName",m)}}),O[m].linkmanName&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},O[m].linkmanName)),g&&l.createElement(a,{className:"xh-linkman-main-input-contacts",onClick:function(){return null==d?void 0:d(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 H("linkmanPhone",m)},maxLength:11,onChange:function(n){return w(n,m)},value:i.linkmanPhone,onFocus:function(){return G("linkmanPhone",m)}}):l.createElement(t,{placeholder:"紧急联系人手机号",className:"xh-linkman-main-input-main-input",type:"number",maxlength:11,onBlur:function(){return H("linkmanPhone",m)},value:i.linkmanPhone,onInput:function(n){return w(n,m)},onFocus:function(){return G("linkmanPhone",m)}}),O[m].linkmanPhone&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},O[m].linkmanPhone)))),l.createElement(s,{data:v,title:"选择与联系人的关系",onConfirm:function(a){L((function(a){return a[m].relationType="",e([],n(a),!1)})),C((function(t){return t[m].relationType=a.text,t[m].relationValue=a.value,e([],n(t),!1)})),Promise.resolve().then((function(){var t=S("relationValue",m),l=t.pass,i=t.message;l||L((function(a){return a[m].relationType=i,e([],n(a),!1)})),null==V||V(a,m)}))},onCancel:function(){return H("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"},"h5"===process.env.TARO_ENV?l.createElement("input",{type:"text",maxLength:11,className:"xh-linkman-main-input-main-input",readOnly:!0,placeholder:"选择与联系人关系",value:i.relationType}):l.createElement(t,{placeholder:"选择与联系人关系",className:"xh-linkman-main-input-main-input",type:"digit",maxlength:11,value:i.relationType,disabled:!0}),O[m].relationType&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},O[m].relationType)),l.createElement(a,{className:"xh-linkman-main-input-arrow"})))))})))}));export{N as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/LinkMan/index.tsx"],"sourcesContent":["import { View, Input } from \"@tarojs/components\";\nimport React, {\n useCallback,\n useEffect,\n useState,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport { inputRange } from \"@/utils\";\n\nimport ActionSheet from \"../ActionSheet\";\n\nimport \"./index.scss\";\n\nexport type AddLinkManProps = {\n linkManNum: number;\n onChange?: (data: LinkManItem[], pass: boolean) => void;\n onGetContacts?: (index: number) => void;\n showImportIcon?: boolean;\n onBlur?: (type: keyof LinkManItem, index: number) => void;\n onCheckRelation?: (\n value: { text: string; value: string },\n index: number\n ) => void;\n onInputChange?: (type: \"linkmanName\" | \"linkmanPhone\", index: number) => void;\n /**\n * 可以选择的关系\n */\n relations?: { text: string; value: string }[];\n};\n\nconst LinkManTitleMap = [\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\",\n \"十\",\n];\n\n/**\n * 错误信息提示\n */\nconst errorMessageMap = {\n linkmanName: \"请输入联系人姓名\",\n linkmanPhone: \"请输入正确的手机号\",\n relationType: \"请选择与联系人关系\",\n};\n\nconst defaultActionSheet = [\n {\n value: \"FATHER\",\n text: \"父亲\",\n },\n {\n value: \"MOTHER\",\n text: \"母亲\",\n },\n {\n value: \"MATE\",\n text: \"配偶\",\n },\n {\n value: \"CHILDREN\",\n text: \"子女\",\n },\n {\n value: \"SIBLING\",\n text: \"兄弟姐妹\",\n },\n {\n value: \"FRIENDS\",\n text: \"朋友\",\n },\n {\n value: \"COLLEAGUE\",\n text: \"同事\",\n },\n {\n value: \"RELATIVES\",\n text: \"亲戚\",\n },\n {\n value: \"OTHER\",\n text: \"其他\",\n },\n];\n\nexport type LinkManItem = {\n linkmanName: string;\n linkmanPhone: string;\n relationType: string;\n relationValue: string;\n};\n\nexport type LinkManRef = {\n canSubmit: boolean;\n setContacts: (\n item: Pick<LinkManItem, \"linkmanName\" | \"linkmanPhone\">,\n index: number\n ) => void;\n};\n\nconst defaultShowImportIcon =\n process.env.TARO_ENV === \"h5\"\n ? window.navigator.userAgent.includes(\"xhqb\")\n : true;\n\nconst XHAddLinMan = forwardRef<LinkManRef, AddLinkManProps>(\n (props, fromRef) => {\n const {\n linkManNum,\n relations = defaultActionSheet,\n onChange,\n onGetContacts,\n showImportIcon = defaultShowImportIcon,\n onBlur,\n onCheckRelation,\n onInputChange,\n } = props;\n\n // form信息\n const [formData, setFormData] = useState<LinkManItem[]>([]);\n\n // 错误提示语信息\n const [errMessage, setErrMessage] = useState<\n Omit<LinkManItem, \"relationValue\">[]\n >([]);\n\n useEffect(() => {\n setFormData(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n relationValue: \"\",\n };\n })\n );\n setErrMessage(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n };\n })\n );\n }, [linkManNum]);\n\n /**\n * 校验手机号\n */\n const validatePhone = useCallback((phone: string) => {\n if (/1\\d{10}/.test(phone)) {\n return true;\n }\n return false;\n }, []);\n\n /**\n * 非空校验\n */\n const validateForm = useCallback(\n (type: keyof LinkManItem, name: string) => {\n if (type === \"linkmanName\") {\n if (!name || !name.replace(/^\\s+|\\s+$/gm, \"\")) return false;\n if (name.length > 20) return false;\n return true;\n } else if (type === \"linkmanPhone\") {\n if (!name || !validatePhone(name)) return false;\n return true;\n } else if (type === \"relationType\") {\n if (!name) return false;\n return true;\n }\n return false;\n },\n []\n );\n\n /**\n * 校验联系人是否合法,默认找到不合法的就退出循环\n */\n const validateCanSubmit = useCallback(() => {\n const finalData = formData;\n const length = finalData.length;\n const map: Record<string, string[]> = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n let flag = true;\n /**\n * 每次循环formData,不符合直接break,退出循环\n */\n for (let index = 0; index < length; index++) {\n const isNameValid = validateForm(\n \"linkmanName\",\n finalData[index].linkmanName\n );\n if (!isNameValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanName.includes(finalData[index].linkmanName)\n ) {\n flag = false;\n break;\n }\n map.linkmanName.push(finalData[index].linkmanName);\n const isPhoneValid = validateForm(\n \"linkmanPhone\",\n finalData[index].linkmanPhone\n );\n if (!isPhoneValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanPhone.includes(finalData[index].linkmanPhone)\n ) {\n flag = false;\n break;\n }\n map.linkmanPhone.push(finalData[index].linkmanPhone);\n const isRelationValid = validateForm(\n \"relationType\",\n finalData[index].relationValue\n );\n if (!isRelationValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.relationValue.includes(finalData[index].relationValue)\n ) {\n flag = false;\n break;\n }\n map.relationValue.push(finalData[index].relationValue);\n }\n return flag;\n }, [formData]);\n\n useEffect(() => {\n onChange?.(formData, validateCanSubmit());\n }, [formData]);\n\n useImperativeHandle(\n fromRef,\n () => ({\n canSubmit: validateCanSubmit(),\n setContacts(item, index) {\n setFormData(old => {\n old[index].linkmanName = item.linkmanName;\n old[index].linkmanPhone = item.linkmanPhone;\n return [...old];\n });\n onFormBlur(\"linkmanName\", index);\n onFormBlur(\"linkmanPhone\", index);\n },\n }),\n []\n );\n\n /**\n * 重复校验\n */\n const validateDuplicate = useCallback(\n (\n type: keyof LinkManItem,\n currentIndex\n ): { pass: boolean; message: string } => {\n const currentItem = formData[currentIndex];\n const validStub: Record<\n Exclude<keyof LinkManItem, \"relationType\">,\n string[]\n > = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n for (let index = 0, length = formData.length; index < length; index++) {\n if (index === currentIndex) continue; // 不能跟自己比较\n const current = formData[index];\n if (type === \"linkmanName\") {\n validStub.linkmanName.push(formData[index].linkmanName);\n if (\n currentItem.linkmanName !== \"\" &&\n current.linkmanName !== \"\" &&\n current.linkmanName === currentItem.linkmanName\n ) {\n return {\n pass: false,\n message: `姓名与第${index + 1}联系人姓名重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanName = \"\";\n // old[currentIndex].linkmanName = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"linkmanPhone\") {\n if (\n currentItem.linkmanPhone !== \"\" &&\n current.linkmanPhone !== \"\" &&\n current.linkmanPhone === currentItem.linkmanPhone\n ) {\n // 如果没有重复需要清空错误信息\n return {\n pass: false,\n message: `手机号与第${index + 1}联系人号码重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanPhone = \"\";\n // old[currentIndex].linkmanPhone = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"relationValue\") {\n if (\n currentItem.relationValue !== \"\" &&\n current.relationValue === currentItem.relationValue\n ) {\n return {\n pass: false,\n message: `关系与第${index + 1}联系人关系重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].relationType = \"\";\n // old[currentIndex].relationType = \"\";\n // return [...old];\n // });\n }\n }\n }\n return { pass: true, message: \"\" };\n },\n [formData]\n );\n\n /**\n * 联系人姓名改变\n */\n const onNameChange = useCallback((evt, index) => {\n const name = inputRange(evt.target.value);\n setFormData(old => {\n old[index].linkmanName = name;\n return [...old];\n });\n onInputChange?.(\"linkmanName\", index);\n }, []);\n\n /**\n * 联系人手机号改变\n */\n const onPhoneChange = useCallback((evt, index) => {\n const phone = inputRange(evt.target.value);\n setFormData(old => {\n old[index].linkmanPhone = phone;\n return [...old];\n });\n onInputChange?.(\"linkmanPhone\", index);\n }, []);\n\n /**\n * 输入框失去焦点做校验\n */\n const onFormBlur = useCallback(\n (type: keyof LinkManItem, index: number) => {\n const flag = validateForm(type, formData[index][type]); // 先做值的校验,再做重复校验\n if (!flag) {\n setErrMessage(old => {\n old[index][type] = errorMessageMap[type];\n return [...old];\n });\n return;\n }\n const { pass, message } = validateDuplicate(type, index);\n if (!pass)\n setErrMessage(old => {\n old[index][type] = message;\n return [...old];\n });\n\n onBlur?.(type, index);\n },\n [formData]\n );\n\n /**\n * 聚焦的时候设置错误信息为空\n */\n const onFormFocus = useCallback(\n (type: keyof LinkManItem, index: number) => {\n setErrMessage(old => {\n old[index][type] = \"\";\n return [...old];\n });\n },\n []\n );\n\n return (\n <View className=\"xh-linkman\">\n {formData.map((item, num) => (\n <View key={num} className=\"xh-linkman-item\">\n <View className=\"xh-linkman-title\">\n 第{LinkManTitleMap[num]}联系人\n </View>\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">姓名</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"text\"\n placeholder=\"紧急联系人姓名\"\n onChange={e => onNameChange(e, num)}\n value={item.linkmanName}\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人姓名\"\n className=\"xh-linkman-main-input-main-input\"\n />\n )}\n {errMessage[num].linkmanName && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanName}\n </View>\n )}\n </View>\n {showImportIcon && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">电话</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"tel\"\n placeholder=\"紧急联系人手机号\"\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n maxLength={11}\n onChange={e => onPhoneChange(e, num)}\n value={item.linkmanPhone}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n />\n )}\n {errMessage[num].linkmanPhone && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanPhone}\n </View>\n )}\n </View>\n </View>\n </View>\n <ActionSheet\n data={relations}\n title=\"选择与联系人的关系\"\n onConfirm={value => {\n setErrMessage(old => {\n old[num].relationType = \"\";\n return [...old];\n });\n setFormData(old => {\n old[num].relationType = value.text;\n old[num].relationValue = value.value;\n return [...old];\n });\n const { pass, message } = validateDuplicate(\n \"relationValue\",\n num\n );\n if (!pass)\n setErrMessage(old => {\n old[num].relationType = message;\n return [...old];\n });\n onCheckRelation?.(value, num);\n }}\n onCancel={() => onFormBlur(\"relationType\", num)}\n >\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">关系</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n type=\"text\"\n maxLength={11}\n className=\"xh-linkman-main-input-main-input\"\n readOnly\n placeholder=\"选择与联系人关系\"\n value={item.relationType}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"digit\"\n maxlength={11}\n value={item.relationType}\n />\n )}\n {errMessage[num].relationType && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].relationType}\n </View>\n )}\n </View>\n <View className=\"xh-linkman-main-input-arrow\"></View>\n </View>\n </View>\n </ActionSheet>\n </View>\n ))}\n </View>\n );\n }\n);\n\nexport default XHAddLinMan;\n"],"names":["LinkManTitleMap","errorMessageMap","linkmanName","linkmanPhone","relationType","defaultActionSheet","value","text","defaultShowImportIcon","process","env","TARO_ENV","window","navigator","userAgent","includes","XHAddLinMan","forwardRef","props","fromRef","linkManNum","_a","relations","onChange","onGetContacts","_b","showImportIcon","onBlur","onCheckRelation","onInputChange","_c","__read","useState","formData","setFormData","_d","errMessage","setErrMessage","useEffect","Array","fill","map","relationValue","validatePhone","useCallback","phone","test","validateForm","type","name","replace","length","validateCanSubmit","finalData","flag","index","push","useImperativeHandle","canSubmit","setContacts","item","old","__spreadArray","onFormBlur","validateDuplicate","currentIndex","currentItem","validStub","length_1","current","pass","message","concat","onNameChange","evt","inputRange","target","onPhoneChange","onFormFocus","React","createElement","View","className","num","key","placeholder","e","onFocus","Input","onClick","maxLength","ActionSheet","data","title","onConfirm","onCancel","readOnly","maxlength"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/LinkMan/index.tsx"],"sourcesContent":["import { View, Input } from \"@tarojs/components\";\nimport React, {\n useCallback,\n useEffect,\n useState,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport { inputRange } from \"@/utils\";\n\nimport ActionSheet from \"../ActionSheet\";\n\nimport \"./index.scss\";\n\nexport type AddLinkManProps = {\n linkManNum: number;\n onChange?: (data: LinkManItem[], pass: boolean) => void;\n onGetContacts?: (index: number) => void;\n showImportIcon?: boolean;\n onBlur?: (type: keyof LinkManItem, index: number) => void;\n onCheckRelation?: (\n value: { text: string; value: string },\n index: number\n ) => void;\n onInputChange?: (type: \"linkmanName\" | \"linkmanPhone\", index: number) => void;\n /**\n * 可以选择的关系\n */\n relations?: { text: string; value: string }[];\n};\n\nconst LinkManTitleMap = [\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\",\n \"十\",\n];\n\n/**\n * 错误信息提示\n */\nconst errorMessageMap = {\n linkmanName: \"请输入联系人姓名\",\n linkmanPhone: \"请输入正确的手机号\",\n relationType: \"请选择与联系人关系\",\n};\n\nconst defaultActionSheet = [\n {\n value: \"FATHER\",\n text: \"父亲\",\n },\n {\n value: \"MOTHER\",\n text: \"母亲\",\n },\n {\n value: \"MATE\",\n text: \"配偶\",\n },\n {\n value: \"CHILDREN\",\n text: \"子女\",\n },\n {\n value: \"SIBLING\",\n text: \"兄弟姐妹\",\n },\n {\n value: \"FRIENDS\",\n text: \"朋友\",\n },\n {\n value: \"COLLEAGUE\",\n text: \"同事\",\n },\n {\n value: \"RELATIVES\",\n text: \"亲戚\",\n },\n {\n value: \"OTHER\",\n text: \"其他\",\n },\n];\n\nexport type LinkManItem = {\n linkmanName: string;\n linkmanPhone: string;\n relationType: string;\n relationValue: string;\n};\n\nexport type LinkManRef = {\n canSubmit: boolean;\n setContacts: (\n item: Pick<LinkManItem, \"linkmanName\" | \"linkmanPhone\">,\n index: number\n ) => void;\n};\n\nconst defaultShowImportIcon =\n process.env.TARO_ENV === \"h5\"\n ? window.navigator.userAgent.includes(\"xhqb\")\n : true;\n\nconst XHAddLinMan = forwardRef<LinkManRef, AddLinkManProps>(\n (props, fromRef) => {\n const {\n linkManNum,\n relations = defaultActionSheet,\n onChange,\n onGetContacts,\n showImportIcon = defaultShowImportIcon,\n onBlur,\n onCheckRelation,\n onInputChange,\n } = props;\n\n // form信息\n const [formData, setFormData] = useState<LinkManItem[]>([]);\n\n // 错误提示语信息\n const [errMessage, setErrMessage] = useState<\n Omit<LinkManItem, \"relationValue\">[]\n >([]);\n\n useEffect(() => {\n setFormData(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n relationValue: \"\",\n };\n })\n );\n setErrMessage(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n };\n })\n );\n }, [linkManNum]);\n\n /**\n * 校验手机号\n */\n const validatePhone = useCallback((phone: string) => {\n if (/1\\d{10}/.test(phone)) {\n return true;\n }\n return false;\n }, []);\n\n /**\n * 非空校验\n */\n const validateForm = useCallback(\n (type: keyof LinkManItem, name: string) => {\n if (type === \"linkmanName\") {\n if (!name || !name.replace(/^\\s+|\\s+$/gm, \"\")) return false;\n if (name.length > 20) return false;\n return true;\n } else if (type === \"linkmanPhone\") {\n if (!name || !validatePhone(name)) return false;\n return true;\n } else if (type === \"relationType\") {\n if (!name) return false;\n return true;\n }\n return false;\n },\n []\n );\n\n /**\n * 校验联系人是否合法,默认找到不合法的就退出循环\n */\n const validateCanSubmit = useCallback(() => {\n const finalData = formData;\n const length = finalData.length;\n const map: Record<string, string[]> = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n let flag = true;\n // console.log(finalData);\n\n /**\n * 每次循环formData,不符合直接break,退出循环\n */\n for (let index = 0; index < length; index++) {\n const isNameValid = validateForm(\n \"linkmanName\",\n finalData[index].linkmanName\n );\n if (!isNameValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanName.includes(finalData[index].linkmanName)\n ) {\n flag = false;\n break;\n }\n map.linkmanName.push(finalData[index].linkmanName);\n const isPhoneValid = validateForm(\n \"linkmanPhone\",\n finalData[index].linkmanPhone\n );\n if (!isPhoneValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanPhone.includes(finalData[index].linkmanPhone)\n ) {\n flag = false;\n break;\n }\n map.linkmanPhone.push(finalData[index].linkmanPhone);\n const isRelationValid = validateForm(\n \"relationType\",\n finalData[index].relationValue\n );\n if (!isRelationValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.relationValue.includes(finalData[index].relationValue)\n ) {\n flag = false;\n break;\n }\n map.relationValue.push(finalData[index].relationValue);\n }\n return flag;\n }, [formData]);\n\n useEffect(() => {\n onChange?.(formData, validateCanSubmit());\n }, [formData]);\n\n useImperativeHandle(\n fromRef,\n () => ({\n canSubmit: validateCanSubmit(),\n setContacts(item, index) {\n setFormData(old => {\n old[index].linkmanName = item.linkmanName;\n old[index].linkmanPhone = item.linkmanPhone;\n return [...old];\n });\n onFormBlur(\"linkmanName\", index);\n onFormBlur(\"linkmanPhone\", index);\n },\n }),\n []\n );\n\n /**\n * 重复校验\n */\n const validateDuplicate = (\n type: keyof LinkManItem,\n currentIndex\n ): { pass: boolean; message: string } => {\n const currentItem = formData[currentIndex];\n // const validStub: Record<\n // Exclude<keyof LinkManItem, \"relationType\">,\n // string[]\n // > = {\n // linkmanName: [],\n // linkmanPhone: [],\n // relationValue: [],\n // };\n\n for (let index = 0, length = formData.length; index < length; index++) {\n if (index === currentIndex) continue; // 不能跟自己比较\n const current = formData[index];\n if (type === \"linkmanName\") {\n // validStub.linkmanName.push(formData[index].linkmanName);\n if (\n currentItem.linkmanName !== \"\" &&\n current.linkmanName !== \"\" &&\n current.linkmanName === currentItem.linkmanName\n ) {\n return {\n pass: false,\n message: `姓名与第${index + 1}联系人姓名重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanName = \"\";\n // old[currentIndex].linkmanName = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"linkmanPhone\") {\n if (\n currentItem.linkmanPhone !== \"\" &&\n current.linkmanPhone !== \"\" &&\n current.linkmanPhone === currentItem.linkmanPhone\n ) {\n // 如果没有重复需要清空错误信息\n return {\n pass: false,\n message: `手机号与第${index + 1}联系人号码重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanPhone = \"\";\n // old[currentIndex].linkmanPhone = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"relationValue\") {\n if (\n currentItem.relationValue !== \"\" &&\n current.relationValue === currentItem.relationValue\n ) {\n return {\n pass: false,\n message: `关系与第${index + 1}联系人关系重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].relationType = \"\";\n // old[currentIndex].relationType = \"\";\n // return [...old];\n // });\n }\n }\n }\n return { pass: true, message: \"\" };\n };\n\n /**\n * 联系人姓名改变\n */\n const onNameChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const name = inputRange(value);\n setFormData(old => {\n old[index].linkmanName = name;\n return [...old];\n });\n onInputChange?.(\"linkmanName\", index);\n }, []);\n\n /**\n * 联系人手机号改变\n */\n const onPhoneChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const phone = inputRange(value);\n setFormData(old => {\n old[index].linkmanPhone = phone;\n return [...old];\n });\n onInputChange?.(\"linkmanPhone\", index);\n }, []);\n\n /**\n * 输入框失去焦点做校验\n */\n const onFormBlur = useCallback(\n (type: keyof LinkManItem, index: number) => {\n const flag = validateForm(type, formData[index][type]); // 先做值的校验,再做重复校验\n if (!flag) {\n setErrMessage(old => {\n old[index][type] = errorMessageMap[type];\n return [...old];\n });\n return;\n }\n const { pass, message } = validateDuplicate(type, index);\n if (!pass)\n setErrMessage(old => {\n old[index][type] = message;\n return [...old];\n });\n\n onBlur?.(type, index);\n },\n [formData]\n );\n\n /**\n * 聚焦的时候设置错误信息为空\n */\n const onFormFocus = useCallback(\n (type: keyof LinkManItem, index: number) => {\n setErrMessage(old => {\n old[index][type] = \"\";\n return [...old];\n });\n },\n []\n );\n\n return (\n <View className=\"xh-linkman\">\n {formData.map((item, num) => (\n <View key={num} className=\"xh-linkman-item\">\n <View className=\"xh-linkman-title\">\n 第{LinkManTitleMap[num]}联系人\n </View>\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">姓名</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"text\"\n placeholder=\"紧急联系人姓名\"\n onChange={e => onNameChange(e, num)}\n value={item.linkmanName}\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人姓名\"\n className=\"xh-linkman-main-input-main-input\"\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n value={item.linkmanName}\n type=\"text\"\n onInput={e => onNameChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n )}\n {errMessage[num].linkmanName && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanName}\n </View>\n )}\n </View>\n {showImportIcon && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">电话</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"tel\"\n placeholder=\"紧急联系人手机号\"\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n maxLength={11}\n onChange={e => onPhoneChange(e, num)}\n value={item.linkmanPhone}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"number\"\n maxlength={11}\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n value={item.linkmanPhone}\n onInput={e => onPhoneChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n )}\n {errMessage[num].linkmanPhone && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanPhone}\n </View>\n )}\n </View>\n </View>\n </View>\n <ActionSheet\n data={relations}\n title=\"选择与联系人的关系\"\n onConfirm={value => {\n setErrMessage(old => {\n old[num].relationType = \"\";\n return [...old];\n });\n setFormData(old => {\n old[num].relationType = value.text;\n old[num].relationValue = value.value;\n return [...old];\n });\n Promise.resolve().then(() => {\n const { pass, message } = validateDuplicate(\n \"relationValue\",\n num\n );\n if (!pass)\n setErrMessage(old => {\n old[num].relationType = message;\n return [...old];\n });\n onCheckRelation?.(value, num);\n });\n }}\n onCancel={() => onFormBlur(\"relationType\", num)}\n >\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">关系</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n type=\"text\"\n maxLength={11}\n className=\"xh-linkman-main-input-main-input\"\n readOnly\n placeholder=\"选择与联系人关系\"\n value={item.relationType}\n />\n ) : (\n <Input\n placeholder=\"选择与联系人关系\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"digit\"\n maxlength={11}\n value={item.relationType}\n disabled\n />\n )}\n {errMessage[num].relationType && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].relationType}\n </View>\n )}\n </View>\n <View className=\"xh-linkman-main-input-arrow\"></View>\n </View>\n </View>\n </ActionSheet>\n </View>\n ))}\n </View>\n );\n }\n);\n\nexport default XHAddLinMan;\n"],"names":["LinkManTitleMap","errorMessageMap","linkmanName","linkmanPhone","relationType","defaultActionSheet","value","text","defaultShowImportIcon","process","env","TARO_ENV","window","navigator","userAgent","includes","XHAddLinMan","forwardRef","props","fromRef","linkManNum","_a","relations","onChange","onGetContacts","_b","showImportIcon","onBlur","onCheckRelation","onInputChange","_c","__read","useState","formData","setFormData","_d","errMessage","setErrMessage","useEffect","Array","fill","map","relationValue","validatePhone","useCallback","phone","test","validateForm","type","name","replace","length","validateCanSubmit","finalData","flag","index","push","useImperativeHandle","canSubmit","setContacts","item","old","__spreadArray","onFormBlur","validateDuplicate","currentIndex","currentItem","length_1","current","pass","message","concat","onNameChange","evt","target","detail","inputRange","onPhoneChange","onFormFocus","React","createElement","View","className","num","key","placeholder","e","onFocus","Input","onInput","onClick","maxLength","maxlength","ActionSheet","data","title","onConfirm","Promise","resolve","then","onCancel","readOnly","disabled"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"react";import{View as t,Text as a}from"@tarojs/components";import i from"classnames";var o=function(o){var l=o.title,s=void 0===l?"":l,r=o.description,n=void 0===r?"":r,c=o.icon,m=o.extra,d=void 0===m?"":m,x=o.extraIcon,v=void 0===x?"":x,p=o.arrow,N=o.border,E=void 0===N||N,h=o.onClick,f=o.className,u=o.outline,C=void 0===u||u,b=o.condensed,g=void 0!==b&&b,k=o.descriptionColor,w=void 0===k?"":k,y=o.extraColor,j=void 0===y?"":y,I=o.ellipsis,q=void 0===I||I,z=o.padding,A=i("xh-list",{border:E},{outline:C},{condensed:g},{padding:void 0!==z&&z},f),B=i("xh-list-main",{ellipsis:q});return e.createElement(t,{className:A,onClick:function(e){h&&h(e)}},c&&e.createElement(t,{className:"xh-list-icon"},c),e.createElement(t,{className:B},s&&e.createElement(a,{className:"xh-list-main-title"},s),e.createElement(a,{className:"xh-list-main-description",style:{color:w}},n)),e.createElement(t,{className:"xh-list-extra"},e.createElement(t,{className:"xh-list-extra-info",style:{color:j}},d),e.createElement(t,{className:"xh-list-extra-icon"},v||p&&e.createElement(t,{className:"arrow"}))))};export{o as default};
1
+ import e from"react";import{View as t,Text as a}from"@tarojs/components";import i from"classnames";var o=function(o){var l=o.title,s=void 0===l?"":l,r=o.description,n=void 0===r?"":r,c=o.icon,m=o.extra,d=void 0===m?"":m,x=o.extraIcon,v=void 0===x?"":x,p=o.arrow,N=o.border,h=void 0===N||N,E=o.onClick,f=o.className,u=o.outline,C=void 0===u||u,b=o.condensed,g=void 0!==b&&b,k=o.descriptionColor,w=void 0===k?"":k,y=o.extraColor,j=void 0===y?"":y,I=o.ellipsis,q=void 0===I||I,z=o.padding,A=i("xh-list",{border:h},{outline:C},{condensed:g},{padding:void 0!==z&&z},f),B=i("xh-list-main",{ellipsis:q});return e.createElement(t,{className:A,onClick:function(e){E&&E(e)}},c&&e.createElement(t,{className:"xh-list-icon"},c),e.createElement(t,{className:B},s&&e.createElement(a,{className:"xh-list-main-title"},s),e.createElement(a,{className:"xh-list-main-description",style:{color:w}},n)),e.createElement(t,{className:"xh-list-extra"},e.createElement(t,{className:"xh-list-extra-info",style:{color:j}},d),e.createElement(t,{className:"xh-list-extra-icon"},v||p&&e.createElement(t,{className:"xh-list-extra-icon-arrow"}))))};export{o as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/List/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHListProps = {\n title?: string;\n description?: string | ReactNode;\n icon?: ReactNode;\n extra?: string | ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n condensed?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: string;\n extraColor?: string;\n ellipsis?: boolean;\n padding?: boolean;\n} & XHComponentCommonProps;\n\nconst XHList: FC<XHListProps> = props => {\n const {\n title = \"\",\n description = \"\",\n icon,\n extra = \"\",\n extraIcon = \"\",\n arrow,\n border = true,\n onClick,\n className,\n outline = true,\n condensed = false,\n descriptionColor = \"\",\n extraColor = \"\",\n ellipsis = true,\n padding = false,\n } = props;\n\n const listcls = classNames(\n \"xh-list\",\n { border },\n { outline },\n { condensed },\n { padding },\n className\n );\n\n const mainCls = classNames(\"xh-list-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={listcls} onClick={handleClick}>\n {icon && <View className=\"xh-list-icon\">{icon}</View>}\n <View className={mainCls}>\n {title && <Text className=\"xh-list-main-title\">{title}</Text>}\n <Text\n className=\"xh-list-main-description\"\n style={{ color: descriptionColor }}\n >\n {description}\n </Text>\n </View>\n <View className=\"xh-list-extra\">\n <View className=\"xh-list-extra-info\" style={{ color: extraColor }}>\n {extra}\n </View>\n <View className=\"xh-list-extra-icon\">\n {extraIcon ? extraIcon : arrow && <View className=\"arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHList;\n"],"names":["XHList","props","_a","title","_b","description","icon","_c","extra","_d","extraIcon","arrow","_e","border","onClick","className","_f","outline","_g","condensed","_h","descriptionColor","_j","extraColor","_k","ellipsis","_l","padding","listcls","classNames","mainCls","React","createElement","View","e","Text","style","color"],"mappings":"mGAwBM,IAAAA,EAA0B,SAAAC,GAE5B,IAAAC,EAeED,EAAKE,MAfPA,OAAQ,IAAAD,EAAA,GAAEA,EACVE,EAcEH,EAdcI,YAAhBA,OAAc,IAAAD,EAAA,GAAEA,EAChBE,EAaEL,EAAKK,KAZPC,EAYEN,EAAKO,MAZPA,aAAQ,GAAED,EACVE,EAWER,EAAKS,UAXPA,OAAY,IAAAD,EAAA,GAAEA,EACdE,EAUEV,EAAKU,MATPC,EASEX,EAAKY,OATPA,OAAS,IAAAD,GAAIA,EACbE,EAQEb,EAAKa,QAPPC,EAOEd,EAAKc,UANPC,EAMEf,EAAKgB,QANPA,OAAU,IAAAD,GAAIA,EACdE,EAKEjB,EAAKkB,UALPA,OAAY,IAAAD,GAAKA,EACjBE,EAIEnB,EAJmBoB,iBAArBA,OAAgB,IAAAD,EAAG,GAAEA,EACrBE,EAGErB,EAHasB,WAAfA,OAAU,IAAAD,EAAG,GAAEA,EACfE,EAEEvB,EAAKwB,SAFPA,OAAW,IAAAD,GAAIA,EACfE,EACEzB,EADa0B,QAGXC,EAAUC,EACd,UACA,CAAEhB,OAAMA,GACR,CAAEI,QAAOA,GACT,CAAEE,UAASA,GACX,CAAEQ,aARK,IAAAD,GAAQA,GASfX,GAGIe,EAAUD,EAAW,eAAgB,CACzCJ,SAAQA,IAOV,OACEM,EAACC,cAAAC,EAAK,CAAAlB,UAAWa,EAASd,QALR,SAACoB,GACnBpB,GAAWA,EAAQoB,EACrB,GAIK5B,GAAQyB,gBAACE,EAAI,CAAClB,UAAU,gBAAgBT,GACzCyB,EAAAC,cAACC,EAAI,CAAClB,UAAWe,GACd3B,GAAS4B,gBAACI,EAAI,CAACpB,UAAU,sBAAsBZ,GAChD4B,EAAAC,cAACG,EACC,CAAApB,UAAU,2BACVqB,MAAO,CAAEC,MAAOhB,IAEfhB,IAGL0B,EAAAC,cAACC,EAAI,CAAClB,UAAU,iBACdgB,EAAAC,cAACC,EAAI,CAAClB,UAAU,qBAAqBqB,MAAO,CAAEC,MAAOd,IAClDf,GAEHuB,EAACC,cAAAC,EAAK,CAAAlB,UAAU,sBACbL,GAAwBC,GAASoB,EAAAC,cAACC,EAAI,CAAClB,UAAU,YAK5D"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/List/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHListProps = {\n title?: string;\n description?: string | ReactNode;\n icon?: ReactNode;\n extra?: string | ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n condensed?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: string;\n extraColor?: string;\n ellipsis?: boolean;\n padding?: boolean;\n} & XHComponentCommonProps;\n\nconst XHList: FC<XHListProps> = props => {\n const {\n title = \"\",\n description = \"\",\n icon,\n extra = \"\",\n extraIcon = \"\",\n arrow,\n border = true,\n onClick,\n className,\n outline = true,\n condensed = false,\n descriptionColor = \"\",\n extraColor = \"\",\n ellipsis = true,\n padding = false,\n } = props;\n\n const listcls = classNames(\n \"xh-list\",\n { border },\n { outline },\n { condensed },\n { padding },\n className\n );\n\n const mainCls = classNames(\"xh-list-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={listcls} onClick={handleClick}>\n {icon && <View className=\"xh-list-icon\">{icon}</View>}\n <View className={mainCls}>\n {title && <Text className=\"xh-list-main-title\">{title}</Text>}\n <Text\n className=\"xh-list-main-description\"\n style={{ color: descriptionColor }}\n >\n {description}\n </Text>\n </View>\n <View className=\"xh-list-extra\">\n <View className=\"xh-list-extra-info\" style={{ color: extraColor }}>\n {extra}\n </View>\n <View className=\"xh-list-extra-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-list-extra-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHList;\n"],"names":["XHList","props","_a","title","_b","description","icon","_c","extra","_d","extraIcon","arrow","_e","border","onClick","className","_f","outline","_g","condensed","_h","descriptionColor","_j","extraColor","_k","ellipsis","_l","padding","listcls","classNames","mainCls","React","createElement","View","e","Text","style","color"],"mappings":"mGAwBM,IAAAA,EAA0B,SAAAC,GAE5B,IAAAC,EAeED,EAAKE,MAfPA,OAAQ,IAAAD,EAAA,GAAEA,EACVE,EAcEH,EAdcI,YAAhBA,OAAc,IAAAD,EAAA,GAAEA,EAChBE,EAaEL,EAAKK,KAZPC,EAYEN,EAAKO,MAZPA,aAAQ,GAAED,EACVE,EAWER,EAAKS,UAXPA,OAAY,IAAAD,EAAA,GAAEA,EACdE,EAUEV,EAAKU,MATPC,EASEX,EAAKY,OATPA,OAAS,IAAAD,GAAIA,EACbE,EAQEb,EAAKa,QAPPC,EAOEd,EAAKc,UANPC,EAMEf,EAAKgB,QANPA,OAAU,IAAAD,GAAIA,EACdE,EAKEjB,EAAKkB,UALPA,OAAY,IAAAD,GAAKA,EACjBE,EAIEnB,EAJmBoB,iBAArBA,OAAgB,IAAAD,EAAG,GAAEA,EACrBE,EAGErB,EAHasB,WAAfA,OAAU,IAAAD,EAAG,GAAEA,EACfE,EAEEvB,EAAKwB,SAFPA,OAAW,IAAAD,GAAIA,EACfE,EACEzB,EADa0B,QAGXC,EAAUC,EACd,UACA,CAAEhB,OAAMA,GACR,CAAEI,QAAOA,GACT,CAAEE,UAASA,GACX,CAAEQ,aARK,IAAAD,GAAQA,GASfX,GAGIe,EAAUD,EAAW,eAAgB,CACzCJ,SAAQA,IAOV,OACEM,EAACC,cAAAC,EAAK,CAAAlB,UAAWa,EAASd,QALR,SAACoB,GACnBpB,GAAWA,EAAQoB,EACrB,GAIK5B,GAAQyB,gBAACE,EAAI,CAAClB,UAAU,gBAAgBT,GACzCyB,EAAAC,cAACC,EAAI,CAAClB,UAAWe,GACd3B,GAAS4B,gBAACI,EAAI,CAACpB,UAAU,sBAAsBZ,GAChD4B,EAAAC,cAACG,EACC,CAAApB,UAAU,2BACVqB,MAAO,CAAEC,MAAOhB,IAEfhB,IAGL0B,EAAAC,cAACC,EAAI,CAAClB,UAAU,iBACdgB,EAAAC,cAACC,EAAI,CAAClB,UAAU,qBAAqBqB,MAAO,CAAEC,MAAOd,IAClDf,GAEHuB,EAAAC,cAACC,EAAK,CAAAlB,UAAU,sBACbL,GAEGC,GAASoB,EAAAC,cAACC,EAAK,CAAAlB,UAAU,+BAKvC"}
@@ -1,2 +1,2 @@
1
- import{__spreadArray as e,__read as a}from"../node_modules/tslib/tslib.es6.js";import t from"react";import r from"classnames";import{View as n}from"@tarojs/components";import s from"../Mask/index.js";var m=function(m){var o=m.mask,c=m.className,i=m.tip,l=void 0===i?"":i,d=m.color,p=void 0===d?"":d,f=r("xh-loading",c);return t.createElement(n,{className:f},t.createElement(s,{mask:o}),t.createElement(n,{className:"xh-loading-main"},t.createElement(n,{className:"xh-loading-main-spinner"},e([],a(Array(12).keys()),!1).map((function(e){return t.createElement(n,{className:r("xh-loading-main-spinner-circle","is-circle".concat(e+1)),key:"spinner".concat(e)},t.createElement(n,{className:"dot-rotate",style:{backgroundColor:p}}))}))),l&&t.createElement(n,{className:"xh-loading-main-tip"},l)))};export{m as default};
1
+ import e from"react";import a from"classnames";import{View as o}from"@tarojs/components";import r from"../Mask/index.js";import t from"../ActivityIndicator/index.js";var i=function(i){var m=i.mask,s=i.className,n=i.tip,l=void 0===n?"加载中":n,c=i.color,d=void 0===c?"#FFF":c,p=i.size,f=void 0===p?60:p,x=a("xh-loading",s);return e.createElement(o,{className:x},e.createElement(r,{mask:m}),e.createElement(o,{className:a("xh-loading-main",{hasTip:l})},e.createElement(t,{size:f,style:{"--loading-border-color":d,"--loading-border-width":"3px"}}),l&&e.createElement(o,{className:"xh-loading-main-tip"},l)))};export{i as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Loading/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport Mask, { MaskProps } from \"../Mask\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n mask?: MaskProps[\"mask\"];\n color?: string;\n tip?: string | ReactNode;\n} & XHComponentCommonProps;\n\nconst Loading: FC<LoadingProps> = ({\n mask,\n className,\n tip = \"\",\n color = \"\",\n}) => {\n const cls = classNames(\"xh-loading\", className);\n\n return (\n <View className={cls}>\n <Mask mask={mask} />\n <View className=\"xh-loading-main\">\n <View className=\"xh-loading-main-spinner\">\n {[...Array(12).keys()].map((index) => (\n <View\n className={classNames(\n \"xh-loading-main-spinner-circle\",\n `is-circle${index + 1}`\n )}\n key={`spinner${index}`}\n >\n <View\n className=\"dot-rotate\"\n style={{ backgroundColor: color }}\n ></View>\n </View>\n ))}\n </View>\n {tip && <View className=\"xh-loading-main-tip\">{tip}</View>}\n </View>\n </View>\n );\n};\n\nexport default Loading;\n"],"names":["Loading","_a","mask","className","_b","tip","_c","color","cls","classNames","React","createElement","View","Mask","__spreadArray","Array","keys","map","index","concat","key","style","backgroundColor"],"mappings":"wMAaM,IAAAA,EAA4B,SAACC,GACjC,IAAAC,SACAC,EAASF,EAAAE,UACTC,QAAAC,OAAM,IAAAD,EAAA,KACNE,EAAAL,EAAAM,MAAAA,OAAK,IAAAD,EAAG,GAAEA,EAEJE,EAAMC,EAAW,aAAcN,GAErC,OACEO,EAACC,cAAAC,EAAK,CAAAT,UAAWK,GACfE,EAAAC,cAACE,EAAI,CAACX,KAAMA,IACZQ,EAAAC,cAACC,EAAI,CAACT,UAAU,mBACdO,EAAAC,cAACC,EAAK,CAAAT,UAAU,2BACbW,OAAIC,MAAM,IAAIC,SAAM,GAAEC,KAAI,SAACC,GAAU,OACpCR,EAAAC,cAACC,EACC,CAAAT,UAAWM,EACT,iCACA,YAAAU,OAAYD,EAAQ,IAEtBE,IAAK,UAAAD,OAAUD,IAEfR,EAAAC,cAACC,EACC,CAAAT,UAAU,aACVkB,MAAO,CAAEC,gBAAiBf,KAG/B,KAEFF,GAAOK,EAAAC,cAACC,EAAI,CAACT,UAAU,uBAAuBE,IAIvD"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Loading/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport Mask, { MaskProps } from \"../Mask\";\nimport Activityindicator from \"../ActivityIndicator\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n mask?: MaskProps[\"mask\"];\n color?: string;\n tip?: string | ReactNode;\n size?: number;\n} & XHComponentCommonProps;\n\nconst Loading: FC<LoadingProps> = ({\n mask,\n className,\n tip = \"加载中\",\n color = \"#FFF\",\n size = 60,\n}) => {\n const cls = classNames(\"xh-loading\", className);\n\n return (\n <View className={cls}>\n <Mask mask={mask} />\n <View className={classNames(\"xh-loading-main\", { hasTip: tip })}>\n <Activityindicator\n size={size}\n style={{\n \"--loading-border-color\": color,\n \"--loading-border-width\": \"3px\",\n }}\n />\n\n {/* <View className=\"xh-loading-main-spinner\">\n {[...Array(12).keys()].map((index) => (\n <View\n className={classNames(\n \"xh-loading-main-spinner-circle\",\n `is-circle${index + 1}`\n )}\n key={`spinner${index}`}\n >\n <View\n className=\"dot-rotate\"\n style={{ backgroundColor: color }}\n ></View>\n </View>\n ))}\n </View> */}\n {tip && <View className=\"xh-loading-main-tip\">{tip}</View>}\n </View>\n </View>\n );\n};\n\nexport default Loading;\n"],"names":["Loading","_a","mask","className","_b","tip","_c","color","_d","size","cls","classNames","React","createElement","View","Mask","hasTip","Activityindicator","style"],"mappings":"sKAeM,IAAAA,EAA4B,SAACC,OACjCC,EAAID,EAAAC,KACJC,EAASF,EAAAE,UACTC,QAAAC,OAAM,IAAAD,EAAA,MAAKA,EACXE,UAAAC,OAAQ,IAAAD,EAAA,OAAMA,EACdE,SAAAC,OAAO,IAAAD,EAAA,GAAEA,EAEHE,EAAMC,EAAW,aAAcR,GAErC,OACES,EAACC,cAAAC,EAAK,CAAAX,UAAWO,GACfE,EAAAC,cAACE,EAAI,CAACb,KAAMA,IACZU,EAAAC,cAACC,EAAI,CAACX,UAAWQ,EAAW,kBAAmB,CAAEK,OAAQX,KACvDO,EAAAC,cAACI,EACC,CAAAR,KAAMA,EACNS,MAAO,CACL,yBAA0BX,EAC1B,yBAA0B,SAoB7BF,GAAOO,EAAAC,cAACC,EAAI,CAACX,UAAU,uBAAuBE,IAIvD"}
@@ -1,2 +1,2 @@
1
- import{__rest as e,__assign as o}from"../node_modules/tslib/tslib.es6.js";import a from"react";import{View as r}from"@tarojs/components";import t from"classnames";import s from"../Loading/index.js";import m from"../NavBar/index.js";var i=function(i){var l=i.children,n=i.loading,c=void 0!==n&&n,d=i.className,p=void 0===d?"":d,v=i.mask,N=void 0===v?"normal":v,f=i.tip,g=i.loadingColor,E=i.customNavBar,h=void 0!==E&&E,u=i.title,x=void 0===u?"":u,j=e(i,["children","loading","className","mask","tip","loadingColor","customNavBar","title"]),_=t("xh-page",p,{flex:"h5"!==process.env.TARO_ENV&&h});return a.createElement(r,{className:_},"h5"!==process.env.TARO_ENV&&h&&a.createElement(m,o({title:x},j)),c&&a.createElement(r,{className:"loading-wrapper"},a.createElement(s,{mask:N,tip:f,color:g})),h&&"h5"!==process.env.TARO_ENV?a.createElement(r,{className:"xh-page-content"},l):l)};export{i as default};
1
+ import{__rest as e,__assign as o}from"../node_modules/tslib/tslib.es6.js";import a from"react";import{View as r}from"@tarojs/components";import t from"classnames";import s from"../Loading/index.js";import i from"../NavBar/index.js";var m=function(m){var l=m.children,n=m.loading,c=void 0!==n&&n,d=m.className,p=void 0===d?"":d,v=m.mask,N=void 0===v?"normal":v,f=m.tip,g=void 0===f?"加载中":f,E=m.loadingColor,h=void 0===E?"#FFF":E,u=m.customNavBar,x=void 0!==u&&u,j=m.title,_=void 0===j?"":j,k=e(m,["children","loading","className","mask","tip","loadingColor","customNavBar","title"]),A=t("xh-page",p,{flex:"h5"!==process.env.TARO_ENV&&x});return a.createElement(r,{className:A},"h5"!==process.env.TARO_ENV&&x&&a.createElement(i,o({title:_},k)),c&&a.createElement(r,{className:"loading-wrapper"},a.createElement(s,{mask:N,tip:g,color:h})),x&&"h5"!==process.env.TARO_ENV?a.createElement(r,{className:"xh-page-content"},l):l)};export{m as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Page/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classname from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\nimport Loading, { LoadingProps } from \"../Loading\";\nimport NavBar from \"../NavBar\";\n\nexport interface PageProps extends XHComponentCommonProps {\n loading?: boolean;\n mask?: LoadingProps[\"mask\"];\n tip?: ReactNode;\n loadingColor?: string;\n /**\n * @supported 小程序\n * @default false\n */\n customNavBar?: boolean;\n onBack?: () => void;\n title?: string;\n leftIcon?: boolean;\n rightIcon?: ReactNode;\n}\n\nconst Page: FC<PageProps> = props => {\n const {\n children,\n loading = false,\n className = \"\",\n mask = \"normal\",\n tip,\n loadingColor,\n customNavBar = false,\n title = \"\",\n ...rest\n } = props;\n\n const classObj = classname(\"xh-page\", className, {\n flex: process.env.TARO_ENV !== \"h5\" && customNavBar,\n });\n\n return (\n <View className={classObj}>\n {process.env.TARO_ENV !== \"h5\" && customNavBar && (\n <NavBar title={title} {...rest} />\n )}\n {loading && (\n <View className=\"loading-wrapper\">\n <Loading mask={mask} tip={tip} color={loadingColor} />\n </View>\n )}\n {customNavBar && process.env.TARO_ENV !== \"h5\" ? (\n <View className=\"xh-page-content\">{children}</View>\n ) : (\n children\n )}\n </View>\n );\n};\n\nexport default Page;\n"],"names":["Page","props","children","_a","loading","_b","className","_c","mask","tip","loadingColor","_d","customNavBar","_e","title","rest","__rest","classObj","classname","flex","process","env","TARO_ENV","React","createElement","View","NavBar","Loading","color"],"mappings":"wOAwBM,IAAAA,EAAsB,SAAAC,GAExB,IAAAC,EASED,EAAKC,SARPC,EAQEF,EAAKG,QARPA,OAAU,IAAAD,KACVE,EAOEJ,EAAKK,UAPPA,OAAY,IAAAD,EAAA,KACZE,EAMEN,EAAKO,KANPA,OAAO,IAAAD,EAAA,WACPE,EAKER,EALCQ,IACHC,EAIET,EAAKS,aAHPC,EAGEV,EAAKW,aAHPA,cAAoBD,EACpBE,EAEEZ,EAAKa,MAFPA,aAAQ,GAAED,EACPE,EACDC,EAAAf,EAVE,CAAA,WAAA,UAAA,YAAA,OAAA,MAAA,eAAA,eAAA,UAYAgB,EAAWC,EAAU,UAAWZ,EAAW,CAC/Ca,KAA+B,OAAzBC,QAAQC,IAAIC,UAAqBV,IAGzC,OACEW,EAACC,cAAAC,EAAK,CAAAnB,UAAWW,GACW,OAAzBG,QAAQC,IAAIC,UAAqBV,GAChCW,EAACC,cAAAE,KAAOZ,MAAOA,GAAWC,IAE3BX,GACCmB,EAAAC,cAACC,EAAK,CAAAnB,UAAU,mBACdiB,EAAAC,cAACG,EAAO,CAACnB,KAAMA,EAAMC,IAAKA,EAAKmB,MAAOlB,KAGzCE,GAAyC,OAAzBQ,QAAQC,IAAIC,SAC3BC,gBAACE,EAAI,CAACnB,UAAU,mBAAmBJ,GAEnC,EAIR"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Page/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classname from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\nimport Loading, { LoadingProps } from \"../Loading\";\nimport NavBar from \"../NavBar\";\n\nexport interface PageProps extends XHComponentCommonProps {\n loading?: boolean;\n mask?: LoadingProps[\"mask\"];\n tip?: ReactNode;\n loadingColor?: string;\n /**\n * @supported 小程序\n * @default false\n */\n customNavBar?: boolean;\n onBack?: () => void;\n title?: string;\n leftIcon?: boolean;\n rightIcon?: ReactNode;\n}\n\nconst Page: FC<PageProps> = props => {\n const {\n children,\n loading = false,\n className = \"\",\n mask = \"normal\",\n tip = \"加载中\",\n loadingColor = \"#FFF\",\n customNavBar = false,\n title = \"\",\n ...rest\n } = props;\n\n const classObj = classname(\"xh-page\", className, {\n flex: process.env.TARO_ENV !== \"h5\" && customNavBar,\n });\n\n return (\n <View className={classObj}>\n {process.env.TARO_ENV !== \"h5\" && customNavBar && (\n <NavBar title={title} {...rest} />\n )}\n {loading && (\n <View className=\"loading-wrapper\">\n <Loading mask={mask} tip={tip} color={loadingColor} />\n </View>\n )}\n {customNavBar && process.env.TARO_ENV !== \"h5\" ? (\n <View className=\"xh-page-content\">{children}</View>\n ) : (\n children\n )}\n </View>\n );\n};\n\nexport default Page;\n"],"names":["Page","props","children","_a","loading","_b","className","_c","mask","_d","tip","_e","loadingColor","_f","customNavBar","_g","title","rest","__rest","classObj","classname","flex","process","env","TARO_ENV","React","createElement","View","NavBar","Loading","color"],"mappings":"wOAwBM,IAAAA,EAAsB,SAAAC,GAExB,IAAAC,EASED,EAAKC,SARPC,EAQEF,EARaG,QAAfA,OAAU,IAAAD,GAAKA,EACfE,EAOEJ,EAAKK,UAPPA,aAAY,GAAED,EACdE,EAMEN,EANaO,KAAfA,OAAI,IAAAD,EAAG,SAAQA,EACfE,EAKER,MALFS,OAAM,IAAAD,EAAA,MAAKA,EACXE,EAIEV,eAJFW,OAAe,IAAAD,EAAA,SACfE,EAGEZ,EAAKa,aAHPA,OAAY,IAAAD,GAAQA,EACpBE,EAEEd,EAFQe,MAAVA,OAAQ,IAAAD,EAAA,GAAEA,EACPE,EACDC,EAAAjB,EAVE,CAAA,WAAA,UAAA,YAAA,OAAA,MAAA,eAAA,eAAA,UAYAkB,EAAWC,EAAU,UAAWd,EAAW,CAC/Ce,KAA+B,OAAzBC,QAAQC,IAAIC,UAAqBV,IAGzC,OACEW,EAACC,cAAAC,EAAK,CAAArB,UAAWa,GACW,OAAzBG,QAAQC,IAAIC,UAAqBV,GAChCW,EAACC,cAAAE,KAAOZ,MAAOA,GAAWC,IAE3Bb,GACCqB,EAAAC,cAACC,EAAK,CAAArB,UAAU,mBACdmB,EAAAC,cAACG,EAAO,CAACrB,KAAMA,EAAME,IAAKA,EAAKoB,MAAOlB,KAGzCE,GAAyC,OAAzBQ,QAAQC,IAAIC,SAC3BC,gBAACE,EAAI,CAACrB,UAAU,mBAAmBJ,GAEnC,EAIR"}
@@ -0,0 +1,2 @@
1
+ import{__assign as o}from"../node_modules/tslib/tslib.es6.js";import e from"react";import r from"classnames";import{View as s}from"@tarojs/components";import{pxTransform as t}from"../src/utils/index.js";var a=function(a){var n=a.percent,c=void 0===n?88:n,l=a.className,m=a.doneColor,i=void 0===m?"#DDD":m,d=a.backgroundColor,p=void 0===d?"rgba(0,0,0, 0.25)":d,u=a.maskColor,f=void 0===u?"#FFF":u,C=a.size,g=a.style,v=r("xh-progress-circle",l),b=C?{width:t(C),height:t(C)}:{},h=100===c,k=o(o(o({},b),{"--percent":"".concat(c/100,"turn"),"--doneColor":i,"--backgroundColor":p,"--maskContent":"percent","--maskColor":f}),g);return e.createElement(s,{className:v,style:k},h&&e.createElement(s,{className:"xh-progress-circle-done"}))};export{a as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ProgressCircle/index.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type ProgressProps = {\n percent: number;\n // showPercent?: boolean;\n doneColor?: string;\n size?: number;\n backgroundColor?: string;\n maskColor?: string;\n style?: React.CSSProperties;\n} & XHComponentCommonProps;\n\nconst Progress: React.FC<ProgressProps> = props => {\n const {\n percent = 88,\n className,\n // showPercent = false,\n doneColor = \"#DDD\",\n backgroundColor = \"rgba(0,0,0, 0.25)\",\n maskColor = \"#FFF\",\n size,\n style,\n } = props;\n const progresslcs = classNames(\"xh-progress-circle\", className);\n\n const finalSize: React.CSSProperties = size\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {};\n\n const done = percent === 100;\n\n const finalStyle = {\n ...finalSize,\n \"--percent\": `${percent / 100}turn`,\n \"--doneColor\": doneColor,\n \"--backgroundColor\": backgroundColor,\n \"--maskContent\": \"percent\",\n \"--maskColor\": maskColor,\n ...style,\n };\n\n return (\n <View className={progresslcs} style={finalStyle}>\n {done && <View className=\"xh-progress-circle-done\"></View>}\n </View>\n );\n};\n\nexport default Progress;\n"],"names":["Progress","props","_a","percent","className","_b","doneColor","_c","backgroundColor","_d","maskColor","size","style","progresslcs","classNames","finalSize","width","pxTransform","height","done","finalStyle","__assign","concat","React","View","createElement"],"mappings":"2MAiBM,IAAAA,EAAoC,SAAAC,GAEtC,IAAAC,EAQED,EARUE,QAAZA,OAAO,IAAAD,EAAG,GAAEA,EACZE,EAOEH,EAPOG,UAETC,EAKEJ,EALgBK,UAAlBA,OAAY,IAAAD,EAAA,OAAMA,EAClBE,EAIEN,EAJmCO,gBAArCA,OAAe,IAAAD,EAAG,oBAAmBA,EACrCE,EAGER,EAHgBS,UAAlBA,OAAS,IAAAD,EAAG,OAAMA,EAClBE,EAEEV,EAAKU,KADPC,EACEX,QACEY,EAAcC,EAAW,qBAAsBV,GAE/CW,EAAiCJ,EACnC,CACEK,MAAOC,EAAYN,GACnBO,OAAQD,EAAYN,IAEtB,GAEEQ,EAAmB,MAAZhB,EAEPiB,EAAUC,EAAAA,EAAAA,EAAA,CAAA,EACXN,GAAS,CACZ,YAAa,GAAGO,OAAAnB,EAAU,IAAS,QACnC,cAAeG,EACf,oBAAqBE,EACrB,gBAAiB,UACjB,cAAeE,IACZE,GAGL,OACEW,gBAACC,EAAI,CAACpB,UAAWS,EAAaD,MAAOQ,GAClCD,GAAQI,EAACE,cAAAD,EAAK,CAAApB,UAAU,4BAG/B"}
@@ -1,2 +1,2 @@
1
- export{default as XHButton}from"../Button/index.js";export{default as XHPage}from"../Page/index.js";export{default as XHLoading}from"../Loading/index.js";export{default as XHBankIcon}from"../BankIcon/index.js";export{default as XHCaptcha}from"../Captcha/index.js";export{default as XHFormInput}from"../FormInput/index.js";export{default as XHList}from"../List/index.js";export{default as XHMask}from"../Mask/index.js";export{default as XHImage}from"../Image/index.js";export{default as XHDialog}from"../Dialog/index.js";export{default as XHNumberKeyboard}from"../NumberKeyboard/index.js";export{default as XHPasswordInput}from"../PasswordInput/index.js";export{default as XHProgress}from"../Progress/index.js";export{default as XHToast}from"../Toast/index.js";export{default as XHDialogRef}from"../DialogRef/index.js";export{default as XHTabbar}from"../Tabbar/index.js";export{default as XHPopup}from"../Popup/index.js";export{default as XHPicker}from"../Picker/index.js";export{default as XHSpace}from"../Space/index.js";export{default as ThemeProvider}from"../ThemeProvider/index.js";export{default as XHCheckbox}from"../Checkbox/index.js";export{default as XHRadio}from"../Radio/index.js";export{default as XHStep}from"../Step/index.js";export{default as XHBadge}from"../Badge/index.js";export{default as XHAmountInput}from"../AmountInput/index.js";export{default as XHAmountKeyboard}from"../AmountKeyboard/index.js";export{default as XHCollapse}from"../Collapse/index.js";export{default as XHNavBar}from"../NavBar/index.js";export{default as XHIcon}from"../Icon/index.js";export{default as XHActionSheet}from"../ActionSheet/index.js";export{default as XHRank}from"../Rank/index.js";export{default as XHCell}from"../Cell/index.js";export{default as XHActivityIndicator}from"../ActivityIndicator/index.js";export{default as XHSwitch}from"../Switch/index.js";export{default as XHLinkMan}from"../LinkMan/index.js";export{default as XHResult}from"../Result/index.js";
1
+ export{default as XHButton}from"../Button/index.js";export{default as XHPage}from"../Page/index.js";export{default as XHLoading}from"../Loading/index.js";export{default as XHBankIcon}from"../BankIcon/index.js";export{default as XHCaptcha}from"../Captcha/index.js";export{default as XHFormInput}from"../FormInput/index.js";export{default as XHList}from"../List/index.js";export{default as XHMask}from"../Mask/index.js";export{default as XHImage}from"../Image/index.js";export{default as XHDialog}from"../Dialog/index.js";export{default as XHNumberKeyboard}from"../NumberKeyboard/index.js";export{default as XHPasswordInput}from"../PasswordInput/index.js";export{default as XHProgress}from"../Progress/index.js";export{default as XHToast}from"../Toast/index.js";export{default as XHDialogRef}from"../DialogRef/index.js";export{default as XHTabbar}from"../Tabbar/index.js";export{default as XHPopup}from"../Popup/index.js";export{default as XHPicker}from"../Picker/index.js";export{default as XHSpace}from"../Space/index.js";export{default as ThemeProvider}from"../ThemeProvider/index.js";export{default as XHCheckbox}from"../Checkbox/index.js";export{default as XHRadio}from"../Radio/index.js";export{default as XHStep}from"../Step/index.js";export{default as XHBadge}from"../Badge/index.js";export{default as XHAmountInput}from"../AmountInput/index.js";export{default as XHAmountKeyboard}from"../AmountKeyboard/index.js";export{default as XHCollapse}from"../Collapse/index.js";export{default as XHNavBar}from"../NavBar/index.js";export{default as XHIcon}from"../Icon/index.js";export{default as XHActionSheet}from"../ActionSheet/index.js";export{default as XHRank}from"../Rank/index.js";export{default as XHCell}from"../Cell/index.js";export{default as XHActivityIndicator}from"../ActivityIndicator/index.js";export{default as XHSwitch}from"../Switch/index.js";export{default as XHLinkMan}from"../LinkMan/index.js";export{default as XHResult}from"../Result/index.js";export{default as XHProgressCircle}from"../ProgressCircle/index.js";
2
2
  //# sourceMappingURL=index.js.map