taro-react-uilib 1.4.19-0 → 1.4.19-2
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/BankCardNumberInput/index.js +1 -1
- package/dist/components/BankCardNumberInput/index.js.map +1 -1
- package/dist/components/LicensePlateInput/index.js +1 -1
- package/dist/components/LicensePlateInput/index.js.map +1 -1
- package/dist/index.esm.js +3 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/lib/components/BankCardNumberInput/index.js +4 -5
- package/lib/components/BankCardNumberInput/index.js.map +1 -1
- package/lib/components/LicensePlateInput/index.js +10 -5
- package/lib/components/LicensePlateInput/index.js.map +1 -1
- package/package.json +1 -1
- package/types/components/LicensePlateInput/index.d.ts +1 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import n,{forwardRef as e,useImperativeHandle as
|
|
1
|
+
import n,{forwardRef as e,useRef as r,useImperativeHandle as a}from"react";import l from"classnames";import{View as o}from"@tarojs/components";import t from"../FormInput/index.js";import{creditCard as c,checkBankCard as u}from"../src/utils/index.js";var i=e((function(e,i){var m=e.showScan,s=void 0!==m&&m,d=e.label,p=e.value,f=e.bankName,h=e.readOnly,b=e.direction,v=void 0===b?"column":b,x=e.onScan,g=e.placeholder,E=void 0===g?"请输入银行卡号":g,k=e.onError,N=e.onChange,C=e.maxlength,j=void 0===C?23:C,y=e.slot,w=e.className,B=e.border,S=e.onBlur,F=function(n){var e=n.replace(/\s/g,"");return!(e.length<16||e.length>19)&&u(e)},I=r(null);return a(i,(function(){return{isValid:F(p),focus:function(){var n;null===(n=null==I?void 0:I.current)||void 0===n||n.focus()}}}),[p]),n.createElement(o,{className:l("xh-bankcard-number-input",w)},n.createElement(t,{padding:!0,ref:I,RightComponent:s&&n.createElement(o,{onClick:function(){null==x||x()},className:"xh-bankcard-number-input-scan"}),direction:v,label:d,mainExtra:"row"!==v&&n.createElement(o,{className:"xh-bankcard-number-input-name"},f),maxlength:j,placeholder:E,readonly:h,type:"tel",border:B,value:c(p),onBlur:function(n){null==S||S(),F(n)||null==k||k(""===n?"银行卡号不能为空":"银行卡号格式不正确")},onChange:function(n){var e=c(n);null==N||N(e)}}),y&&n.createElement(o,{className:"xh-bankcard-number-input-slot"},y))}));export{i as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/BankCardNumberInput/index.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/BankCardNumberInput/index.tsx"],"sourcesContent":["import React, {\n ReactNode,\n forwardRef,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput, { FocusHandler } from \"../FormInput\";\nimport { checkBankCard, creditCard } from \"../../utils\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type PhoneNumberInputProps = {\n showScan?: boolean;\n label?: string;\n /**\n * 只有在direction为column才生效\n */\n bankName?: ReactNode;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n} & XHComponentCommonProps;\n\nexport type BankCardNumberInputRef = { isValid: boolean; focus: () => void };\n\nconst BankCardNumberInput = forwardRef<\n BankCardNumberInputRef,\n PhoneNumberInputProps\n>((props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n bankName,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入银行卡号\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n onBlur,\n } = props;\n\n const validateCardNumber = value => {\n const newVal = value.replace(/\\s/g, \"\");\n if (newVal.length < 16 || newVal.length > 19) return false;\n return checkBankCard(newVal);\n };\n\n const FormInput = useRef<FocusHandler>(null);\n\n const handleBlur = value => {\n console.log(\"blur\");\n onBlur?.();\n if (!validateCardNumber(value))\n onError?.(value === \"\" ? \"银行卡号不能为空\" : \"银行卡号格式不正确\");\n };\n\n const handleChange = value => {\n const formatValue = creditCard(value);\n onChange?.(formatValue);\n };\n\n const handleOnScan = () => {\n console.log(fromRef, \"fromRef...\");\n onScan?.();\n };\n\n useImperativeHandle(\n fromRef,\n () => {\n return {\n isValid: validateCardNumber(value),\n focus: () => {\n FormInput?.current?.focus();\n },\n };\n },\n [value]\n );\n\n return (\n <View className={classNames(\"xh-bankcard-number-input\", className)}>\n <XHFormInput\n padding\n ref={FormInput}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-bankcard-number-input-scan\"\n ></View>\n )\n }\n direction={direction}\n label={label}\n mainExtra={\n direction !== \"row\" && (\n <View className=\"xh-bankcard-number-input-name\">{bankName}</View>\n )\n }\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type=\"tel\"\n border={border}\n value={creditCard(value)}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-bankcard-number-input-slot\">{slot}</View>}\n </View>\n );\n});\n\nexport default BankCardNumberInput;\n"],"names":["BankCardNumberInput","forwardRef","props","fromRef","_a","showScan","label","value","bankName","readOnly","_b","direction","onScan","_c","placeholder","onError","onChange","_d","maxlength","slot","className","border","onBlur","validateCardNumber","newVal","replace","length","checkBankCard","FormInput","useRef","useImperativeHandle","isValid","focus","current","React","createElement","View","classNames","XHFormInput","padding","ref","RightComponent","onClick","mainExtra","readonly","type","creditCard","formatValue"],"mappings":"0PAqCA,IAAMA,EAAsBC,GAG1B,SAACC,EAAOC,GAEN,IAAAC,EAeEF,EAAKG,SAfPA,OAAQ,IAAAD,GAAQA,EAChBE,EAcEJ,QAbFK,EAaEL,EAAKK,MAZPC,EAYEN,EAZMM,SACRC,EAWEP,WAVFQ,EAUER,EAVkBS,UAApBA,OAAY,IAAAD,EAAA,WACZE,EASEV,EAAKU,OARPC,EAQEX,EARqBY,YAAvBA,OAAc,IAAAD,EAAA,YACdE,EAOEb,EAAKa,QANPC,EAMEd,EANMc,SACRC,EAKEf,EAAKgB,UALPA,OAAS,IAAAD,EAAG,GAAEA,EACdE,EAIEjB,OAHFkB,EAGElB,EAAKkB,UAFPC,EAEEnB,EAFImB,OACNC,EACEpB,SAEEqB,EAAqB,SAAAhB,GACzB,IAAMiB,EAASjB,EAAMkB,QAAQ,MAAO,IACpC,QAAID,EAAOE,OAAS,IAAMF,EAAOE,OAAS,KACnCC,EAAcH,EACvB,EAEMI,EAAYC,EAAqB,MAgCvC,OAbAC,EACE3B,GACA,WACE,MAAO,CACL4B,QAASR,EAAmBhB,GAC5ByB,MAAO,iBACa,QAAlB5B,EAAAwB,aAAA,EAAAA,EAAWK,eAAO,IAAA7B,GAAAA,EAAE4B,OACrB,EAEL,GACA,CAACzB,IAID2B,EAACC,cAAAC,EAAK,CAAAhB,UAAWiB,EAAW,2BAA4BjB,IACtDc,EAAAC,cAACG,EACC,CAAAC,WACAC,IAAKZ,EACLa,eACEpC,GACE6B,EAAAC,cAACC,EACC,CAAAM,QA1BS,WAEnB9B,SAAAA,GACF,EAwBYQ,UAAU,kCAIhBT,UAAWA,EACXL,MAAOA,EACPqC,UACgB,QAAdhC,GACEuB,EAACC,cAAAC,EAAK,CAAAhB,UAAU,iCAAiCZ,GAGrDU,UAAWA,EACXJ,YAAaA,EACb8B,SAAUnC,EACVoC,KAAK,MACLxB,OAAQA,EACRd,MAAOuC,EAAWvC,GAClBe,OAxDa,SAAAf,GAEjBe,SAAAA,IACKC,EAAmBhB,IACtBQ,SAAAA,EAAoB,KAAVR,EAAe,WAAa,YAC1C,EAoDMS,SAlDe,SAAAT,GACnB,IAAMwC,EAAcD,EAAWvC,GAC/BS,SAAAA,EAAW+B,EACb,IAiDK5B,GAAQe,EAAAC,cAACC,EAAI,CAAChB,UAAU,iCAAiCD,GAGhE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__read as
|
|
1
|
+
import{__rest as e,__read as o,__assign as n}from"../node_modules/tslib/tslib.es6.js";import a,{useState as t,useRef as r,useEffect as l}from"react";import i from"classnames";import{View as s}from"@tarojs/components";import c from"./Keyboard.js";var m=function(m){var u=m.value,d=void 0===u?"":u,h=m.onChange,v=m.className,f=m.showKeyboard,p=void 0!==f&&f,b=m.padding,g=void 0!==b&&b,N=m.border,w=void 0!==N&&N;m.onFinish;var x=m.autoScroll,E=void 0===x||x,C=m.label,P=e(m,["value","onChange","className","showKeyboard","padding","border","onFinish","autoScroll","label"]),y=o(t(d.length),2),j=y[0],K=y[1],k=o(t(p),2),F=k[0],I=k[1],S=r(null);l((function(){F&&S.current&&E&&"h5"===process.env.TARO_ENV&&S.current.scrollIntoView({behavior:"smooth"})}),[F,E]);var V=i("xh-licensePlate",v,{padding:g},{border:w});return a.createElement(s,{className:V},C&&a.createElement("label",{className:"xh-licensePlate-label"},C),a.createElement(s,{className:"xh-licensePlate-input",onClick:function(e){e.stopPropagation(),I(!0)},ref:S},function(){for(var e=[],o=0;o<8;o++){var n=d[o];e.push(a.createElement(s,{key:o,className:i("xh-licensePlate-input-item",{active:j-1===o,showNew:7===o&&8!==d.length})},n))}return e}()),a.createElement(c,n({activeIndex:j,show:F,value:d,onChange:function(e){K((function(e){return e+1})),h(e)},onDelete:function(){var e=d.slice(0,-1);K((function(e){return e-1})),h(e)},onClose:function(){I(!1)}},P)))};export{m 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, { FC, ReactNode, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Keyboard from \"./Keyboard\";\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} & XHComponentCommonProps;\n\nconst LENGTH = 8;\n\nconst LicensePlateInput: FC<LicensePlateProps> = props => {\n const {\n value = \"\",\n onChange,\n className,\n showKeyboard = false,\n padding = false,\n border = false,\n onFinish,\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 const handleOnChage = neVal => {\n setActiveIndex(old => {\n return old + 1;\n });\n // if (neVal.length === LENGTH) {\n // onFinish?.();\n // setShowKeyboard(false);\n // }\n onChange(neVal);\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 - 1 === i,\n showNew: i === LENGTH - 1 && value.length !== LENGTH,\n })}\n >\n {char}\n </View>\n );\n }\n\n return Inputs;\n }\n\n /**\n * 删除最后一位\n */\n const handleDelete = () => {\n const newValue = value.slice(0, -1);\n setActiveIndex(old => old - 1);\n onChange(newValue);\n };\n\n const handleClose = () => {\n setShowKeyboard(false);\n };\n\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/LicensePlateInput/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useEffect, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Keyboard from \"./Keyboard\";\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\nconst LicensePlateInput: FC<LicensePlateProps> = props => {\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 const handleOnChage = neVal => {\n setActiveIndex(old => {\n return old + 1;\n });\n // if (neVal.length === LENGTH) {\n // onFinish?.();\n // setShowKeyboard(false);\n // }\n onChange(neVal);\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 - 1 === i,\n showNew: i === LENGTH - 1 && value.length !== LENGTH,\n })}\n >\n {char}\n </View>\n );\n }\n\n return Inputs;\n }\n\n /**\n * 删除最后一位\n */\n const handleDelete = () => {\n const newValue = value.slice(0, -1);\n 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\nexport default LicensePlateInput;\n"],"names":["LicensePlateInput","props","_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","useEffect","current","process","env","TARO_ENV","scrollIntoView","behavior","xhLicensePlateCls","classNames","React","createElement","View","onClick","e","stopPropagation","ref","Inputs","i","char","push","key","active","showNew","LENGTH","renderInputs","Keyboard","__assign","neVal","old","onDelete","newValue","slice","onClose"],"mappings":"sPAsBA,IAEMA,EAA2C,SAAAC,GAE7C,IAAAC,EAUED,EAVQE,MAAVA,OAAQ,IAAAD,EAAA,GAAEA,EACVE,EASEH,EAAKG,SARPC,EAQEJ,EAAKI,UAPPC,EAOEL,EAAKM,aAPPA,OAAY,IAAAD,GAAQA,EACpBE,EAMEP,EANaQ,QAAfA,OAAU,IAAAD,GAAKA,EACfE,EAKET,EALYU,OAAdA,OAAS,IAAAD,GAAKA,EAKZT,EAJMW,SAAA,IACRC,EAGEZ,EAAKa,WAHPA,OAAa,IAAAD,GAAIA,EACjBE,EAEEd,EAFGc,MACFC,EACDC,EAAAhB,EAXE,CAAA,QAAA,WAAA,YAAA,eAAA,UAAA,SAAA,WAAA,aAAA,UAaAiB,EAAAC,EAAgCC,EAASjB,EAAMkB,QAAO,GAArDC,EAAWJ,EAAA,GAAEK,OAEdC,EAAAL,EAA0BC,EAASb,GAAa,GAA/CkB,EAAID,EAAA,GAAEE,OAEPC,EAAWC,EAAuB,MAgDxCC,GAAU,WAENJ,GACAE,EAASG,SACThB,GACyB,OAAzBiB,QAAQC,IAAIC,UAEZN,EAASG,QAAQI,eAAe,CAAEC,SAAU,UAEhD,GAAG,CAACV,EAAMX,IAMV,IAAMsB,EAAoBC,EACxB,kBACAhC,EACA,CAAEI,QAAOA,GACT,CAAEE,OAAMA,IAGV,OACE2B,EAACC,cAAAC,EAAK,CAAAnC,UAAW+B,GACdrB,GAASuB,EAAOC,cAAA,QAAA,CAAAlC,UAAU,yBAAyBU,GACpDuB,EAAAC,cAACC,EACC,CAAAnC,UAAU,wBACVoC,QAhBN,SAAsBC,GACpBA,EAAEC,kBACFjB,GAAgB,EACjB,EAcKkB,IAAKjB,GA/DX,WAGE,IAFA,IAAMkB,EAAc,GAEXC,EAAI,EAAGA,EApCL,EAoCiBA,IAAK,CAC/B,IAAMC,EAAO5C,EAAM2C,GAEnBD,EAAOG,KACLV,EAAAC,cAACC,EACC,CAAAS,IAAKH,EACLzC,UAAWgC,EAAW,6BAA8B,CAClDa,OAAQ5B,EAAc,IAAMwB,EAC5BK,QAAeC,IAANN,GA5CN,IA4C0B3C,EAAMkB,UAGpC0B,GAGN,CAED,OAAOF,CACR,CA6CMQ,IAEHf,EAAAC,cAACe,EAAQC,EAAA,CACPjC,YAAaA,EACbG,KAAMA,EACNtB,MAAOA,EACPC,SAlFgB,SAAAoD,GACpBjC,GAAe,SAAAkC,GACb,OAAOA,EAAM,CACf,IAKArD,EAASoD,EACX,EA0EME,SA/Ce,WACnB,IAAMC,EAAWxD,EAAMyD,MAAM,GAAI,GACjCrC,GAAe,SAAAkC,GAAO,OAAAA,EAAM,CAAC,IAC7BrD,EAASuD,EACX,EA4CME,QA1Cc,WAClBnC,GAAgB,EAClB,GAyCUV,IAIZ"}
|