@antdv-next1/pro-field 1.0.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.
Files changed (102) hide show
  1. package/LICENSE +21 -0
  2. package/dist/FieldHOC/index.d.ts +16 -0
  3. package/dist/FieldHOC/index.js +51 -0
  4. package/dist/ProField.d.ts +18 -0
  5. package/dist/ProField.js +417 -0
  6. package/dist/ProPureField.d.ts +10 -0
  7. package/dist/ProPureField.js +222 -0
  8. package/dist/ValueTypeToComponent.d.ts +6 -0
  9. package/dist/ValueTypeToComponent.js +442 -0
  10. package/dist/components/Cascader/index.d.ts +40 -0
  11. package/dist/components/Cascader/index.js +202 -0
  12. package/dist/components/Checkbox/index.d.ts +37 -0
  13. package/dist/components/Checkbox/index.js +149 -0
  14. package/dist/components/Checkbox/style/index.d.ts +11 -0
  15. package/dist/components/Checkbox/style/index.js +26 -0
  16. package/dist/components/Code/index.d.ts +34 -0
  17. package/dist/components/Code/index.js +125 -0
  18. package/dist/components/ColorPicker/index.d.ts +22 -0
  19. package/dist/components/ColorPicker/index.js +278 -0
  20. package/dist/components/DatePicker/index.d.ts +27 -0
  21. package/dist/components/DatePicker/index.js +171 -0
  22. package/dist/components/Digit/index.d.ts +27 -0
  23. package/dist/components/Digit/index.js +159 -0
  24. package/dist/components/DigitRange/index.d.ts +48 -0
  25. package/dist/components/DigitRange/index.js +197 -0
  26. package/dist/components/FromNow/index.d.ts +23 -0
  27. package/dist/components/FromNow/index.js +123 -0
  28. package/dist/components/Image/index.d.ts +23 -0
  29. package/dist/components/Image/index.js +119 -0
  30. package/dist/components/IndexColumn/index.d.ts +13 -0
  31. package/dist/components/IndexColumn/index.js +30 -0
  32. package/dist/components/IndexColumn/style/index.d.ts +11 -0
  33. package/dist/components/IndexColumn/style/index.js +29 -0
  34. package/dist/components/Money/InputNumberPopover.d.ts +120 -0
  35. package/dist/components/Money/InputNumberPopover.js +345 -0
  36. package/dist/components/Money/index.d.ts +303 -0
  37. package/dist/components/Money/index.js +274 -0
  38. package/dist/components/Options/index.d.ts +18 -0
  39. package/dist/components/Options/index.js +120 -0
  40. package/dist/components/Password/index.d.ts +33 -0
  41. package/dist/components/Password/index.js +137 -0
  42. package/dist/components/Percent/index.d.ts +45 -0
  43. package/dist/components/Percent/index.js +171 -0
  44. package/dist/components/Percent/util.d.ts +10 -0
  45. package/dist/components/Percent/util.js +22 -0
  46. package/dist/components/Progress/index.d.ts +22 -0
  47. package/dist/components/Progress/index.js +124 -0
  48. package/dist/components/Radio/index.d.ts +36 -0
  49. package/dist/components/Radio/index.js +138 -0
  50. package/dist/components/Radio/style/index.d.ts +11 -0
  51. package/dist/components/Radio/style/index.js +21 -0
  52. package/dist/components/RangePicker/DatePicker.d.ts +29 -0
  53. package/dist/components/RangePicker/DatePicker.js +189 -0
  54. package/dist/components/RangePicker/TimePicker.d.ts +25 -0
  55. package/dist/components/RangePicker/TimePicker.js +177 -0
  56. package/dist/components/RangePicker/index.d.ts +3 -0
  57. package/dist/components/RangePicker/index.js +3 -0
  58. package/dist/components/Rate/index.d.ts +19 -0
  59. package/dist/components/Rate/index.js +98 -0
  60. package/dist/components/Second/index.d.ts +28 -0
  61. package/dist/components/Second/index.js +151 -0
  62. package/dist/components/Segmented/index.d.ts +36 -0
  63. package/dist/components/Segmented/index.js +138 -0
  64. package/dist/components/Select/Highlight/index.d.ts +14 -0
  65. package/dist/components/Select/Highlight/index.js +46 -0
  66. package/dist/components/Select/Highlight/style/index.d.ts +12 -0
  67. package/dist/components/Select/Highlight/style/index.js +24 -0
  68. package/dist/components/Select/LightSelect/index.d.ts +45 -0
  69. package/dist/components/Select/LightSelect/index.js +621 -0
  70. package/dist/components/Select/LightSelect/style/index.d.ts +11 -0
  71. package/dist/components/Select/LightSelect/style/index.js +28 -0
  72. package/dist/components/Select/SearchSelect/index.d.ts +78 -0
  73. package/dist/components/Select/SearchSelect/index.js +273 -0
  74. package/dist/components/Select/index.d.ts +67 -0
  75. package/dist/components/Select/index.js +357 -0
  76. package/dist/components/Slider/index.d.ts +18 -0
  77. package/dist/components/Slider/index.js +99 -0
  78. package/dist/components/Status/index.d.ts +31 -0
  79. package/dist/components/Status/index.js +71 -0
  80. package/dist/components/Switch/index.d.ts +31 -0
  81. package/dist/components/Switch/index.js +132 -0
  82. package/dist/components/Text/index.d.ts +37 -0
  83. package/dist/components/Text/index.js +146 -0
  84. package/dist/components/TextArea/index.d.ts +25 -0
  85. package/dist/components/TextArea/index.js +117 -0
  86. package/dist/components/TextArea/readonly/index.d.ts +17 -0
  87. package/dist/components/TextArea/readonly/index.js +20 -0
  88. package/dist/components/TextArea/readonly/style/index.d.ts +11 -0
  89. package/dist/components/TextArea/readonly/style/index.js +20 -0
  90. package/dist/components/TimePicker/index.d.ts +23 -0
  91. package/dist/components/TimePicker/index.js +153 -0
  92. package/dist/components/TreeSelect/index.d.ts +45 -0
  93. package/dist/components/TreeSelect/index.js +762 -0
  94. package/dist/index.d.ts +34 -0
  95. package/dist/index.js +33 -0
  96. package/dist/pro-field.esm.js +72945 -0
  97. package/dist/pro-field.js +214 -0
  98. package/dist/typing.d.ts +28 -0
  99. package/dist/typing.js +1 -0
  100. package/dist/utils/useFieldExpose.d.ts +7 -0
  101. package/dist/utils/useFieldExpose.js +9 -0
  102. package/package.json +63 -0
