UNPKG

@mijadesign/mjui-react-taro

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

195 lines (194 loc) 4.94 kB
import { _ as __rest } from "./tslib.es6-iWu3F_1J.js"; import React, { forwardRef, useState } from "react"; import classNames from "classnames"; /* empty css */ import { Input as Input$1 } from "@nutui/nutui-react-taro"; const n = { size: "", classPrefix: "icon", fontClassName: "iconfont", color: "", tag: "i", onClick: (e) => { }, className: "" }; function h(e) { return e === "" ? "" : Number.isNaN(Number(e)) ? String(e) : `${e}px`; } function c$2(e) { const l = "failure-fill", { size: i2, classPrefix: r, color: f, tag: m, children: u, className: p, fontClassName: N, style: d, logValue: o, onClick: s, ...k } = { ...n, ...e }, C = (g) => { s && s(g); }, t = {}, a2 = h(i2); return a2 && (t.fontSize = a2), React.createElement( m, { className: classNames(`${N} ${r}-${l} ${p || ""}`, { "auto-track": !!o }), style: { color: f, ...t, ...d }, ...k, onClick: C, "data-log-name": o }, u ); } c$2.defaultProps = n; c$2.displayName = "FiresoonMobileIcon-failure-fill"; const i = { size: "", classPrefix: "icon", fontClassName: "iconfont", color: "", tag: "i", onClick: (e) => { }, className: "" }; function $$1(e) { return e === "" ? "" : Number.isNaN(Number(e)) ? String(e) : `${e}px`; } function c$1(e) { const a2 = "invisible", { size: l, classPrefix: r, color: f, tag: m, children: p, className: N, fontClassName: u, style: d, logValue: o, onClick: s, ...k } = { ...i, ...e }, C = (b) => { s && s(b); }, n2 = {}, t = $$1(l); return t && (n2.fontSize = t), React.createElement( m, { className: classNames(`${u} ${r}-${a2} ${N || ""}`, { "auto-track": !!o }), style: { color: f, ...n2, ...d }, ...k, onClick: C, "data-log-name": o }, p ); } c$1.defaultProps = i; c$1.displayName = "FiresoonMobileIcon-invisible"; const c = { size: "", classPrefix: "icon", fontClassName: "iconfont", color: "", tag: "i", onClick: (e) => { }, className: "" }; function $(e) { return e === "" ? "" : Number.isNaN(Number(e)) ? String(e) : `${e}px`; } function a(e) { const i2 = "visible", { size: l, classPrefix: r, color: f, tag: m, children: p, className: N, fontClassName: u, style: d, logValue: o, onClick: s, ...k } = { ...c, ...e }, C = (b) => { s && s(b); }, t = {}, n2 = $(l); return n2 && (t.fontSize = n2), React.createElement( m, { className: classNames(`${u} ${r}-${i2} ${N || ""}`, { "auto-track": !!o }), style: { color: f, ...t, ...d }, ...k, onClick: C, "data-log-name": o }, p ); } a.defaultProps = c; a.displayName = "FiresoonMobileIcon-visible"; const mjPrefix = "mj-input"; const Input = forwardRef((props, ref) => { const { className, underLine = false, clearIcon, showPassword = true, type = "text", extra = null, onChange, showMaxCount, maxLength, disabled } = props, rest = __rest(props, ["className", "underLine", "clearIcon", "showPassword", "type", "extra", "onChange", "showMaxCount", "maxLength", "disabled"]); const [selfValue, setSelfValue] = useState(rest === null || rest === void 0 ? void 0 : rest.value); const [selfType, setSelfType] = useState(type); const handleChange = (val) => { onChange === null || onChange === void 0 ? void 0 : onChange(val); if (!Object.keys(rest).includes("value")) { setSelfValue(val); } }; return React.createElement( "div", { className: classNames(`${mjPrefix}-container`, { [`${mjPrefix}-underline`]: underLine, [`${mjPrefix}-disabled`]: !!disabled }) }, React.createElement(Input$1, Object.assign({ ref, className: classNames(mjPrefix, className), clearIcon: clearIcon || React.createElement(c$2, { className: `${mjPrefix}-clearicon` }), type: selfType, onChange: handleChange, maxLength, disabled }, rest)), showMaxCount && !!maxLength && React.createElement("div", { className: `${mjPrefix}-max-count` }, `${(selfValue === null || selfValue === void 0 ? void 0 : selfValue.length) || 0}/${maxLength}`), showPassword && type === "password" && (selfType === "text" ? React.createElement( "div", { onClick: () => { setSelfType("password"); } }, React.createElement(a, { className: `${mjPrefix}-password` }) ) : React.createElement( "div", { onClick: () => { setSelfType("text"); } }, React.createElement(c$1, { className: `${mjPrefix}-password`, onClick: () => setSelfType("password") }) )), !!extra && React.createElement("div", { className: `${mjPrefix}-extra` }, extra) ); }); Input.displayName = "MjInput"; export { Input as I };