taro-react-uilib 1.4.25 → 1.4.26-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/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/index.esm.js +4 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/components/checkbox.scss +0 -1
- package/package.json +1 -1
- package/types/components/Button/index.d.ts +1 -0
- package/types/components/Captcha/index.d.ts +1 -1
- package/types/components/Checkbox/index.d.ts +1 -0
- package/types/components/CheckboxButton/index.d.ts +1 -0
- package/types/components/FormInput/index.d.ts +1 -0
- package/types/components/IDNumberInput/index.d.ts +2 -0
- package/types/components/Image/index.d.ts +1 -0
- package/types/components/LicensePlateInput/index.d.ts +2 -0
- package/types/components/NumberKeyboard/index.d.ts +1 -0
- package/types/components/Radio/index.d.ts +1 -0
- package/types/components/Step/index.d.ts +1 -0
|
@@ -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 t,useRef as a,useEffect as n}from"react";import r from"classnames";import{Button as s}from"@tarojs/components";import{useTaroEnv as i}from"../src/hooks/index.js";import l from"./DotJump.js";var d=function(d){var m=d.disabled,c=void 0!==m&&m,p=d.type,u=void 0===p?"default":p,g=d.size,f=void 0===g?"normal":g,y=d.shape,v=void 0===y?"round":y,h=d.children,T=d.className,b=d.htmlType,E=d.formType,P=d.text,M=d.openType,k=d.lang,w=d.sessionFrom,C=d.sendMessageTitle,I=d.sendMessagePath,N=d.sendMessageImg,j=d.showMessageCard,x=d.appParameter,G=d.onGetUserInfo,S=d.onGetPhoneNumber,W=d.onOpenSetting,q=d.onError,B=d.onContact,D=d.onClick,F=d.preventTime,O=void 0===F?2500:F,U=d.style,z=d.loading,A=d.loadingStyle,J=d.loadingSpace,_=d.ghost,H=void 0!==_&&_,K=d.hollow,L=void 0!==K&&K,Q=d.dataTrackId,R=void 0===Q?"":Q,V=i(),X=e(t(!1),2),Y=X[0],Z=X[1],$=a(),ee=r("xh-button",{default:"default"===u,primary:"primary"===u,secondary:"secondary"===u,ghost:H,hollow:L,warn:"warn"===u,quare:"square"===v,round:"round"===v,rectangle:"rectangle"===v,normal:"normal"===f,small:"mini"===f,full:"full"===f,disabled:c,webutton:"WEAPP"===V},T),oe=function(e){"WEB"===V&&e.nativeEvent.stopImmediatePropagation(),e.preventDefault(),Y&&0!==O||(0!==O&&($.current=setTimeout((function(){Z(!1),clearTimeout($.current)}),O)),0!==O&&Z(!0),D&&D(e))};n((function(){return function(){clearTimeout($.current)}}),[]);var te=o.createElement(s,{"data-track-id":R,className:ee,formType:E,openType:M,lang:k,type:u,sessionFrom:w,sendMessageTitle:C,sendMessagePath:I,sendMessageImg:N,showMessageCard:j,appParameter:x,onGetUserInfo:G,onGetPhoneNumber:S,onOpenSetting:W,onError:q,onContact:B,onClick:oe,disabled:c,style:U,loading:z},h);return"WEB"!==V?te:o.createElement("button",{"data-track-id":R,className:ee,disabled:c,type:b,onClick:c?void 0:oe,style:U},h||P,z&&o.createElement(l,{style:A,space:J}))};export{d 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} & 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","
|
|
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 dataTrackId?: string;\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 dataTrackId = \"\",\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 data-track-id={dataTrackId}\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 data-track-id={dataTrackId}\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","_h","dataTrackId","state","useTaroEnv","_j","__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":"gRAgDM,IAAAA,EAA8B,SAAAC,GAEhC,IAAAC,EA+BED,EAAKE,SA/BPA,OAAQ,IAAAD,GAAQA,EAChBE,EA8BEH,EAAKI,KA9BPA,OAAI,IAAAD,EAAG,UAASA,EAChBE,EA6BEL,EAAKM,KA7BPA,OAAI,IAAAD,EAAG,SAAQA,EACfE,EA4BEP,EAAKQ,MA5BPA,OAAK,IAAAD,EAAG,QAAOA,EACfE,EA2BET,WA1BFU,EA0BEV,EAAKU,UAzBPC,EAyBEX,EAzBMW,SACRC,EAwBEZ,WAvBFa,EAuBEb,EAAKa,KAtBPC,EAsBEd,EAtBMc,SACRC,EAqBEf,OApBFgB,EAoBEhB,EAAKgB,YAnBPC,EAmBEjB,EAnBciB,iBAChBC,EAkBElB,kBAjBFmB,EAiBEnB,EAAKmB,eAhBPC,EAgBEpB,EAAKoB,gBAfPC,EAeErB,EAfUqB,aACZC,EAcEtB,gBAbFuB,EAaEvB,EAAKuB,iBAZPC,EAYExB,EAZWwB,cACbC,EAWEzB,UAVF0B,EAUE1B,EAAK0B,UATPC,EASE3B,EATK2B,QACPC,EAQE5B,EAAK6B,YARPA,OAAW,IAAAD,EAAG,KAAIA,EAClBE,EAOE9B,QANF+B,EAME/B,EAAK+B,QALPC,EAKEhC,EALUgC,aACZC,EAIEjC,eAHFkC,EAGElC,EAHWmC,MAAbA,OAAQ,IAAAD,KACRE,EAEEpC,EAFYqC,OAAdA,OAAS,IAAAD,KACTE,EACEtC,EADcuC,YAAhBA,OAAc,IAAAD,EAAA,KAEVE,EAAQC,IACRC,EAAAC,EAAkCC,GAAS,GAAM,GAAhDC,EAAYH,EAAA,GAAEI,OACfC,EAAQC,IACRC,GAAWC,EACf,YACA,CACEC,QAAkB,YAAT/C,EACTgD,QAAkB,YAAThD,EACTiD,UAAoB,cAATjD,EACX+B,MAAOA,EACPE,OAAQA,EACRiB,KAAe,SAATlD,EACNmD,MAAiB,WAAV/C,EACPgD,MAAiB,UAAVhD,EACPiD,UAAqB,cAAVjD,EACXkD,OAAiB,WAATpD,EACRqD,MAAgB,SAATrD,EACPsD,KAAe,SAATtD,EACNJ,SAAUA,EACV2D,SAAoB,UAAVrB,GAEZ9B,GAGIoD,GAAsD,SAAAC,GAChD,QAAVvB,GAAmBuB,EAAEC,YAAYC,2BACjCF,EAAEG,iBAEErB,GAAgC,IAAhBhB,IAIA,IAAhBA,IACFkB,EAAMoB,QAAUC,YAAW,WACzBtB,GAAgB,GAChBuB,aAAatB,EAAMoB,QACpB,GAAEtC,IAEe,IAAhBA,GAAmBiB,GAAgB,GAEvCnB,GAAWA,EAAQoC,GACrB,EAEAO,GAAU,WACR,OAAO,WACLD,aAAatB,EAAMoB,QACrB,CACD,GAAE,IAEH,IAAMI,GACJC,gBAACC,EAAM,CAAA,gBACUlC,EACf7B,UAAWuC,GACXrC,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,QAASmC,GACT5D,SAAUA,EACV4B,MAAOA,EACPC,QAASA,GAERtB,GAIL,MAAc,QAAV+B,EACK+B,GAKPC,EAAAE,cAAA,SAAA,CAAA,gBACiBnC,EACf7B,UAAWuC,GACX/C,SAAUA,EACVE,KAAMO,EACNgB,QAASzB,OAAWyE,EAAYb,GAChChC,MAAOA,GAENrB,GAAYI,EACZkB,GAAWyC,EAAAE,cAACE,EAAO,CAAC9C,MAAOE,EAAc6C,MAAO5C,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 a,{useState as c,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,T=n.iconColor,_=void 0===T?"#FFFFFF":T,z=n.dataTrackId,A=l(u,"xh-checkbox-id"),G=e(c(!1),2),I=G[0],O=G[1];t((function(){O(N)}),[N]);var R=o("xh-checkbox",m,k,f,b,{h5:"h5"===process.env.TARO_ENV});return"h5"!==process.env.TARO_ENV?a.createElement(s,{onClick:function(){E||(O(!I),null==x||x(!I,j))},className:R,style:y},a.createElement(s,{className:o("xh-checkbox-input",{checked:I,disabled:E})}," "),a.createElement("span",{style:C>0?{width:i(C),height:i(C)}:{},className:o("xh-checkbox-input-fake",p&&"circle")},a.createElement(r,{icon:"duigou",className:"xh-checkbox-input-fake-icon",color:_,size:C?.55*C:18})),a.createElement("span",{className:"xh-radio-label"},d)):a.createElement("label",{htmlFor:A,className:R,style:y},a.createElement("input",{"data-track-id":z,type:"checkbox",id:A,name:h,className:"xh-checkbox-input",onChange:function(e){var a=N||!1,c="";"h5"===process.env.TARO_ENV?(a=e.target.checked,c=e.target.value):(a=e.detail.value.length>0,c=e.detail.value[0]),x&&x(a,c)},value:j,defaultChecked:N}),a.createElement("span",{style:C>0?{width:i(C),height:i(C)}:{},className:o("xh-checkbox-input-fake",p&&"circle")},a.createElement(r,{icon:"duigou",className:"xh-checkbox-input-fake-icon",color:_,size:C?.55*C:18})),a.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} & 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":"
|
|
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 dataTrackId?: 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 dataTrackId,\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 data-track-id={dataTrackId}\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","dataTrackId","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":"oVA0CA,IAsHMA,EAtHkC,SAAAC,GAEpC,IAAAC,EAgBED,EAAKC,UAfPC,EAeEF,EAfEE,KACJC,EAcEH,QAbFI,EAaEJ,EAAKI,GAZPC,EAYEL,EAZIK,OACNC,EAWEN,WAVFO,EAUEP,EAAKO,MATPC,EASER,EATOQ,UACTC,EAQET,EARKS,QACPC,EAOEV,UAPFW,cAAeD,EACfE,EAMEZ,EANMY,SACRC,EAKEb,EAAKc,MALPA,OAAK,IAAAD,EAAG,GAAEA,EACVE,EAIEf,EAAKe,MAHPC,EAGEhB,OAHFiB,aAAO,EAACD,EACRE,EAEElB,YAFFmB,aAAY,UAASD,EACrBE,EACEpB,EAAKoB,YAEHC,EAAUC,EAAclB,EAAI,kBAC5BmB,EAAAC,EAAkCC,GAAS,GAAM,GAAhDC,EAAYH,EAAA,GAAEI,OAErBC,GAAU,WACRD,EAAgBhB,EAClB,GAAG,CAACA,IAEJ,IAmBMkB,EAAMC,EAAW,cAAe7B,EAAWM,EAAOC,EAAWC,EAAS,CAC1EsB,GAA6B,OAAzBC,QAAQC,IAAIC,WAElB,MAA6B,OAAzBF,QAAQC,IAAIC,SAEZC,EAAAC,cAACC,EAAI,CAACC,QAXe,WACnB1B,IACJe,GAAiBD,GACjBpB,SAAAA,GAAYoB,EAAcZ,GAC5B,EAOqCb,UAAW4B,EAAKd,MAAOA,GACtDoB,EAAAC,cAACC,EACC,CAAApC,UAAW6B,EAAW,oBAAqB,CACzCnB,QAASe,EACTd,SAAQA,KAGT,KAEHuB,EAAAC,cAAA,OAAA,CACErB,MACEE,EAAO,EACH,CACEsB,MAAOC,EAAYvB,GACnBwB,OAAQD,EAAYvB,IAEtB,CAAE,EAERhB,UAAW6B,EAAW,yBAA0BzB,GAAU,WAE1D8B,EAAAC,cAACM,EAAI,CACHC,KAAK,SACL1C,UAAU,8BACV2C,MAAOzB,EACPF,KAAMA,EAAc,IAAPA,EAAc,MAG/BkB,EAAMC,cAAA,OAAA,CAAAnC,UAAU,kBAAkBE,IAMtCgC,EAAAC,cAAA,QAAA,CAAOS,QAASxB,EAASpB,UAAW4B,EAAKd,MAAOA,GAC9CoB,EAAAC,cAAA,QAAA,CAAA,gBACiBhB,EACf0B,KAAK,WACL1C,GAAIiB,EACJnB,KAAMA,EACND,UAAU,oBACVK,SAhEiB,SAAAyC,GACrB,IAAIC,EAAerC,IAAW,EAC1BG,EAAQ,GACiB,OAAzBkB,QAAQC,IAAIC,UACdc,EAAeD,EAAEE,OAAOtC,QACxBG,EAAQiC,EAAEE,OAAOnC,QAEjBkC,EAAeD,EAAEG,OAAOpC,MAAMqC,OAAS,EACvCrC,EAAQiC,EAAEG,OAAOpC,MAAM,IAEzBR,GAAYA,EAAS0C,EAAclC,EACrC,EAsDMA,MAAOA,EACPsC,eAAgBzC,IAElBwB,EAAAC,cAAA,OAAA,CACErB,MACEE,EAAO,EACH,CACEsB,MAAOC,EAAYvB,GACnBwB,OAAQD,EAAYvB,IAEtB,CAAE,EAERhB,UAAW6B,EAAW,yBAA0BzB,GAAU,WAE1D8B,EAAAC,cAACM,EAAI,CACHC,KAAK,SACL1C,UAAU,8BACV2C,MAAOzB,EACPF,KAAMA,EAAc,IAAPA,EAAc,MAG/BkB,EAAMC,cAAA,OAAA,CAAAnC,UAAU,qBAAqBE,GAG3C,EAGAJ,EAASsD,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 r=l.option,i=l.onChange,c=l.defaultValue,s=void 0===c?"":c,m=l.label,b=l.fill,d=void 0!==b&&b,p=l.className,u=l.style,f=l.border,h=void 0===f||f,x=l.paddingHorizontal,v=void 0===x||x,k=l.dataTrackId,g=e(o("string"==typeof s?s:s.value),2),y=g[0],N=g[1];return t.createElement(n,{"data-track-id":k,className:a("xh-checkbox-button",p,{border:h,paddingHorizontal:v}),style:u},m&&t.createElement(n,{className:"xh-checkbox-button-label"},m),t.createElement(n,{className:"xh-checkbox-button-options"},r.map((function(e,o){return t.createElement(n,{key:o,className:a("xh-checkbox-button-options-item",{active:"string"==typeof e?e===y:e.value===y,fill:d}),onClick:function(){!function(e){N("string"==typeof e?e:e.value),i(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}\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":"
|
|
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 dataTrackId?: string;\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 dataTrackId,\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 data-track-id={dataTrackId}\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","dataTrackId","_e","__read","useState","value","selectedValue","setSelectedValue","React","createElement","View","classNames","map","item","index","key","active","onClick","clickHandle"],"mappings":"oKAiCM,IAAAA,EAAiB,SACrBC,GAGE,IAAAC,EAUED,EAAKC,OATPC,EASEF,EATME,SACRC,EAQEH,eARFI,OAAe,IAAAD,EAAA,GAAEA,EACjBE,EAOEL,EAAKK,MANPC,EAMEN,EAAKO,KANPA,cAAYD,EACZE,EAKER,EALOQ,UACTC,EAIET,EAAKS,MAHPC,EAGEV,EAAKW,OAHPA,OAAM,IAAAD,GAAOA,EACbE,EAEEZ,EAAKa,kBAFPA,OAAiB,IAAAD,GAAOA,EACxBE,EACEd,cACEe,EAAAC,EAAoCC,EAChB,iBAAjBb,EAA4BA,EAAeA,EAAac,OAChE,GAFMC,EAAaJ,EAAA,GAAEK,EAAgBL,EAAA,GAStC,OACEM,EAAAC,cAACC,EAAI,CAAA,gBACYT,EACfN,UAAWgB,EAAW,qBAAsBhB,EAAW,CACrDG,OAAMA,EACNE,kBAAiBA,IAEnBJ,MAAOA,GAENJ,GAASgB,gBAACE,EAAI,CAACf,UAAU,4BAA4BH,GACtDgB,EAAAC,cAACC,EAAI,CAACf,UAAU,8BACbP,EAAOwB,KAAI,SAACC,EAAMC,GACjB,OACEN,EAAAC,cAACC,EAAI,CACHK,IAAKD,EACLnB,UAAWgB,EAAW,kCAAmC,CACvDK,OACkB,iBAATH,EACHA,IAASP,EACTO,EAAKR,QAAUC,EACrBZ,KAAIA,IAENuB,QAAS,YA3BD,SAACJ,GACnBN,EAAiC,iBAATM,EAAoBA,EAAOA,EAAKR,OACxDhB,EAASwB,EACX,CAyBcK,CAAYL,KAGdL,EAAGC,cAAA,IAAA,CAAAd,UAAU,yCACM,iBAATkB,EAAoBA,EAAOA,EAAKrB,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 d=n((function(n,d){var u=n.onChange,p=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,I=n.name,L=n.readonly,C=void 0!==L&&L,_=n.withArrow,B=void 0!==_&&_,H=n.direction,T=void 0===H?"row":H,j=n.border,A=void 0===j||j,R=n.mainExtra,k=n.padding,M=void 0!==k&&k,S=n.className,O=n.disabled,V=void 0!==O&&O,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(d,(function(){return{focus:function(){var e;null===(e=K.current)||void 0===e||e.focus()}}}));var P=c("xh-form-input",{column:"column"===T,border:A,padding:M},S);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"},C?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:p,name:I,disabled:V,placeholder:v,type:h,value:f,onBlur:J,onInput:G}))),R&&t.createElement(m,{className:"xh-form-input-main-extra"},R)),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"},C?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:p,name:I,disabled:V,pattern:g,placeholder:v,type:h,value:f,onBlur:J,onInput:G,"data-track-id":null==D?void 0:D.dataTrackId})),R&&t.createElement("div",{className:"xh-form-input-main-extra"},R)),t.createElement("div",{className:"xh-form-input-right"},N,B&&t.createElement("span",{className:"arrow"})))}));export{d 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};\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
|
+
{"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,2 +1,2 @@
|
|
|
1
|
-
import e,{forwardRef as n,useImperativeHandle as
|
|
1
|
+
import e,{forwardRef as n,useImperativeHandle as r}from"react";import o from"classnames";import{View as a}from"@tarojs/components";import t from"../FormInput/index.js";import{verifyIdcard as l}from"../src/utils/index.js";var c=n((function(n,c){var i=n.showScan,u=void 0!==i&&i,s=n.label,d=n.value,m=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,k=n.onBlur,w=n.dataTrackId;return r(c,(function(){return{isValid:l(d.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(a,{className:o("xh-idnumber-input",y)},e.createElement(t,{padding:!0,ref:c,RightComponent:u&&e.createElement(a,{onClick:function(){null==v||v()},className:"xh-idnumber-input-scan"}),border:C,direction:f,label:s,maxlength:N,placeholder:g,readonly:m,type:"weapp"===process.env.TARO_ENV?"idcard":"text",value:d.replace(/\s/g,""),onBlur:function(e){null==k||k(),l(e)||null==x||x(""===e?"身份证号不能为空":"请输入正确的身份证号")},onChange:function(e){var n=e.replace(/\s/g,"");null==b||b(n)},"data-track-id":w}),j&&e.createElement(a,{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} & 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":"
|
|
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 dataTrackId?: string;\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 dataTrackId,\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 data-track-id={dataTrackId}\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","dataTrackId","useImperativeHandle","isValid","verifyIdcard","replace","focus","current","React","createElement","View","classNames","XHFormInput","padding","ref","RightComponent","onClick","readonly","type","process","env","TARO_ENV","newValue"],"mappings":"6NAgCA,IAAMA,EAAsBC,GAC1B,SAACC,EAAOC,GAEJ,IAAAC,EAeEF,EAAKG,SAfPA,OAAQ,IAAAD,GAAQA,EAChBE,EAcEJ,QAbFK,EAaEL,EAAKK,MAZPC,EAYEN,EAZMM,SACRC,EAWEP,EAAKQ,UAXPA,OAAS,IAAAD,EAAG,SAAQA,EACpBE,EAUET,SATFU,EASEV,EAToBW,YAAtBA,OAAc,IAAAD,EAAA,SAAQA,EACtBE,EAQEZ,UAPFa,EAOEb,EAAKa,SANPC,EAMEd,YANFe,aAAY,GAAED,EACdE,EAKEhB,EALEgB,KACJC,EAIEjB,YAHFkB,EAGElB,EAAKkB,OAFPC,EAEEnB,EAFImB,OACNC,EACEpB,cA6BJ,OAXAqB,EAAoBpB,GAAS,WAC3B,MAAO,CACLqB,QAASC,EAAalB,EAAMmB,QAAQ,MAAO,KAC3CC,MAAO,iBACkB,iBAAZxB,IACO,QAAhBC,EAAAD,aAAA,EAAAA,EAASyB,eAAO,IAAAxB,GAAAA,EAAEuB,QAErB,EAEL,IAGEE,EAACC,cAAAC,EAAK,CAAAZ,UAAWa,EAAW,oBAAqBb,IAC/CU,EAAAC,cAACG,EACC,CAAAC,WACAC,IAAKhC,EACLiC,eACE/B,GACEwB,EAACC,cAAAC,GACCM,QAvBS,WACnB1B,SAAAA,GACF,EAsBYQ,UAAU,2BAIhBC,OAAQA,EACRV,UAAWA,EACXJ,MAAOA,EACPW,UAAWA,EACXJ,YAAaA,EACbyB,SAAU9B,EACV+B,KAA+B,UAAzBC,QAAQC,IAAIC,SAAuB,SAAW,OACpDnC,MAAOA,EAAMmB,QAAQ,MAAO,IAC5BL,OAhDa,SAAAd,GACjBc,SAAAA,IACKI,EAAalB,IAChBO,SAAAA,EAAoB,KAAVP,EAAe,WAAa,aAC1C,EA6CMQ,SA3Ce,SAAAR,GACnB,IAAMoC,EAAWpC,EAAMmB,QAAQ,MAAO,IAEtCX,SAAAA,EAAW4B,EACb,EAuC4B,gBACPrB,IAEhBJ,GAAQW,EAAAC,cAACC,EAAI,CAACZ,UAAU,0BAA0BD,GAGzD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as t,__read as
|
|
1
|
+
import{__rest as t,__read as r,__assign as e}from"../node_modules/tslib/tslib.es6.js";import s,{useState as a,useEffect as o,useMemo as c}from"react";import{Image as i}from"@tarojs/components";import{getImageInfo as m}from"@tarojs/taro";import n from"classnames";import{pxTransform as h}from"../src/utils/index.js";var d=function(d){var l=d.width,f=void 0===l?0:l,g=d.height,p=void 0===g?0:g,u=d.src,v=d.className,N=d.dataTrackId,w=t(d,["width","height","src","className","dataTrackId"]),j=r(a({}),2),k=j[0],E=j[1];o((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 I=c((function(){var t=k||{};return f&&(t.width="".concat(h(f))),p&&(t.height="".concat(h(p))),t}),[f,p,k]),T=n("xh-image",v);return"h5"!==process.env.TARO_ENV?s.createElement(i,{src:u,style:e(e({},I),w),className:T}):s.createElement("img",e({src:u,style:I,className:T,"data-track-id":N},w))};export{d 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} & 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
|
|
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 dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst XHImage: FC<ImageProps> = props => {\n const { width = 0, height = 0, src, className, dataTrackId, ...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\n src={src}\n style={size}\n className={imgCls}\n data-track-id={dataTrackId}\n {...rest}\n />\n );\n};\n\nexport default XHImage;\n"],"names":["XHImage","props","_a","width","_b","height","src","className","dataTrackId","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":"2TAkBM,IAAAA,EAA0B,SAAAC,GACtB,IAAAC,EAAgED,EAAKE,MAArEA,aAAQ,EAACD,EAAEE,EAAqDH,EAA3CI,OAAVA,OAAS,IAAAD,EAAA,IAAGE,EAAyCL,MAApCM,EAAoCN,EAAKM,UAA9BC,EAAyBP,EAAKO,YAAdC,EAAIC,EAAKT,EAAlE,CAAA,QAAA,SAAA,MAAA,YAAA,gBACAU,EAAAC,EAAgCC,EAGnC,CAAE,GAAC,GAHCC,EAAWH,EAAA,GAAEI,OAKpBC,GAAU,WACqB,OAAzBC,QAAQC,IAAIC,UAAsBZ,GACpCa,EAAa,CACXd,IAAGA,EACHe,QAAS,SAAAC,GACY,oBAAfA,EAAIC,QAENR,EAAe,CAAEZ,MAAOmB,EAAInB,MAAOE,OAAQiB,EAAIjB,QAElD,GAGN,GAAE,IAEH,IAAMmB,EAAOC,GAAQ,WACnB,IAAIC,EACFZ,GAAe,GAQjB,OAPIX,IACFuB,EAAavB,MAAQ,GAAAwB,OAAGC,EAAYzB,KAElCE,IACFqB,EAAarB,OAAS,GAAAsB,OAAGC,EAAYvB,KAGhCqB,CACR,GAAE,CAACvB,EAAOE,EAAQS,IAEbe,EAASC,EAAW,WAAYvB,GAEtC,MAAgC,OAAzBU,QAAQC,IAAIC,SACjBY,gBAACC,EAAK,CAAC1B,IAAKA,EAAK2B,MAAYC,EAAAA,EAAA,CAAA,EAAAV,GAASf,GAAQF,UAAWsB,IAEzDE,EACEI,cAAA,MAAAD,EAAA,CAAA5B,IAAKA,EACL2B,MAAOT,EACPjB,UAAWsB,EAAM,gBACFrB,GACXC,GAGV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__read as n,__assign as
|
|
1
|
+
import{__rest as e,__read as n,__assign as a}from"../node_modules/tslib/tslib.es6.js";import o,{forwardRef as t,useState as r,useRef as l,useImperativeHandle as i,useEffect as c}from"react";import s from"classnames";import{View as u}from"@tarojs/components";import d from"./Keyboard.js";import{isLicenseNo as m,replaceCharByIndex as h}from"../src/utils/index.js";var f=t((function(t,f){var v=t.value,p=void 0===v?"":v,b=t.onChange,g=t.className,N=t.showKeyboard,x=void 0!==N&&N,k=t.padding,w=void 0!==k&&k,C=t.border,E=void 0!==C&&C;t.onFinish;var P=t.autoScroll,j=void 0===P||P,y=t.label,I=t.dataTrackId,O=e(t,["value","onChange","className","showKeyboard","padding","border","onFinish","autoScroll","label","dataTrackId"]),K=n(r(p.length),2),T=K[0],V=K[1],F=n(r(x),2),S=F[0],_=F[1],A=l(null);i(f,(function(){return{isValid:m(p)}}),[p]);c((function(){S&&A.current&&j&&"h5"===process.env.TARO_ENV&&A.current.scrollIntoView({behavior:"smooth"})}),[S,j]);var D=s("xh-licensePlate",g,{padding:w},{border:E});return o.createElement(u,{className:D,"data-track-id":I},y&&o.createElement("label",{className:"xh-licensePlate-label"},y),o.createElement(u,{className:"xh-licensePlate-input",onClick:function(e){e.stopPropagation(),_(!0)},ref:A},function(){for(var e=[],n=function(n){var a=p[n];e.push(o.createElement(u,{key:n,className:s("xh-licensePlate-input-item",{active:T===n,showNew:7===n&&8!==p.length}),onClick:function(){var e;(e=n)>p.length-1||V(e)}},"O"===a?"":a))},a=0;a<8;a++)n(a);return e}()),o.createElement(d,a({activeIndex:T,show:S,value:p,onChange:function(e){V((function(n){return e.replace(/O/g,"").length>=8?n:n+1})),b(e)},onDelete:function(){var e=p[T+1],n=h(p,T,e?"O":"");0!==n.length&&V((function(e){return e-1})),b(n)},onClose:function(){_(!1)}},O)))}));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} & 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","
|
|
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 dataTrackId?: string;\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 dataTrackId,\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} data-track-id={dataTrackId}>\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","dataTrackId","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","View","createElement","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":"2WAgCA,IASMA,EAAoBC,GACxB,SAACC,EAAOC,GAEJ,IAAAC,EAWEF,EAAKG,MAXPA,aAAQ,GAAED,EACVE,EAUEJ,EAAKI,SATPC,EASEL,EAAKK,UARPC,EAQEN,EARkBO,aAApBA,OAAY,IAAAD,GAAQA,EACpBE,EAOER,UAPFS,OAAU,IAAAD,KACVE,EAMEV,EAAKW,OANPA,OAAM,IAAAD,GAAQA,EAMZV,EAAKY,aAJPC,EAIEb,EAJec,WAAjBA,OAAa,IAAAD,GAAIA,EACjBE,EAGEf,EAHGe,MACLC,EAEEhB,EAFSgB,YACRC,EACDC,EAAAlB,EAZE,CAAA,QAAA,WAAA,YAAA,eAAA,UAAA,SAAA,WAAA,aAAA,QAAA,gBAcAmB,EAAAC,EAAgCC,EAASlB,EAAMmB,QAAO,GAArDC,EAAWJ,EAAA,GAAEK,OAEdC,EAAAL,EAA0BC,EAASd,GAAa,GAA/CmB,EAAID,EAAA,GAAEE,OAEPC,EAAWC,EAAuB,MAuBxCC,EACE7B,GACA,WAAM,MAAC,CACL8B,QAASC,EAAY7B,GACrB,GACF,CAACA,IA4CH8B,GAAU,WAENP,GACAE,EAASM,SACTpB,GACyB,OAAzBqB,QAAQC,IAAIC,UAEZT,EAASM,QAAQI,eAAe,CAAEC,SAAU,UAEhD,GAAG,CAACb,EAAMZ,IAMV,IAAM0B,EAAoBC,EACxB,kBACApC,EACA,CAAEI,QAAOA,GACT,CAAEE,OAAMA,IAGV,OACE+B,gBAACC,EAAI,CAACtC,UAAWmC,kBAAkCxB,GAChDD,GAAS2B,EAAOE,cAAA,QAAA,CAAAvC,UAAU,yBAAyBU,GACpD2B,EAAAE,cAACD,EACC,CAAAtC,UAAU,wBACVwC,QAhBN,SAAsBC,GACpBA,EAAEC,kBACFpB,GAAgB,EACjB,EAcKqB,IAAKpB,GArEX,WAGE,IAFA,IAAMqB,EAAc,cAEXC,GACP,IAAMC,EAAOhD,EAAM+C,GAEnBD,EAAOG,KACLV,EAAAE,cAACD,EACC,CAAAU,IAAKH,EACL7C,UAAWoC,EAAW,6BAA8B,CAClDa,OAAQ/B,IAAgB2B,EACxBK,QAAeC,IAANN,GAvER,IAuE4B/C,EAAMmB,SAErCuB,QAAS,WA1BM,IAACY,KA0BcP,GAzBxB/C,EAAMmB,OAAS,GAC3BE,EAAeiC,KA0BC,MAATN,EAAe,GAAKA,KAZlBD,EAAI,EAAGA,EA/DP,EA+DmBA,MAAnBA,GAiBT,OAAOD,CACR,CAkDMS,IAEHhB,EAAAE,cAACe,EAAQC,EAAA,CACPrC,YAAaA,EACbG,KAAMA,EACNvB,MAAOA,EACPC,SAtGgB,SAAAyD,GACpBrC,GAAe,SAAAsC,GACb,OAAID,EAAME,QAAQ,KAAM,IAAIzC,QArCrB,EAqC8CwC,EAC9CA,EAAM,CACf,IAKA1D,EAASyD,EACX,EA6FMG,SAlDe,WACnB,IAAMC,EAAW9D,EAAMoB,EAAc,GAE/B2C,EAAWC,EAAmBhE,EAAOoB,EADvB0C,EAAW,IAAM,IAGb,IAApBC,EAAS5C,QAAcE,GAAe,SAAAsC,GAAO,OAAAA,EAAM,CAAC,IACxD1D,EAAS8D,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 a from"classnames";import{View as r}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,k=l.title,x=void 0===k?"安全键盘":k,E=l.closeText,N=void 0===E?"收起":E,C=l.className,g=l.dataTrackId,T=e(n(y),2),_=T[0],S=T[1],j=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 A(e){h&&h(e),m&&m(e)}o((function(){return b&&document.addEventListener("click",A),function(){document.removeEventListener("click",A)}}),[]),o((function(){S(y)}),[y]);var I=a("xh-number-keyboard",C);return t.createElement(s,{classNames:"slide-up",in:c,unmountOnExit:!0,timeout:200,"data-track-id":g},t.createElement(r,{className:I},t.createElement(r,{className:"xh-number-keyboard-header"},t.createElement(r,{className:"xh-number-keyboard-header-title"},x),p&&t.createElement(r,{className:"xh-number-keyboard-header-close",onClick:A},N)),t.createElement(r,{className:"xh-number-keyboard-body"},j.map((function(e,n){return t.createElement(r,{key:n,className:a("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 a=_;"delete"===n?a=_.slice(0,_.length-1):a.length<u&&(a=_+o),S(a),f&&f(a)}}(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} & 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
|
|
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 dataTrackId?: 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 dataTrackId,\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\n classNames=\"slide-up\"\n in={show}\n unmountOnExit\n timeout={200}\n data-track-id={dataTrackId}\n >\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","dataTrackId","_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":"8PAiCM,IAAAA,EAA0C,SAAAC,GAE5C,IAAAC,EAYED,EAZIC,OACNC,EAWEF,EAXEE,KACJC,EAUEH,EAAKI,UAVPA,OAAS,IAAAD,EAAGE,OAAOC,iBAAgBH,EACnCI,EASEP,EAAKQ,UATPA,cAAgBD,EAChBE,EAQET,EARsBU,kBAAxBA,OAAoB,IAAAD,KACpBE,EAOEX,UANFY,EAMEZ,WALFa,EAKEb,QAJFc,EAIEd,EAJYe,MAAdA,OAAQ,IAAAD,EAAA,OAAMA,EACdE,EAGEhB,EAAKiB,UAHPA,OAAS,IAAAD,EAAG,KAAIA,EAChBE,EAEElB,EAFOkB,UACTC,EACEnB,cACEoB,EAAAC,EAAoBC,EAAST,GAAM,GAAlCU,EAAKH,EAAA,GAAEI,OACRC,EAwCN,WAGE,IAFA,IAAMA,EAAe,GAEZC,EAAI,EAAGA,GAAK,EAAGA,IACtBD,EAAKE,KAAK,CAAEC,KAAMF,EAAGb,MAAOa,EAAGG,KAAM,WASvC,OANAJ,EAAKE,KACH,CAAEC,KAAM,GAAIf,MAAO,GAAIgB,KAAM,QAC7B,CAAED,KAAM,EAAGf,MAAO,EAAGgB,KAAM,UAC3B,CAAED,KAAM,GAAIf,MAAO,GAAIgB,KAAM,WAGxBJ,CACR,CAtDYK,GAgBb,SAASC,EAAYC,GACnBrB,GAAWA,EAAQqB,GACnB/B,GAAUA,EAAO+B,EAClB,CAjBDC,GAAU,WAKR,OAJIvB,GACFwB,SAASC,iBAAiB,QAASJ,GAG9B,WACLG,SAASE,oBAAoB,QAASL,EACxC,CACD,GAAE,IAEHE,GAAU,WACRT,EAASX,EACX,GAAG,CAACA,IAyCJ,IAAMwB,EAAcC,EAAW,qBAAsBpB,GAErD,OACEqB,EAACC,cAAAC,GACCH,WAAW,WACXI,GAAIxC,EACJyC,eAAa,EACbC,QAAS,oBACMzB,GAEfoB,EAAAC,cAACK,EAAI,CAAC3B,UAAWmB,GACfE,EAAAC,cAACK,EAAI,CAAC3B,UAAU,6BACdqB,EAAAC,cAACK,EAAK,CAAA3B,UAAU,mCAAmCH,GAClDP,GACC+B,EAAAC,cAACK,EAAI,CACH3B,UAAU,kCACV4B,QAASf,GAERd,IAIPsB,EAAAC,cAACK,EAAI,CAAC3B,UAAU,2BACbO,EAAKsB,KAAI,SAACC,EAAKC,GAAU,OACxBV,EAAAC,cAACK,EAAI,CACHG,IAAKC,EACL/B,UAAWoB,EAAW,8BAA+B,CACnDY,KAAmB,SAAbF,EAAInB,KACVsB,OAAqB,WAAbH,EAAInB,OAEdiB,QAAS,SAAAd,IAhErB,SAAwBA,EAAG7B,OAAE0B,EAAI1B,EAAA0B,KAAEhB,EAAKV,EAAAU,MAItC,GAH6B,OAAzBuC,QAAQC,IAAIC,UACdtB,EAAEuB,2BAES,SAAT1B,EAAJ,CAEA,IAAI2B,EAAWjC,EAEF,WAATM,EACF2B,EAAWjC,EAAMkC,MAAM,EAAGlC,EAAMmC,OAAS,GAChCF,EAASE,OAAStD,IAC3BoD,EAAWjC,EAAQV,GAGrBW,EAASgC,GAET5C,GAAYA,EAAS4C,EAZO,CAa7B,CAgDaG,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 c}from"../src/utils/index.js";import l from"./Group/index.js";import d from"../Icon/index.js";var m=function(l){var m=l.className,u=l.name,h=l.label,p=l.id,f=l.circle,v=void 0===f||f,x=l.onChange,N=l.align,E=l.direction,g=l.justify,k=l.checked,y=l.disabled,b=l.value,j=l.style,C=l.size,F=void 0===C?0:C,T=l.fancy,_=void 0!==T&&T,A=l.index,O=void 0===A?0:A,R=l.group,V=void 0!==R&&R,z=l.iconColor,G=void 0===z?"#FFFFFF":z,I=l.dataTrackId,w=s(p,"xh-radio-id"),q=e(o(k),2),B=q[0],D=q[1],H=function(e){"h5"!==process.env.TARO_ENV&&e!==O&&D(!1)};i((function(){return"h5"!==process.env.TARO_ENV&&r.on("radioChange",H),function(){r.off("radioChange",H)}}),[]);var J=t("xh-radio",m,N,E,g);return"h5"!==process.env.TARO_ENV?a.createElement(n,{onClick:function(){B&&V||(D(!B),null==x||x(!B,b||""))},className:J,style:j},a.createElement(n,{className:t("xh-radio-input",{checked:B})}),a.createElement("span",{style:F>0?{width:c(F),height:c(F)}:{},className:t("xh-radio-input-fake",v&&"circle",{fancy:_})},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:J,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,"data-track-id":I}),a.createElement("span",{style:F>0?{width:c(F),height:c(F)}:{},className:t("xh-radio-input-fake",{circle:v,fancy:_})},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=l;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} & 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":"+
|
|
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 dataTrackId?: 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 dataTrackId,\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 data-track-id={dataTrackId}\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","dataTrackId","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,r=c.icon,o=c.status,i=void 0===o?"wait":o,m=c.fancy,l=c.style,p=c.className,d=c.direction,x=c.prefix,f=c.dashed,h=c.dataTrackId;return e.createElement(a,{className:t("".concat("xh-step"),"".concat("xh-step","-status-").concat(i),p),"data-track-id":h,style:l},"vertical"===d&&x&&e.createElement(a,{className:"".concat("xh-step","-prefix")},x),e.createElement(a,{className:t("".concat("xh-step","-indicator"),{dashed:f})},e.createElement(a,{className:t("".concat("xh-step","-icon-container"),{fancy:m})},r)),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} & 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","
|
|
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 dataTrackId?: string;\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 dataTrackId,\n } = props;\n\n return (\n <View\n className={classNames(\n `${classPrefix}`,\n `${classPrefix}-status-${status}`,\n className\n )}\n data-track-id={dataTrackId}\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","dataTrackId","React","createElement","View","classNames","concat","Steps"],"mappings":"yHAqBA,IAmDMA,EAjD4B,SAAAC,GAE9B,IAAAC,EAWED,EAXGC,MACLC,EAUEF,EAAKE,YATPC,EASEH,EATEG,KACJC,EAQEJ,EARaK,OAAfA,OAAM,IAAAD,EAAG,OAAMA,EACfE,EAOEN,EAPGM,MACLC,EAMEP,EANGO,MACLC,EAKER,EAAKQ,UAJPC,EAIET,EAJOS,UACTC,EAGEV,EAAKU,OAFPC,EAEEX,EAFIW,OACNC,EACEZ,EAAKY,YAET,OACEC,EAACC,cAAAC,EACC,CAAAP,UAAWQ,EACT,GAAGC,OApBS,WAqBZ,UArBY,UAqBE,YAAAA,OAAWZ,GACzBG,GACD,gBACcI,EACfL,MAAOA,GAEQ,aAAdE,GAA4BC,GAC3BG,EAACC,cAAAC,EAAK,CAAAP,UAAW,GAAGS,OA5BR,sBA4B+BP,GAE7CG,EAAAC,cAACC,EAAI,CAACP,UAAWQ,EAAW,GAAAC,OA9Bd,UA8B4B,cAAc,CAAEN,OAAMA,KAC9DE,EAAAC,cAACC,EACC,CAAAP,UAAWQ,EAAW,UAhCZ,UAgC0B,mBAAmB,CAAEV,MAAKA,KAE7DH,IAGLU,EAAAC,cAACC,EAAK,CAAAP,UAAW,GAAAS,OArCH,UAqC2B,aACvCJ,EAACC,cAAAC,GAAKP,UAAW,UAtCL,UAsCmB,WAAWP,KACvCC,GACDW,EAACC,cAAAC,GAAKP,UAAW,UAxCP,UAwCqB,iBAAiBN,IAK1D,EAOAH,EAAOmB,MAAQA"}
|