@@ -0,0 +1,274 @@
1
+ import InputNumberPopover from "./InputNumberPopover.js";
2
+ import { Fragment, computed, createVNode, defineComponent, mergeProps } from "vue";
3
+ import { intlMap, useIntl } from "@antdv-next1/pro-provider";
4
+ import { omit } from "@v-c/util";
5
+ //#region src/components/Money/index.tsx
6
+ const defaultMoneyIntl = new Intl.NumberFormat("zh-Hans-CN", {
7
+ style: "currency",
8
+ currency: "CNY"
9
+ });
10
+ const intlMap$1 = {
11
+ default: defaultMoneyIntl,
12
+ "zh-Hans-CN": {
13
+ currency: "CNY",
14
+ style: "currency"
15
+ },
16
+ "en-US": {
17
+ style: "currency",
18
+ currency: "USD"
19
+ },
20
+ "ru-RU": {
21
+ style: "currency",
22
+ currency: "RUB"
23
+ },
24
+ "ms-MY": {
25
+ style: "currency",
26
+ currency: "MYR"
27
+ },
28
+ "sr-RS": {
29
+ style: "currency",
30
+ currency: "RSD"
31
+ },
32
+ "pt-BR": {
33
+ style: "currency",
34
+ currency: "BRL"
35
+ }
36
+ };
37
+ /**
38
+ * A function that formats the number.
39
+ * @param {string | false} locale - The currency symbol, which is the first parameter of the
40
+ * formatMoney function.
41
+ * @param {number | string | undefined} paramsText - The text to be formatted
42
+ * @param {number} precision - number, // decimal places
43
+ * @param {any} [config] - the configuration of the number format, which is the same as the
44
+ * configuration of the number format in the Intl.NumberFormat method.
45
+ * @param moneySymbol
46
+ * @returns A function that takes in 4 parameters and returns a string.
47
+ */
48
+ function getTextByLocale(locale, paramsText, precision, config, moneySymbol = "") {
49
+ let moneyText = paramsText?.toString().replace(/,/g, "");
50
+ if (typeof moneyText === "string") {
51
+ const parsedNum = Number(moneyText);
52
+ if (Number.isNaN(parsedNum)) return moneyText;
53
+ moneyText = parsedNum;
54
+ }
55
+ if (!moneyText && moneyText !== 0) return "";
56
+ const supportFormat = locale !== false && Intl.NumberFormat.supportedLocalesOf([locale.replace("_", "-")], { localeMatcher: "lookup" }).length > 0;
57
+ try {
58
+ const finalMoneyText = new Intl.NumberFormat(supportFormat ? locale?.replace("_", "-") || "zh-Hans-CN" : "zh-Hans-CN", {
59
+ ...intlMap$1[locale || "zh-Hans-CN"] || defaultMoneyIntl,
60
+ maximumFractionDigits: precision,
61
+ ...config
62
+ }).format(moneyText);
63
+ const doubleSymbolFormat = (Text) => {
64
+ const match = Text.match(/\d+/);
65
+ if (match) {
66
+ const number = match[0];
67
+ return Text.slice(Text.indexOf(number));
68
+ } else return Text;
69
+ };
70
+ const pureMoneyText = doubleSymbolFormat(finalMoneyText);
71
+ /**
72
+ * 首字母判断是否是正负符号
73
+ */
74
+ const [operatorSymbol] = finalMoneyText || "";
75
+ if (["+", "-"].includes(operatorSymbol)) return `${moneySymbol || ""}${operatorSymbol}${pureMoneyText}`;
76
+ return `${moneySymbol || ""}${pureMoneyText}`;
77
+ } catch (error) {
78
+ return moneyText;
79
+ }
80
+ return moneyText;
81
+ }
82
+ const DefaultPrecisionCont = 2;
83
+ const FieldMoney = /* @__PURE__ */ defineComponent((props) => {
84
+ const precision = computed(() => props.fieldProps?.precision ?? DefaultPrecisionCont);
85
+ const intl = computed(() => {
86
+ if (props.locale && intlMap[props.locale]) return intlMap[props.locale];
87
+ return useIntl().value;
88
+ });
89
+ /**
90
+ * 获取货币的符号
91
+ * 如果 customSymbol 存在直接使用 customSymbol
92
+ * 如果 moneySymbol 为 false,返回空
93
+ * 如果没有配置使用默认的
94
+ */
95
+ const moneySymbol = computed(() => {
96
+ const customSymbol = props.customSymbol || props.fieldProps?.customSymbol;
97
+ if (customSymbol) return customSymbol;
98
+ if (props.moneySymbol === false || props.fieldProps?.moneySymbol === false) return;
99
+ return intl.value.getMessage({
100
+ id: "moneySymbol",
101
+ defaultMessage: "¥"
102
+ });
103
+ });
104
+ const getFormateValue = (value) => {
105
+ const reg = new RegExp(`\\B(?=(\\d{${3 + Math.max(precision.value - DefaultPrecisionCont, 0)}})+(?!\\d))`, "g");
106
+ const [intStr, floatStr] = String(value).split(".");
107
+ const resultInt = intStr?.replace(reg, ",");
108
+ let resultFloat = "";
109
+ if (floatStr && precision.value > 0) resultFloat = `.${floatStr.slice(0, precision.value === void 0 ? DefaultPrecisionCont : precision.value)}`;
110
+ return `${resultInt}${resultFloat}`;
111
+ };
112
+ return () => {
113
+ const { text, mode: type, render, formItemRender, fieldProps, placeholder: propsPlaceholder, locale, numberFormatOptions = fieldProps?.numberFormatOptions, numberPopoverRender = fieldProps?.numberPopoverRender || false, moneySymbol: propsMoneySymbol, customSymbol, ...rest } = props;
114
+ if (type === "read") {
115
+ const dom = createVNode("span", null, [getTextByLocale(locale || false, text, precision.value, numberFormatOptions ?? fieldProps?.numberFormatOptions, moneySymbol.value)]);
116
+ if (render) return createVNode(Fragment, null, [render(text, {
117
+ mode: type,
118
+ ...rest,
119
+ fieldProps
120
+ }, dom)]);
121
+ return dom;
122
+ }
123
+ if (type === "edit" || type === "update") {
124
+ const placeholder = fieldProps?.placeholder || propsPlaceholder || intl.value.getMessage({
125
+ id: "tableForm.inputPlaceholder",
126
+ defaultMessage: "请输入"
127
+ });
128
+ const dom = createVNode(InputNumberPopover, mergeProps({
129
+ "contentRender": (props) => {
130
+ if (numberPopoverRender === false) return null;
131
+ if (!props.value) return null;
132
+ const localeText = getTextByLocale(locale || false, `${getFormateValue(props.value)}`, precision.value, {
133
+ ...numberFormatOptions,
134
+ notation: "compact"
135
+ }, moneySymbol.value);
136
+ if (typeof numberPopoverRender === "function") return numberPopoverRender?.(props, (localeText || "").toString());
137
+ return localeText;
138
+ },
139
+ "precision": precision.value,
140
+ "formatter": (value) => {
141
+ if (value && moneySymbol.value) return `${moneySymbol.value} ${getFormateValue(value)}`;
142
+ return value?.toString() || value;
143
+ },
144
+ "parser": (value) => {
145
+ if (moneySymbol.value && value) {
146
+ const regStr = `\\${moneySymbol.value}\\s?|(,*)`;
147
+ return value.replace(new RegExp(regStr, "g"), "");
148
+ }
149
+ return value;
150
+ },
151
+ "placeholder": placeholder
152
+ }, omit(fieldProps, [
153
+ "numberFormatOptions",
154
+ "precision",
155
+ "numberPopoverRender",
156
+ "customSymbol",
157
+ "moneySymbol",
158
+ "open",
159
+ "onBlur"
160
+ ]), { "onBlur": fieldProps?.onBlur ? (e) => {
161
+ let value = e.target?.value;
162
+ if (moneySymbol.value && value) {
163
+ const regStr = `\\${moneySymbol.value}\\s?|(,*)`;
164
+ value = value.replace(new RegExp(regStr, "g"), "");
165
+ }
166
+ fieldProps.onBlur?.(e);
167
+ } : void 0 }), null);
168
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
169
+ mode: type,
170
+ ...rest,
171
+ fieldProps,
172
+ placeholder
173
+ }, dom)]);
174
+ return dom;
175
+ }
176
+ return null;
177
+ };
178
+ }, {
179
+ props: {
180
+ text: {
181
+ type: [
182
+ Object,
183
+ Function,
184
+ String,
185
+ Number,
186
+ null,
187
+ Boolean,
188
+ Array
189
+ ],
190
+ required: false,
191
+ default: void 0
192
+ },
193
+ "onUpdate:text": {
194
+ type: Function,
195
+ required: false
196
+ },
197
+ fieldProps: {
198
+ type: Object,
199
+ required: false
200
+ },
201
+ mode: {
202
+ type: String,
203
+ required: false
204
+ },
205
+ light: {
206
+ type: Boolean,
207
+ required: false,
208
+ default: void 0
209
+ },
210
+ label: {
211
+ type: [
212
+ Object,
213
+ Function,
214
+ String,
215
+ Number,
216
+ null,
217
+ Boolean,
218
+ Array
219
+ ],
220
+ required: false,
221
+ default: void 0
222
+ },
223
+ valueEnum: {
224
+ type: [Object, Map],
225
+ required: false
226
+ },
227
+ proFieldKey: {
228
+ type: [String, Number],
229
+ required: false
230
+ },
231
+ render: {
232
+ type: Function,
233
+ required: false
234
+ },
235
+ formItemRender: {
236
+ type: Function,
237
+ required: false
238
+ },
239
+ moneySymbol: {
240
+ type: Boolean,
241
+ required: false,
242
+ default: void 0
243
+ },
244
+ locale: {
245
+ type: String,
246
+ required: false
247
+ },
248
+ placeholder: {
249
+ type: String,
250
+ required: false
251
+ },
252
+ customSymbol: {
253
+ type: String,
254
+ required: false
255
+ },
256
+ numberPopoverRender: {
257
+ type: [Function, Boolean],
258
+ required: false,
259
+ default: void 0
260
+ },
261
+ numberFormatOptions: {
262
+ type: Object,
263
+ required: false
264
+ },
265
+ id: {
266
+ type: String,
267
+ required: false
268
+ }
269
+ },
270
+ name: "FieldMoney",
271
+ inheritAttrs: false
272
+ });
273
+ //#endregion
274
+ export { FieldMoney as default };
@@ -0,0 +1,18 @@
1
+ import { ProFieldFC } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
4
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
5
+
6
+ //#region src/components/Options/index.d.ts
7
+ type FieldOptionsProps = ProFieldFC<{
8
+ text?: VueNode;
9
+ }>;
10
+ declare const FieldOptions: _$vue.DefineSetupFnComponent<FieldOptionsProps, {}, CustomSlotsType<{
11
+ default?: () => VueNode;
12
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<any> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<any> & {
13
+ text?: VueNode;
14
+ } & {
15
+ id?: string;
16
+ } & {}, _$vue.PublicProps>;
17
+ //#endregion
18
+ export { FieldOptionsProps, FieldOptions as default };
@@ -0,0 +1,120 @@
1
+ import { Fragment, cloneVNode, computed, createVNode, defineComponent, isVNode } from "vue";
2
+ import { proTheme } from "@antdv-next1/pro-provider";
3
+ import { isSpecialNode } from "@antdv-next1/pro-utils";
4
+ import { useConfig } from "antdv-next/dist/config-provider/context";
5
+ //#region src/components/Options/index.tsx
6
+ function addArrayKeys(doms) {
7
+ return doms.map((dom, index) => {
8
+ if (!isVNode(dom) || isVNode(dom) && isSpecialNode(dom)) return createVNode(Fragment, { "key": index }, [dom]);
9
+ return cloneVNode(dom, {
10
+ ...dom?.props,
11
+ style: { ...dom?.props?.style }
12
+ });
13
+ });
14
+ }
15
+ const FieldOptions = /* @__PURE__ */ defineComponent((props) => {
16
+ const config = useConfig();
17
+ const baseClassName = computed(() => config.value.getPrefixCls("pro-field-option"));
18
+ const { token } = proTheme.useToken();
19
+ return () => {
20
+ const { text, render, mode: type, formItemRender, fieldProps, ...rest } = props;
21
+ if (render) {
22
+ const doms = render(text, {
23
+ mode: type,
24
+ fieldProps,
25
+ ...rest
26
+ }, createVNode(Fragment, null, null));
27
+ if (!doms || doms?.length < 1 || !Array.isArray(doms)) return null;
28
+ return createVNode("div", {
29
+ "style": {
30
+ display: "flex",
31
+ gap: token.value.margin,
32
+ alignItems: "center"
33
+ },
34
+ "class": baseClassName.value
35
+ }, [addArrayKeys(doms)]);
36
+ }
37
+ if (!text || !Array.isArray(text)) {
38
+ if (!isVNode(text)) return null;
39
+ return text;
40
+ }
41
+ return createVNode("div", {
42
+ "style": {
43
+ display: "flex",
44
+ gap: token.value.margin,
45
+ alignItems: "center"
46
+ },
47
+ "class": baseClassName.value
48
+ }, [addArrayKeys(text)]);
49
+ };
50
+ }, {
51
+ props: {
52
+ text: {
53
+ type: [
54
+ Object,
55
+ Function,
56
+ String,
57
+ Number,
58
+ null,
59
+ Boolean,
60
+ Array
61
+ ],
62
+ required: false,
63
+ default: void 0
64
+ },
65
+ "onUpdate:text": {
66
+ type: Function,
67
+ required: false
68
+ },
69
+ fieldProps: {
70
+ type: Object,
71
+ required: false
72
+ },
73
+ mode: {
74
+ type: String,
75
+ required: false
76
+ },
77
+ light: {
78
+ type: Boolean,
79
+ required: false,
80
+ default: void 0
81
+ },
82
+ label: {
83
+ type: [
84
+ Object,
85
+ Function,
86
+ String,
87
+ Number,
88
+ null,
89
+ Boolean,
90
+ Array
91
+ ],
92
+ required: false,
93
+ default: void 0
94
+ },
95
+ valueEnum: {
96
+ type: [Object, Map],
97
+ required: false
98
+ },
99
+ proFieldKey: {
100
+ type: [String, Number],
101
+ required: false
102
+ },
103
+ render: {
104
+ type: Function,
105
+ required: false
106
+ },
107
+ formItemRender: {
108
+ type: Function,
109
+ required: false
110
+ },
111
+ id: {
112
+ type: String,
113
+ required: false
114
+ }
115
+ },
116
+ name: "FieldOptions",
117
+ inheritAttrs: false
118
+ });
119
+ //#endregion
120
+ export { FieldOptions as default };
@@ -0,0 +1,33 @@
1
+ import { ProFieldFC } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import { ComputedRef } from "vue";
4
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
5
+ import { InputRef } from "antdv-next";
6
+ import { VueNode } from "@v-c/util";
7
+ import { CustomSlotsType } from "@v-c/util/dist/type";
8
+ import { PasswordProps } from "antdv-next/dist/input/Password";
9
+
10
+ //#region src/components/Password/index.d.ts
11
+ type FieldPasswordProps = ProFieldFC<{
12
+ text?: VueNode;
13
+ open?: boolean;
14
+ 'onUpdate:open'?: (open: boolean) => void;
15
+ placeholder?: string;
16
+ onOpenChange?: (open: boolean) => void;
17
+ }, PasswordProps>;
18
+ type FieldPasswordExpose = Omit<InputRef, 'input' | 'nativeElement' | 'setSelectionRange' | 'select'> & {
19
+ input: ComputedRef<InputRef['input']>;
20
+ };
21
+ declare const FieldPassword: _$vue.DefineSetupFnComponent<FieldPasswordProps, {}, CustomSlotsType<{
22
+ default?: () => VueNode;
23
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<PasswordProps> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<PasswordProps> & {
24
+ text?: VueNode;
25
+ open?: boolean;
26
+ 'onUpdate:open'?: (open: boolean) => void;
27
+ placeholder?: string;
28
+ onOpenChange?: (open: boolean) => void;
29
+ } & {
30
+ id?: string;
31
+ } & {}, _$vue.PublicProps>;
32
+ //#endregion
33
+ export { FieldPasswordExpose, FieldPasswordProps, FieldPassword as default };
@@ -0,0 +1,137 @@
1
+ import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, shallowRef } from "vue";
2
+ import { useIntl } from "@antdv-next1/pro-provider";
3
+ import { InputPassword, Space } from "antdv-next";
4
+ import { EyeInvisibleOutlined, EyeOutlined } from "@antdv-next/icons";
5
+ import { useMergedState } from "@v-c/util";
6
+ //#region src/components/Password/index.tsx
7
+ const FieldPassword = /* @__PURE__ */ defineComponent((props, { expose }) => {
8
+ const intl = useIntl();
9
+ const passwordRef = shallowRef(null);
10
+ const [open, setOpen] = useMergedState(() => props.open || false, {
11
+ value: computed(() => props.open),
12
+ onChange: props.onOpenChange
13
+ });
14
+ expose({
15
+ input: computed(() => passwordRef.value?.input),
16
+ blur: () => passwordRef.value?.blur(),
17
+ focus: (options) => passwordRef.value?.focus(options)
18
+ });
19
+ return () => {
20
+ const { text, mode, render, formItemRender, placeholder: propsPlaceholder, open: propsOpen, "onUpdate:open": onUpdateOpen, fieldProps, onOpenChange, ...rest } = props;
21
+ if (mode === "read") {
22
+ let dom = createVNode(Fragment, null, [createTextVNode("-")]);
23
+ if (text) dom = createVNode(Space, null, { default: () => [createVNode("span", null, [open.value ? text : "********"]), createVNode("a", { "onClick": () => setOpen(!open.value) }, [open.value ? createVNode(EyeOutlined, null, null) : createVNode(EyeInvisibleOutlined, null, null)])] });
24
+ if (render) return createVNode(Fragment, null, [render(text, {
25
+ mode,
26
+ ...rest,
27
+ fieldProps
28
+ }, dom)]);
29
+ return dom;
30
+ }
31
+ if (mode === "edit" || mode === "update") {
32
+ const placeholder = propsPlaceholder || intl.value.getMessage({
33
+ id: "tableForm.inputPlaceholder",
34
+ defaultMessage: "请输入"
35
+ });
36
+ const dom = createVNode(InputPassword, mergeProps({
37
+ "ref": passwordRef,
38
+ "placeholder": placeholder
39
+ }, fieldProps), null);
40
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
41
+ mode,
42
+ ...rest,
43
+ fieldProps,
44
+ placeholder
45
+ }, dom)]);
46
+ return dom;
47
+ }
48
+ return null;
49
+ };
50
+ }, {
51
+ props: {
52
+ text: {
53
+ type: [
54
+ Object,
55
+ Function,
56
+ String,
57
+ Number,
58
+ null,
59
+ Boolean,
60
+ Array
61
+ ],
62
+ required: false,
63
+ default: void 0
64
+ },
65
+ "onUpdate:text": {
66
+ type: Function,
67
+ required: false
68
+ },
69
+ fieldProps: {
70
+ type: Object,
71
+ required: false
72
+ },
73
+ mode: {
74
+ type: String,
75
+ required: false
76
+ },
77
+ light: {
78
+ type: Boolean,
79
+ required: false,
80
+ default: void 0
81
+ },
82
+ label: {
83
+ type: [
84
+ Object,
85
+ Function,
86
+ String,
87
+ Number,
88
+ null,
89
+ Boolean,
90
+ Array
91
+ ],
92
+ required: false,
93
+ default: void 0
94
+ },
95
+ valueEnum: {
96
+ type: [Object, Map],
97
+ required: false
98
+ },
99
+ proFieldKey: {
100
+ type: [String, Number],
101
+ required: false
102
+ },
103
+ render: {
104
+ type: Function,
105
+ required: false
106
+ },
107
+ formItemRender: {
108
+ type: Function,
109
+ required: false
110
+ },
111
+ open: {
112
+ type: Boolean,
113
+ required: false,
114
+ default: void 0
115
+ },
116
+ "onUpdate:open": {
117
+ type: Function,
118
+ required: false
119
+ },
120
+ placeholder: {
121
+ type: String,
122
+ required: false
123
+ },
124
+ onOpenChange: {
125
+ type: Function,
126
+ required: false
127
+ },
128
+ id: {
129
+ type: String,
130
+ required: false
131
+ }
132
+ },
133
+ name: "FieldPassword",
134
+ inheritAttrs: false
135
+ });
136
+ //#endregion
137
+ export { FieldPassword as default };
@@ -0,0 +1,45 @@
1
+ import { ProFieldFC } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
4
+ import { ProFieldFCRenderProps } from "@antdv-next1/pro-provider";
5
+ import { VueNode } from "@antdv-next1/pro-utils";
6
+ import { InputNumberProps } from "antdv-next";
7
+ import { CustomSlotsType } from "@v-c/util/dist/type";
8
+
9
+ //#region src/components/Percent/index.d.ts
10
+ type FieldPercentProps = ProFieldFC<{
11
+ prefix?: VueNode;
12
+ suffix?: VueNode;
13
+ text?: number | string;
14
+ precision?: number;
15
+ showColor?: boolean;
16
+ showSymbol?: boolean | ((value: any) => boolean);
17
+ render?: ((text: any, props: Omit<ProFieldFCRenderProps, 'value' | 'onUpdate:value' | 'onChange'> & {
18
+ prefix?: VueNode;
19
+ precision?: number;
20
+ showSymbol?: boolean;
21
+ suffix?: VueNode;
22
+ }, dom: VueNode) => VueNode);
23
+ placeholder?: string;
24
+ }, InputNumberProps>;
25
+ declare const FieldPercent: _$vue.DefineSetupFnComponent<FieldPercentProps, {}, CustomSlotsType<{
26
+ default?: () => VueNode;
27
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<InputNumberProps> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<InputNumberProps> & {
28
+ prefix?: VueNode;
29
+ suffix?: VueNode;
30
+ text?: number | string;
31
+ precision?: number;
32
+ showColor?: boolean;
33
+ showSymbol?: boolean | ((value: any) => boolean);
34
+ render?: ((text: any, props: Omit<ProFieldFCRenderProps, "value" | "onUpdate:value" | "onChange"> & {
35
+ prefix?: VueNode;
36
+ precision?: number;
37
+ showSymbol?: boolean;
38
+ suffix?: VueNode;
39
+ }, dom: VueNode) => VueNode);
40
+ placeholder?: string;
41
+ } & {
42
+ id?: string;
43
+ } & {}, _$vue.PublicProps>;
44
+ //#endregion
45
+ export { FieldPercentProps, FieldPercent as default };