@mijadesign/mjui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
195 lines (194 loc) • 4.94 kB
JavaScript
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
};