taro-react-uilib 1.4.30-0 → 1.4.31
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/ActionSheet/index.js +1 -1
- package/dist/components/ActionSheet/index.js.map +1 -1
- package/dist/components/AmountInput/index.js +1 -1
- package/dist/components/AmountInput/index.js.map +1 -1
- package/dist/components/AmountKeyboard/index.js +1 -1
- package/dist/components/AmountKeyboard/index.js.map +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Cell/index.js +1 -1
- package/dist/components/Cell/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/Collapse/index.js +1 -1
- package/dist/components/Collapse/index.js.map +1 -1
- package/dist/components/Dialog/Alert/index.js +1 -1
- package/dist/components/Dialog/Alert/index.js.map +1 -1
- package/dist/components/Dialog/Confirm/index.js +1 -1
- package/dist/components/Dialog/Confirm/index.js.map +1 -1
- package/dist/components/DialogRef/index.js +1 -1
- package/dist/components/DialogRef/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/Icon/index.js +1 -1
- package/dist/components/Icon/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/Keyboard.js +1 -1
- package/dist/components/LicensePlateInput/Keyboard.js.map +1 -1
- package/dist/components/LicensePlateInput/index.js +1 -1
- package/dist/components/LicensePlateInput/index.js.map +1 -1
- package/dist/components/LinkMan/index.js +1 -1
- package/dist/components/LinkMan/index.js.map +1 -1
- package/dist/components/List/index.js +1 -1
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Mask/index.js +1 -1
- package/dist/components/Mask/index.js.map +1 -1
- package/dist/components/NavBar/index.js +1 -1
- package/dist/components/NavBar/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/Page/index.js +1 -1
- package/dist/components/Page/index.js.map +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/Radio/index.js.map +1 -1
- package/dist/components/Step/index.js +1 -1
- package/dist/components/Step/index.js.map +1 -1
- package/dist/components/Tabbar/tabbar/TabItem.js +1 -1
- package/dist/components/Tabbar/tabbar/TabItem.js.map +1 -1
- package/dist/components/Tabbar/tabbar/Tabbar.js +1 -1
- package/dist/components/Tabbar/tabbar/Tabbar.js.map +1 -1
- package/dist/index.esm.js +5 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +5 -5
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/types/components/ActionSheet/index.d.ts +1 -0
- package/types/components/AmountInput/index.d.ts +1 -0
- package/types/components/AmountKeyboard/index.d.ts +1 -0
- package/types/components/Button/index.d.ts +1 -0
- package/types/components/Captcha/index.d.ts +1 -1
- package/types/components/Cell/index.d.ts +1 -0
- package/types/components/Checkbox/index.d.ts +1 -0
- package/types/components/CheckboxButton/index.d.ts +1 -0
- package/types/components/Collapse/index.d.ts +1 -0
- package/types/components/DialogRef/index.d.ts +2 -0
- package/types/components/FormInput/index.d.ts +1 -0
- package/types/components/IDNumberInput/index.d.ts +2 -0
- package/types/components/Icon/index.d.ts +1 -0
- package/types/components/Image/index.d.ts +1 -0
- package/types/components/LicensePlateInput/Keyboard.d.ts +1 -0
- package/types/components/LicensePlateInput/index.d.ts +2 -0
- package/types/components/LinkMan/index.d.ts +1 -0
- package/types/components/List/index.d.ts +1 -0
- package/types/components/Mask/index.d.ts +1 -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
- package/types/components/Tabbar/tabbar/TabItem.d.ts +1 -0
|
@@ -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 t,{useState as n,useEffect as a}from"react";import c from"classnames";import{View as o}from"@tarojs/components";import i from"../Popup/index.js";var l=function(l){var r=l.visible,s=void 0!==r&&r,m=l.title,d=l.description,u=l.data,h=void 0===u?[]:u,p=l.onConfirm,f=l.onCancel,v=l.className,E=l.children,k=l.style,x=l.mode,C=l.submitText,N=void 0===C?"提交":C,T=l.cancelText,I=void 0===T?"取消":T,b=l.showCancel,g=void 0!==b&&b,y=l.renderItem,j=l.ItemWrapper,w=l.onSubmit,P=l.onClick,V=l.showClose,_=void 0!==V&&V,A=l.justifyContent,O=void 0===A?"center":A,R=l.inline,F=void 0!==R&&R,M=l.defaultValue,S=void 0===M?"":M,W=l.dataTrackId,q=void 0===W?"action-sheet":W,z=e(n(s),2),B=z[0],D=z[1],G=e(n("string"==typeof S?S:null==S?void 0:S.value),2),H=G[0],J=G[1],K=function(e){null==f||f(e),null==P||P(!1),D(!1)};a((function(){D(s)}),[s]);var L=function(){null==w||w()},Q=function(){return h.map((function(e,n){return y?y(e,n):t.createElement(o,{dataTrackId:"".concat(q,"-item-").concat(n),className:c("xh-action-sheet-main-panel-item",O,{active:"string"==typeof e?e===H:e.value===H}),key:n,onClick:function(){!function(e,t){null==p||p(e,t),D(!1);var n="string"==typeof e?e:e.value;J(n)}(e,n)}},"string"==typeof e?e:e.text)}))},U=_||"controlled"===x&&!g;return t.createElement(o,{className:c("xh-action-sheet",{inline:F}),onClick:function(){P?P(!s):h.length<=0||D(!0)},dataTrackId:"".concat(q,"-wrapper")},t.createElement(i,{visible:B,onClose:K},t.createElement(o,{className:c("xh-action-sheet-main",v,x),style:k},m&&t.createElement(o,{className:"xh-action-sheet-main-header"},t.createElement(o,{className:"xh-action-sheet-main-header-title"},m),t.createElement(o,{className:"xh-action-sheet-main-header-desc"},d),U&&t.createElement(o,{className:"xh-action-sheet-main-header-close",onClick:function(){return K()}})),t.createElement(o,{dataTrackId:"".concat(q,"-panel"),className:c("xh-action-sheet-main-panel",{noTitle:!m}),onClick:function(e){return"h5"!==process.env.TARO_ENV&&e.stopPropagation()}},j?t.createElement(j,null,Q()):t.createElement(t.Fragment,null,Q())),t.createElement(o,{dataTrackId:"".concat(q,"-action"),className:c("xh-action-sheet-main-action",{noMarinTop:"controlled"!==x&&U}),onClick:function(e){return"h5"!==process.env.TARO_ENV&&e.stopPropagation()}},"controlled"===x?t.createElement(o,null,t.createElement(o,{className:"xh-action-sheet-main-action-submit",dataTrackId:"".concat(q,"-submit"),onClick:L},N),g&&t.createElement(o,{className:"xh-action-sheet-main-action-cancel mode",dataTrackId:"".concat(q,"-cancel"),onClick:function(){return K(!0)}},I)):U?t.createElement("div",null):t.createElement(o,{dataTrackId:"".concat(q,"-cancel-bottom"),className:"xh-action-sheet-main-action-cancel",onClick:function(){return K(!0)}},I)))),E)};export{l as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/ActionSheet/index.tsx"],"sourcesContent":["import React, { useState, ReactNode, ReactElement, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport Popup from \"../Popup\";\nimport \"./index.scss\";\n\nexport interface ActionSheetOption {\n text: ReactNode;\n value: string | number;\n [key: string]: any;\n}\n\nexport type ActionValue = string | ActionSheetOption;\nexport interface ActionProps<T extends ActionValue = ActionValue> {\n visible?: boolean;\n title?: ReactNode;\n data: T[];\n defaultValue?: T;\n className?: string;\n style?: React.CSSProperties;\n onConfirm?: (selectedValue: T, index: number) => void;\n onCancel?: (bottom?: boolean) => void;\n onClose?: () => void;\n onClick?: (flag: boolean) => void;\n children?: ReactNode;\n description?: ReactNode;\n /**\n * @summary controlled模式下,组件为受控组件,需要外部来显示和隐藏\n * @description submit 模式下会显示提交按钮,可以自定义,也可以显示取消按钮但是得传进来一个Toggle事件用来显示隐藏\n */\n mode?: \"controlled\";\n cancelText?: ReactNode;\n /**\n * submit模式下,默认不展示取消按钮,可以设置\n */\n showCancel?: boolean;\n submitText?: string;\n renderItem?: (item: T, index: number) => ReactNode;\n ItemWrapper?: React.FC<{}>;\n onSubmit?: () => void;\n justifyContent?: \"start\" | \"end\";\n /**\n * 显示右上角的关闭、默认只有不显示下面的取消的时候才出现\n */\n showClose?: boolean;\n inline?: boolean;\n}\n\nconst ActionSheet = <T extends ActionValue>(\n props: ActionProps<T>\n): ReactElement => {\n const {\n visible = false,\n title,\n description,\n data = [],\n onConfirm,\n onCancel,\n className,\n children,\n style,\n mode,\n submitText = \"提交\",\n cancelText = \"取消\",\n showCancel = false,\n renderItem,\n ItemWrapper,\n onSubmit,\n onClick,\n showClose = false,\n justifyContent = \"center\",\n inline = false,\n defaultValue = \"\",\n } = props;\n\n const [innerVisible, setInnerVisible] = useState(visible);\n const [value, selectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue?.value\n );\n\n const handleCancel = (bottom?: boolean) => {\n onCancel?.(bottom);\n onClick?.(false);\n setInnerVisible(false);\n };\n\n useEffect(() => {\n setInnerVisible(visible);\n }, [visible]);\n\n const handleClick = () => {\n if (onClick) {\n onClick(!visible);\n return;\n }\n if (data.length <= 0) return;\n setInnerVisible(true);\n };\n\n const handleConfirm = (item: T, index: number) => {\n onConfirm?.(item, index);\n setInnerVisible(false);\n const checkValue = typeof item === \"string\" ? item : item.value;\n selectedValue(checkValue);\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const submitButton = () => {\n return (\n <View>\n <View\n className=\"xh-action-sheet-main-action-submit\"\n onClick={handleSubmit}\n >\n {submitText}\n </View>\n {showCancel && (\n <View\n className=\"xh-action-sheet-main-action-cancel mode\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n );\n };\n\n const itemRender = () =>\n data.map((item, index) => {\n return renderItem ? (\n renderItem(item, index)\n ) : (\n <View\n className={classNames(\n \"xh-action-sheet-main-panel-item\",\n justifyContent,\n {\n active:\n typeof item === \"string\"\n ? item === value\n : item.value === value,\n }\n )}\n key={index}\n onClick={() => {\n handleConfirm(item, index);\n }}\n >\n {typeof item === \"string\" ? item : item.text}\n </View>\n );\n });\n\n const innerShowClose = showClose || (mode === \"controlled\" && !showCancel);\n\n return (\n <View\n className={classNames(\"xh-action-sheet\", { inline })}\n onClick={handleClick}\n >\n <Popup visible={innerVisible}>\n <View\n className={classNames(\"xh-action-sheet-main\", className, mode)}\n style={style}\n >\n {title && (\n <View className=\"xh-action-sheet-main-header\">\n <View className=\"xh-action-sheet-main-header-title\">{title}</View>\n <View className=\"xh-action-sheet-main-header-desc\">\n {description}\n </View>\n {innerShowClose && (\n <View\n className=\"xh-action-sheet-main-header-close\"\n onClick={() => handleCancel()}\n ></View>\n )}\n </View>\n )}\n <View\n className={classNames(\"xh-action-sheet-main-panel\", {\n noTitle: !title,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {ItemWrapper ? (\n <ItemWrapper>{itemRender()}</ItemWrapper>\n ) : (\n <React.Fragment>{itemRender()}</React.Fragment>\n )}\n </View>\n <View\n className={classNames(\"xh-action-sheet-main-action\", {\n noMarinTop: mode !== \"controlled\" && innerShowClose,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {mode === \"controlled\" ? (\n submitButton()\n ) : !innerShowClose ? (\n <View\n className=\"xh-action-sheet-main-action-cancel\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n ) : (\n <div></div>\n )}\n </View>\n </View>\n </Popup>\n {children}\n </View>\n );\n};\n\nexport default ActionSheet;\n"],"names":["ActionSheet","props","_a","visible","title","description","_b","data","onConfirm","onCancel","className","children","style","mode","_c","submitText","_d","cancelText","_e","showCancel","renderItem","ItemWrapper","onSubmit","onClick","_f","showClose","_g","justifyContent","_h","inline","_j","defaultValue","_k","__read","useState","innerVisible","setInnerVisible","_l","value","selectedValue","handleCancel","bottom","useEffect","handleSubmit","itemRender","map","item","index","React","createElement","View","classNames","active","key","checkValue","handleConfirm","text","innerShowClose","length","Popup","noTitle","e","process","env","TARO_ENV","stopPropagation","Fragment","noMarinTop"],"mappings":"oNAiDM,IAAAA,EAAc,SAClBC,GAGE,IAAAC,EAqBED,EArBaE,QAAfA,OAAU,IAAAD,GAAKA,EACfE,EAoBEH,EAAKG,MAnBPC,EAmBEJ,EAAKI,YAlBPC,EAkBEL,EAAKM,KAlBPA,OAAI,IAAAD,EAAG,GAAEA,EACTE,EAiBEP,YAhBFQ,EAgBER,EAhBMQ,SACRC,EAeET,EAfOS,UACTC,EAcEV,EAAKU,SAbPC,EAaEX,EAAKW,MAZPC,EAYEZ,EAZEY,KACJC,EAWEb,EAAKc,WAXPA,OAAa,IAAAD,EAAA,KAAIA,EACjBE,EAUEf,EAAKgB,WAVPA,OAAa,IAAAD,EAAA,KAAIA,EACjBE,EASEjB,EAAKkB,WATPA,OAAa,IAAAD,GAAKA,EAClBE,EAQEnB,EARQmB,WACVC,EAOEpB,EAAKoB,YANPC,EAMErB,EAAKqB,SALPC,EAKEtB,UAJFuB,EAIEvB,EAAKwB,UAJPA,OAAY,IAAAD,KACZE,EAGEzB,EAAK0B,eAHPA,OAAiB,IAAAD,EAAA,WACjBE,EAEE3B,EAAK4B,OAFPA,OAAS,IAAAD,KACTE,EACE7B,EAAK8B,aADPA,OAAe,IAAAD,EAAA,KAGXE,EAAAC,EAAkCC,EAAS/B,GAAQ,GAAlDgC,EAAYH,EAAA,GAAEI,OACfC,EAAAJ,EAAyBC,EACL,iBAAjBH,EAA4BA,EAAeA,aAAY,EAAZA,EAAcO,OACjE,GAFMA,EAAKD,EAAA,GAAEE,OAIRC,EAAe,SAACC,GACpBhC,SAAAA,EAAWgC,GACXlB,SAAAA,GAAU,GACVa,GAAgB,EAClB,EAEAM,GAAU,WACRN,EAAgBjC,EAClB,GAAG,CAACA,IAEJ,IAgBMwC,EAAe,WACnBrB,SAAAA,GACF,EAuBMsB,EAAa,WACjB,OAAArC,EAAKsC,KAAI,SAACC,EAAMC,GACd,OAAO3B,EACLA,EAAW0B,EAAMC,GAEjBC,EAACC,cAAAC,EACC,CAAAxC,UAAWyC,EACT,kCACAxB,EACA,CACEyB,OACkB,iBAATN,EACHA,IAASR,EACTQ,EAAKR,QAAUA,IAGzBe,IAAKN,EACLxB,QAAS,YAjDK,SAACuB,EAASC,GAC9BvC,SAAAA,EAAYsC,EAAMC,GAClBX,GAAgB,GAChB,IAAMkB,EAA6B,iBAATR,EAAoBA,EAAOA,EAAKR,MAC1DC,EAAce,EAChB,CA6CUC,CAAcT,EAAMC,EACtB,GAEiB,iBAATD,EAAoBA,EAAOA,EAAKU,KAG9C,GAvBA,EAyBIC,EAAiBhC,GAAuB,eAATZ,IAA0BM,EAE/D,OACE6B,EAACC,cAAAC,GACCxC,UAAWyC,EAAW,kBAAmB,CAAEtB,OAAMA,IACjDN,QAxEgB,WACdA,EACFA,GAASpB,GAGPI,EAAKmD,QAAU,GACnBtB,GAAgB,EAClB,GAmEIY,EAAAC,cAACU,EAAK,CAACxD,QAASgC,GACda,EAAAC,cAACC,EAAI,CACHxC,UAAWyC,EAAW,uBAAwBzC,EAAWG,GACzDD,MAAOA,GAENR,GACC4C,EAAAC,cAACC,EAAK,CAAAxC,UAAU,+BACdsC,EAAAC,cAACC,EAAK,CAAAxC,UAAU,qCAAqCN,GACrD4C,EAAAC,cAACC,EAAK,CAAAxC,UAAU,oCACbL,GAEFoD,GACCT,EAACC,cAAAC,GACCxC,UAAU,oCACVa,QAAS,WAAM,OAAAiB,GAAc,KAKrCQ,EAAAC,cAACC,EACC,CAAAxC,UAAWyC,EAAW,6BAA8B,CAClDS,SAAUxD,IAEZmB,QAAS,SAAAsC,GAAK,MAAyB,OAAzBC,QAAQC,IAAIC,UAAqBH,EAAEI,iBAAiB,GAEjE5C,EACC2B,EAACC,cAAA5B,OAAauB,KAEdI,EAAAC,cAACD,EAAMkB,cAAUtB,MAGrBI,EAAAC,cAACC,EACC,CAAAxC,UAAWyC,EAAW,8BAA+B,CACnDgB,WAAqB,eAATtD,GAAyB4C,IAEvClC,QAAS,SAAAsC,GAAK,MAAyB,OAAzBC,QAAQC,IAAIC,UAAqBH,EAAEI,iBAAiB,GAExD,eAATpD,EAzFPmC,gBAACE,EAAI,KACHF,EAACC,cAAAC,EACC,CAAAxC,UAAU,qCACVa,QAASoB,GAER5B,GAEFI,GACC6B,EAAAC,cAACC,EAAI,CACHxC,UAAU,0CACVa,QAAS,WAAM,OAAAiB,GAAa,EAAK,GAEhCvB,IA+EIwC,EAQHT,EAAAC,cAAA,MAAA,MAPAD,gBAACE,EAAI,CACHxC,UAAU,qCACVa,QAAS,WAAM,OAAAiB,GAAa,EAAK,GAEhCvB,MAQVN,EAGP"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/ActionSheet/index.tsx"],"sourcesContent":["import React, { useState, ReactNode, ReactElement, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport Popup from \"../Popup\";\nimport \"./index.scss\";\n\nexport interface ActionSheetOption {\n text: ReactNode;\n value: string | number;\n [key: string]: any;\n}\n\nexport type ActionValue = string | ActionSheetOption;\nexport interface ActionProps<T extends ActionValue = ActionValue> {\n visible?: boolean;\n title?: ReactNode;\n data: T[];\n defaultValue?: T;\n className?: string;\n style?: React.CSSProperties;\n onConfirm?: (selectedValue: T, index: number) => void;\n onCancel?: (bottom?: boolean) => void;\n onClose?: () => void;\n onClick?: (flag: boolean) => void;\n children?: ReactNode;\n description?: ReactNode;\n /**\n * @summary controlled模式下,组件为受控组件,需要外部来显示和隐藏\n * @description submit 模式下会显示提交按钮,可以自定义,也可以显示取消按钮但是得传进来一个Toggle事件用来显示隐藏\n */\n mode?: \"controlled\";\n cancelText?: ReactNode;\n /**\n * submit模式下,默认不展示取消按钮,可以设置\n */\n showCancel?: boolean;\n submitText?: string;\n renderItem?: (item: T, index: number) => ReactNode;\n ItemWrapper?: React.FC<{}>;\n onSubmit?: () => void;\n justifyContent?: \"start\" | \"end\";\n /**\n * 显示右上角的关闭、默认只有不显示下面的取消的时候才出现\n */\n showClose?: boolean;\n inline?: boolean;\n dataTrackId?: string;\n}\n\nconst ActionSheet = <T extends ActionValue>(\n props: ActionProps<T>\n): ReactElement => {\n const {\n visible = false,\n title,\n description,\n data = [],\n onConfirm,\n onCancel,\n className,\n children,\n style,\n mode,\n submitText = \"提交\",\n cancelText = \"取消\",\n showCancel = false,\n renderItem,\n ItemWrapper,\n onSubmit,\n onClick,\n showClose = false,\n justifyContent = \"center\",\n inline = false,\n defaultValue = \"\",\n dataTrackId = \"action-sheet\",\n } = props;\n\n const [innerVisible, setInnerVisible] = useState(visible);\n const [value, selectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue?.value\n );\n\n const handleCancel = (bottom?: boolean) => {\n onCancel?.(bottom);\n onClick?.(false);\n setInnerVisible(false);\n };\n\n useEffect(() => {\n setInnerVisible(visible);\n }, [visible]);\n\n const handleClick = () => {\n if (onClick) {\n onClick(!visible);\n return;\n }\n if (data.length <= 0) return;\n setInnerVisible(true);\n };\n\n const handleConfirm = (item: T, index: number) => {\n onConfirm?.(item, index);\n setInnerVisible(false);\n const checkValue = typeof item === \"string\" ? item : item.value;\n selectedValue(checkValue);\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const submitButton = () => {\n return (\n <View>\n <View\n className=\"xh-action-sheet-main-action-submit\"\n // @ts-ignore\n dataTrackId={`${dataTrackId}-submit`}\n onClick={handleSubmit}\n >\n {submitText}\n </View>\n {showCancel && (\n <View\n className=\"xh-action-sheet-main-action-cancel mode\"\n // @ts-ignore\n dataTrackId={`${dataTrackId}-cancel`}\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n );\n };\n\n const itemRender = () =>\n data.map((item, index) => {\n return renderItem ? (\n renderItem(item, index)\n ) : (\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-item-${index}`}\n className={classNames(\n \"xh-action-sheet-main-panel-item\",\n justifyContent,\n {\n active:\n typeof item === \"string\"\n ? item === value\n : item.value === value,\n }\n )}\n key={index}\n onClick={() => {\n handleConfirm(item, index);\n }}\n >\n {typeof item === \"string\" ? item : item.text}\n </View>\n );\n });\n\n const innerShowClose = showClose || (mode === \"controlled\" && !showCancel);\n\n return (\n <View\n className={classNames(\"xh-action-sheet\", { inline })}\n onClick={handleClick}\n // @ts-ignore\n dataTrackId={`${dataTrackId}-wrapper`}\n >\n <Popup visible={innerVisible} onClose={handleCancel}>\n <View\n className={classNames(\"xh-action-sheet-main\", className, mode)}\n style={style}\n >\n {title && (\n <View className=\"xh-action-sheet-main-header\">\n <View className=\"xh-action-sheet-main-header-title\">{title}</View>\n <View className=\"xh-action-sheet-main-header-desc\">\n {description}\n </View>\n {innerShowClose && (\n <View\n className=\"xh-action-sheet-main-header-close\"\n onClick={() => handleCancel()}\n ></View>\n )}\n </View>\n )}\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-panel`}\n className={classNames(\"xh-action-sheet-main-panel\", {\n noTitle: !title,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {ItemWrapper ? (\n <ItemWrapper>{itemRender()}</ItemWrapper>\n ) : (\n <React.Fragment>{itemRender()}</React.Fragment>\n )}\n </View>\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-action`}\n className={classNames(\"xh-action-sheet-main-action\", {\n noMarinTop: mode !== \"controlled\" && innerShowClose,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {mode === \"controlled\" ? (\n submitButton()\n ) : !innerShowClose ? (\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-cancel-bottom`}\n className=\"xh-action-sheet-main-action-cancel\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n ) : (\n <div></div>\n )}\n </View>\n </View>\n </Popup>\n {children}\n </View>\n );\n};\n\nexport default ActionSheet;\n"],"names":["ActionSheet","props","_a","visible","title","description","_b","data","onConfirm","onCancel","className","children","style","mode","_c","submitText","_d","cancelText","_e","showCancel","renderItem","ItemWrapper","onSubmit","onClick","_f","showClose","_g","justifyContent","_h","inline","_j","defaultValue","_k","dataTrackId","_l","__read","useState","innerVisible","setInnerVisible","_m","value","selectedValue","handleCancel","bottom","useEffect","handleSubmit","itemRender","map","item","index","React","View","concat","classNames","active","key","checkValue","handleConfirm","text","innerShowClose","createElement","length","Popup","onClose","noTitle","e","process","env","TARO_ENV","stopPropagation","Fragment","noMarinTop"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"react";import{View as
|
|
1
|
+
import t from"react";import{View as a}from"@tarojs/components";import e from"classnames";var n=function(n){var o=n.value,m=n.maxlength,u=void 0===m?o.length:m,c=n.onFocus,r=n.className,s=n.focus,l=void 0!==s&&s,i=n.shortcut,p=void 0===i?"借全部":i,h=n.step,d=void 0===h?100:h,x=n.errTip,E=void 0===x?"":x,N=n.onUpgrade,v=n.minAmount,f=n.maxAmount,k=n.showUpgrade,g=void 0!==k&&k,b=n.loanOnekey,y=void 0===b?function(){}:b,T=n.placeholder,I=void 0===T?"单笔".concat(v,"-").concat(f,"元,").concat(d,"的整数倍"):T,_=n.slot,C=n.showBottom,w=void 0===C||C,A=n.title,F=void 0!==A&&A,P=n.dataTrackId;var U=e("xh-amount-input",r);return t.createElement(a,{className:U},F&&t.createElement(a,{className:"xh-amount-input-title"},F),t.createElement(a,{className:"xh-amount-input-top"},t.createElement(a,{className:"xh-amount-input-top-unit"},"¥"),t.createElement(a,{className:"xh-amount-input-top-amount",onClick:function(t){t.stopPropagation(),c&&c(t)},dataTrackId:"".concat(P,"_amount")},t.createElement(a,{className:"xh-amount-input-top-amount-num"},t.createElement(a,{className:"xh-amount-input-top-amount-num-key"}," "),function(){var e=[""];if(""===o)return t.createElement(a,{className:"xh-amount-input-top-amount-num-placeholder"},I);for(var n=0;n<u;n++){var m=o[n];e.push(t.createElement(a,{key:n,className:"xh-amount-input-top-amount-num-key"},m))}return e}(),t.createElement(a,{className:e("xh-amount-input-top-amount-num-cursor",{focus:l})})),t.createElement(a,{className:"xh-amount-input-top-amount-shortcut",onClick:y,dataTrackId:"".concat(P,"_top_shortcut")},"string"==typeof p?t.createElement(a,{className:"xh-amount-input-top-amount-shortcut-text"},p):p)),E&&t.createElement(a,{className:"xh-amount-input-top-error"},E)),_&&t.createElement(a,{className:"xh-amount-input-slot"},_),w&&t.createElement(a,{className:"xh-amount-input-bottom"},t.createElement(a,{className:"xh-amount-input-bottom-range"},"单笔可借:",t.createElement(a,{className:"xh-amount-input-bottom-range-number"},v,"-",f,"元")),g&&t.createElement(a,{className:"xh-amount-input-bottom-tip"},t.createElement(t.Fragment,null,t.createElement(a,{className:"xh-amount-input-bottom-tip-update",dataTrackId:"".concat(P,"_bottom"),onClick:function(t){t.stopPropagation(),null==N||N()}},"额度不够?")))))};export{n as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/AmountInput/index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type AmountInputProps = {\n space?: number;\n value: string;\n maxlength: number;\n onFocus?: (e) => void;\n unit?: string;\n slot?: ReactNode;\n shortcut?: ReactNode;\n errTip?: string;\n maxAmount?: number | string;\n minAmount?: number | string;\n showUpgrade?: boolean;\n onUpgrade?: () => void;\n loanOnekey?: () => void;\n placeholder?: string;\n focus?: boolean;\n /** 借款步长 */\n step?: number;\n showBottom?: boolean;\n title?: ReactNode;\n} & XHComponentCommonProps;\n\nconst AmountInput: React.FC<AmountInputProps> = props => {\n const {\n value,\n maxlength = value.length,\n onFocus,\n className,\n focus = false,\n shortcut = \"借全部\",\n step = 100,\n errTip = \"\",\n onUpgrade,\n minAmount,\n maxAmount,\n showUpgrade = false,\n loanOnekey = () => {},\n placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`,\n slot,\n showBottom = true,\n title = false,\n } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [\"\"];\n\n if (value === \"\")\n return (\n <View className=\"xh-amount-input-top-amount-num-placeholder\">\n {placeholder}\n </View>\n );\n for (let i = 0; i < maxlength; i++) {\n const char = value[i];\n Inputs.push(\n <View key={i} className=\"xh-amount-input-top-amount-num-key\">\n {char}\n </View>\n );\n }\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const cls = classNames(\"xh-amount-input\", className);\n\n const handleUpgrade = (e: ITouchEvent) => {\n e.stopPropagation();\n onUpgrade?.();\n };\n\n return (\n <View className={cls}>\n {title && <View className=\"xh-amount-input-title\">{title}</View>}\n <View className=\"xh-amount-input-top\">\n <View className=\"xh-amount-input-top-unit\">¥</View>\n <View
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/AmountInput/index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type AmountInputProps = {\n space?: number;\n value: string;\n maxlength: number;\n onFocus?: (e) => void;\n unit?: string;\n slot?: ReactNode;\n shortcut?: ReactNode;\n errTip?: string;\n maxAmount?: number | string;\n minAmount?: number | string;\n showUpgrade?: boolean;\n onUpgrade?: () => void;\n loanOnekey?: () => void;\n placeholder?: string;\n focus?: boolean;\n /** 借款步长 */\n step?: number;\n showBottom?: boolean;\n title?: ReactNode;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst AmountInput: React.FC<AmountInputProps> = props => {\n const {\n value,\n maxlength = value.length,\n onFocus,\n className,\n focus = false,\n shortcut = \"借全部\",\n step = 100,\n errTip = \"\",\n onUpgrade,\n minAmount,\n maxAmount,\n showUpgrade = false,\n loanOnekey = () => {},\n placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`,\n slot,\n showBottom = true,\n title = false,\n dataTrackId,\n } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [\"\"];\n\n if (value === \"\")\n return (\n <View className=\"xh-amount-input-top-amount-num-placeholder\">\n {placeholder}\n </View>\n );\n for (let i = 0; i < maxlength; i++) {\n const char = value[i];\n Inputs.push(\n <View key={i} className=\"xh-amount-input-top-amount-num-key\">\n {char}\n </View>\n );\n }\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const cls = classNames(\"xh-amount-input\", className);\n\n const handleUpgrade = (e: ITouchEvent) => {\n e.stopPropagation();\n onUpgrade?.();\n };\n\n return (\n <View className={cls}>\n {title && <View className=\"xh-amount-input-title\">{title}</View>}\n <View className=\"xh-amount-input-top\">\n <View className=\"xh-amount-input-top-unit\">¥</View>\n <View\n className=\"xh-amount-input-top-amount\"\n onClick={handlerClick} // @ts-ignore\n dataTrackId={`${dataTrackId}_amount`}\n >\n <View className=\"xh-amount-input-top-amount-num\">\n <View className=\"xh-amount-input-top-amount-num-key\"> </View>\n {renderInputs()}\n <View\n className={classNames(\"xh-amount-input-top-amount-num-cursor\", {\n focus,\n })}\n ></View>\n </View>\n <View\n className=\"xh-amount-input-top-amount-shortcut\"\n onClick={loanOnekey}\n // @ts-ignore\n dataTrackId={`${dataTrackId}_top_shortcut`}\n >\n {typeof shortcut === \"string\" ? (\n <View className=\"xh-amount-input-top-amount-shortcut-text\">\n {shortcut}\n </View>\n ) : (\n shortcut\n )}\n </View>\n </View>\n {errTip && <View className=\"xh-amount-input-top-error\">{errTip}</View>}\n </View>\n {slot && <View className=\"xh-amount-input-slot\">{slot}</View>}\n {showBottom && (\n <View className=\"xh-amount-input-bottom\">\n <View className=\"xh-amount-input-bottom-range\">\n 单笔可借:\n <View className=\"xh-amount-input-bottom-range-number\">\n {minAmount}-{maxAmount}元\n </View>\n </View>\n {showUpgrade && (\n <View className=\"xh-amount-input-bottom-tip\">\n <React.Fragment>\n <View\n className=\"xh-amount-input-bottom-tip-update\"\n // @ts-ignore\n dataTrackId={`${dataTrackId}_bottom`}\n onClick={handleUpgrade}\n >\n 额度不够?\n </View>\n </React.Fragment>\n </View>\n )}\n </View>\n )}\n </View>\n );\n};\n\nexport default AmountInput;\n"],"names":["AmountInput","props","value","_a","maxlength","length","onFocus","className","_b","focus","_c","shortcut","_d","step","_e","errTip","onUpgrade","minAmount","maxAmount","_f","showUpgrade","_g","loanOnekey","_h","placeholder","concat","slot","_j","showBottom","_k","title","dataTrackId","cls","classNames","React","createElement","View","onClick","e","stopPropagation","Inputs","i","char","push","key","renderInputs","Fragment"],"mappings":"yFA6BM,IAAAA,EAA0C,SAAAC,GAE5C,IAAAC,EAkBED,EAAKC,MAjBPC,EAiBEF,EAAKG,UAjBPA,OAAY,IAAAD,EAAAD,EAAMG,OAAMF,EACxBG,EAgBEL,EAhBKK,QACPC,EAeEN,EAfOM,UACTC,EAcEP,EAdWQ,MAAbA,OAAQ,IAAAD,GAAKA,EACbE,EAaET,EAbcU,SAAhBA,OAAW,IAAAD,EAAA,MAAKA,EAChBE,EAYEX,EAZQY,KAAVA,OAAO,IAAAD,EAAA,IAAGA,EACVE,EAWEb,EAXSc,OAAXA,OAAS,IAAAD,EAAA,GAAEA,EACXE,EAUEf,EAAKe,UATPC,EASEhB,EAAKgB,UARPC,EAQEjB,EAROiB,UACTC,EAOElB,EAPiBmB,YAAnBA,OAAW,IAAAD,GAAQA,EACnBE,EAMEpB,EANmBqB,WAArBA,OAAU,IAAAD,EAAG,aAAQA,EACrBE,EAKEtB,EAAKuB,YALPA,aAAc,KAAKC,OAAAR,EAAa,KAAAQ,OAAAP,EAAc,MAAAO,OAAAZ,EAAU,QAAAU,EACxDG,EAIEzB,EAAKyB,KAHPC,EAGE1B,EAAK2B,WAHPA,OAAU,IAAAD,GAAOA,EACjBE,EAEE5B,EAAK6B,MAFPA,OAAK,IAAAD,GAAQA,EACbE,EACE9B,cA0BJ,IAAM+B,EAAMC,EAAW,kBAAmB1B,GAO1C,OACE2B,EAACC,cAAAC,EAAK,CAAA7B,UAAWyB,GACdF,GAASI,gBAACE,EAAI,CAAC7B,UAAU,yBAAyBuB,GACnDI,EAAAC,cAACC,EAAI,CAAC7B,UAAU,uBACd2B,EAAAC,cAACC,EAAI,CAAC7B,UAAU,4BAAuC,KACvD2B,EAAAC,cAACC,EAAI,CACH7B,UAAU,6BACV8B,QAlBR,SAAsBC,GACpBA,EAAEC,kBACFjC,GAAWA,EAAQgC,EACpB,EAgBOP,YAAa,GAAAN,OAAGM,EAAoB,YAEpCG,EAAAC,cAACC,EAAI,CAAC7B,UAAU,kCACd2B,EAAAC,cAACC,EAAI,CAAC7B,UAAU,sCAAkD,KA1C5E,WACE,IAAMiC,EAAc,CAAC,IAErB,GAAc,KAAVtC,EACF,OACEgC,EAACC,cAAAC,EAAK,CAAA7B,UAAU,8CACbiB,GAGP,IAAK,IAAIiB,EAAI,EAAGA,EAAIrC,EAAWqC,IAAK,CAClC,IAAMC,EAAOxC,EAAMuC,GACnBD,EAAOG,KACLT,EAACC,cAAAC,GAAKQ,IAAKH,EAAGlC,UAAU,sCACrBmC,GAGN,CACD,OAAOF,CACR,CAyBUK,GACDX,EAAAC,cAACC,EACC,CAAA7B,UAAW0B,EAAW,wCAAyC,CAC7DxB,MAAKA,OAIXyB,EAACC,cAAAC,GACC7B,UAAU,sCACV8B,QAASf,EAETS,YAAa,GAAAN,OAAGM,EAAW,kBAEN,iBAAbpB,EACNuB,EAACC,cAAAC,EAAK,CAAA7B,UAAU,4CACbI,GACI,IAMZI,GAAUmB,EAACC,cAAAC,EAAK,CAAA7B,UAAU,6BAA6BQ,IAEzDW,GAAQQ,gBAACE,EAAI,CAAC7B,UAAU,wBAAwBmB,GAChDE,GACCM,EAAAC,cAACC,EAAK,CAAA7B,UAAU,0BACd2B,EAAAC,cAACC,EAAI,CAAC7B,UAAU,wCAEd2B,EAAAC,cAACC,EAAI,CAAC7B,UAAU,uCACbU,MAAYC,QAGhBE,GACCc,EAAAC,cAACC,EAAK,CAAA7B,UAAU,8BACd2B,EAACC,cAAAD,EAAMY,SAAQ,KACbZ,EAAAC,cAACC,EAAI,CACH7B,UAAU,oCAEVwB,YAAa,GAAGN,OAAAM,EAAoB,WACpCM,QAzDM,SAACC,GACrBA,EAAEC,kBACFvB,SAAAA,GACF,GAyDqB,YAQvB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as n,useEffect as a,useCallback as o}from"react";import r from"classnames";import{View as l}from"@tarojs/components";import{pxTransform as u}from"../src/utils/index.js";import m from"../Badge/index.js";import c from"../Space/index.js";import p from"../node_modules/react-transition-group/esm/CSSTransition.js";var i=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"00",value:"00",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],s=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"·",value:".",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],
|
|
1
|
+
import{__read as e}from"../node_modules/tslib/tslib.es6.js";import t,{useState as n,useEffect as a,useCallback as o}from"react";import r from"classnames";import{View as l}from"@tarojs/components";import{pxTransform as u}from"../src/utils/index.js";import m from"../Badge/index.js";import c from"../Space/index.js";import p from"../node_modules/react-transition-group/esm/CSSTransition.js";var i=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"00",value:"00",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],s=[{text:1,value:1,type:"number"},{text:2,value:2,type:"number"},{text:3,value:3,type:"number"},{text:"",value:"",type:"delete"},{text:4,value:4,type:"number"},{text:5,value:5,type:"number"},{text:6,value:6,type:"number"},{text:"",value:"",type:"none"},{text:7,value:7,type:"number"},{text:8,value:8,type:"number"},{text:9,value:9,type:"number"},{text:"",value:"",type:"none"},{text:"·",value:".",type:"number"},{text:0,value:0,type:"number"},{text:"",value:"",type:"close"},{text:"",value:"",type:"none"}],d=function(d){var y=d.onBlur,x=d.show,v=d.maxLength,b=void 0===v?Number.MAX_SAFE_INTEGER:v,f=d.closeOnClickSpace,k=void 0===f||f,h=d.onClose,E=d.onChange,g=d.value,N=d.className,C=d.onConfirm,T=d.recommend,j=void 0===T?[]:T,I=d.header,O=d.disabled,S=void 0!==O&&O,_=d.tip,L=d.decimal,w=d.dataTrackId,A=e(n(g),2),P=A[0],B=A[1];function R(e){h&&h(e),y&&y(e)}a((function(){return k&&document.addEventListener("click",R),function(){document.removeEventListener("click",R)}}),[]),a((function(){B(g)}),[g]);var F=o((function(e,t){var n=t.type,a=t.value;if("h5"===process.env.TARO_ENV&&e.stopImmediatePropagation(),!S&&"none"!==n&&("."!==a||""!==P))if("close"!==n){var o=P;"delete"===n?o=P.slice(0,P.length-1):o.replace(/^0+/g,"").length<b&&(o=P+a),L&&0===a&&""===P&&(o=a+"."),"."===a&&P.includes(".")||"number"===n&&P.indexOf(".")>-1&&P.length-P.indexOf(".")==3||o!==P&&(B(o),null==E||E(o))}else R(e)}),[P,S]),G=L?s:i,M=r("xh-amount-keyboard",N);return t.createElement(p,{classNames:"slide-up",in:x,unmountOnExit:!0,timeout:200},t.createElement(l,{className:M},t.createElement(l,{className:"xh-amount-keyboard-header"},t.createElement(l,{className:"xh-amount-keyboard-header-wrapper"},I||j.length>0&&t.createElement(l,{className:"xh-amount-keyboard-header-wrapper-text"},"猜您想借"," ",t.createElement(c,{style:{marginLeft:u(24)}},null==j?void 0:j.map((function(e,n){return t.createElement(l,{dataTrackId:"".concat(w,"-recommend-").concat(n),key:n,onClick:function(t){return function(e,t){e.stopPropagation(),null==C||C("".concat(t),!0)}(t,e)}},t.createElement(m,{content:"¥".concat(e),key:n}))})))),_)),t.createElement(l,{className:"xh-amount-keyboard-body"},G.map((function(e,n){return t.createElement(l,{key:n,dataTrackId:"".concat(w,"-key-").concat(n),className:r("xh-amount-keyboard-body-key",{none:"none"===e.type,delete:"delete"===e.type,close:"close"===e.type}),onClick:function(t){F(t,e)}},e.text)})),t.createElement(l,{dataTrackId:"".concat(w,"-confirm-fake"),className:"xh-amount-keyboard-body-key confirm-fake",onClick:function(e){e.stopPropagation(),null==C||C(P)}},"确定"))))};export{d as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/AmountKeyboard/index.tsx"],"sourcesContent":["import React, {\n FC,\n useState,\n useEffect,\n MouseEvent,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\n\nimport Badge from \"../Badge\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Space from \"../Space\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n /**\n * 是否支持小数,小数保留小数点后两位,默认不支持\n */\n decimal?: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n header?: ReactNode;\n /**\n *\n * @param value 输入值\n * @param recommend 是否是点击推荐金额触发\n * @returns void\n */\n onConfirm?: (value: string, recommend?: boolean) => void;\n recommend?: Array<number | string>;\n tip?: ReactNode;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\" | \"close\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst XHAmountKeys: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"00\", value: \"00\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst XHAmountKeysWithDot: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"·\", value: \".\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst AmountKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n className,\n onConfirm,\n recommend = [],\n header,\n disabled = false,\n tip,\n decimal,\n } = props;\n const [input, setInput] = useState(value);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n const handleOnRecommand = (e: ITouchEvent, amount: number | string) => {\n e.stopPropagation();\n onConfirm?.(`${amount}`, true);\n };\n\n const handleKeyPress = useCallback(\n (e, { type, value }: IKey): void => {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (disabled) return;\n if (type === \"none\") return;\n // 第一个字符不能是.\n if (value === \".\" && input === \"\") return;\n if (type === \"close\") {\n handleClose(e);\n return;\n }\n let newInput = input;\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.replace(/^0+/g, \"\").length < maxLength) {\n newInput = input + value;\n }\n // 支持小数点的情况下,如果第一个是0,自动填充.\n if (decimal && value === 0 && input === \"\") newInput = value + \".\";\n\n // 不能包含多个小数点\n if (value === \".\" && input.includes(\".\")) return;\n // 保留两位小数\n if (\n type === \"number\" &&\n input.indexOf(\".\") > -1 &&\n input.length - input.indexOf(\".\") === 3\n )\n return;\n\n // 前后两个值相等就不触发onchange\n if (newInput === input) return;\n setInput(newInput);\n onChange?.(newInput);\n },\n [input, disabled]\n );\n\n const renderKeys = decimal ? XHAmountKeysWithDot : XHAmountKeys;\n\n const handleConfirm = (e: ITouchEvent) => {\n e.stopPropagation();\n onConfirm?.(input);\n };\n const keyboardcls = classNames(\"xh-amount-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-amount-keyboard-header\">\n <View className=\"xh-amount-keyboard-header-wrapper\">\n {header ||\n (recommend.length > 0 && (\n <View className=\"xh-amount-keyboard-header-wrapper-text\">\n 猜您想借{\" \"}\n <Space style={{ marginLeft: pxTransform(24) }}>\n {recommend?.map((amount, index) => (\n <View\n key={index}\n onClick={e => handleOnRecommand(e, amount)}\n >\n <Badge content={`¥${amount}`} key={index} />\n </View>\n ))}\n </Space>\n </View>\n ))}\n {tip}\n </View>\n </View>\n <View className=\"xh-amount-keyboard-body\">\n {renderKeys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-amount-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n close: key.type === \"close\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n <View\n className=\"xh-amount-keyboard-body-key confirm-fake\"\n onClick={handleConfirm}\n >\n 确定\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default AmountKeyboard;\n"],"names":["XHAmountKeys","text","value","type","XHAmountKeysWithDot","AmountKeyboard","props","onBlur","show","_a","maxLength","Number","MAX_SAFE_INTEGER","_b","closeOnClickSpace","onClose","onChange","className","onConfirm","_c","recommend","header","_d","disabled","tip","decimal","_e","__read","useState","input","setInput","handleClose","e","useEffect","document","addEventListener","removeEventListener","handleKeyPress","useCallback","process","env","TARO_ENV","stopImmediatePropagation","newInput","slice","length","replace","includes","indexOf","renderKeys","keyboardcls","classNames","React","createElement","CSSTransition","in","unmountOnExit","timeout","View","Space","style","marginLeft","pxTransform","map","amount","index","key","onClick","stopPropagation","concat","handleOnRecommand","Badge","content","none","delete","close"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/AmountKeyboard/index.tsx"],"sourcesContent":["import React, {\n FC,\n useState,\n useEffect,\n MouseEvent,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\n\nimport Badge from \"../Badge\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Space from \"../Space\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n /**\n * 是否支持小数,小数保留小数点后两位,默认不支持\n */\n decimal?: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n header?: ReactNode;\n /**\n *\n * @param value 输入值\n * @param recommend 是否是点击推荐金额触发\n * @returns void\n */\n onConfirm?: (value: string, recommend?: boolean) => void;\n recommend?: Array<number | string>;\n tip?: ReactNode;\n disabled?: boolean;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\" | \"close\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst XHAmountKeys: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"00\", value: \"00\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst XHAmountKeysWithDot: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"·\", value: \".\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst AmountKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n className,\n onConfirm,\n recommend = [],\n header,\n disabled = false,\n tip,\n decimal,\n dataTrackId,\n } = props;\n const [input, setInput] = useState(value);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n const handleOnRecommand = (e: ITouchEvent, amount: number | string) => {\n e.stopPropagation();\n onConfirm?.(`${amount}`, true);\n };\n\n const handleKeyPress = useCallback(\n (e, { type, value }: IKey): void => {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (disabled) return;\n if (type === \"none\") return;\n // 第一个字符不能是.\n if (value === \".\" && input === \"\") return;\n if (type === \"close\") {\n handleClose(e);\n return;\n }\n let newInput = input;\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.replace(/^0+/g, \"\").length < maxLength) {\n newInput = input + value;\n }\n // 支持小数点的情况下,如果第一个是0,自动填充.\n if (decimal && value === 0 && input === \"\") newInput = value + \".\";\n\n // 不能包含多个小数点\n if (value === \".\" && input.includes(\".\")) return;\n // 保留两位小数\n if (\n type === \"number\" &&\n input.indexOf(\".\") > -1 &&\n input.length - input.indexOf(\".\") === 3\n )\n return;\n\n // 前后两个值相等就不触发onchange\n if (newInput === input) return;\n setInput(newInput);\n onChange?.(newInput);\n },\n [input, disabled]\n );\n\n const renderKeys = decimal ? XHAmountKeysWithDot : XHAmountKeys;\n\n const handleConfirm = (e: ITouchEvent) => {\n e.stopPropagation();\n onConfirm?.(input);\n };\n const keyboardcls = classNames(\"xh-amount-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-amount-keyboard-header\">\n <View className=\"xh-amount-keyboard-header-wrapper\">\n {header ||\n (recommend.length > 0 && (\n <View className=\"xh-amount-keyboard-header-wrapper-text\">\n 猜您想借{\" \"}\n <Space style={{ marginLeft: pxTransform(24) }}>\n {recommend?.map((amount, index) => (\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-recommend-${index}`}\n key={index}\n onClick={e => handleOnRecommand(e, amount)}\n >\n <Badge content={`¥${amount}`} key={index} />\n </View>\n ))}\n </Space>\n </View>\n ))}\n {tip}\n </View>\n </View>\n <View className=\"xh-amount-keyboard-body\">\n {renderKeys.map((key, index) => (\n <View\n key={index}\n // @ts-ignore\n dataTrackId={`${dataTrackId}-key-${index}`}\n className={classNames(\"xh-amount-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n close: key.type === \"close\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-confirm-fake`}\n className=\"xh-amount-keyboard-body-key confirm-fake\"\n onClick={handleConfirm}\n >\n 确定\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default AmountKeyboard;\n"],"names":["XHAmountKeys","text","value","type","XHAmountKeysWithDot","AmountKeyboard","props","onBlur","show","_a","maxLength","Number","MAX_SAFE_INTEGER","_b","closeOnClickSpace","onClose","onChange","className","onConfirm","_c","recommend","header","_d","disabled","tip","decimal","dataTrackId","_e","__read","useState","input","setInput","handleClose","e","useEffect","document","addEventListener","removeEventListener","handleKeyPress","useCallback","process","env","TARO_ENV","stopImmediatePropagation","newInput","slice","length","replace","includes","indexOf","renderKeys","keyboardcls","classNames","React","createElement","CSSTransition","in","unmountOnExit","timeout","View","Space","style","marginLeft","pxTransform","map","amount","index","concat","key","onClick","stopPropagation","handleOnRecommand","Badge","content","none","delete","close"],"mappings":"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"}
|
|
@@ -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,{dataTrackId: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 // @ts-ignore\n dataTrackId={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","createElement","Button","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,EAAAC,cAACC,GAECnC,YAAaA,EACb7B,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,EAAAC,cAAA,SAAA,CAAA,gBACiBlC,EACf7B,UAAWuC,GACX/C,SAAUA,EACVE,KAAMO,EACNgB,QAASzB,OAAWyE,EAAYb,GAChChC,MAAOA,GAENrB,GAAYI,EACZkB,GAAWyC,EAAAC,cAACG,EAAO,CAAC9C,MAAOE,EAAc6C,MAAO5C,IAGvD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{View as
|
|
1
|
+
import e from"react";import{View as a,Text as l}from"@tarojs/components";import c from"classnames";var t=function(t){var o=t.icon,n=t.value,r=t.extraIcon,i=t.arrow,s=t.border,m=void 0===s||s,d=t.paddingHorizontal,p=void 0===d||d,v=t.onClick,u=t.className,h=t.outline,x=void 0===h||h,E=t.descriptionColor,N=void 0===E?"":E,f=t.valueColor,k=t.ellipsis,I=void 0===k||k,C=t.content,T=t.contentDescription,b=t.description,y=t.subDescription,_=t.secondary,g=t.alignItems,w=void 0===g?o?"start":"center":g,z=t.placeholder,D=void 0===z?"":z,H=t.dataTrackId,j=void 0===H?"Cell":H,q=c("xh-cell",{border:m},{secondary:_},{outline:x},{paddingHorizontal:p},w,u),A=c("xh-cell-main",{ellipsis:I});return e.createElement(a,{className:q,onClick:function(e){v&&v(e)},dataTrackId:"".concat(j,"_wrapper")},o&&e.createElement(a,{className:"xh-cell-icon"},o),e.createElement(a,{className:A,dataTrackId:"".concat(j,"_main")},C&&e.createElement(a,{className:"xh-cell-main-content"},C),T&&e.createElement(a,{className:"xh-cell-main-description"},T)),e.createElement(a,{className:"xh-cell-description",dataTrackId:"".concat(j,"_description"),style:{color:N}},b?e.createElement(a,null,b):e.createElement(a,{className:"xh-cell-description-placeholder"},D),e.createElement(l,{className:"xh-cell-description-sub"},y)),e.createElement(a,{className:"xh-cell-value",dataTrackId:"".concat(j,"_value")},e.createElement(a,{className:"xh-cell-value-info",style:{color:f}},n),e.createElement(a,{className:"xh-cell-value-icon"},r||i&&e.createElement(a,{className:"xh-cell-value-icon-arrow"}))))};export{t as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Cell/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHCellProps = {\n content?: ReactNode;\n contentDescription?: ReactNode;\n description?: ReactNode;\n subDescription?: ReactNode;\n paddingHorizontal?: boolean;\n icon?: ReactNode;\n value?: ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: StandardLonghandProperties[\"color\"];\n valueColor?: StandardLonghandProperties[\"color\"];\n ellipsis?: boolean;\n placeholder?: string;\n alignItems?: \"start\" | \"center\" | \"end\";\n /**\n * @description 是否是次级列表\n */\n secondary?: boolean;\n} & XHComponentCommonProps;\n\nconst XHCell: FC<XHCellProps> = props => {\n const {\n icon,\n value,\n extraIcon,\n arrow,\n border = true,\n paddingHorizontal = true,\n onClick,\n className,\n outline = true,\n descriptionColor = \"\",\n valueColor,\n ellipsis = true,\n content,\n contentDescription,\n description,\n subDescription,\n secondary,\n alignItems = icon ? \"start\" : \"center\",\n placeholder = \"\",\n } = props;\n\n const cellcls = classNames(\n \"xh-cell\",\n { border },\n { secondary },\n { outline },\n { paddingHorizontal },\n alignItems,\n className\n );\n\n const mainCls = classNames(\"xh-cell-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Cell/index.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHCellProps = {\n content?: ReactNode;\n contentDescription?: ReactNode;\n description?: ReactNode;\n subDescription?: ReactNode;\n paddingHorizontal?: boolean;\n icon?: ReactNode;\n value?: ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: StandardLonghandProperties[\"color\"];\n valueColor?: StandardLonghandProperties[\"color\"];\n ellipsis?: boolean;\n placeholder?: string;\n alignItems?: \"start\" | \"center\" | \"end\";\n /**\n * @description 是否是次级列表\n */\n secondary?: boolean;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst XHCell: FC<XHCellProps> = props => {\n const {\n icon,\n value,\n extraIcon,\n arrow,\n border = true,\n paddingHorizontal = true,\n onClick,\n className,\n outline = true,\n descriptionColor = \"\",\n valueColor,\n ellipsis = true,\n content,\n contentDescription,\n description,\n subDescription,\n secondary,\n alignItems = icon ? \"start\" : \"center\",\n placeholder = \"\",\n dataTrackId = \"Cell\",\n } = props;\n\n const cellcls = classNames(\n \"xh-cell\",\n { border },\n { secondary },\n { outline },\n { paddingHorizontal },\n alignItems,\n className\n );\n\n const mainCls = classNames(\"xh-cell-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View\n className={cellcls}\n onClick={handleClick}\n // @ts-ignore\n dataTrackId={`${dataTrackId}_wrapper`}\n >\n {icon && <View className=\"xh-cell-icon\">{icon}</View>}\n <View\n className={mainCls} // @ts-ignore\n dataTrackId={`${dataTrackId}_main`}\n >\n {content && <View className=\"xh-cell-main-content\">{content}</View>}\n {contentDescription && (\n <View className=\"xh-cell-main-description\">{contentDescription}</View>\n )}\n </View>\n <View\n className=\"xh-cell-description\"\n // @ts-ignore\n dataTrackId={`${dataTrackId}_description`}\n style={{ color: descriptionColor }}\n >\n {description ? (\n <View>{description}</View>\n ) : (\n <View className=\"xh-cell-description-placeholder\">{placeholder}</View>\n )}\n <Text className=\"xh-cell-description-sub\">{subDescription}</Text>\n </View>\n <View\n className=\"xh-cell-value\"\n // @ts-ignore\n dataTrackId={`${dataTrackId}_value`}\n >\n <View className=\"xh-cell-value-info\" style={{ color: valueColor }}>\n {value}\n </View>\n <View className=\"xh-cell-value-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-cell-value-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHCell;\n"],"names":["XHCell","props","icon","value","extraIcon","arrow","_a","border","_b","paddingHorizontal","onClick","className","_c","outline","_d","descriptionColor","valueColor","_e","ellipsis","content","contentDescription","description","subDescription","secondary","_f","alignItems","_g","placeholder","_h","dataTrackId","cellcls","classNames","mainCls","React","createElement","View","e","concat","style","color","Text"],"mappings":"mGAiCM,IAAAA,EAA0B,SAAAC,GAE5B,IAAAC,EAoBED,EAAKC,KAnBPC,EAmBEF,EAnBGE,MACLC,EAkBEH,EAlBOG,UACTC,EAiBEJ,EAAKI,MAhBPC,EAgBEL,EAhBWM,OAAbA,OAAM,IAAAD,GAAOA,EACbE,EAeEP,EAfsBQ,kBAAxBA,OAAiB,IAAAD,GAAOA,EACxBE,EAcET,EAAKS,QAbPC,EAaEV,EAbOU,UACTC,EAYEX,EAAKY,QAZPA,OAAU,IAAAD,GAAIA,EACdE,EAWEb,EAAKc,iBAXPA,OAAmB,IAAAD,EAAA,GAAEA,EACrBE,EAUEf,EAVQe,WACVC,EASEhB,EATaiB,SAAfA,OAAW,IAAAD,GAAIA,EACfE,EAQElB,EAAKkB,QAPPC,EAOEnB,EAAKmB,mBANPC,EAMEpB,cALFqB,EAKErB,EALYqB,eACdC,EAIEtB,EAJOsB,UACTC,EAGEvB,EAHoCwB,WAAtCA,OAAU,IAAAD,EAAGtB,EAAO,QAAU,WAC9BwB,EAEEzB,EAAK0B,YAFPA,OAAc,IAAAD,EAAA,KACdE,EACE3B,EAAK4B,YADPA,OAAc,IAAAD,EAAA,SAGVE,EAAUC,EACd,UACA,CAAExB,OAAMA,GACR,CAAEgB,UAASA,GACX,CAAEV,QAAOA,GACT,CAAEJ,kBAAiBA,GACnBgB,EACAd,GAGIqB,EAAUD,EAAW,eAAgB,CACzCb,SAAQA,IAOV,OACEe,EAACC,cAAAC,EACC,CAAAxB,UAAWmB,EACXpB,QAPgB,SAAC0B,GACnB1B,GAAWA,EAAQ0B,EACrB,EAOIP,YAAa,GAAGQ,OAAAR,EAAqB,aAEpC3B,GAAQ+B,gBAACE,EAAI,CAACxB,UAAU,gBAAgBT,GACzC+B,EAACC,cAAAC,EACC,CAAAxB,UAAWqB,EACXH,YAAa,GAAGQ,OAAAR,EAAkB,UAEjCV,GAAWc,gBAACE,EAAI,CAACxB,UAAU,wBAAwBQ,GACnDC,GACCa,EAACC,cAAAC,EAAK,CAAAxB,UAAU,4BAA4BS,IAGhDa,EAAAC,cAACC,EAAI,CACHxB,UAAU,sBAEVkB,YAAa,GAAGQ,OAAAR,EAAyB,gBACzCS,MAAO,CAAEC,MAAOxB,IAEfM,EACCY,gBAACE,EAAI,KAAEd,GAEPY,EAACC,cAAAC,EAAK,CAAAxB,UAAU,mCAAmCgB,GAErDM,EAACC,cAAAM,GAAK7B,UAAU,2BAA2BW,IAE7CW,EAAAC,cAACC,EAAI,CACHxB,UAAU,gBAEVkB,YAAa,GAAGQ,OAAAR,EAAmB,WAEnCI,EAAAC,cAACC,EAAI,CAACxB,UAAU,qBAAqB2B,MAAO,CAAEC,MAAOvB,IAClDb,GAEH8B,EAAAC,cAACC,EAAK,CAAAxB,UAAU,sBACbP,GAEGC,GAAS4B,EAAAC,cAACC,EAAK,CAAAxB,UAAU,+BAKvC"}
|
|
@@ -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 l}from"@tarojs/components";import i from"../src/hooks/useGenerateId.js";import{pxTransform as s}from"../src/utils/index.js";import n from"./Group/index.js";import r from"../Icon/index.js";var d=function(n){var d=n.className,m=n.name,h=n.label,k=n.id,u=n.circle,p=n.onChange,x=n.align,b=n.direction,f=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,T=void 0===F?0:F,C=n.iconColor,I=void 0===C?"#FFFFFF":C,_=n.dataTrackId,z=void 0===_?"Checkbox":_,A=i(k,"xh-checkbox-id"),G=e(c(!1),2),O=G[0],R=G[1];t((function(){R(N)}),[N]);var V=o("xh-checkbox",d,x,b,f,{h5:"h5"===process.env.TARO_ENV});return"h5"!==process.env.TARO_ENV?a.createElement(l,{onClick:function(){E||(R(!O),null==p||p(!O,j))},className:V,style:y,dataTrackId:z},a.createElement(l,{className:o("xh-checkbox-input",{checked:O,disabled:E})}," "),a.createElement("span",{style:T>0?{width:s(T),height:s(T)}:{},dataTrackId:"".concat(z,"-fake"),className:o("xh-checkbox-input-fake",u&&"circle")},a.createElement(r,{icon:"duigou",className:"xh-checkbox-input-fake-icon",color:I,size:T?.55*T:18})),a.createElement("span",{className:"xh-radio-label",dataTrackId:"".concat(z,"-label")},h)):a.createElement("label",{htmlFor:A,className:V,style:y,"data-track-id":z},a.createElement("input",{type:"checkbox",id:A,name:m,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]),p&&p(a,c)},value:j,defaultChecked:N}),a.createElement("span",{style:T>0?{width:s(T),height:s(T)}:{},"data-track-id":"".concat(z,"-fake"),className:o("xh-checkbox-input-fake",u&&"circle")},a.createElement(r,{icon:"duigou",className:"xh-checkbox-input-fake-icon",color:I,size:T?.55*T:18})),a.createElement("span",{className:"xh-checkbox-label","data-track-id":"".concat(z,"-label")},h))};d.Group=n;export{d 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
|
|
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 = \"Checkbox\",\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\n onClick={handleFakeChange}\n className={cls}\n style={style}\n // @ts-ignore\n dataTrackId={dataTrackId}\n >\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 // @ts-ignore\n dataTrackId={`${dataTrackId}-fake`}\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\n className=\"xh-radio-label\"\n // @ts-ignore\n dataTrackId={`${dataTrackId}-label`}\n >\n {label}\n </span>\n </View>\n );\n }\n\n return (\n <label\n htmlFor={finalId}\n className={cls}\n style={style}\n data-track-id={dataTrackId}\n >\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 data-track-id={`${dataTrackId}-fake`}\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\n className=\"xh-checkbox-label\"\n data-track-id={`${dataTrackId}-label`}\n >\n {label}\n </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","_e","dataTrackId","finalId","useGenerateId","_f","__read","useState","innerChecked","setInnerChecked","useEffect","cls","classNames","h5","process","env","TARO_ENV","React","createElement","View","onClick","width","pxTransform","height","concat","Icon","icon","color","htmlFor","type","e","finalchecked","target","detail","length","defaultChecked","Group"],"mappings":"oVA0CA,IA8IMA,EA9IkC,SAAAC,GAEpC,IAAAC,EAgBED,EAAKC,UAfPC,EAeEF,EAfEE,KACJC,EAcEH,QAbFI,EAaEJ,EAAKI,GAZPC,EAYEL,SAXFM,EAWEN,EAAKM,SAVPC,EAUEP,EAAKO,MATPC,EASER,EAAKQ,UARPC,EAQET,EARKS,QACPC,EAOEV,EAPaW,QAAfA,OAAU,IAAAD,KACVE,EAMEZ,EAAKY,SALPC,EAKEb,EAAKc,MALPA,OAAK,IAAAD,EAAG,GAAEA,EACVE,EAIEf,EAJGe,MACLC,EAGEhB,OAHFiB,aAAO,EAACD,EACRE,EAEElB,EAFmBmB,UAArBA,OAAS,IAAAD,EAAG,UAASA,EACrBE,EACEpB,EAAKqB,YADPA,OAAW,IAAAD,EAAG,WAAUA,EAGpBE,EAAUC,EAAcnB,EAAI,kBAC5BoB,EAAAC,EAAkCC,GAAS,GAAM,GAAhDC,EAAYH,EAAA,GAAEI,OAErBC,GAAU,WACRD,EAAgBjB,EAClB,GAAG,CAACA,IAEJ,IAmBMmB,EAAMC,EAAW,cAAe9B,EAAWM,EAAOC,EAAWC,EAAS,CAC1EuB,GAA6B,OAAzBC,QAAQC,IAAIC,WAElB,MAA6B,OAAzBF,QAAQC,IAAIC,SAEZC,EAAAC,cAACC,EAAI,CACHC,QAZmB,WACnB3B,IACJgB,GAAiBD,GACjBrB,SAAAA,GAAYqB,EAAcb,GAC5B,EASMb,UAAW6B,EACXf,MAAOA,EAEPM,YAAaA,GAEbe,EAAAC,cAACC,EACC,CAAArC,UAAW8B,EAAW,oBAAqB,CACzCpB,QAASgB,EACTf,SAAQA,KAGT,KAEHwB,EAAAC,cAAA,OAAA,CACEtB,MACEE,EAAO,EACH,CACEuB,MAAOC,EAAYxB,GACnByB,OAAQD,EAAYxB,IAEtB,CAAE,EAGRI,YAAa,GAAAsB,OAAGtB,EAAW,SAC3BpB,UAAW8B,EAAW,yBAA0B1B,GAAU,WAE1D+B,EAAAC,cAACO,EAAI,CACHC,KAAK,SACL5C,UAAU,8BACV6C,MAAO3B,EACPF,KAAMA,EAAc,IAAPA,EAAc,MAG/BmB,EACEC,cAAA,OAAA,CAAApC,UAAU,iBAEVoB,YAAa,UAAGA,EAAW,WAE1BlB,IAOPiC,EAAAC,cAAA,QAAA,CACEU,QAASzB,EACTrB,UAAW6B,EACXf,MAAOA,kBACQM,GAEfe,EACEC,cAAA,QAAA,CAAAW,KAAK,WACL5C,GAAIkB,EACJpB,KAAMA,EACND,UAAU,oBACVK,SAlFiB,SAAA2C,GACrB,IAAIC,EAAevC,IAAW,EAC1BG,EAAQ,GACiB,OAAzBmB,QAAQC,IAAIC,UACde,EAAeD,EAAEE,OAAOxC,QACxBG,EAAQmC,EAAEE,OAAOrC,QAEjBoC,EAAeD,EAAEG,OAAOtC,MAAMuC,OAAS,EACvCvC,EAAQmC,EAAEG,OAAOtC,MAAM,IAEzBR,GAAYA,EAAS4C,EAAcpC,EACrC,EAwEMA,MAAOA,EACPwC,eAAgB3C,IAElByB,EAAAC,cAAA,OAAA,CACEtB,MACEE,EAAO,EACH,CACEuB,MAAOC,EAAYxB,GACnByB,OAAQD,EAAYxB,IAEtB,CAAA,EAAE,gBAEO,GAAG0B,OAAAtB,WAClBpB,UAAW8B,EAAW,yBAA0B1B,GAAU,WAE1D+B,EAAAC,cAACO,EAAI,CACHC,KAAK,SACL5C,UAAU,8BACV6C,MAAO3B,EACPF,KAAMA,EAAc,IAAPA,EAAc,MAG/BmB,EAAAC,cAAA,OAAA,CACEpC,UAAU,oBAAmB,gBACd,GAAG0C,OAAAtB,EAAmB,WAEpClB,GAIT,EAGAJ,EAASwD,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,c=l.onChange,i=l.defaultValue,s=void 0===i?"":i,m=l.label,d=l.fill,b=void 0!==d&&d,p=l.className,u=l.style,f=l.border,h=void 0===f||f,x=l.paddingHorizontal,k=void 0===x||x,v=l.dataTrackId,g=e(o("string"==typeof s?s:s.value),2),y=g[0],N=g[1];return t.createElement(n,{dataTrackId:v,className:a("xh-checkbox-button",p,{border:h,paddingHorizontal:k}),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,dataTrackId:v+"-"+o,className:a("xh-checkbox-button-options-item",{active:"string"==typeof e?e===y:e.value===y,fill:b}),onClick:function(){!function(e){N("string"==typeof e?e:e.value),c(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","
|
|
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 // @ts-ignore\n dataTrackId={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 // @ts-ignore\n dataTrackId={dataTrackId + \"-\" + 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","View","classNames","createElement","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,gBAACC,GAECR,YAAaA,EACbN,UAAWe,EAAW,qBAAsBf,EAAW,CACrDG,OAAMA,EACNE,kBAAiBA,IAEnBJ,MAAOA,GAENJ,GAASgB,gBAACC,EAAI,CAACd,UAAU,4BAA4BH,GACtDgB,EAAAG,cAACF,EAAI,CAACd,UAAU,8BACbP,EAAOwB,KAAI,SAACC,EAAMC,GACjB,OACEN,EAACG,cAAAF,EACC,CAAAM,IAAKD,EAELb,YAAaA,EAAc,IAAMa,EACjCnB,UAAWe,EAAW,kCAAmC,CACvDM,OACkB,iBAATH,EACHA,IAASP,EACTO,EAAKR,QAAUC,EACrBZ,KAAIA,IAENuB,QAAS,YA9BD,SAACJ,GACnBN,EAAiC,iBAATM,EAAoBA,EAAOA,EAAKR,OACxDhB,EAASwB,EACX,CA4BcK,CAAYL,KAGdL,EAAGG,cAAA,IAAA,CAAAhB,UAAU,yCACM,iBAATkB,EAAoBA,EAAOA,EAAKrB,OAI/C,KAIT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__read as
|
|
1
|
+
import{__rest as e,__read as r,__assign as a}from"../node_modules/tslib/tslib.es6.js";import o,{useRef as t,useState as l,useMemo as n}from"react";import s from"../List/index.js";import{View as c}from"@tarojs/components";import m from"classnames";var i=function(i){var d=i.summary,u=void 0===d?"":d,p=i.children,h=i.open,v=void 0!==h&&h;i.arrow;var f=i.className,y=i.style,T=i.onToggle,g=i.dataTrackId,N=void 0===g?"collapse":g,k=e(i,["summary","children","open","arrow","className","style","onToggle","dataTrackId"]),x=t(null),E=r(l(v),2),I=E[0],b=E[1],w=n((function(){var e,r,a={height:0};return I&&(a.height="h5"===process.env.TARO_ENV?"".concat(null===(e=x.current)||void 0===e?void 0:e.scrollHeight,"px"):"auto"),"h5"===process.env.TARO_ENV&&I&&(null===(r=x.current)||void 0===r||r.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})),null==T||T(I),a}),[I]);return o.createElement(c,{className:m("xh-collapse",f),style:y,dataTrackId:N},o.createElement(c,{dataTrackId:"".concat(N,"-summary"),className:m("xh-collapse-summary",{open:I}),onClick:function(){b((function(e){return!e}))}},u||o.createElement(s,a({},k,{arrow:!0}))),o.createElement(c,{className:m("xh-collapse-detail"),ref:x,style:w},p))};export{i as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Collapse/index.tsx"],"sourcesContent":["import React, { ReactNode, useMemo, useRef, useState } from \"react\";\nimport List from \"@/components/List\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport type { XHListProps } from \"../List\";\n\nimport \"./index.scss\";\n\nexport type CollapseProps = {\n summary?: string | ReactNode;\n open?: boolean;\n style?: React.CSSProperties;\n onToggle?: (open: boolean) => void;\n} & XHListProps;\n\nconst Collapse: React.FC<CollapseProps> = props => {\n const {\n summary = \"\",\n children,\n open = false,\n arrow,\n className,\n style,\n onToggle,\n ...rest\n } = props;\n const detailRef = useRef<HTMLDivElement>(null);\n const [innerOpen, setInneropen] = useState(open);\n const handleOnchange = () => {\n setInneropen(old => !old);\n };\n\n const detailStyle = useMemo(() => {\n const style: React.CSSProperties = { height: 0 };\n if (innerOpen)\n style.height =\n process.env.TARO_ENV === \"h5\"\n ? `${detailRef.current?.scrollHeight}px`\n : \"auto\";\n process.env.TARO_ENV === \"h5\" &&\n innerOpen &&\n detailRef.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n inline: \"nearest\",\n });\n onToggle?.(innerOpen);\n return style;\n }, [innerOpen]);\n\n return (\n <View
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Collapse/index.tsx"],"sourcesContent":["import React, { ReactNode, useMemo, useRef, useState } from \"react\";\nimport List from \"@/components/List\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport type { XHListProps } from \"../List\";\n\nimport \"./index.scss\";\n\nexport type CollapseProps = {\n summary?: string | ReactNode;\n open?: boolean;\n style?: React.CSSProperties;\n onToggle?: (open: boolean) => void;\n dataTrackId?: string;\n} & XHListProps;\n\nconst Collapse: React.FC<CollapseProps> = props => {\n const {\n summary = \"\",\n children,\n open = false,\n arrow,\n className,\n style,\n onToggle,\n dataTrackId = \"collapse\",\n ...rest\n } = props;\n const detailRef = useRef<HTMLDivElement>(null);\n const [innerOpen, setInneropen] = useState(open);\n const handleOnchange = () => {\n setInneropen(old => !old);\n };\n\n const detailStyle = useMemo(() => {\n const style: React.CSSProperties = { height: 0 };\n if (innerOpen)\n style.height =\n process.env.TARO_ENV === \"h5\"\n ? `${detailRef.current?.scrollHeight}px`\n : \"auto\";\n process.env.TARO_ENV === \"h5\" &&\n innerOpen &&\n detailRef.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n inline: \"nearest\",\n });\n onToggle?.(innerOpen);\n return style;\n }, [innerOpen]);\n\n return (\n <View\n className={classNames(\"xh-collapse\", className)}\n style={style}\n // @ts-ignore\n dataTrackId={dataTrackId}\n >\n <View\n // @ts-ignore\n dataTrackId={`${dataTrackId}-summary`}\n className={classNames(\"xh-collapse-summary\", { open: innerOpen })}\n onClick={handleOnchange}\n >\n {summary || <List {...rest} arrow />}\n </View>\n <View\n className={classNames(\"xh-collapse-detail\")}\n ref={detailRef}\n style={detailStyle}\n >\n {children}\n </View>\n </View>\n );\n};\n\nexport default Collapse;\n"],"names":["Collapse","props","_a","summary","children","_b","open","arrow","className","style","onToggle","_c","dataTrackId","rest","__rest","detailRef","useRef","_d","__read","useState","innerOpen","setInneropen","detailStyle","useMemo","height","process","env","TARO_ENV","current","scrollHeight","scrollIntoView","behavior","block","inline","React","createElement","View","classNames","concat","onClick","old","List","__assign","ref"],"mappings":"uPAgBM,IAAAA,EAAoC,SAAAC,GAEtC,IAAAC,EASED,EAAKE,QATPA,OAAU,IAAAD,EAAA,GAAEA,EACZE,EAQEH,EAAKG,SAPPC,EAOEJ,EAAKK,KAPPA,OAAO,IAAAD,GAAKA,EAOVJ,EAAKM,MALP,IAAAC,EAKEP,EAAKO,UAJPC,EAIER,EAJGQ,MACLC,EAGET,EAAKS,SAFPC,EAEEV,EAAKW,YAFPA,OAAc,IAAAD,EAAA,WAAUA,EACrBE,EAAIC,EACLb,EAVE,CAUL,UAAA,WAAA,OAAA,QAAA,YAAA,QAAA,WAAA,gBACKc,EAAYC,EAAuB,MACnCC,EAAAC,EAA4BC,EAASb,GAAK,GAAzCc,EAASH,EAAA,GAAEI,OAKZC,EAAcC,GAAQ,mBACpBd,EAA6B,CAAEe,OAAQ,GAc7C,OAbIJ,IACFX,EAAMe,OACqB,OAAzBC,QAAQC,IAAIC,SACR,UAAoB,QAAjBzB,EAAAa,EAAUa,eAAO,IAAA1B,OAAA,EAAAA,EAAE2B,aAAgB,MACtC,QACiB,OAAzBJ,QAAQC,IAAIC,UACVP,IACiB,QAAjBf,EAAAU,EAAUa,eAAO,IAAAvB,GAAAA,EAAEyB,eAAe,CAChCC,SAAU,SACVC,MAAO,MACPC,OAAQ,aAEZvB,SAAAA,EAAWU,GACJX,CACT,GAAG,CAACW,IAEJ,OACEc,EAAAC,cAACC,EAAI,CACH5B,UAAW6B,EAAW,cAAe7B,GACrCC,MAAOA,EAEPG,YAAaA,GAEbsB,EAAAC,cAACC,GAECxB,YAAa,GAAA0B,OAAG1B,EAAW,YAC3BJ,UAAW6B,EAAW,sBAAuB,CAAE/B,KAAMc,IACrDmB,QAjCiB,WACrBlB,GAAa,SAAAmB,GAAO,OAACA,CAAG,GAC1B,GAiCOrC,GAAW+B,EAACC,cAAAM,EAASC,EAAA,CAAA,EAAA7B,EAAM,CAAAN,aAE9B2B,EAACC,cAAAC,GACC5B,UAAW6B,EAAW,sBACtBM,IAAK5B,EACLN,MAAOa,GAENlB,GAIT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as
|
|
1
|
+
import{__rest as t,__assign as e}from"../../node_modules/tslib/tslib.es6.js";import o,{createRef as n}from"react";import r from"react-dom";import{showModal as i}from"@tarojs/taro";import m from"../../DialogComponent/index.js";import c from"../../Button/index.js";var a=function(a){var f=a.title,l=void 0===f?"":f,s=a.content,d=a.confirmText,u=void 0===d?"知道了":d,p=t(a,["title","content","confirmText"]);return new Promise((function(t){if("h5"===process.env.TARO_ENV){var a=document.createElement("div"),f=n(),d=o.createElement(c,{ghost:!0,type:"default",shape:"rectangle",className:"xh-alert-button",dataTrackId:"xh-confirm-footer-confirm-button",onClick:function(){r.unmountComponentAtNode(a),t()}},u);r.render(o.createElement(m,e({header:l,footer:d,content:s,visible:!0,ref:f},p)),a)}else i(e({title:l,content:s,showCancel:!1,confirmColor:"#fe5e00",confirmText:u},p)).then((function(){return t()}))}))};export{a as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Dialog/Alert/index.tsx"],"sourcesContent":["import React, { createRef, ReactNode } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport Dialog, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../../../src/components/Button\";\nimport { XHComponentCommonProps } from \"../../../types\";\n\nexport type AlertProps = {\n title?: string | ReactNode;\n content?: string | ReactNode;\n confirmText?: string | ReactNode;\n} & {\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: () => void;\n /** 提示的标题 */\n title?: string;\n} & XHComponentCommonProps;\n\nconst Alert = (props: AlertProps): Promise<void> => {\n const { title = \"\", content, confirmText = \"知道了\", ...rest } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-alert-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve();\n }}\n >\n {confirmText}\n </Button>\n );\n ReactDOM.render(\n <Dialog\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n {...rest}\n />,\n div\n );\n } else {\n showModal({\n title: title as string,\n content: content as string,\n showCancel: false,\n confirmColor: \"#fe5e00\",\n confirmText: confirmText as string,\n ...rest,\n }).then(() => resolve());\n }\n });\n};\n\nexport default Alert;\n"],"names":["Alert","props","_a","title","content","_b","confirmText","rest","__rest","Promise","resolve","process","env","TARO_ENV","div_1","document","createElement","dialogRef","createRef","alertFooter","React","Button","ghost","type","shape","className","onClick","ReactDOM","unmountComponentAtNode","render","Dialog","__assign","header","footer","visible","ref","showModal","showCancel","confirmColor","then"],"mappings":"uQA8BM,IAAAA,EAAQ,SAACC,GACL,IAAAC,EAAsDD,EAA5CE,MAAVA,OAAK,IAAAD,EAAG,GAAEA,EAAEE,EAA0CH,EAAnCG,QAAEC,EAAiCJ,EAAdK,YAAnBA,OAAW,IAAAD,EAAG,MAAKA,EAAKE,EAASC,EAAAP,EAAxD,CAAA,QAAA,UAAA,gBACN,OAAO,IAAIQ,SAAQ,SAAAC,GACjB,GAA6B,OAAzBC,QAAQC,IAAIC,SAAmB,CACjC,IAAMC,EAAMC,SAASC,cAAc,OAC7BC,EAAYC,IACZC,EACJC,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Dialog/Alert/index.tsx"],"sourcesContent":["import React, { createRef, ReactNode } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport Dialog, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../../../src/components/Button\";\nimport { XHComponentCommonProps } from \"../../../types\";\n\nexport type AlertProps = {\n title?: string | ReactNode;\n content?: string | ReactNode;\n confirmText?: string | ReactNode;\n} & {\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: () => void;\n /** 提示的标题 */\n title?: string;\n} & XHComponentCommonProps;\n\nconst Alert = (props: AlertProps): Promise<void> => {\n const { title = \"\", content, confirmText = \"知道了\", ...rest } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-alert-button\"\n dataTrackId=\"xh-confirm-footer-confirm-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve();\n }}\n >\n {confirmText}\n </Button>\n );\n ReactDOM.render(\n <Dialog\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n {...rest}\n />,\n div\n );\n } else {\n showModal({\n title: title as string,\n content: content as string,\n showCancel: false,\n confirmColor: \"#fe5e00\",\n confirmText: confirmText as string,\n ...rest,\n }).then(() => resolve());\n }\n });\n};\n\nexport default Alert;\n"],"names":["Alert","props","_a","title","content","_b","confirmText","rest","__rest","Promise","resolve","process","env","TARO_ENV","div_1","document","createElement","dialogRef","createRef","alertFooter","React","Button","ghost","type","shape","className","dataTrackId","onClick","ReactDOM","unmountComponentAtNode","render","Dialog","__assign","header","footer","visible","ref","showModal","showCancel","confirmColor","then"],"mappings":"uQA8BM,IAAAA,EAAQ,SAACC,GACL,IAAAC,EAAsDD,EAA5CE,MAAVA,OAAK,IAAAD,EAAG,GAAEA,EAAEE,EAA0CH,EAAnCG,QAAEC,EAAiCJ,EAAdK,YAAnBA,OAAW,IAAAD,EAAG,MAAKA,EAAKE,EAASC,EAAAP,EAAxD,CAAA,QAAA,UAAA,gBACN,OAAO,IAAIQ,SAAQ,SAAAC,GACjB,GAA6B,OAAzBC,QAAQC,IAAIC,SAAmB,CACjC,IAAMC,EAAMC,SAASC,cAAc,OAC7BC,EAAYC,IACZC,EACJC,EAACJ,cAAAK,GACCC,OAAK,EACLC,KAAK,UACLC,MAAM,YACNC,UAAU,kBACVC,YAAY,mCACZC,QAAS,WACPC,EAASC,uBAAuBf,GAChCJ,GACF,GAECJ,GAGLsB,EAASE,OACPV,EAAAJ,cAACe,EAAMC,EAAA,CACLC,OAAQ9B,EACR+B,OAAQf,EACRf,QAASA,EACT+B,SAAO,EACPC,IAAKnB,GACDV,IAENO,EAEH,MACCuB,EACEL,EAAA,CAAA7B,MAAOA,EACPC,QAASA,EACTkC,YAAY,EACZC,aAAc,UACdjC,YAAaA,GACVC,IACFiC,MAAK,WAAM,OAAA9B,GAAA,GAElB,GACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__assign as o}from"../../node_modules/tslib/tslib.es6.js";import t,{createRef as n}from"react";import r from"react-dom";import{showModal as c}from"@tarojs/taro";import i from"../../DialogComponent/index.js";import m from"../../Button/index.js";var a=function(a){var f=a.title,l=void 0===f?"":f,s=a.content,
|
|
1
|
+
import{__rest as e,__assign as o}from"../../node_modules/tslib/tslib.es6.js";import t,{createRef as n}from"react";import r from"react-dom";import{showModal as c}from"@tarojs/taro";import i from"../../DialogComponent/index.js";import m from"../../Button/index.js";var a=function(a){var f=a.title,l=void 0===f?"":f,s=a.content,d=a.confirmText,u=void 0===d?"确定":d,p=a.cancelText,x=void 0===p?"取消":p,h=e(a,["title","content","confirmText","cancelText"]);return new Promise((function(e){if("h5"===process.env.TARO_ENV){var a=document.createElement("div"),f=n(),d=t.createElement("div",{className:"xh-confirm-footer"},t.createElement(m,{ghost:!0,type:"default",shape:"rectangle",className:"xh-confirm-footer-button xh-confirm-footer-cancel-button",dataTrackId:"xh-confirm-footer-cancel-button",onClick:function(){r.unmountComponentAtNode(a),e({errMsg:"ok",confirm:!1,cancel:!0})}},x),t.createElement(m,{ghost:!0,type:"primary",shape:"rectangle",className:"xh-confirm-footer-button xh-confirm-footer-confirm-button",dataTrackId:"xh-confirm-footer-confirm-button",onClick:function(){r.unmountComponentAtNode(a),e({errMsg:"ok",confirm:!0,cancel:!1})}},u));r.render(t.createElement(i,o({header:l,footer:d,content:s,visible:!0,ref:f},h)),a)}else c(o({title:l,content:s,confirmColor:"#fe5e00",cancelText:x,cancelColor:"#666",confirmText:u},h)).then(e)}))};export{a as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|