@kingteza/crud-component 1.36.1 → 1.38.0
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/common/text-field/NumberField.cjs.js +1 -1
- package/dist/common/text-field/NumberField.d.ts +1 -1
- package/dist/common/text-field/NumberField.es.js +112 -66
- package/dist/common/text-field/TextField.cjs.js +1 -1
- package/dist/common/text-field/TextField.d.ts +1 -0
- package/dist/common/text-field/TextField.es.js +58 -55
- package/dist/context/CrudSearchContext.cjs.js +1 -0
- package/dist/context/CrudSearchContext.d.ts +12 -0
- package/dist/context/CrudSearchContext.es.js +14 -0
- package/dist/crud/CrudField.cjs.js +1 -1
- package/dist/crud/CrudField.d.ts +2 -1
- package/dist/crud/CrudField.es.js +436 -404
- package/dist/crud/CrudSearchComponent.cjs.js +1 -1
- package/dist/crud/CrudSearchComponent.d.ts +17 -0
- package/dist/crud/CrudSearchComponent.es.js +45 -44
- package/dist/crud/CrudTextAreaComponent.cjs.js +1 -1
- package/dist/crud/CrudTextAreaComponent.es.js +39 -38
- package/dist/locale/translations/en.cjs.js +1 -1
- package/dist/locale/translations/en.d.ts +1 -0
- package/dist/locale/translations/en.es.js +2 -1
- package/dist/util/NumberUtil.cjs.js +1 -1
- package/dist/util/NumberUtil.d.ts +1 -1
- package/dist/util/NumberUtil.es.js +4 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const f=require("react/jsx-runtime"),N=require("antd"),i=require("react"),F=require("../../locale/index.cjs.js"),G=require("../tooltip/TooltipComponent.cjs.js"),H=require("./TextField.cjs.js"),R=/\D/g,v=/\B(?=(\d{3})+(?!\d))/g,U=/\$\s?|(,*)/g,V=new Set(["e","E","."]);function z(e,t,s){return`${e??t??""} ${s}`.trim()}function J(e){if(e==null)return"";const t=String(e);if(!t.includes("."))return t.replace(v,",");const[s,...o]=t.split(".");return[s.replace(v,","),...o].join(".")}function Q(e){return(e==null?void 0:e.replace(U,""))??""}function W(e,t){return e==null?"":String(e).replace(t,"")}function X(e,t){return e==null?"":e.replace(t,"")}const Z=i.forwardRef(function({type:t,required:s,label:o,rules:p=[],placeholder:l,onEnter:m,form:g,nextFocus:E,min:T,moneyField:u,addonAfter:_,minLength:b,defaultValue:h,pattern:w,disabled:M,readOnly:P,onChange:S,value:q,max:y,addonBefore:D,size:L,isInt:n=!1,tooltip:C,help:I,...O},j){const{t:d}=F.useTranslationLib(),c=T===null,a=n&&!c,A=l??o,k=i.useMemo(()=>{const r=[...p,{required:s,message:z(o,l,d("err.validation.required"))}];return n&&r.push({type:"number",validator:async(ee,x)=>{if(!(x==null||Number.isInteger(x)))throw new Error(d("err.validation.integer"))}}),r},[p,o,l,d,s,n]),K=i.useMemo(()=>{if(u)return J;if(a)return r=>W(r,R)},[u,a]),$=i.useMemo(()=>{if(u)return Q;if(a)return r=>X(r,R)},[u,a]),B=i.useCallback(r=>H.onEnterInternalTextField(r,E,g,m),[E,g,m]),Y=i.useCallback(r=>{if(!c&&r.key==="-"){r.preventDefault();return}V.has(r.key)&&r.preventDefault()},[c]);return f.jsx(G,{title:C,children:f.jsx(N.Form.Item,{...O,label:o,rules:k,help:I,children:f.jsx(N.InputNumber,{ref:j,disabled:M,defaultValue:h,value:q,readOnly:P,addonBefore:D,minLength:b,addonAfter:_,step:n?1:void 0,inputMode:n?"numeric":void 0,pattern:n?c?"-?[0-9]*":"[0-9]*":w,precision:n?0:void 0,onChange:S,onPressEnter:B,className:"max-width",min:c?void 0:T??0,max:y,type:u?void 0:"number",size:L,formatter:K,parser:$,onKeyDown:n?Y:void 0,placeholder:A})})})});module.exports=Z;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { TextFieldProps } from './TextField';
|
|
3
|
-
interface NumberTextFieldProps extends TextFieldProps {
|
|
3
|
+
export interface NumberTextFieldProps extends TextFieldProps {
|
|
4
4
|
moneyField?: boolean;
|
|
5
5
|
addonAfter?: ReactNode;
|
|
6
6
|
minLength?: number;
|
|
@@ -1,82 +1,128 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { Form as
|
|
3
|
-
import { forwardRef as
|
|
4
|
-
import { useTranslationLib as
|
|
5
|
-
import
|
|
6
|
-
import { onEnterInternalTextField as
|
|
7
|
-
const Q =
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { Form as G, InputNumber as H } from "antd";
|
|
3
|
+
import { forwardRef as U, useMemo as p, useCallback as v } from "react";
|
|
4
|
+
import { useTranslationLib as V } from "../../locale/index.es.js";
|
|
5
|
+
import z from "../tooltip/TooltipComponent.es.js";
|
|
6
|
+
import { onEnterInternalTextField as F } from "./TextField.es.js";
|
|
7
|
+
const _ = /\D/g, h = /\B(?=(\d{3})+(?!\d))/g, J = /\$\s?|(,*)/g, Q = /* @__PURE__ */ new Set(["e", "E", "."]);
|
|
8
|
+
function W(r, e, i) {
|
|
9
|
+
return `${r ?? e ?? ""} ${i}`.trim();
|
|
10
|
+
}
|
|
11
|
+
function X(r) {
|
|
12
|
+
if (r == null) return "";
|
|
13
|
+
const e = String(r);
|
|
14
|
+
if (!e.includes("."))
|
|
15
|
+
return e.replace(h, ",");
|
|
16
|
+
const [i, ...o] = e.split(".");
|
|
17
|
+
return [i.replace(h, ","), ...o].join(".");
|
|
18
|
+
}
|
|
19
|
+
function Z(r) {
|
|
20
|
+
return (r == null ? void 0 : r.replace(J, "")) ?? "";
|
|
21
|
+
}
|
|
22
|
+
function rr(r, e) {
|
|
23
|
+
return r == null ? "" : String(r).replace(e, "");
|
|
24
|
+
}
|
|
25
|
+
function tr(r, e) {
|
|
26
|
+
return r == null ? "" : r.replace(e, "");
|
|
27
|
+
}
|
|
28
|
+
const ar = U(
|
|
8
29
|
function({
|
|
9
|
-
type:
|
|
10
|
-
required:
|
|
11
|
-
label:
|
|
30
|
+
type: e,
|
|
31
|
+
required: i,
|
|
32
|
+
label: o,
|
|
12
33
|
rules: m = [],
|
|
13
|
-
placeholder:
|
|
14
|
-
onEnter:
|
|
15
|
-
form:
|
|
16
|
-
nextFocus:
|
|
17
|
-
min:
|
|
18
|
-
moneyField:
|
|
19
|
-
addonAfter:
|
|
20
|
-
minLength:
|
|
21
|
-
defaultValue:
|
|
22
|
-
pattern:
|
|
23
|
-
disabled:
|
|
24
|
-
readOnly:
|
|
25
|
-
onChange:
|
|
26
|
-
value:
|
|
27
|
-
max:
|
|
28
|
-
addonBefore:
|
|
29
|
-
size:
|
|
30
|
-
isInt:
|
|
31
|
-
tooltip:
|
|
34
|
+
placeholder: a,
|
|
35
|
+
onEnter: d,
|
|
36
|
+
form: g,
|
|
37
|
+
nextFocus: E,
|
|
38
|
+
min: N,
|
|
39
|
+
moneyField: s,
|
|
40
|
+
addonAfter: w,
|
|
41
|
+
minLength: P,
|
|
42
|
+
defaultValue: R,
|
|
43
|
+
pattern: S,
|
|
44
|
+
disabled: b,
|
|
45
|
+
readOnly: y,
|
|
46
|
+
onChange: D,
|
|
47
|
+
value: L,
|
|
48
|
+
max: I,
|
|
49
|
+
addonBefore: M,
|
|
50
|
+
size: O,
|
|
51
|
+
isInt: n = !1,
|
|
52
|
+
tooltip: x,
|
|
32
53
|
help: A,
|
|
33
54
|
...C
|
|
34
|
-
},
|
|
35
|
-
const { t: f } =
|
|
36
|
-
|
|
55
|
+
}, K) {
|
|
56
|
+
const { t: f } = V(), u = N === null, c = n && !u, k = a ?? o, $ = p(() => {
|
|
57
|
+
const t = [
|
|
37
58
|
...m,
|
|
38
59
|
{
|
|
39
|
-
required:
|
|
40
|
-
message:
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
required: i,
|
|
61
|
+
message: W(
|
|
62
|
+
o,
|
|
63
|
+
a,
|
|
64
|
+
f("err.validation.required")
|
|
65
|
+
)
|
|
43
66
|
}
|
|
44
|
-
]
|
|
45
|
-
|
|
67
|
+
];
|
|
68
|
+
return n && t.push({
|
|
69
|
+
type: "number",
|
|
70
|
+
validator: async (er, T) => {
|
|
71
|
+
if (!(T == null || Number.isInteger(T)))
|
|
72
|
+
throw new Error(f("err.validation.integer"));
|
|
73
|
+
}
|
|
74
|
+
}), t;
|
|
75
|
+
}, [m, o, a, f, i, n]), j = p(() => {
|
|
76
|
+
if (s) return X;
|
|
77
|
+
if (c)
|
|
78
|
+
return (t) => rr(t, _);
|
|
79
|
+
}, [s, c]), B = p(() => {
|
|
80
|
+
if (s) return Z;
|
|
81
|
+
if (c)
|
|
82
|
+
return (t) => tr(t, _);
|
|
83
|
+
}, [s, c]), Y = v(
|
|
84
|
+
(t) => F(t, E, g, d),
|
|
85
|
+
[E, g, d]
|
|
86
|
+
), q = v(
|
|
87
|
+
(t) => {
|
|
88
|
+
if (!u && t.key === "-") {
|
|
89
|
+
t.preventDefault();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
Q.has(t.key) && t.preventDefault();
|
|
93
|
+
},
|
|
94
|
+
[u]
|
|
46
95
|
);
|
|
47
|
-
return /* @__PURE__ */
|
|
48
|
-
|
|
96
|
+
return /* @__PURE__ */ l(z, { title: x, children: /* @__PURE__ */ l(G.Item, { ...C, label: o, rules: $, help: A, children: /* @__PURE__ */ l(
|
|
97
|
+
H,
|
|
49
98
|
{
|
|
50
|
-
ref:
|
|
51
|
-
disabled:
|
|
52
|
-
defaultValue:
|
|
53
|
-
value:
|
|
54
|
-
readOnly:
|
|
55
|
-
addonBefore:
|
|
56
|
-
minLength:
|
|
57
|
-
addonAfter:
|
|
58
|
-
step:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
99
|
+
ref: K,
|
|
100
|
+
disabled: b,
|
|
101
|
+
defaultValue: R,
|
|
102
|
+
value: L,
|
|
103
|
+
readOnly: y,
|
|
104
|
+
addonBefore: M,
|
|
105
|
+
minLength: P,
|
|
106
|
+
addonAfter: w,
|
|
107
|
+
step: n ? 1 : void 0,
|
|
108
|
+
inputMode: n ? "numeric" : void 0,
|
|
109
|
+
pattern: n ? u ? "-?[0-9]*" : "[0-9]*" : S,
|
|
110
|
+
precision: n ? 0 : void 0,
|
|
111
|
+
onChange: D,
|
|
112
|
+
onPressEnter: Y,
|
|
62
113
|
className: "max-width",
|
|
63
|
-
min:
|
|
64
|
-
max:
|
|
65
|
-
type:
|
|
66
|
-
size:
|
|
67
|
-
formatter:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
} else
|
|
72
|
-
return `${r}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
73
|
-
} : void 0,
|
|
74
|
-
parser: e ? (r) => r == null ? void 0 : r.replace(/\$\s?|(,*)/g, "") : void 0,
|
|
75
|
-
placeholder: o || t
|
|
114
|
+
min: u ? void 0 : N ?? 0,
|
|
115
|
+
max: I,
|
|
116
|
+
type: s ? void 0 : "number",
|
|
117
|
+
size: O,
|
|
118
|
+
formatter: j,
|
|
119
|
+
parser: B,
|
|
120
|
+
onKeyDown: n ? q : void 0,
|
|
121
|
+
placeholder: k
|
|
76
122
|
}
|
|
77
123
|
) }) });
|
|
78
124
|
}
|
|
79
125
|
);
|
|
80
126
|
export {
|
|
81
|
-
|
|
127
|
+
ar as default
|
|
82
128
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime")
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),$=require("@ant-design/icons"),c=require("antd"),A=require("react"),D=require("../../locale/index.cjs.js"),h=require("../tooltip/TooltipComponent.cjs.js"),l=(n,t,e,o)=>{var s;t&&e&&(n.preventDefault(),(s=e==null?void 0:e.getFieldInstance(t))==null||s.focus()),o&&o(n)},k=({type:n,required:t,label:e,disabled:o,rules:s=[],placeholder:i,onEnter:I,size:f,form:j,addonAfter:p,addonBefore:q,nextFocus:v,autoComplete:x="off",defaultValue:T,readOnly:g,value:m,loading:C,onBlur:F,inputRef:P,status:w,autoFocus:E,onChange:z,tooltip:M,maxLength:a,...O})=>{const{t:d}=D.useTranslationLib(),R=A.useMemo(()=>{const r=[...s,{required:t,message:`${e||i||""} ${d("err.validation.required")}`}];return n==="email"&&r.push({type:"email",message:d("err.validation.invalidEmail")}),r},[s,t,e,i,d,n]),S={disabled:o,value:m,readOnly:g,defaultValue:T,autoFocus:E,addonBefore:q,ref:P,onBlur:F,addonAfter:C?u.jsx($.LoadingOutlined,{}):p,status:w,size:f,autoComplete:x,onPressEnter:r=>l(r,v,j,I),type:n,placeholder:i||e,maxLength:a,showCount:a&&a>0},_=n=="password"?c.Input.Password:c.Input;return u.jsx(h,{title:M,children:u.jsx(c.Form.Item,{...O,label:e,rules:R,children:u.jsx(_,{...S})})})};exports.default=k;exports.onEnterInternalTextField=l;
|
|
@@ -20,6 +20,7 @@ export interface TextFieldProps extends FormItemProps<any> {
|
|
|
20
20
|
loading?: boolean;
|
|
21
21
|
inputRef?: any;
|
|
22
22
|
onBlur?: any;
|
|
23
|
+
maxLength?: number;
|
|
23
24
|
onChange?: (val: any) => void;
|
|
24
25
|
}
|
|
25
26
|
export declare const onEnterInternalTextField: (e: React.KeyboardEvent<HTMLInputElement>, nextFocus?: string, form?: FormInstance<any>, onEnter?: React.KeyboardEventHandler<HTMLInputElement>) => void;
|
|
@@ -1,72 +1,75 @@
|
|
|
1
1
|
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
-
import { LoadingOutlined as
|
|
3
|
-
import { Input as
|
|
4
|
-
import { useMemo as
|
|
5
|
-
import { useTranslationLib as
|
|
6
|
-
import
|
|
7
|
-
const
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
type:
|
|
12
|
-
required:
|
|
2
|
+
import { LoadingOutlined as h } from "@ant-design/icons";
|
|
3
|
+
import { Input as f, Form as k } from "antd";
|
|
4
|
+
import { useMemo as q } from "react";
|
|
5
|
+
import { useTranslationLib as z } from "../../locale/index.es.js";
|
|
6
|
+
import B from "../tooltip/TooltipComponent.es.js";
|
|
7
|
+
const G = (o, n, t, s) => {
|
|
8
|
+
var i;
|
|
9
|
+
n && t && (o.preventDefault(), (i = t == null ? void 0 : t.getFieldInstance(n)) == null || i.focus()), s && s(o);
|
|
10
|
+
}, S = ({
|
|
11
|
+
type: o,
|
|
12
|
+
required: n,
|
|
13
13
|
label: t,
|
|
14
14
|
disabled: s,
|
|
15
|
-
rules:
|
|
15
|
+
rules: i = [],
|
|
16
16
|
placeholder: r,
|
|
17
|
-
onEnter:
|
|
18
|
-
size:
|
|
19
|
-
form:
|
|
20
|
-
addonAfter:
|
|
21
|
-
addonBefore:
|
|
22
|
-
nextFocus:
|
|
23
|
-
autoComplete:
|
|
24
|
-
defaultValue:
|
|
25
|
-
readOnly:
|
|
26
|
-
value:
|
|
27
|
-
loading:
|
|
28
|
-
onBlur:
|
|
29
|
-
inputRef:
|
|
30
|
-
status:
|
|
31
|
-
autoFocus:
|
|
32
|
-
onChange:
|
|
33
|
-
tooltip:
|
|
34
|
-
|
|
17
|
+
onEnter: p,
|
|
18
|
+
size: u,
|
|
19
|
+
form: c,
|
|
20
|
+
addonAfter: l,
|
|
21
|
+
addonBefore: v,
|
|
22
|
+
nextFocus: C,
|
|
23
|
+
autoComplete: I = "off",
|
|
24
|
+
defaultValue: T,
|
|
25
|
+
readOnly: g,
|
|
26
|
+
value: w,
|
|
27
|
+
loading: F,
|
|
28
|
+
onBlur: P,
|
|
29
|
+
inputRef: E,
|
|
30
|
+
status: $,
|
|
31
|
+
autoFocus: j,
|
|
32
|
+
onChange: H,
|
|
33
|
+
tooltip: x,
|
|
34
|
+
maxLength: a,
|
|
35
|
+
...A
|
|
35
36
|
}) => {
|
|
36
|
-
const { t:
|
|
37
|
+
const { t: d } = z(), D = q(() => {
|
|
37
38
|
const e = [
|
|
38
|
-
...
|
|
39
|
+
...i,
|
|
39
40
|
{
|
|
40
|
-
required:
|
|
41
|
-
message: `${t || r || ""} ${
|
|
41
|
+
required: n,
|
|
42
|
+
message: `${t || r || ""} ${d(
|
|
42
43
|
"err.validation.required"
|
|
43
44
|
)}`
|
|
44
45
|
}
|
|
45
46
|
];
|
|
46
|
-
return
|
|
47
|
+
return o === "email" && e.push({
|
|
47
48
|
type: "email",
|
|
48
|
-
message:
|
|
49
|
+
message: d("err.validation.invalidEmail")
|
|
49
50
|
}), e;
|
|
50
|
-
}, [
|
|
51
|
+
}, [i, n, t, r, d, o]), M = {
|
|
51
52
|
disabled: s,
|
|
52
|
-
value:
|
|
53
|
-
readOnly:
|
|
54
|
-
defaultValue:
|
|
55
|
-
autoFocus:
|
|
56
|
-
addonBefore:
|
|
57
|
-
ref:
|
|
58
|
-
onBlur:
|
|
59
|
-
addonAfter:
|
|
60
|
-
status:
|
|
61
|
-
size:
|
|
62
|
-
autoComplete:
|
|
63
|
-
onPressEnter: (e) =>
|
|
64
|
-
type:
|
|
65
|
-
placeholder: r || t
|
|
66
|
-
|
|
67
|
-
|
|
53
|
+
value: w,
|
|
54
|
+
readOnly: g,
|
|
55
|
+
defaultValue: T,
|
|
56
|
+
autoFocus: j,
|
|
57
|
+
addonBefore: v,
|
|
58
|
+
ref: E,
|
|
59
|
+
onBlur: P,
|
|
60
|
+
addonAfter: F ? /* @__PURE__ */ m(h, {}) : l,
|
|
61
|
+
status: $,
|
|
62
|
+
size: u,
|
|
63
|
+
autoComplete: I,
|
|
64
|
+
onPressEnter: (e) => G(e, C, c, p),
|
|
65
|
+
type: o,
|
|
66
|
+
placeholder: r || t,
|
|
67
|
+
maxLength: a,
|
|
68
|
+
showCount: a && a > 0
|
|
69
|
+
}, O = o == "password" ? f.Password : f;
|
|
70
|
+
return /* @__PURE__ */ m(B, { title: x, children: /* @__PURE__ */ m(k.Item, { ...A, label: t, rules: D, children: /* @__PURE__ */ m(O, { ...M }) }) });
|
|
68
71
|
};
|
|
69
72
|
export {
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
S as default,
|
|
74
|
+
G as onEnterInternalTextField
|
|
72
75
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),e=require("react"),t=e.createContext(null),c=()=>e.useContext(t),s=({children:r,search:o})=>{const n=e.useMemo(()=>({search:o}),[o]);return u.jsx(t.Provider,{value:n,children:r})};exports.CrudSearchContext=t;exports.CrudSearchContextProvider=s;exports.useCrudSearchContext=c;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type SearchFn = () => void;
|
|
2
|
+
export declare const CrudSearchContext: import('react').Context<{
|
|
3
|
+
search: SearchFn;
|
|
4
|
+
} | null>;
|
|
5
|
+
export declare const useCrudSearchContext: () => {
|
|
6
|
+
search: SearchFn;
|
|
7
|
+
} | null;
|
|
8
|
+
export declare const CrudSearchContextProvider: ({ children, search, }: {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
search: SearchFn;
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useContext as c, createContext as u, useMemo as s } from "react";
|
|
3
|
+
const o = u(null), d = () => c(o), m = ({
|
|
4
|
+
children: t,
|
|
5
|
+
search: e
|
|
6
|
+
}) => {
|
|
7
|
+
const r = s(() => ({ search: e }), [e]);
|
|
8
|
+
return /* @__PURE__ */ n(o.Provider, { value: r, children: t });
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
o as CrudSearchContext,
|
|
12
|
+
m as CrudSearchContextProvider,
|
|
13
|
+
d as useCrudSearchContext
|
|
14
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),p=require("antd"),T=require("react"),Y=require("react-highlight-words"),Z=require("../locale/index.cjs.js"),ee=require("./FileCrudField.cjs.js"),re=require("./ImageCrudField.cjs.js"),te=require("../common/check-box/CheckBox.cjs.js"),ne=require("../common/date-picker/DatePicker.cjs.js"),ae=require("../common/date-picker/TimePicker.cjs.js"),D=require("../common/select/SelectComponent.cjs.js"),oe=require("../common/text-field/NumberField.cjs.js"),le=require("../common/text-field/PhoneNumberField.cjs.js"),se=require("../common/text-field/TextField.cjs.js"),ie=require("../common/tooltip/TooltipComponent.cjs.js"),de=require("./CrudTextAreaComponent.cjs.js"),_=require("../util/CrudUtil.cjs.js"),E=require("../context/CrudSearchContext.cjs.js");function ce(j){const{label:s,name:d,type:c,required:h,hidden:H,rules:b=[],updatable:m=!0,readonly:F=!1,fieldClassName:f,customFormFieldRender:k,fieldTooltip:S,fieldHelper:C,formLayoutProps:q,...r}=j,l=p.Form.useFormInstance();T.useEffect(()=>{if(c==="select"){const{items:a=[],onSearch:o,searchOnType:u}=r;!(a!=null&&a.length)&&!u&&(o==null||o(void 0,l,r==null?void 0:r.updatingValue))}},[l,r,c,r==null?void 0:r.updatingValue]);const R=E.useCrudSearchContext(),x=T.useCallback((a,o)=>{R&&R.search(),!F&&o&&o(a,l)},[R,F,l]);if(F||H)return e.jsx(e.Fragment,{});if(k)return k(l,j);switch(c){case"text":case"email":case"password":{const{maxLength:a,onChange:o,placeholder:u,addonAfter:y,addonBefore:i}=r;return e.jsx(se.default,{...q,maxLength:a,placeholder:u,disabled:!m,rules:b,required:h,onChange:o?v=>o(v,l):void 0,type:c,name:d,tooltip:S,label:s,className:f,autoComplete:"new-password",addonAfter:y,addonBefore:i,help:C})}case"phone":{const{onChange:a,placeholder:o,addonAfter:u,addonBefore:y}=r;return e.jsx(le,{...r,...q,placeholder:o,disabled:!m,rules:b,required:h,onChange:a?i=>a(i,l):void 0,type:c,name:d,tooltip:S,label:s,className:f,autoComplete:"new-password",addonAfter:u,addonBefore:y,help:C})}case"number":{const{onChange:a,placeholder:o,allowMinus:u,min:y,max:i,addonAfter:v,addonBefore:w,int:P}=r;return e.jsx(oe,{...q,placeholder:o,disabled:!m,moneyField:!!r.formatted,type:c,onChange:a?n=>a(n,l):void 0,rules:b,autoComplete:"false",required:h,tooltip:S,className:f,min:u?null:y,max:i,addonAfter:v,addonBefore:w,name:d,label:s,help:C,isInt:P})}case"date":{const{range:a,disableToday:o,disabledFutureDays:u,disabledPastDays:y,onChange:i,placeholder:v,format:w}=r;return e.jsx(ne,{...q,placeholder:v,required:h,disabled:!m,type:c,format:w,tooltip:S,range:a,name:d,label:s,onChange:x,className:f,disableToday:o,disabledFutureDays:u,disabledPastDays:y,help:C})}case"time":{const{range:a=!1,disableCurrent:o,disabledFuture:u,disabledPast:y,onChange:i,use12Hours:v,format:w,placeholder:P}=r;return e.jsx(ae,{...q,placeholder:P,required:h,format:w,disabled:!m,type:c,tooltip:S,range:a,use12Hours:v,name:d,label:s,onChange:x,className:f,disableCurrent:o,disabledFuture:u,disabledPast:y,help:C})}case"textarea":return e.jsx(de,{...j});case"image":return e.jsx(re.default,{...r,required:h,name:d,label:s,rules:b,fieldHelper:C,fieldClassName:f,onRemoved:r.onRemoved,onUploading:r.onUploading,provider:r.provider});case"file":return e.jsx(ee.default,{...r,required:h,name:d,label:s,rules:b,fieldHelper:C,fieldClassName:f,onRemoved:r.onRemoved,onUploading:r.onUploading,provider:r.provider});case"select":return e.jsx($,{...r,required:h,name:d,label:s,rules:b,fieldClassName:f,form:l,help:C,updatable:m,readonly:F,fieldTooltip:S,fieldHelper:C});case"enum":return e.jsx(W,{...j});case"checkbox":{const{onChange:a,switch:o}=r;return e.jsx(te,{...q,className:f,rules:b,onChange:x,label:s,tooltip:S,disabled:!m,name:d,help:C,switch:o})}case"color":return e.jsx(z,{...r,type:"color",required:h,name:d,label:s,rules:b,fieldClassName:f,updatable:m,readonly:F,fieldTooltip:S,fieldHelper:C});default:return e.jsx(e.Fragment,{children:`${c} Not Implemented`})}}function W(j){const s=p.Form.useFormInstance(),{label:d,name:c,type:h,required:H,hidden:b,rules:m=[],updatable:F=!0,readonly:f=!1,fieldClassName:k,customFormFieldRender:S,fieldTooltip:C,fieldHelper:q,formLayoutProps:r,...l}=j,{t:R}=Z.useTranslationLibNoNS(),{enum:x,translation:a,onChange:o,onSearch:u,multiple:y,tagRender:i}=l,v=Array.isArray(x)?x:Object.keys(x),w=E.useCrudSearchContext(),P=T.useCallback(n=>{w&&w.search(),!f&&o&&o(n,s)},[w,f,o,s]);return"radio"in l&&l.radio?e.jsx(p.Form.Item,{...l,...r,name:c,required:H,tooltip:C,rules:m,label:d,className:["w-100",k].join(" "),help:q,children:e.jsx(p.Radio.Group,{...l,onChange:n=>{var N;return P((N=n==null?void 0:n.target)==null?void 0:N.value)},children:v.map(n=>e.jsx(p.Radio,{disabled:!F,value:n,children:a?R(a[n]):n},n))})}):"checkbox"in l&&l.checkbox?e.jsx(p.Form.Item,{...l,...r,name:c,required:H,tooltip:C,rules:m,label:d,className:["w-100",k].join(" "),help:q,children:e.jsx(p.Checkbox.Group,{className:"w-100",onChange:P,children:v.map(n=>{const N=e.jsx(p.Checkbox,{disabled:!F,value:n,children:a?R(a[n]):n},n);return"checkboxGrid"in l&&l.checkboxGrid?e.jsx(p.Col,{...l.checkboxGrid,children:N}):N})})}):e.jsx(D,{...l,...r,notSearch:!0,tagRender:typeof i=="function"?i:i?n=>{const{value:N,label:I}=n,L=i[N];return L?e.jsx(p.Tag,{color:L.color,children:I}):e.jsx(p.Tag,{children:I})}:void 0,onChange:P,className:["w-100",k].join(" "),name:c,items:v,required:H,tooltip:C,rules:m,label:d,help:q,disabled:!F,onSearch:u?n=>u(n,s):void 0,allowClear:!0,mode:y?"multiple":void 0,showLoadingInEmptyIndicator:!0,itemBuilder:n=>e.jsx(p.Select.Option,{value:n,children:a?R(a[n]):n},n)})}function $(j){const{items:s=[],loading:d,searchOnType:c,onSearch:h,multiple:H,onChange:b,highlightSearch:m,required:F,fieldClassName:f,rules:k,fieldTooltip:S,updatable:C,label:q,name:r,tagRender:l,updatingValue:R,onSet:x,placeholder:a,allowClear:o=!0,selectOptionRender:u,formLayoutProps:y}=j,i=j.form,[v,w]=T.useState(""),P=T.useMemo(()=>_.getRealName(r),[r]),n=T.useMemo(()=>_.getRealName(r,"upsertFieldName"),[r]),N=p.Form.useWatch(P,i),[I,L]=T.useState(!0);T.useEffect(()=>{x&&I&&N&&(x==null||x(N,s,i),L(!1))},[I,i,s,P,x,N]),T.useEffect(()=>{N&&L(!0)},[N]);const J=T.useCallback(async t=>{w(t),c&&(h==null||h(t,i,R))},[i,h,c,R]),K=T.useCallback(t=>u?u(t):t.value,[u]),O=E.useCrudSearchContext(),Q=T.useCallback(t=>{O&&O.search(),b&&(w(""),b(t,i))},[O,b,i]);return e.jsx(D,{...j,...y,showLoadingInEmptyIndicator:!0,maxTagCount:"responsive",maxTagPlaceholder:t=>e.jsxs(ie,{title:e.jsx(e.Fragment,{children:t.map(g=>e.jsxs(e.Fragment,{children:[g.label," ",e.jsx("br",{})]}))}),children:["+",t==null?void 0:t.length]}),placeholder:a,onSelect:t=>{x==null||x(t==null?void 0:t.key,s,i)},onChange:Q,mode:H?"multiple":void 0,className:["w-100",f].join(" "),name:n,items:s,required:F,tooltip:S,tagRender:l,rules:k,disabled:!C,label:q,allowClear:o,onSearch:J,loading:d,filterOption:m?(t,g)=>{var A,B,G;try{const M=t.toLowerCase().split(/\s+/),V=((typeof(g==null?void 0:g.children)=="string"?g==null?void 0:g.children:(B=(A=g==null?void 0:g.children)==null?void 0:A.props)==null?void 0:B.textToHighlight)??"").toLowerCase(),X=(((G=g==null?void 0:g.value)==null?void 0:G.toString())??"").toLowerCase();return M.every(U=>V.indexOf(U)>=0||X.indexOf(U)>=0)}catch{return!0}}:void 0,itemBuilder:m?t=>{const g=t.value?String(t.value):void 0;return e.jsx(p.Select.Option,{value:t.key,title:g,disabled:t.disabled,children:e.jsx(Y,{highlightClassName:"highlight-text",searchWords:(v??"").split(" "),autoEscape:!0,textToHighlight:g??""})},t.key)}:t=>e.jsx(p.Select.Option,{value:t.key,title:t.value,disabled:t.disabled,children:K(t)},t.key)})}function z(j){const{formLayoutProps:s,required:d,fieldClassName:c,rules:h,fieldTooltip:H,updatable:b,label:m,name:F,fieldHelper:f}=j;return e.jsx(p.Form.Item,{...s,label:m,name:F,required:d,rules:h,tooltip:H,help:f,getValueFromEvent:k=>typeof k=="object"?k.toHexString():k,children:e.jsx(p.ColorPicker,{disabledAlpha:!0,format:"hex",defaultFormat:"hex",showText:!0,trigger:"click",className:c,disabled:!b,...j.innerProps})})}exports.ColorCrudFieldComponent=z;exports.EnumCrudFieldComponent=W;exports.SelectCrudFieldComponent=$;exports.default=ce;
|
package/dist/crud/CrudField.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ColorPickerFieldProps, CrudFieldProps, SelectCrudField } from './CrudComponent';
|
|
1
|
+
import { ColorPickerFieldProps, CrudFieldProps, EnumCrudField, SelectCrudField } from './CrudComponent';
|
|
2
2
|
export default function CrudField<T = any>(props0: Readonly<CrudFieldProps<T>>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function EnumCrudFieldComponent<T>(props0: Readonly<EnumCrudField<T>>): import("react/jsx-runtime").JSX.Element;
|
|
3
4
|
export declare function SelectCrudFieldComponent<T>(props: Readonly<SelectCrudField<T>>): import("react/jsx-runtime").JSX.Element;
|
|
4
5
|
export declare function ColorCrudFieldComponent<T>(props: ColorPickerFieldProps<T>): import("react/jsx-runtime").JSX.Element;
|