taro-react-uilib 1.4.26-1 → 1.4.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/CheckboxButton/index.js +1 -1
- package/dist/components/CheckboxButton/index.js.map +1 -1
- package/dist/components/FormInput/index.js +1 -1
- package/dist/components/FormInput/index.js.map +1 -1
- package/dist/components/IDNumberInput/index.js +1 -1
- package/dist/components/IDNumberInput/index.js.map +1 -1
- package/dist/components/Image/index.js +1 -1
- package/dist/components/Image/index.js.map +1 -1
- package/dist/components/LicensePlateInput/index.js +1 -1
- package/dist/components/LicensePlateInput/index.js.map +1 -1
- package/dist/components/NumberKeyboard/index.js +1 -1
- package/dist/components/NumberKeyboard/index.js.map +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/Radio/index.js.map +1 -1
- package/dist/components/Step/index.js +1 -1
- package/dist/components/Step/index.js.map +1 -1
- package/dist/components/Tabbar/tabbar/Tabbar.js +1 -1
- package/dist/components/Tabbar/tabbar/Tabbar.js.map +1 -1
- package/dist/index.esm.js +6 -6
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/components/checkbox.scss +1 -0
- package/package.json +1 -1
- package/types/components/Button/index.d.ts +0 -1
- package/types/components/Captcha/index.d.ts +1 -1
- package/types/components/Checkbox/index.d.ts +0 -1
- package/types/components/CheckboxButton/index.d.ts +0 -1
- package/types/components/FormInput/index.d.ts +0 -1
- package/types/components/IDNumberInput/index.d.ts +0 -2
- package/types/components/Image/index.d.ts +0 -1
- package/types/components/LicensePlateInput/index.d.ts +0 -2
- package/types/components/NumberKeyboard/index.d.ts +0 -1
- package/types/components/Radio/index.d.ts +0 -1
- package/types/components/Step/index.d.ts +0 -1
package/README.md
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import o,{useState as
|
|
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,T=m.htmlType,E=m.formType,P=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,B=m.onContact,D=m.onClick,F=m.preventTime,O=void 0===F?2500:F,U=m.style,z=m.loading,A=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:E,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:B,onClick:$,disabled:p,style:U,loading:z},v);return"WEB"!==Q?ee:o.createElement("button",{className:Z,disabled:p,type:T,onClick:p?void 0:$,style:U},v||P,z&&o.createElement(i,{style:A,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 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
|
|
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 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 !== \"WEB\") {\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":"gRA+CM,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,QAAV6B,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{__read as e}from"../node_modules/tslib/tslib.es6.js";import
|
|
1
|
+
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import c,{useState as a,useEffect as t}from"react";import o from"classnames";import{View as s}from"@tarojs/components";import l from"../src/hooks/useGenerateId.js";import{pxTransform as i}from"../src/utils/index.js";import n from"./Group/index.js";import r from"../Icon/index.js";var m=function(n){var m=n.className,h=n.name,d=n.label,u=n.id,p=n.circle,x=n.onChange,k=n.align,f=n.direction,b=n.justify,v=n.checked,N=void 0!==v&&v,E=n.disabled,g=n.value,j=void 0===g?"":g,y=n.style,F=n.size,C=void 0===F?0:F,_=n.iconColor,z=void 0===_?"#FFFFFF":_,A=l(u,"xh-checkbox-id"),G=e(a(!1),2),O=G[0],R=G[1];t((function(){R(N)}),[N]);var T=o("xh-checkbox",m,k,f,b,{h5:"h5"===process.env.TARO_ENV});return"h5"!==process.env.TARO_ENV?c.createElement(s,{onClick:function(){E||(R(!O),null==x||x(!O,j))},className:T,style:y},c.createElement(s,{className:o("xh-checkbox-input",{checked:O,disabled:E})}," "),c.createElement("span",{style:C>0?{width:i(C),height:i(C)}:{},className:o("xh-checkbox-input-fake",p&&"circle")},c.createElement(r,{icon:"duigou",className:"xh-checkbox-input-fake-icon",color:z,size:C?.55*C:18})),c.createElement("span",{className:"xh-radio-label"},d)):c.createElement("label",{htmlFor:A,className:T,style:y},c.createElement("input",{type:"checkbox",id:A,name:h,className:"xh-checkbox-input",onChange:function(e){var c=N||!1,a="";"h5"===process.env.TARO_ENV?(c=e.target.checked,a=e.target.value):(c=e.detail.value.length>0,a=e.detail.value[0]),x&&x(c,a)},value:j,defaultChecked:N}),c.createElement("span",{style:C>0?{width:i(C),height:i(C)}:{},className:o("xh-checkbox-input-fake",p&&"circle")},c.createElement(r,{icon:"duigou",className:"xh-checkbox-input-fake-icon",color:z,size:C?.55*C:18})),c.createElement("span",{className:"xh-checkbox-label"},d))};m.Group=n;export{m as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\nimport Group from \"./Group\";\nimport \"./index.scss\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHCheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHCheckboxProps = {\n onChange?: (check: boolean, value: string) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\nimport Group from \"./Group\";\nimport \"./index.scss\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHCheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHCheckboxProps = {\n onChange?: (check: boolean, value: string) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n} & XHComponentCommonProps;\n\nconst XHCheckbox: FC<XHCheckboxProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle,\n onChange,\n align,\n direction,\n justify,\n checked = false,\n disabled,\n value = \"\",\n style,\n size = 0,\n iconColor = \"#FFFFFF\",\n } = props;\n\n const finalId = useGenerateId(id, \"xh-checkbox-id\");\n const [innerChecked, setInnerChecked] = useState(false);\n\n useEffect(() => {\n setInnerChecked(checked);\n }, [checked]);\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value.length > 0;\n value = e.detail.value[0];\n }\n onChange && onChange(finalchecked, value);\n };\n\n const handleFakeChange = () => {\n if (disabled) return;\n setInnerChecked(!innerChecked);\n onChange?.(!innerChecked, value as string);\n };\n\n const cls = classNames(\"xh-checkbox\", className, align, direction, justify, {\n h5: process.env.TARO_ENV === \"h5\",\n });\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View onClick={handleFakeChange} className={cls} style={style}>\n <View\n className={classNames(\"xh-checkbox-input\", {\n checked: innerChecked,\n disabled,\n })}\n >\n {\" \"}\n </View>\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-checkbox-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"checkbox\"\n id={finalId}\n name={name}\n className=\"xh-checkbox-input\"\n onChange={handleOnchange}\n value={value}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-checkbox-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-checkbox-label\">{label}</span>\n </label>\n );\n};\n\nconst CheckBox = XHCheckbox as CompoundedComponent;\nCheckBox.Group = Group;\n\nexport default CheckBox;\n"],"names":["CheckBox","props","className","name","label","id","circle","onChange","align","direction","justify","_a","checked","disabled","_b","value","style","_c","size","_d","iconColor","finalId","useGenerateId","_e","__read","useState","innerChecked","setInnerChecked","useEffect","cls","classNames","h5","process","env","TARO_ENV","React","createElement","View","onClick","width","pxTransform","height","Icon","icon","color","htmlFor","type","e","finalchecked","target","detail","length","defaultChecked","Group"],"mappings":"oVAyCA,IAoHMA,EApHkC,SAAAC,GAEpC,IAAAC,EAeED,YAdFE,EAcEF,EAAKE,KAbPC,EAaEH,EAbGG,MACLC,EAYEJ,KAXFK,EAWEL,EAAKK,OAVPC,EAUEN,EAVMM,SACRC,EASEP,QARFQ,EAQER,EAAKQ,UAPPC,EAOET,EAPKS,QACPC,EAMEV,UANFW,cAAeD,EACfE,EAKEZ,EALMY,SACRC,EAIEb,EAAKc,MAJPA,OAAK,IAAAD,EAAG,GAAEA,EACVE,EAGEf,QAFFgB,EAEEhB,EAFMiB,KAARA,OAAO,IAAAD,EAAA,IACPE,EACElB,EADmBmB,UAArBA,OAAY,IAAAD,EAAA,YAGRE,EAAUC,EAAcjB,EAAI,kBAC5BkB,EAAAC,EAAkCC,GAAS,GAAM,GAAhDC,EAAYH,EAAA,GAAEI,OAErBC,GAAU,WACRD,EAAgBf,EAClB,GAAG,CAACA,IAEJ,IAmBMiB,EAAMC,EAAW,cAAe5B,EAAWM,EAAOC,EAAWC,EAAS,CAC1EqB,GAA6B,OAAzBC,QAAQC,IAAIC,WAElB,MAA6B,OAAzBF,QAAQC,IAAIC,SAEZC,EAAAC,cAACC,EAAI,CAACC,QAXe,WACnBzB,IACJc,GAAiBD,GACjBnB,SAAAA,GAAYmB,EAAcX,GAC5B,EAOqCb,UAAW2B,EAAKb,MAAOA,GACtDmB,EAAAC,cAACC,EACC,CAAAnC,UAAW4B,EAAW,oBAAqB,CACzClB,QAASc,EACTb,SAAQA,KAGT,KAEHsB,EAAAC,cAAA,OAAA,CACEpB,MACEE,EAAO,EACH,CACEqB,MAAOC,EAAYtB,GACnBuB,OAAQD,EAAYtB,IAEtB,CAAE,EAERhB,UAAW4B,EAAW,yBAA0BxB,GAAU,WAE1D6B,EAAAC,cAACM,EAAI,CACHC,KAAK,SACLzC,UAAU,8BACV0C,MAAOxB,EACPF,KAAMA,EAAc,IAAPA,EAAc,MAG/BiB,EAAMC,cAAA,OAAA,CAAAlC,UAAU,kBAAkBE,IAMtC+B,EAAAC,cAAA,QAAA,CAAOS,QAASxB,EAASnB,UAAW2B,EAAKb,MAAOA,GAC9CmB,EACEC,cAAA,QAAA,CAAAU,KAAK,WACLzC,GAAIgB,EACJlB,KAAMA,EACND,UAAU,oBACVK,SA/DiB,SAAAwC,GACrB,IAAIC,EAAepC,IAAW,EAC1BG,EAAQ,GACiB,OAAzBiB,QAAQC,IAAIC,UACdc,EAAeD,EAAEE,OAAOrC,QACxBG,EAAQgC,EAAEE,OAAOlC,QAEjBiC,EAAeD,EAAEG,OAAOnC,MAAMoC,OAAS,EACvCpC,EAAQgC,EAAEG,OAAOnC,MAAM,IAEzBR,GAAYA,EAASyC,EAAcjC,EACrC,EAqDMA,MAAOA,EACPqC,eAAgBxC,IAElBuB,EAAAC,cAAA,OAAA,CACEpB,MACEE,EAAO,EACH,CACEqB,MAAOC,EAAYtB,GACnBuB,OAAQD,EAAYtB,IAEtB,CAAE,EAERhB,UAAW4B,EAAW,yBAA0BxB,GAAU,WAE1D6B,EAAAC,cAACM,EAAI,CACHC,KAAK,SACLzC,UAAU,8BACV0C,MAAOxB,EACPF,KAAMA,EAAc,IAAPA,EAAc,MAG/BiB,EAAMC,cAAA,OAAA,CAAAlC,UAAU,qBAAqBE,GAG3C,EAGAJ,EAASqD,MAAQA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as o}from"react";import a from"classnames";import{View as n}from"@tarojs/components";var l=function(l){var
|
|
1
|
+
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as o}from"react";import a from"classnames";import{View as n}from"@tarojs/components";var l=function(l){var i=l.option,r=l.onChange,s=l.defaultValue,c=void 0===s?"":s,m=l.label,b=l.fill,p=void 0!==b&&b,u=l.className,f=l.style,d=l.border,h=void 0===d||d,x=l.paddingHorizontal,v=void 0===x||x,g=e(o("string"==typeof c?c:c.value),2),k=g[0],y=g[1];return t.createElement(n,{className:a("xh-checkbox-button",u,{border:h,paddingHorizontal:v}),style:f},m&&t.createElement(n,{className:"xh-checkbox-button-label"},m),t.createElement(n,{className:"xh-checkbox-button-options"},i.map((function(e,o){return t.createElement(n,{key:o,className:a("xh-checkbox-button-options-item",{active:"string"==typeof e?e===k:e.value===k,fill:p}),onClick:function(){!function(e){y("string"==typeof e?e:e.value),r(e)}(e)}},t.createElement("p",{className:"xh-checkbox-button-options-item-label"},"string"==typeof e?e:e.label))}))))};export{l as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/CheckboxButton/index.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\ntype OptionType =\n | {\n label?: string;\n value?: string;\n disabled?: boolean;\n [key: string]: any;\n }\n | string;\n\ninterface CheckboxProps<T>\n extends PropsWithChildren<{}>,\n XHComponentCommonProps {\n option: T[];\n fill?: boolean;\n label?: ReactNode;\n onChange: (item: T) => void;\n defaultValue?: T;\n style?: React.CSSProperties;\n border?: boolean;\n /**\n * paddingHorizontal 横向间距\n */\n paddingHorizontal?: boolean;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/CheckboxButton/index.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\ntype OptionType =\n | {\n label?: string;\n value?: string;\n disabled?: boolean;\n [key: string]: any;\n }\n | string;\n\ninterface CheckboxProps<T>\n extends PropsWithChildren<{}>,\n XHComponentCommonProps {\n option: T[];\n fill?: boolean;\n label?: ReactNode;\n onChange: (item: T) => void;\n defaultValue?: T;\n style?: React.CSSProperties;\n border?: boolean;\n /**\n * paddingHorizontal 横向间距\n */\n paddingHorizontal?: boolean;\n}\n\nconst CheckboxButton = <T extends OptionType = string>(\n props: CheckboxProps<T>\n) => {\n const {\n option,\n onChange,\n defaultValue = \"\",\n label,\n fill = false,\n className,\n style,\n border = true,\n paddingHorizontal = true,\n } = props;\n const [selectedValue, setSelectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue.value\n );\n\n const clickHandle = (item: T) => {\n setSelectedValue(typeof item === \"string\" ? item : item.value);\n onChange(item);\n };\n\n return (\n <View\n className={classNames(\"xh-checkbox-button\", className, {\n border,\n paddingHorizontal,\n })}\n style={style}\n >\n {label && <View className=\"xh-checkbox-button-label\">{label}</View>}\n <View className=\"xh-checkbox-button-options\">\n {option.map((item, index) => {\n return (\n <View\n key={index}\n className={classNames(\"xh-checkbox-button-options-item\", {\n active:\n typeof item === \"string\"\n ? item === selectedValue\n : item.value === selectedValue,\n fill,\n })}\n onClick={() => {\n clickHandle(item);\n }}\n >\n <p className=\"xh-checkbox-button-options-item-label\">\n {typeof item === \"string\" ? item : item.label}\n </p>\n </View>\n );\n })}\n </View>\n </View>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["CheckboxButton","props","option","onChange","_a","defaultValue","label","_b","fill","className","style","_c","border","_d","paddingHorizontal","_e","__read","useState","value","selectedValue","setSelectedValue","React","createElement","View","classNames","map","item","index","key","active","onClick","clickHandle"],"mappings":"oKAgCM,IAAAA,EAAiB,SACrBC,GAGE,IAAAC,EASED,EAAKC,OARPC,EAQEF,EARME,SACRC,EAOEH,EAPeI,aAAjBA,OAAY,IAAAD,EAAG,GAAEA,EACjBE,EAMEL,EANGK,MACLC,EAKEN,EALUO,KAAZA,OAAI,IAAAD,GAAQA,EACZE,EAIER,EAJOQ,UACTC,EAGET,EAAKS,MAFPC,EAEEV,EAAKW,OAFPA,OAAS,IAAAD,GAAIA,EACbE,EACEZ,EADsBa,kBAAxBA,OAAiB,IAAAD,GAAOA,EAEpBE,EAAAC,EAAoCC,EAChB,iBAAjBZ,EAA4BA,EAAeA,EAAaa,OAChE,GAFMC,EAAaJ,EAAA,GAAEK,EAAgBL,EAAA,GAStC,OACEM,EAACC,cAAAC,EACC,CAAAd,UAAWe,EAAW,qBAAsBf,EAAW,CACrDG,OAAMA,EACNE,kBAAiBA,IAEnBJ,MAAOA,GAENJ,GAASe,gBAACE,EAAI,CAACd,UAAU,4BAA4BH,GACtDe,EAAAC,cAACC,EAAI,CAACd,UAAU,8BACbP,EAAOuB,KAAI,SAACC,EAAMC,GACjB,OACEN,EAAAC,cAACC,EAAI,CACHK,IAAKD,EACLlB,UAAWe,EAAW,kCAAmC,CACvDK,OACkB,iBAATH,EACHA,IAASP,EACTO,EAAKR,QAAUC,EACrBX,KAAIA,IAENsB,QAAS,YA1BD,SAACJ,GACnBN,EAAiC,iBAATM,EAAoBA,EAAOA,EAAKR,OACxDf,EAASuB,EACX,CAwBcK,CAAYL,KAGdL,EAAGC,cAAA,IAAA,CAAAb,UAAU,yCACM,iBAATiB,EAAoBA,EAAOA,EAAKpB,OAI/C,KAIT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__assign as a}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as n,useRef as l,useImperativeHandle as r}from"react";import{View as m,Text as o,Input as i}from"@tarojs/components";import c from"classnames";import{inputRange as s}from"../src/utils/index.js";var
|
|
1
|
+
import{__rest as e,__assign as a}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as n,useRef as l,useImperativeHandle as r}from"react";import{View as m,Text as o,Input as i}from"@tarojs/components";import c from"classnames";import{inputRange as s}from"../src/utils/index.js";var p=n((function(n,p){var u=n.onChange,d=n.maxlength,f=n.value,h=n.type,v=n.placeholder,x=n.label,E=n.labelHtml,N=n.RightComponent,b=n.onBlur,g=n.pattern,y=n.LeftComponent,w=n.LeftIcon,L=n.name,C=n.readonly,I=void 0!==C&&C,_=n.withArrow,B=void 0!==_&&_,H=n.direction,j=void 0===H?"row":H,A=n.border,R=void 0===A||A,T=n.mainExtra,M=n.padding,S=void 0!==M&&M,O=n.className,V=n.disabled,k=void 0!==V&&V,q=n.align,z=void 0===q?"left":q,D=e(n,["onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","readonly","withArrow","direction","border","mainExtra","padding","className","disabled","align"]),F="password"===h;function G(e){var a=s(e.target.value);e.target.value=a,u&&u(a)}function J(e){var a=s(e.target.value);b&&b(a)}var K=l(null);r(p,(function(){return{focus:function(){var e;null===(e=K.current)||void 0===e||e.focus()}}}));var P=c("xh-form-input",{column:"column"===j,border:R,padding:S},O);return"h5"!==process.env.TARO_ENV?t.createElement(m,{className:P},t.createElement(m,{className:"xh-form-input-main"},t.createElement(m,{className:"xh-form-input-main-left"},x&&t.createElement(m,{className:"xh-form-input-main-left-label"},x,w&&t.createElement(m,{className:"xh-form-input-main-left-label-icon"},w)),E&&t.createElement("label",{dangerouslySetInnerHTML:{__html:E},className:"label"}),t.createElement(m,null,y)),t.createElement(m,{className:"xh-form-input-main-center"},I?t.createElement(o,{className:c("xh-form-input-main-center-readonly",{"xh-form-input-main-placeholder":!f},z)},f||v):t.createElement(i,a({},D,{password:F,ref:K,className:c("xh-form-input-main-center-native",z),maxlength:d,name:L,disabled:k,placeholder:v,type:h,value:f,onBlur:J,onInput:G}))),T&&t.createElement(m,{className:"xh-form-input-main-extra"},T)),t.createElement(m,{className:"xh-form-input-right"},N,B&&t.createElement(m,{className:"arrow"}))):t.createElement("div",{className:P},t.createElement("div",{className:"xh-form-input-main"},t.createElement("div",{className:"xh-form-input-main-left"},x&&t.createElement("label",{className:"xh-form-input-main-left-label"},x,w&&t.createElement("div",{className:"xh-form-input-main-left-label-icon"},w)),E&&t.createElement("label",{dangerouslySetInnerHTML:{__html:E},className:"label"}),t.createElement("div",null,y)),t.createElement("div",{className:"xh-form-input-main-center"},I?t.createElement("p",{className:c("xh-form-input-main-center-readonly",{"xh-form-input-main-placeholder":!f},z)},f||v):t.createElement("input",{ref:K,className:c("xh-form-input-main-center-native",z),maxLength:d,name:L,disabled:k,pattern:g,placeholder:v,type:h,value:f,onBlur:J,onInput:G})),T&&t.createElement("div",{className:"xh-form-input-main-extra"},T)),t.createElement("div",{className:"xh-form-input-right"},N,B&&t.createElement("span",{className:"arrow"})))}));export{p as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/FormInput/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport {\n Input,\n View,\n Text,\n InputProps,\n CommonEventFunction,\n} from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { inputRange } from \"../../utils/index\";\n\nimport \"./index.scss\";\n\nexport type HTMLFormType =\n | \"tel\"\n | \"text\"\n | \"number\"\n | \"password\"\n | \"idcard\"\n | \"digit\"\n | \"safe-password\"\n | \"nickname\";\n\nexport type FormInputProps = {\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n /** 当键盘输入时,触发input事件,event.detail = {value, cursor, keyCode},处理函数可以直接 return 一个字符串,将替换输入框的内容。\n * @supported weapp, h5, rn\n */\n onInput?: CommonEventFunction<InputProps.inputEventDetail>;\n\n /** 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度\n * @supported weapp, h5, rn\n */\n onFocus?: CommonEventFunction<InputProps.inputForceEventDetail>;\n\n /** 输入框失去焦点时触发\n *\n * event.detail = {value: value}\n * @supported weapp, h5, rn\n */\n value?: string;\n maxlength?: number;\n placeholder?: string;\n type?: HTMLFormType;\n pattern?: string;\n RightComponent?: ReactNode;\n label?: string;\n labelHtml?: string;\n LeftComponent?: ReactNode;\n LeftIcon?: ReactNode;\n name?: string;\n readonly?: boolean;\n withArrow?: boolean;\n direction?: \"row\" | \"column\";\n border?: boolean;\n mainExtra?: ReactNode;\n padding?: boolean;\n focus?: boolean;\n /** 设置键盘右下角按钮的文字\n * @default done\n * @supported weapp, rn\n */\n confirmType?: \"send\" | \"search\" | \"next\" | \"go\" | \"done\";\n /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上\n * @supported h5\n */\n nativeProps?: Record<string, unknown>;\n className?: string;\n disabled?: boolean;\n align?: \"left\" | \"right\"; // 文本对齐方式\n dataTrackId?: string;\n};\n\nexport type FocusHandler = { focus: () => void };\n\nconst FormInput = forwardRef<FocusHandler, FormInputProps>((props, formRef) => {\n const {\n onChange,\n maxlength,\n value,\n type,\n placeholder,\n label,\n labelHtml,\n RightComponent,\n onBlur,\n pattern,\n LeftComponent,\n LeftIcon,\n name,\n readonly = false,\n withArrow = false,\n direction = \"row\",\n border = true,\n mainExtra,\n padding = false,\n className,\n disabled = false,\n align = \"left\",\n ...rest\n } = props;\n\n const password = type === \"password\";\n\n function handleChange(e): any {\n let inputValue = inputRange(e.target.value);\n e.target.value = inputValue;\n onChange && onChange(inputValue);\n }\n\n function handleBlur(e): any {\n let inputValue = inputRange(e.target.value);\n onBlur && onBlur(inputValue);\n }\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(formRef, () => ({\n focus() {\n inputRef.current?.focus();\n },\n }));\n\n const wrapperCls = classNames(\n \"xh-form-input\",\n {\n column: direction === \"column\",\n border,\n padding,\n },\n className\n );\n\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={wrapperCls}>\n <View className=\"xh-form-input-main\">\n <View className=\"xh-form-input-main-left\">\n {label && (\n <View className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <View className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </View>\n )}\n </View>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <View>{LeftComponent}</View>\n </View>\n <View className=\"xh-form-input-main-center\">\n {readonly ? (\n <Text\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </Text>\n ) : (\n <Input\n {...rest}\n password={password}\n ref={inputRef}\n className={classNames(\n \"xh-form-input-main-center-native\",\n align\n )}\n maxlength={maxlength}\n name={name}\n disabled={disabled}\n placeholder={placeholder}\n type={type as InputProps[\"type\"]}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </View>\n {mainExtra && (\n <View className=\"xh-form-input-main-extra\">{mainExtra}</View>\n )}\n </View>\n <View className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <View className=\"arrow\" />}\n </View>\n </View>\n );\n }\n\n return (\n <div className={wrapperCls}>\n <div className=\"xh-form-input-main\">\n <div className=\"xh-form-input-main-left\">\n {label && (\n <label className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <div className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </div>\n )}\n </label>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <div>{LeftComponent}</div>\n </div>\n <div className=\"xh-form-input-main-center\">\n {readonly ? (\n <p\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </p>\n ) : (\n <input\n ref={inputRef}\n className={classNames(\"xh-form-input-main-center-native\", align)}\n maxLength={maxlength}\n name={name}\n disabled={disabled}\n pattern={pattern}\n placeholder={placeholder}\n type={type}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n data-track-id={rest?.dataTrackId}\n />\n )}\n </div>\n {mainExtra && (\n <div className=\"xh-form-input-main-extra\">{mainExtra}</div>\n )}\n </div>\n <div className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <span className=\"arrow\" />}\n </div>\n </div>\n );\n});\nexport default FormInput;\n"],"names":["FormInput","forwardRef","props","formRef","onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","_a","readonly","_b","withArrow","_c","direction","_d","border","mainExtra","_e","padding","className","_f","disabled","_g","align","rest","__rest","password","handleChange","e","inputValue","inputRange","target","handleBlur","inputRef","useRef","useImperativeHandle","focus","current","wrapperCls","classNames","column","process","env","TARO_ENV","React","createElement","View","dangerouslySetInnerHTML","__html","Text","Input","__assign","ref","onInput","maxLength","dataTrackId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/FormInput/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport {\n Input,\n View,\n Text,\n InputProps,\n CommonEventFunction,\n} from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { inputRange } from \"../../utils/index\";\n\nimport \"./index.scss\";\n\nexport type HTMLFormType =\n | \"tel\"\n | \"text\"\n | \"number\"\n | \"password\"\n | \"idcard\"\n | \"digit\"\n | \"safe-password\"\n | \"nickname\";\n\nexport type FormInputProps = {\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n /** 当键盘输入时,触发input事件,event.detail = {value, cursor, keyCode},处理函数可以直接 return 一个字符串,将替换输入框的内容。\n * @supported weapp, h5, rn\n */\n onInput?: CommonEventFunction<InputProps.inputEventDetail>;\n\n /** 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度\n * @supported weapp, h5, rn\n */\n onFocus?: CommonEventFunction<InputProps.inputForceEventDetail>;\n\n /** 输入框失去焦点时触发\n *\n * event.detail = {value: value}\n * @supported weapp, h5, rn\n */\n value?: string;\n maxlength?: number;\n placeholder?: string;\n type?: HTMLFormType;\n pattern?: string;\n RightComponent?: ReactNode;\n label?: string;\n labelHtml?: string;\n LeftComponent?: ReactNode;\n LeftIcon?: ReactNode;\n name?: string;\n readonly?: boolean;\n withArrow?: boolean;\n direction?: \"row\" | \"column\";\n border?: boolean;\n mainExtra?: ReactNode;\n padding?: boolean;\n focus?: boolean;\n /** 设置键盘右下角按钮的文字\n * @default done\n * @supported weapp, rn\n */\n confirmType?: \"send\" | \"search\" | \"next\" | \"go\" | \"done\";\n /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上\n * @supported h5\n */\n nativeProps?: Record<string, unknown>;\n className?: string;\n disabled?: boolean;\n align?: \"left\" | \"right\"; // 文本对齐方式\n};\n\nexport type FocusHandler = { focus: () => void };\n\nconst FormInput = forwardRef<FocusHandler, FormInputProps>((props, formRef) => {\n const {\n onChange,\n maxlength,\n value,\n type,\n placeholder,\n label,\n labelHtml,\n RightComponent,\n onBlur,\n pattern,\n LeftComponent,\n LeftIcon,\n name,\n readonly = false,\n withArrow = false,\n direction = \"row\",\n border = true,\n mainExtra,\n padding = false,\n className,\n disabled = false,\n align = \"left\",\n ...rest\n } = props;\n\n const password = type === \"password\";\n\n function handleChange(e): any {\n let inputValue = inputRange(e.target.value);\n e.target.value = inputValue;\n onChange && onChange(inputValue);\n }\n\n function handleBlur(e): any {\n let inputValue = inputRange(e.target.value);\n onBlur && onBlur(inputValue);\n }\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(formRef, () => ({\n focus() {\n inputRef.current?.focus();\n },\n }));\n\n const wrapperCls = classNames(\n \"xh-form-input\",\n {\n column: direction === \"column\",\n border,\n padding,\n },\n className\n );\n\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={wrapperCls}>\n <View className=\"xh-form-input-main\">\n <View className=\"xh-form-input-main-left\">\n {label && (\n <View className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <View className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </View>\n )}\n </View>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <View>{LeftComponent}</View>\n </View>\n <View className=\"xh-form-input-main-center\">\n {readonly ? (\n <Text\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </Text>\n ) : (\n <Input\n {...rest}\n password={password}\n ref={inputRef}\n className={classNames(\n \"xh-form-input-main-center-native\",\n align\n )}\n maxlength={maxlength}\n name={name}\n disabled={disabled}\n placeholder={placeholder}\n type={type as InputProps[\"type\"]}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </View>\n {mainExtra && (\n <View className=\"xh-form-input-main-extra\">{mainExtra}</View>\n )}\n </View>\n <View className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <View className=\"arrow\" />}\n </View>\n </View>\n );\n }\n\n return (\n <div className={wrapperCls}>\n <div className=\"xh-form-input-main\">\n <div className=\"xh-form-input-main-left\">\n {label && (\n <label className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <div className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </div>\n )}\n </label>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <div>{LeftComponent}</div>\n </div>\n <div className=\"xh-form-input-main-center\">\n {readonly ? (\n <p\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </p>\n ) : (\n <input\n ref={inputRef}\n className={classNames(\"xh-form-input-main-center-native\", align)}\n maxLength={maxlength}\n name={name}\n disabled={disabled}\n pattern={pattern}\n placeholder={placeholder}\n type={type}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </div>\n {mainExtra && (\n <div className=\"xh-form-input-main-extra\">{mainExtra}</div>\n )}\n </div>\n <div className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <span className=\"arrow\" />}\n </div>\n </div>\n );\n});\nexport default FormInput;\n"],"names":["FormInput","forwardRef","props","formRef","onChange","maxlength","value","type","placeholder","label","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","_a","readonly","_b","withArrow","_c","direction","_d","border","mainExtra","_e","padding","className","_f","disabled","_g","align","rest","__rest","password","handleChange","e","inputValue","inputRange","target","handleBlur","inputRef","useRef","useImperativeHandle","focus","current","wrapperCls","classNames","column","process","env","TARO_ENV","React","createElement","View","dangerouslySetInnerHTML","__html","Text","Input","__assign","ref","onInput","maxLength"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{forwardRef as n,useImperativeHandle as
|
|
1
|
+
import e,{forwardRef as n,useImperativeHandle as o}from"react";import r from"classnames";import{View as l}from"@tarojs/components";import t from"../FormInput/index.js";import{verifyIdcard as a}from"../src/utils/index.js";var c=n((function(n,c){var i=n.showScan,u=void 0!==i&&i,s=n.label,m=n.value,d=n.readOnly,p=n.direction,f=void 0===p?"column":p,v=n.onScan,h=n.placeholder,g=void 0===h?"请输入身份证":h,x=n.onError,b=n.onChange,E=n.maxlength,N=void 0===E?23:E,j=n.slot,y=n.className,C=n.border,w=n.onBlur;return o(c,(function(){return{isValid:a(m.replace(/\s/g,"")),focus:function(){var e;"object"==typeof c&&(null===(e=null==c?void 0:c.current)||void 0===e||e.focus())}}})),e.createElement(l,{className:r("xh-idnumber-input",y)},e.createElement(t,{padding:!0,ref:c,RightComponent:u&&e.createElement(l,{onClick:function(){null==v||v()},className:"xh-idnumber-input-scan"}),border:C,direction:f,label:s,maxlength:N,placeholder:g,readonly:d,type:"weapp"===process.env.TARO_ENV?"idcard":"text",value:m.replace(/\s/g,""),onBlur:function(e){null==w||w(),a(e)||null==x||x(""===e?"身份证号不能为空":"请输入正确的身份证号")},onChange:function(e){var n=e.replace(/\s/g,"");null==b||b(n)}}),j&&e.createElement(l,{className:"xh-idnumber-input-slot"},j))}));export{c as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/IDNumberInput/index.tsx"],"sourcesContent":["import React, { ReactNode, forwardRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput from \"../FormInput\";\nimport \"./index.scss\";\nimport { verifyIdcard } from \"../../utils\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type IDNumberInputProps = {\n showScan?: boolean;\n label?: string;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/IDNumberInput/index.tsx"],"sourcesContent":["import React, { ReactNode, forwardRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput from \"../FormInput\";\nimport \"./index.scss\";\nimport { verifyIdcard } from \"../../utils\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type IDNumberInputProps = {\n showScan?: boolean;\n label?: string;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n} & XHComponentCommonProps;\n\nexport type IDNumberInputRef = {\n isValid: boolean;\n focus: () => void;\n};\n\nconst BankCardNumberInput = forwardRef<IDNumberInputRef, IDNumberInputProps>(\n (props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入身份证\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n onBlur,\n } = props;\n\n const handleBlur = value => {\n onBlur?.();\n if (!verifyIdcard(value))\n onError?.(value === \"\" ? \"身份证号不能为空\" : \"请输入正确的身份证号\");\n };\n\n const handleChange = value => {\n const newValue = value.replace(/\\s/g, \"\");\n\n onChange?.(newValue);\n };\n\n const handleOnScan = () => {\n onScan?.();\n };\n\n useImperativeHandle(fromRef, () => {\n return {\n isValid: verifyIdcard(value.replace(/\\s/g, \"\")),\n focus: () => {\n if (typeof fromRef === \"object\") {\n fromRef?.current?.focus();\n }\n },\n };\n });\n\n return (\n <View className={classNames(\"xh-idnumber-input\", className)}>\n <XHFormInput\n padding\n ref={fromRef}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-idnumber-input-scan\"\n ></View>\n )\n }\n border={border}\n direction={direction}\n label={label}\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type={process.env.TARO_ENV === \"weapp\" ? \"idcard\" : \"text\"}\n value={value.replace(/\\s/g, \"\")}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-idnumber-input-slot\">{slot}</View>}\n </View>\n );\n }\n);\n\nexport default BankCardNumberInput;\n"],"names":["BankCardNumberInput","forwardRef","props","fromRef","_a","showScan","label","value","readOnly","_b","direction","onScan","_c","placeholder","onError","onChange","_d","maxlength","slot","className","border","onBlur","useImperativeHandle","isValid","verifyIdcard","replace","focus","current","React","createElement","View","classNames","XHFormInput","padding","ref","RightComponent","onClick","readonly","type","process","env","TARO_ENV","newValue"],"mappings":"6NA+BA,IAAMA,EAAsBC,GAC1B,SAACC,EAAOC,GAEJ,IAAAC,EAcEF,EAAKG,SAdPA,OAAQ,IAAAD,GAAQA,EAChBE,EAaEJ,EAbGI,MACLC,EAYEL,QAXFM,EAWEN,WAVFO,EAUEP,EAVkBQ,UAApBA,OAAY,IAAAD,EAAA,SAAQA,EACpBE,EASET,SARFU,EAQEV,EARoBW,YAAtBA,OAAW,IAAAD,EAAG,SAAQA,EACtBE,EAOEZ,UANFa,EAMEb,WALFc,EAKEd,EALYe,UAAdA,OAAY,IAAAD,EAAA,GAAEA,EACdE,EAIEhB,OAHFiB,EAGEjB,EAAKiB,UAFPC,EAEElB,EAFIkB,OACNC,EACEnB,SA6BJ,OAXAoB,EAAoBnB,GAAS,WAC3B,MAAO,CACLoB,QAASC,EAAajB,EAAMkB,QAAQ,MAAO,KAC3CC,MAAO,iBACkB,iBAAZvB,IACO,QAAhBC,EAAAD,aAAA,EAAAA,EAASwB,eAAO,IAAAvB,GAAAA,EAAEsB,QAErB,EAEL,IAGEE,EAACC,cAAAC,EAAK,CAAAX,UAAWY,EAAW,oBAAqBZ,IAC/CS,EAAAC,cAACG,EACC,CAAAC,WACAC,IAAK/B,EACLgC,eACE9B,GACEuB,EAAAC,cAACC,EACC,CAAAM,QAvBS,WACnBzB,SAAAA,GACF,EAsBYQ,UAAU,2BAIhBC,OAAQA,EACRV,UAAWA,EACXJ,MAAOA,EACPW,UAAWA,EACXJ,YAAaA,EACbwB,SAAU7B,EACV8B,KAA+B,UAAzBC,QAAQC,IAAIC,SAAuB,SAAW,OACpDlC,MAAOA,EAAMkB,QAAQ,MAAO,IAC5BJ,OAhDa,SAAAd,GACjBc,SAAAA,IACKG,EAAajB,IAChBO,SAAAA,EAAoB,KAAVP,EAAe,WAAa,aAC1C,EA6CMQ,SA3Ce,SAAAR,GACnB,IAAMmC,EAAWnC,EAAMkB,QAAQ,MAAO,IAEtCV,SAAAA,EAAW2B,EACb,IAyCKxB,GAAQU,EAAAC,cAACC,EAAI,CAACX,UAAU,0BAA0BD,GAGzD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as t,__read as
|
|
1
|
+
import{__rest as t,__read as e,__assign as s}from"../node_modules/tslib/tslib.es6.js";import r,{useState as o,useEffect as i,useMemo as c}from"react";import{Image as a}from"@tarojs/components";import{getImageInfo as m}from"@tarojs/taro";import n from"classnames";import{pxTransform as h}from"../src/utils/index.js";var l=function(l){var f=l.width,d=void 0===f?0:f,g=l.height,p=void 0===g?0:g,u=l.src,v=l.className,N=t(l,["width","height","src","className"]),w=e(o({}),2),j=w[0],E=w[1];i((function(){"h5"===process.env.TARO_ENV||v||m({src:u,success:function(t){"getImageInfo:ok"===t.errMsg&&E({width:t.width,height:t.height})}})}),[]);var x=c((function(){var t=j||{};return d&&(t.width="".concat(h(d))),p&&(t.height="".concat(h(p))),t}),[d,p,j]),_=n("xh-image",v);return"h5"!==process.env.TARO_ENV?r.createElement(a,{src:u,style:s(s({},x),N),className:_}):r.createElement("img",s({src:u,style:x,className:_},N))};export{l as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Image/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { Image } from \"@tarojs/components\";\nimport { getImageInfo } from \"@tarojs/taro\";\nimport classNames from \"classnames\";\n\nimport { pxTransform } from \"../../utils/index\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type ImageProps = {\n width?: number;\n height?: number;\n src: string;\n alt?: string;\n style?: React.CSSProperties;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Image/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { Image } from \"@tarojs/components\";\nimport { getImageInfo } from \"@tarojs/taro\";\nimport classNames from \"classnames\";\n\nimport { pxTransform } from \"../../utils/index\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type ImageProps = {\n width?: number;\n height?: number;\n src: string;\n alt?: string;\n style?: React.CSSProperties;\n} & XHComponentCommonProps;\n\nconst XHImage: FC<ImageProps> = props => {\n const { width = 0, height = 0, src, className, ...rest } = props;\n const [defaultSize, setDefaultSize] = useState<{\n width?: number;\n height?: number;\n }>({});\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\" && !className) {\n getImageInfo({\n src,\n success: res => {\n if (res.errMsg === \"getImageInfo:ok\") {\n console.log(res);\n setDefaultSize({ width: res.width, height: res.height });\n }\n },\n });\n }\n }, []);\n\n const size = useMemo(() => {\n let computedSize: { width?: string | number; height?: string | number } =\n defaultSize || {};\n if (width) {\n computedSize.width = `${pxTransform(width)}`;\n }\n if (height) {\n computedSize.height = `${pxTransform(height)}`;\n }\n\n return computedSize;\n }, [width, height, defaultSize]);\n\n const imgCls = classNames(\"xh-image\", className);\n\n return process.env.TARO_ENV !== \"h5\" ? (\n <Image src={src} style={{ ...size, ...rest }} className={imgCls} />\n ) : (\n <img src={src} style={size} className={imgCls} {...rest} />\n );\n};\n\nexport default XHImage;\n"],"names":["XHImage","props","_a","width","_b","height","src","className","rest","__rest","_c","__read","useState","defaultSize","setDefaultSize","useEffect","process","env","TARO_ENV","getImageInfo","success","res","errMsg","size","useMemo","computedSize","concat","pxTransform","imgCls","classNames","React","Image","style","__assign","createElement"],"mappings":"2TAiBM,IAAAA,EAA0B,SAAAC,GACtB,IAAAC,EAAmDD,EAA1CE,MAATA,OAAQ,IAAAD,EAAA,EAACA,EAAEE,EAAwCH,EAAKI,OAA7CA,aAAS,EAACD,EAAEE,EAA4BL,EAAzBK,IAAEC,EAAuBN,EAAdM,UAAKC,EAASC,EAAAR,EAArD,CAAA,QAAA,SAAA,MAAA,cACAS,EAAAC,EAAgCC,EAGnC,CAAE,GAAC,GAHCC,EAAWH,EAAA,GAAEI,OAKpBC,GAAU,WACqB,OAAzBC,QAAQC,IAAIC,UAAsBX,GACpCY,EAAa,CACXb,IAAGA,EACHc,QAAS,SAAAC,GACY,oBAAfA,EAAIC,QAENR,EAAe,CAAEX,MAAOkB,EAAIlB,MAAOE,OAAQgB,EAAIhB,QAElD,GAGN,GAAE,IAEH,IAAMkB,EAAOC,GAAQ,WACnB,IAAIC,EACFZ,GAAe,GAQjB,OAPIV,IACFsB,EAAatB,MAAQ,GAAAuB,OAAGC,EAAYxB,KAElCE,IACFoB,EAAapB,OAAS,GAAAqB,OAAGC,EAAYtB,KAGhCoB,CACR,GAAE,CAACtB,EAAOE,EAAQQ,IAEbe,EAASC,EAAW,WAAYtB,GAEtC,MAAgC,OAAzBS,QAAQC,IAAIC,SACjBY,gBAACC,EAAK,CAACzB,IAAKA,EAAK0B,MAAKC,EAAAA,EAAA,CAAA,EAAOV,GAASf,GAAQD,UAAWqB,IAEzDE,EAAKI,cAAA,MAAAD,EAAA,CAAA3B,IAAKA,EAAK0B,MAAOT,EAAMhB,UAAWqB,GAAYpB,GAEvD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__read as n,__assign as
|
|
1
|
+
import{__rest as e,__read as n,__assign as o}from"../node_modules/tslib/tslib.es6.js";import t,{forwardRef as r,useState as a,useRef as l,useImperativeHandle as i,useEffect as s}from"react";import c from"classnames";import{View as u}from"@tarojs/components";import m from"./Keyboard.js";import{isLicenseNo as d,replaceCharByIndex as h}from"../src/utils/index.js";var f=r((function(r,f){var v=r.value,p=void 0===v?"":v,b=r.onChange,g=r.className,N=r.showKeyboard,x=void 0!==N&&N,w=r.padding,C=void 0!==w&&w,E=r.border,P=void 0!==E&&E;r.onFinish;var j=r.autoScroll,y=void 0===j||j,O=r.label,k=e(r,["value","onChange","className","showKeyboard","padding","border","onFinish","autoScroll","label"]),K=n(a(p.length),2),V=K[0],F=K[1],I=n(a(x),2),S=I[0],_=I[1],A=l(null);i(f,(function(){return{isValid:d(p)}}),[p]);s((function(){S&&A.current&&y&&"h5"===process.env.TARO_ENV&&A.current.scrollIntoView({behavior:"smooth"})}),[S,y]);var D=c("xh-licensePlate",g,{padding:C},{border:P});return t.createElement(u,{className:D},O&&t.createElement("label",{className:"xh-licensePlate-label"},O),t.createElement(u,{className:"xh-licensePlate-input",onClick:function(e){e.stopPropagation(),_(!0)},ref:A},function(){for(var e=[],n=function(n){var o=p[n];e.push(t.createElement(u,{key:n,className:c("xh-licensePlate-input-item",{active:V===n,showNew:7===n&&8!==p.length}),onClick:function(){var e;(e=n)>p.length-1||F(e)}},"O"===o?"":o))},o=0;o<8;o++)n(o);return e}()),t.createElement(m,o({activeIndex:V,show:S,value:p,onChange:function(e){F((function(n){return e.replace(/O/g,"").length>=8?n:n+1})),b(e)},onDelete:function(){var e=p[V+1],n=h(p,V,e?"O":"");0!==n.length&&F((function(e){return e-1})),b(n)},onClose:function(){_(!1)}},k)))}));export{f as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/LicensePlateInput/index.tsx"],"sourcesContent":["import React, {\n useImperativeHandle,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Keyboard from \"./Keyboard\";\nimport { isLicenseNo, replaceCharByIndex } from \"../../utils\";\n\nimport \"./index.scss\";\n\nexport type LicensePlateProps = {\n value: string;\n onChange: (index: string) => void;\n /**\n * 是否默认展示键盘\n */\n showKeyboard?: boolean;\n closeText?: string;\n label?: ReactNode;\n onFinish?: () => void;\n padding?: boolean;\n border?: boolean;\n autoScroll?: boolean;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/LicensePlateInput/index.tsx"],"sourcesContent":["import React, {\n useImperativeHandle,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Keyboard from \"./Keyboard\";\nimport { isLicenseNo, replaceCharByIndex } from \"../../utils\";\n\nimport \"./index.scss\";\n\nexport type LicensePlateProps = {\n value: string;\n onChange: (index: string) => void;\n /**\n * 是否默认展示键盘\n */\n showKeyboard?: boolean;\n closeText?: string;\n label?: ReactNode;\n onFinish?: () => void;\n padding?: boolean;\n border?: boolean;\n autoScroll?: boolean;\n} & XHComponentCommonProps;\n\nconst LENGTH = 8;\n\nexport type LicensePlateInputRef = {\n /**\n * 是否有效,组件会用大写字母(O) 来代替空位,如果要自己校验,那么就得判断有没有“O”来判断有没有空格\n */\n isValid: boolean;\n};\n\nconst LicensePlateInput = forwardRef<LicensePlateInputRef, LicensePlateProps>(\n (props, fromRef) => {\n const {\n value = \"\",\n onChange,\n className,\n showKeyboard = false,\n padding = false,\n border = false,\n onFinish,\n autoScroll = true,\n label,\n ...rest\n } = props;\n\n const [activeIndex, setActiveIndex] = useState(value.length);\n\n const [show, setShowKeyboard] = useState(showKeyboard);\n\n const InputRef = useRef<HTMLDivElement>(null);\n\n /**\n * 空位用“O”代替(大写字母 O)\n * @param neVal 新值\n */\n const handleOnChage = neVal => {\n setActiveIndex(old => {\n if (neVal.replace(/O/g, \"\").length >= LENGTH) return old;\n return old + 1;\n });\n // if (neVal.length === LENGTH) {\n // onFinish?.();\n // setShowKeyboard(false);\n // }\n onChange(neVal);\n };\n\n const handleKeyClick = (index: number) => {\n if (index > value.length - 1) return;\n setActiveIndex(index);\n };\n\n useImperativeHandle(\n fromRef,\n () => ({\n isValid: isLicenseNo(value),\n }),\n [value]\n );\n\n function renderInputs(): ReactNode {\n const Inputs: any = [];\n\n for (let i = 0; i < LENGTH; i++) {\n const char = value[i];\n\n Inputs.push(\n <View\n key={i}\n className={classNames(\"xh-licensePlate-input-item\", {\n active: activeIndex === i,\n showNew: i === LENGTH - 1 && value.length !== LENGTH,\n })}\n onClick={() => handleKeyClick(i)}\n >\n {char === \"O\" ? \"\" : char}\n </View>\n );\n }\n\n return Inputs;\n }\n\n /**\n * 删除其中一位\n * 如果删除那一位后面有值就用“O”代替删除的那一位,否则直接删除\n * 只要当前value有值就把 index-1\n */\n const handleDelete = () => {\n const nextChar = value[activeIndex + 1];\n const replaceChar = nextChar ? \"O\" : \"\";\n const newValue = replaceCharByIndex(value, activeIndex, replaceChar);\n\n if (newValue.length !== 0) setActiveIndex(old => old - 1);\n onChange(newValue);\n };\n\n const handleClose = () => {\n setShowKeyboard(false);\n };\n\n useEffect(() => {\n if (\n show &&\n InputRef.current &&\n autoScroll &&\n process.env.TARO_ENV === \"h5\"\n ) {\n InputRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [show, autoScroll]);\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n setShowKeyboard(true);\n }\n const xhLicensePlateCls = classNames(\n \"xh-licensePlate\",\n className,\n { padding },\n { border }\n );\n\n return (\n <View className={xhLicensePlateCls}>\n {label && <label className=\"xh-licensePlate-label\">{label}</label>}\n <View\n className=\"xh-licensePlate-input\"\n onClick={handlerClick}\n ref={InputRef}\n >\n {renderInputs()}\n </View>\n <Keyboard\n activeIndex={activeIndex}\n show={show}\n value={value}\n onChange={handleOnChage}\n onDelete={handleDelete}\n onClose={handleClose}\n {...rest}\n />\n </View>\n );\n }\n);\n\nexport default LicensePlateInput;\n"],"names":["LicensePlateInput","forwardRef","props","fromRef","_a","value","onChange","className","_b","showKeyboard","_c","padding","_d","border","onFinish","_e","autoScroll","label","rest","__rest","_f","__read","useState","length","activeIndex","setActiveIndex","_g","show","setShowKeyboard","InputRef","useRef","useImperativeHandle","isValid","isLicenseNo","useEffect","current","process","env","TARO_ENV","scrollIntoView","behavior","xhLicensePlateCls","classNames","React","createElement","View","onClick","e","stopPropagation","ref","Inputs","i","char","push","key","active","showNew","LENGTH","index","renderInputs","Keyboard","__assign","neVal","old","replace","onDelete","nextChar","newValue","replaceCharByIndex","onClose"],"mappings":"2WA+BA,IASMA,EAAoBC,GACxB,SAACC,EAAOC,GAEJ,IAAAC,EAUEF,EAVQG,MAAVA,OAAQ,IAAAD,EAAA,GAAEA,EACVE,EASEJ,EAAKI,SARPC,EAQEL,EAAKK,UAPPC,EAOEN,EAAKO,aAPPA,OAAY,IAAAD,GAAQA,EACpBE,EAMER,EANaS,QAAfA,OAAU,IAAAD,GAAKA,EACfE,EAKEV,EALYW,OAAdA,OAAS,IAAAD,GAAKA,EAKZV,EAJMY,SAAA,IACRC,EAGEb,EAAKc,WAHPA,OAAa,IAAAD,GAAIA,EACjBE,EAEEf,EAFGe,MACFC,EACDC,EAAAjB,EAXE,CAAA,QAAA,WAAA,YAAA,eAAA,UAAA,SAAA,WAAA,aAAA,UAaAkB,EAAAC,EAAgCC,EAASjB,EAAMkB,QAAO,GAArDC,EAAWJ,EAAA,GAAEK,OAEdC,EAAAL,EAA0BC,EAASb,GAAa,GAA/CkB,EAAID,EAAA,GAAEE,OAEPC,EAAWC,EAAuB,MAuBxCC,EACE5B,GACA,WAAM,MAAC,CACL6B,QAASC,EAAY5B,GACrB,GACF,CAACA,IA4CH6B,GAAU,WAENP,GACAE,EAASM,SACTnB,GACyB,OAAzBoB,QAAQC,IAAIC,UAEZT,EAASM,QAAQI,eAAe,CAAEC,SAAU,UAEhD,GAAG,CAACb,EAAMX,IAMV,IAAMyB,EAAoBC,EACxB,kBACAnC,EACA,CAAEI,QAAOA,GACT,CAAEE,OAAMA,IAGV,OACE8B,EAACC,cAAAC,EAAK,CAAAtC,UAAWkC,GACdxB,GAAS0B,EAAOC,cAAA,QAAA,CAAArC,UAAU,yBAAyBU,GACpD0B,EAAAC,cAACC,EACC,CAAAtC,UAAU,wBACVuC,QAhBN,SAAsBC,GACpBA,EAAEC,kBACFpB,GAAgB,EACjB,EAcKqB,IAAKpB,GArEX,WAGE,IAFA,IAAMqB,EAAc,cAEXC,GACP,IAAMC,EAAO/C,EAAM8C,GAEnBD,EAAOG,KACLV,EAAAC,cAACC,EACC,CAAAS,IAAKH,EACL5C,UAAWmC,EAAW,6BAA8B,CAClDa,OAAQ/B,IAAgB2B,EACxBK,QAAeC,IAANN,GAtER,IAsE4B9C,EAAMkB,SAErCuB,QAAS,WA1BM,IAACY,KA0BcP,GAzBxB9C,EAAMkB,OAAS,GAC3BE,EAAeiC,KA0BC,MAATN,EAAe,GAAKA,KAZlBD,EAAI,EAAGA,EA9DP,EA8DmBA,MAAnBA,GAiBT,OAAOD,CACR,CAkDMS,IAEHhB,EAAAC,cAACgB,EAAQC,EAAA,CACPrC,YAAaA,EACbG,KAAMA,EACNtB,MAAOA,EACPC,SAtGgB,SAAAwD,GACpBrC,GAAe,SAAAsC,GACb,OAAID,EAAME,QAAQ,KAAM,IAAIzC,QApCrB,EAoC8CwC,EAC9CA,EAAM,CACf,IAKAzD,EAASwD,EACX,EA6FMG,SAlDe,WACnB,IAAMC,EAAW7D,EAAMmB,EAAc,GAE/B2C,EAAWC,EAAmB/D,EAAOmB,EADvB0C,EAAW,IAAM,IAGb,IAApBC,EAAS5C,QAAcE,GAAe,SAAAsC,GAAO,OAAAA,EAAM,CAAC,IACxDzD,EAAS6D,EACX,EA4CME,QA1Cc,WAClBzC,GAAgB,EAClB,GAyCUV,IAIZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as n,useEffect as o}from"react";import
|
|
1
|
+
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as n,useEffect as o}from"react";import r from"classnames";import{View as a}from"@tarojs/components";import s from"../node_modules/react-transition-group/esm/CSSTransition.js";var l=function(l){var m=l.onBlur,c=l.show,i=l.maxLength,u=void 0===i?Number.MAX_SAFE_INTEGER:i,d=l.showClose,p=void 0===d||d,v=l.closeOnClickSpace,b=void 0===v||v,h=l.onClose,f=l.onChange,y=l.value,x=l.title,E=void 0===x?"安全键盘":x,k=l.closeText,N=void 0===k?"收起":k,C=l.className,g=e(n(y),2),_=g[0],S=g[1],T=function(){for(var e=[],t=1;t<=9;t++)e.push({text:t,value:t,type:"number"});return e.push({text:"",value:"",type:"none"},{text:0,value:0,type:"number"},{text:"",value:"",type:"delete"}),e}();function j(e){h&&h(e),m&&m(e)}o((function(){return b&&document.addEventListener("click",j),function(){document.removeEventListener("click",j)}}),[]),o((function(){S(y)}),[y]);var A=r("xh-number-keyboard",C);return t.createElement(s,{classNames:"slide-up",in:c,unmountOnExit:!0,timeout:200},t.createElement(a,{className:A},t.createElement(a,{className:"xh-number-keyboard-header"},t.createElement(a,{className:"xh-number-keyboard-header-title"},E),p&&t.createElement(a,{className:"xh-number-keyboard-header-close",onClick:j},N)),t.createElement(a,{className:"xh-number-keyboard-body"},T.map((function(e,n){return t.createElement(a,{key:n,className:r("xh-number-keyboard-body-key",{none:"none"===e.type,delete:"delete"===e.type}),onClick:function(t){!function(e,t){var n=t.type,o=t.value;if("h5"===process.env.TARO_ENV&&e.stopImmediatePropagation(),"none"!==n){var r=_;"delete"===n?r=_.slice(0,_.length-1):r.length<u&&(r=_+o),S(r),f&&f(r)}}(t,e)}},e.text)})))))};export{l as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/NumberKeyboard/index.tsx"],"sourcesContent":["import React, { FC, useState, useEffect, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type NumberKeyboardType = \"default\" | \"custom\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n type?: NumberKeyboardType;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n title?: string;\n closeText?: string;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/NumberKeyboard/index.tsx"],"sourcesContent":["import React, { FC, useState, useEffect, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type NumberKeyboardType = \"default\" | \"custom\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n type?: NumberKeyboardType;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n title?: string;\n closeText?: string;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst NumberKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n showClose = true,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n title = \"安全键盘\",\n closeText = \"收起\",\n className,\n } = props;\n const [input, setInput] = useState(value);\n const keys = getKeys();\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n function handleKeyPress(e, { type, value }: IKey): void {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (type === \"none\") return;\n\n let newInput = input;\n\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.length < maxLength) {\n newInput = input + value;\n }\n\n setInput(newInput);\n\n onChange && onChange(newInput);\n }\n\n function getKeys(): IKey[] {\n const keys: IKey[] = [];\n\n for (let i = 1; i <= 9; i++) {\n keys.push({ text: i, value: i, type: \"number\" });\n }\n\n keys.push(\n { text: \"\", value: \"\", type: \"none\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" }\n );\n\n return keys;\n }\n const keyboardcls = classNames(\"xh-number-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-number-keyboard-header\">\n <View className=\"xh-number-keyboard-header-title\">{title}</View>\n {showClose && (\n <View\n className=\"xh-number-keyboard-header-close\"\n onClick={handleClose}\n >\n {closeText}\n </View>\n )}\n </View>\n <View className=\"xh-number-keyboard-body\">\n {keys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-number-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default NumberKeyboard;\n"],"names":["NumberKeyboard","props","onBlur","show","_a","maxLength","Number","MAX_SAFE_INTEGER","_b","showClose","_c","closeOnClickSpace","onClose","onChange","value","_d","title","_e","closeText","className","_f","__read","useState","input","setInput","keys","i","push","text","type","getKeys","handleClose","e","useEffect","document","addEventListener","removeEventListener","keyboardcls","classNames","React","createElement","CSSTransition","in","unmountOnExit","timeout","View","onClick","map","key","index","none","delete","process","env","TARO_ENV","stopImmediatePropagation","newInput","slice","length","handleKeyPress"],"mappings":"8PAgCM,IAAAA,EAA0C,SAAAC,GAE5C,IAAAC,EAWED,EAXIC,OACNC,EAUEF,EAVEE,KACJC,EASEH,EAAKI,UATPA,aAAYC,OAAOC,iBAAgBH,EACnCI,EAQEP,EARcQ,UAAhBA,OAAY,IAAAD,GAAIA,EAChBE,EAOET,EAAKU,kBAPPA,cAAwBD,EACxBE,EAMEX,EAAKW,QALPC,EAKEZ,EAAKY,SAJPC,EAIEb,EAAKa,MAHPC,EAGEd,EAHYe,MAAdA,OAAK,IAAAD,EAAG,OAAMA,EACdE,EAEEhB,YAFFiB,OAAY,IAAAD,EAAA,OACZE,EACElB,YACEmB,EAAAC,EAAoBC,EAASR,GAAM,GAAlCS,EAAKH,EAAA,GAAEI,OACRC,EAwCN,WAGE,IAFA,IAAMA,EAAe,GAEZC,EAAI,EAAGA,GAAK,EAAGA,IACtBD,EAAKE,KAAK,CAAEC,KAAMF,EAAGZ,MAAOY,EAAGG,KAAM,WASvC,OANAJ,EAAKE,KACH,CAAEC,KAAM,GAAId,MAAO,GAAIe,KAAM,QAC7B,CAAED,KAAM,EAAGd,MAAO,EAAGe,KAAM,UAC3B,CAAED,KAAM,GAAId,MAAO,GAAIe,KAAM,WAGxBJ,CACR,CAtDYK,GAgBb,SAASC,EAAYC,GACnBpB,GAAWA,EAAQoB,GACnB9B,GAAUA,EAAO8B,EAClB,CAjBDC,GAAU,WAKR,OAJItB,GACFuB,SAASC,iBAAiB,QAASJ,GAG9B,WACLG,SAASE,oBAAoB,QAASL,EACxC,CACD,GAAE,IAEHE,GAAU,WACRT,EAASV,EACX,GAAG,CAACA,IAyCJ,IAAMuB,EAAcC,EAAW,qBAAsBnB,GAErD,OACEoB,EAACC,cAAAC,EAAc,CAAAH,WAAW,WAAWI,GAAIvC,EAAMwC,eAAc,EAAAC,QAAS,KACpEL,EAAAC,cAACK,EAAI,CAAC1B,UAAWkB,GACfE,EAAAC,cAACK,EAAI,CAAC1B,UAAU,6BACdoB,EAAAC,cAACK,EAAK,CAAA1B,UAAU,mCAAmCH,GAClDP,GACC8B,EAAAC,cAACK,EAAI,CACH1B,UAAU,kCACV2B,QAASf,GAERb,IAIPqB,EAAAC,cAACK,EAAI,CAAC1B,UAAU,2BACbM,EAAKsB,KAAI,SAACC,EAAKC,GAAU,OACxBV,EAAAC,cAACK,EAAI,CACHG,IAAKC,EACL9B,UAAWmB,EAAW,8BAA+B,CACnDY,KAAmB,SAAbF,EAAInB,KACVsB,OAAqB,WAAbH,EAAInB,OAEdiB,QAAS,SAAAd,IA1DrB,SAAwBA,EAAG5B,OAAEyB,EAAIzB,EAAAyB,KAAEf,EAAKV,EAAAU,MAItC,GAH6B,OAAzBsC,QAAQC,IAAIC,UACdtB,EAAEuB,2BAES,SAAT1B,EAAJ,CAEA,IAAI2B,EAAWjC,EAEF,WAATM,EACF2B,EAAWjC,EAAMkC,MAAM,EAAGlC,EAAMmC,OAAS,GAChCF,EAASE,OAASrD,IAC3BmD,EAAWjC,EAAQT,GAGrBU,EAASgC,GAET3C,GAAYA,EAAS2C,EAZO,CAa7B,CA0CaG,CAAe3B,EAAGgB,EACpB,GAECA,EAAIpB,KAXiB,MAkBpC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import a,{useState as o,useEffect as i}from"react";import t from"classnames";import{eventCenter as r}from"@tarojs/taro";import{View as n}from"@tarojs/components";import s from"../src/hooks/useGenerateId.js";import{pxTransform as
|
|
1
|
+
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import a,{useState as o,useEffect as i}from"react";import t from"classnames";import{eventCenter as r}from"@tarojs/taro";import{View as n}from"@tarojs/components";import s from"../src/hooks/useGenerateId.js";import{pxTransform as l}from"../src/utils/index.js";import c from"./Group/index.js";import d from"../Icon/index.js";var m=function(c){var m=c.className,u=c.name,h=c.label,p=c.id,f=c.circle,v=void 0===f||f,x=c.onChange,N=c.align,E=c.direction,g=c.justify,k=c.checked,y=c.disabled,b=c.value,j=c.style,C=c.size,F=void 0===C?0:C,_=c.fancy,A=void 0!==_&&_,O=c.index,R=void 0===O?0:O,T=c.group,V=void 0!==T&&T,z=c.iconColor,G=void 0===z?"#FFFFFF":z,w=s(p,"xh-radio-id"),I=e(o(k),2),q=I[0],B=I[1],D=function(e){"h5"!==process.env.TARO_ENV&&e!==R&&B(!1)};i((function(){return"h5"!==process.env.TARO_ENV&&r.on("radioChange",D),function(){r.off("radioChange",D)}}),[]);var H=t("xh-radio",m,N,E,g);return"h5"!==process.env.TARO_ENV?a.createElement(n,{onClick:function(){q&&V||(B(!q),null==x||x(!q,b||""))},className:H,style:j},a.createElement(n,{className:t("xh-radio-input",{checked:q})}),a.createElement("span",{style:F>0?{width:l(F),height:l(F)}:{},className:t("xh-radio-input-fake",v&&"circle",{fancy:A})},a.createElement(d,{icon:"duigou",className:"xh-radio-input-fake-icon",color:G,size:F?.55*F:18})),a.createElement("span",{className:"xh-radio-label"},h)):a.createElement("label",{htmlFor:w,className:H,style:j},a.createElement("input",{type:"radio",id:w,name:u,className:"xh-radio-input",onChange:function(e){var a=k||!1,o="";"h5"===process.env.TARO_ENV?(a=e.target.checked,o=e.target.value):(a=e.detail.value,o=e.detail.value),null==x||x(a,o)},value:b,disabled:y,defaultChecked:k}),a.createElement("span",{style:F>0?{width:l(F),height:l(F)}:{},className:t("xh-radio-input-fake",{circle:v,fancy:A})},a.createElement(d,{icon:"duigou",className:"xh-radio-input-fake-icon",color:G,size:F?.55*F:18})),a.createElement("span",{className:"xh-radio-label"},h))};m.Group=c;export{m as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Radio/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { eventCenter } from \"@tarojs/taro\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\n\nimport Group from \"./Group\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\nimport \"./index.scss\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHRadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHRadioProps = {\n onChange?: (check: boolean, value: string | number) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n fancy?: boolean;\n index?: number;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n group?: boolean;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Radio/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { eventCenter } from \"@tarojs/taro\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\n\nimport Group from \"./Group\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\nimport \"./index.scss\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHRadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHRadioProps = {\n onChange?: (check: boolean, value: string | number) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n fancy?: boolean;\n index?: number;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n group?: boolean;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n} & XHComponentCommonProps;\n\nconst XHRadio: FC<XHRadioProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle = true,\n onChange,\n align,\n direction,\n justify,\n checked,\n disabled,\n value,\n style,\n size = 0,\n fancy = false,\n index = 0,\n group = false,\n iconColor = \"#FFFFFF\",\n } = props;\n\n const finalId = useGenerateId(id, \"xh-radio-id\");\n\n const [innerChecked, setInnerChecked] = useState(checked);\n\n const resetChecked = idx => {\n if (process.env.TARO_ENV !== \"h5\" && idx !== index) {\n setInnerChecked(false);\n }\n };\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\") {\n eventCenter.on(\"radioChange\", resetChecked);\n }\n\n return () => {\n eventCenter.off(\"radioChange\", resetChecked);\n };\n }, []);\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value;\n\n value = e.detail.value;\n }\n\n onChange?.(finalchecked, value);\n };\n\n const handleFakeChange = () => {\n if (innerChecked && group) return;\n setInnerChecked(!innerChecked);\n onChange?.(!innerChecked, value || \"\");\n };\n\n const cls = classNames(\"xh-radio\", className, align, direction, justify);\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View onClick={handleFakeChange} className={cls} style={style}>\n <View\n className={classNames(\"xh-radio-input\", {\n checked: innerChecked,\n })}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", circle && \"circle\", {\n fancy,\n })}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-radio-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"radio\"\n id={finalId}\n name={name}\n className=\"xh-radio-input\"\n onChange={handleOnchange}\n value={value}\n disabled={disabled}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", { circle, fancy })}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-radio-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </label>\n );\n};\n\nconst Radio = XHRadio as CompoundedComponent;\nRadio.Group = Group;\n\nexport default Radio;\n"],"names":["Radio","props","className","name","label","id","_a","circle","onChange","align","direction","justify","checked","disabled","value","style","_b","size","_c","fancy","_d","index","_e","group","_f","iconColor","finalId","useGenerateId","_g","__read","useState","innerChecked","setInnerChecked","resetChecked","idx","process","env","TARO_ENV","useEffect","eventCenter","on","off","cls","classNames","React","createElement","View","onClick","width","pxTransform","height","Icon","icon","color","htmlFor","type","e","finalchecked","target","detail","defaultChecked","Group"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import t from"classnames";import{View as a}from"@tarojs/components";import c from"./Steps/index.js";var s=function(c){var s=c.title,n=c.description,
|
|
1
|
+
import e from"react";import t from"classnames";import{View as a}from"@tarojs/components";import c from"./Steps/index.js";var s=function(c){var s=c.title,n=c.description,o=c.icon,r=c.status,m=void 0===r?"wait":r,i=c.fancy,l=c.style,p=c.className,x=c.direction,d=c.prefix,f=c.dashed;return e.createElement(a,{className:t("".concat("xh-step"),"".concat("xh-step","-status-").concat(m),p),style:l},"vertical"===x&&d&&e.createElement(a,{className:"".concat("xh-step","-prefix")},d),e.createElement(a,{className:t("".concat("xh-step","-indicator"),{dashed:f})},e.createElement(a,{className:t("".concat("xh-step","-icon-container"),{fancy:i})},o)),e.createElement(a,{className:"".concat("xh-step","-content")},e.createElement(a,{className:"".concat("xh-step","-title")},s),!!n&&e.createElement(a,{className:"".concat("xh-step","-description")},n)))};s.Steps=c;export{s as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Step/index.tsx"],"sourcesContent":["import React, { ReactNode, ForwardRefExoticComponent } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport Steps from \"./Steps\";\nimport \"./index.scss\";\n\nexport type StepProps = {\n icon?: string | ReactNode;\n title: string | ReactNode;\n description?: string | ReactNode;\n direction?: \"horizontal\" | \"vertical\";\n status?: \"wait\" | \"process\" | \"finish\" | \"error\";\n fancy?: boolean;\n dashed?: boolean;\n style?: React.CSSProperties;\n prefix?: ReactNode;\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Step/index.tsx"],"sourcesContent":["import React, { ReactNode, ForwardRefExoticComponent } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport Steps from \"./Steps\";\nimport \"./index.scss\";\n\nexport type StepProps = {\n icon?: string | ReactNode;\n title: string | ReactNode;\n description?: string | ReactNode;\n direction?: \"horizontal\" | \"vertical\";\n status?: \"wait\" | \"process\" | \"finish\" | \"error\";\n fancy?: boolean;\n dashed?: boolean;\n style?: React.CSSProperties;\n prefix?: ReactNode;\n} & XHComponentCommonProps;\n\nconst classPrefix = \"xh-step\";\n\nconst Step: React.FC<StepProps> = props => {\n const {\n title,\n description,\n icon,\n status = \"wait\",\n fancy,\n style,\n className,\n direction,\n prefix,\n dashed,\n } = props;\n\n return (\n <View\n className={classNames(\n `${classPrefix}`,\n `${classPrefix}-status-${status}`,\n className\n )}\n style={style}\n >\n {direction === \"vertical\" && prefix && (\n <View className={`${classPrefix}-prefix`}>{prefix}</View>\n )}\n <View className={classNames(`${classPrefix}-indicator`, { dashed })}>\n <View\n className={classNames(`${classPrefix}-icon-container`, { fancy })}\n >\n {icon}\n </View>\n </View>\n <View className={`${classPrefix}-content`}>\n <View className={`${classPrefix}-title`}>{title}</View>\n {!!description && (\n <View className={`${classPrefix}-description`}>{description}</View>\n )}\n </View>\n </View>\n );\n};\n\nexport type HybridComponent = ForwardRefExoticComponent<StepProps> & {\n Steps: typeof Steps;\n};\n\nconst XHStep = Step as HybridComponent;\nXHStep.Steps = Steps;\n\nexport default XHStep;\n"],"names":["XHStep","props","title","description","icon","_a","status","fancy","style","className","direction","prefix","dashed","React","View","classNames","concat","createElement","Steps"],"mappings":"yHAoBA,IAiDMA,EA/C4B,SAAAC,GAE9B,IAAAC,EAUED,EAVGC,MACLC,EASEF,EATSE,YACXC,EAQEH,EAREG,KACJC,EAOEJ,EAPaK,OAAfA,OAAS,IAAAD,EAAA,OAAMA,EACfE,EAMEN,EANGM,MACLC,EAKEP,EAAKO,MAJPC,EAIER,EAAKQ,UAHPC,EAGET,EAAKS,UAFPC,EAEEV,EAFIU,OACNC,EACEX,EAAKW,OAET,OACEC,gBAACC,EAAI,CACHL,UAAWM,EACT,GAAAC,OAnBY,WAoBZ,GAAGA,OApBS,UAoBa,YAAAA,OAAAV,GACzBG,GAEFD,MAAOA,GAEQ,aAAdE,GAA4BC,GAC3BE,EAACI,cAAAH,EAAK,CAAAL,UAAW,GAAGO,OA1BR,sBA0B+BL,GAE7CE,EAAAI,cAACH,EAAI,CAACL,UAAWM,EAAW,GAAAC,OA5Bd,UA4B4B,cAAc,CAAEJ,OAAMA,KAC9DC,EAAAI,cAACH,EACC,CAAAL,UAAWM,EAAW,UA9BZ,UA8B0B,mBAAmB,CAAER,MAAKA,KAE7DH,IAGLS,EAAAI,cAACH,EAAK,CAAAL,UAAW,GAAAO,OAnCH,UAmC2B,aACvCH,EAACI,cAAAH,GAAKL,UAAW,UApCL,UAoCmB,WAAWP,KACvCC,GACDU,EAACI,cAAAH,GAAKL,UAAW,UAtCP,UAsCqB,iBAAiBN,IAK1D,EAOAH,EAAOkB,MAAQA"}
|