@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,278 @@
1
+ import { Fragment, computed, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { ColorPicker } from "antdv-next";
3
+ import { useConfig as useConfig$1 } from "antdv-next/dist/config-provider/context";
4
+ //#region src/components/ColorPicker/index.tsx
5
+ const DEFAULT_PRESETS = {
6
+ label: "Recommended",
7
+ colors: [
8
+ "#F5222D",
9
+ "#FA8C16",
10
+ "#FADB14",
11
+ "#8BBB11",
12
+ "#52C41A",
13
+ "#13A8A8",
14
+ "#1677FF",
15
+ "#2F54EB",
16
+ "#722ED1",
17
+ "#EB2F96",
18
+ "#F5222D4D",
19
+ "#FA8C164D",
20
+ "#FADB144D",
21
+ "#8BBB114D",
22
+ "#52C41A4D",
23
+ "#13A8A84D",
24
+ "#1677FF4D",
25
+ "#2F54EB4D",
26
+ "#722ED14D",
27
+ "#EB2F964D"
28
+ ]
29
+ };
30
+ const FieldColorPicker = /* @__PURE__ */ defineComponent((props, { slots }) => {
31
+ const config = useConfig$1();
32
+ const className = computed(() => config.value.getPrefixCls("field-color-picker"));
33
+ return () => {
34
+ const { text, mode: type, render, formItemRender, fieldProps, ...rest } = props;
35
+ if (type === "read") {
36
+ const dom = createVNode(ColorPicker, {
37
+ "value": text,
38
+ "class": className.value,
39
+ "open": false
40
+ }, slots);
41
+ if (render) return createVNode(Fragment, null, [render(text, {
42
+ mode: type,
43
+ ...rest,
44
+ fieldProps
45
+ }, dom)]);
46
+ return dom;
47
+ }
48
+ if (type === "edit" || type === "update") {
49
+ const style = {
50
+ display: "table-cell",
51
+ ...fieldProps?.style
52
+ };
53
+ const dom = createVNode(ColorPicker, mergeProps({ "presets": [DEFAULT_PRESETS] }, fieldProps, {
54
+ "style": style,
55
+ "class": className.value
56
+ }), slots);
57
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
58
+ mode: type,
59
+ ...rest,
60
+ fieldProps,
61
+ style
62
+ }, dom)]);
63
+ return dom;
64
+ }
65
+ return null;
66
+ };
67
+ }, {
68
+ props: {
69
+ text: {
70
+ type: [
71
+ Object,
72
+ Function,
73
+ String,
74
+ Number,
75
+ null,
76
+ Boolean,
77
+ Array
78
+ ],
79
+ required: false,
80
+ default: void 0
81
+ },
82
+ "onUpdate:text": {
83
+ type: Function,
84
+ required: false
85
+ },
86
+ fieldProps: {
87
+ type: Object,
88
+ required: false
89
+ },
90
+ mode: {
91
+ type: String,
92
+ required: false
93
+ },
94
+ light: {
95
+ type: Boolean,
96
+ required: false,
97
+ default: void 0
98
+ },
99
+ label: {
100
+ type: [
101
+ Object,
102
+ Function,
103
+ String,
104
+ Number,
105
+ null,
106
+ Boolean,
107
+ Array
108
+ ],
109
+ required: false,
110
+ default: void 0
111
+ },
112
+ valueEnum: {
113
+ type: [Object, Map],
114
+ required: false
115
+ },
116
+ proFieldKey: {
117
+ type: [String, Number],
118
+ required: false
119
+ },
120
+ render: {
121
+ type: Function,
122
+ required: false
123
+ },
124
+ formItemRender: {
125
+ type: Function,
126
+ required: false
127
+ },
128
+ id: {
129
+ type: String,
130
+ required: false
131
+ },
132
+ class: {
133
+ type: String,
134
+ required: false
135
+ },
136
+ style: {
137
+ type: Object,
138
+ required: false
139
+ },
140
+ prefixCls: {
141
+ type: String,
142
+ required: false
143
+ },
144
+ disabled: {
145
+ type: Boolean,
146
+ required: false,
147
+ default: void 0
148
+ },
149
+ defaultValue: {
150
+ type: [
151
+ Object,
152
+ String,
153
+ null,
154
+ Array
155
+ ],
156
+ required: false
157
+ },
158
+ open: {
159
+ type: Boolean,
160
+ required: false,
161
+ default: void 0
162
+ },
163
+ placement: {
164
+ type: String,
165
+ required: false
166
+ },
167
+ trigger: {
168
+ type: String,
169
+ required: false
170
+ },
171
+ format: { required: false },
172
+ defaultFormat: { required: false },
173
+ valueFormat: {
174
+ type: Function,
175
+ required: false,
176
+ skipCheck: true
177
+ },
178
+ allowClear: {
179
+ type: Boolean,
180
+ required: false,
181
+ default: void 0
182
+ },
183
+ presets: {
184
+ type: Array,
185
+ required: false
186
+ },
187
+ arrow: {
188
+ type: [Boolean, Object],
189
+ required: false,
190
+ default: void 0
191
+ },
192
+ panelRender: {
193
+ type: Function,
194
+ required: false
195
+ },
196
+ showText: {
197
+ type: [Boolean, Function],
198
+ required: false,
199
+ default: void 0
200
+ },
201
+ size: {
202
+ type: [String, null],
203
+ required: false
204
+ },
205
+ classes: {
206
+ type: [Object, Function],
207
+ required: false
208
+ },
209
+ styles: {
210
+ type: [Object, Function],
211
+ required: false
212
+ },
213
+ rootClass: {
214
+ type: String,
215
+ required: false
216
+ },
217
+ disabledAlpha: {
218
+ type: Boolean,
219
+ required: false,
220
+ default: void 0
221
+ },
222
+ disabledFormat: {
223
+ type: Boolean,
224
+ required: false,
225
+ default: void 0
226
+ },
227
+ getPopupContainer: {
228
+ type: Function,
229
+ required: false
230
+ },
231
+ autoAdjustOverflow: {
232
+ type: [Boolean, Object],
233
+ required: false,
234
+ default: void 0
235
+ },
236
+ destroyOnHidden: {
237
+ type: Boolean,
238
+ required: false,
239
+ default: void 0
240
+ },
241
+ onChange: {
242
+ type: Function,
243
+ required: false
244
+ },
245
+ onClear: {
246
+ type: Function,
247
+ required: false
248
+ },
249
+ onChangeComplete: {
250
+ type: Function,
251
+ required: false
252
+ },
253
+ onOpenChange: {
254
+ type: Function,
255
+ required: false
256
+ },
257
+ "onUpdate:open": {
258
+ type: Function,
259
+ required: false
260
+ },
261
+ onFormatChange: {
262
+ type: Function,
263
+ required: false
264
+ },
265
+ "onUpdate:value": {
266
+ type: Function,
267
+ required: false
268
+ },
269
+ "onUpdate:format": {
270
+ type: Function,
271
+ required: false
272
+ }
273
+ },
274
+ name: "FieldColorPicker",
275
+ inheritAttrs: false
276
+ });
277
+ //#endregion
278
+ export { FieldColorPicker as default };
@@ -0,0 +1,27 @@
1
+ import { ProFieldFC, ProFieldLightProps } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
4
+ import { DatePickerProps } from "antdv-next";
5
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
6
+
7
+ //#region src/components/DatePicker/index.d.ts
8
+ type FieldDatePickerProps = ProFieldFC<{
9
+ text: string | number;
10
+ format?: string;
11
+ showTime?: boolean;
12
+ variant?: 'outlined' | 'borderless' | 'filled' | 'underlined';
13
+ picker?: 'time' | 'date' | 'week' | 'month' | 'quarter' | 'year';
14
+ } & ProFieldLightProps, DatePickerProps>;
15
+ declare const FieldDatePicker: _$vue.DefineSetupFnComponent<FieldDatePickerProps, {}, CustomSlotsType<{
16
+ default?: () => VueNode;
17
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<DatePickerProps> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<DatePickerProps> & {
18
+ text: string | number;
19
+ format?: string;
20
+ showTime?: boolean;
21
+ variant?: "outlined" | "borderless" | "filled" | "underlined";
22
+ picker?: "time" | "date" | "week" | "month" | "quarter" | "year";
23
+ } & ProFieldLightProps & {
24
+ id?: string;
25
+ } & {}, _$vue.PublicProps>;
26
+ //#endregion
27
+ export { FieldDatePickerProps, FieldDatePicker as default };
@@ -0,0 +1,171 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { useIntl } from "@antdv-next1/pro-provider";
3
+ import { FieldLabel, parseValueToDay, useState } from "@antdv-next1/pro-utils";
4
+ import { DatePicker } from "antdv-next";
5
+ import dayjs from "dayjs";
6
+ import weekOfYear from "dayjs/plugin/weekOfYear.js";
7
+ //#region src/components/DatePicker/index.tsx
8
+ dayjs.extend(weekOfYear);
9
+ function formatDate(text, format) {
10
+ if (!text) return "-";
11
+ if (typeof format === "function") return format(dayjs(text));
12
+ else return dayjs(text).format((Array.isArray(format) ? format[0] : format) || "YYYY-MM-DD");
13
+ }
14
+ const FieldDatePicker = /* @__PURE__ */ defineComponent((props, { slots }) => {
15
+ const intl = useIntl();
16
+ const [open, setOpen] = useState(false);
17
+ return () => {
18
+ const { text, mode, format, label, light, render, formItemRender, showTime, variant, fieldProps, picker, lightLabel, ...rest } = props;
19
+ if (mode === "read") {
20
+ const dom = formatDate(text, fieldProps?.format || format);
21
+ if (render) return createVNode(Fragment, null, [render(text, {
22
+ mode,
23
+ ...rest,
24
+ fieldProps
25
+ }, createVNode(Fragment, null, [dom]))]);
26
+ return createVNode(Fragment, null, [dom]);
27
+ }
28
+ if (mode === "edit" || mode === "update") {
29
+ const { value, disabled, placeholder = intl.value.getMessage({
30
+ id: "tableForm.selectPlaceholder",
31
+ defaultMessage: "请选择"
32
+ }) } = fieldProps;
33
+ const dayValue = parseValueToDay(value);
34
+ let dom = createVNode(DatePicker, mergeProps({
35
+ "picker": picker,
36
+ "showTime": showTime,
37
+ "format": format,
38
+ "placeholder": placeholder,
39
+ "variant": variant
40
+ }, fieldProps, { "value": dayValue }), slots);
41
+ if (light) dom = createVNode(FieldLabel, {
42
+ "label": label,
43
+ "onClick": () => {
44
+ fieldProps?.onOpenChange?.(true);
45
+ setOpen(true);
46
+ },
47
+ "style": dayValue ? { paddingInlineEnd: 0 } : void 0,
48
+ "disabled": disabled,
49
+ "value": dayValue || open ? createVNode(DatePicker, mergeProps({
50
+ "picker": picker,
51
+ "showTime": showTime,
52
+ "format": format
53
+ }, fieldProps, {
54
+ "value": dayValue,
55
+ "onOpenChange": (isOpen) => {
56
+ setOpen(isOpen);
57
+ fieldProps?.onOpenChange?.(isOpen);
58
+ },
59
+ "open": open.value
60
+ }), null) : void 0,
61
+ "allowClear": false,
62
+ "downIcon": dayValue || open ? false : void 0,
63
+ "variant": variant,
64
+ "ref": lightLabel
65
+ }, null);
66
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
67
+ mode,
68
+ ...rest,
69
+ fieldProps
70
+ }, dom)]);
71
+ return dom;
72
+ }
73
+ return null;
74
+ };
75
+ }, {
76
+ props: {
77
+ text: {
78
+ type: [
79
+ Object,
80
+ Function,
81
+ String,
82
+ Number,
83
+ null,
84
+ Boolean,
85
+ Array
86
+ ],
87
+ required: false,
88
+ default: void 0
89
+ },
90
+ "onUpdate:text": {
91
+ type: Function,
92
+ required: false
93
+ },
94
+ fieldProps: {
95
+ type: Object,
96
+ required: false
97
+ },
98
+ mode: {
99
+ type: String,
100
+ required: false
101
+ },
102
+ light: {
103
+ type: Boolean,
104
+ required: false,
105
+ default: void 0
106
+ },
107
+ label: {
108
+ type: [
109
+ Object,
110
+ Function,
111
+ String,
112
+ Number,
113
+ null,
114
+ Boolean,
115
+ Array
116
+ ],
117
+ required: false,
118
+ default: void 0
119
+ },
120
+ valueEnum: {
121
+ type: [Object, Map],
122
+ required: false
123
+ },
124
+ proFieldKey: {
125
+ type: [String, Number],
126
+ required: false
127
+ },
128
+ render: {
129
+ type: Function,
130
+ required: false
131
+ },
132
+ formItemRender: {
133
+ type: Function,
134
+ required: false
135
+ },
136
+ format: {
137
+ type: String,
138
+ required: false
139
+ },
140
+ showTime: {
141
+ type: Boolean,
142
+ required: false,
143
+ default: void 0
144
+ },
145
+ variant: {
146
+ type: String,
147
+ required: false
148
+ },
149
+ picker: {
150
+ type: String,
151
+ required: false
152
+ },
153
+ lightLabel: {
154
+ type: Object,
155
+ required: false
156
+ },
157
+ labelTrigger: {
158
+ type: Boolean,
159
+ required: false,
160
+ default: void 0
161
+ },
162
+ id: {
163
+ type: String,
164
+ required: false
165
+ }
166
+ },
167
+ name: "FieldDatePicker",
168
+ inheritAttrs: false
169
+ });
170
+ //#endregion
171
+ export { FieldDatePicker as default };
@@ -0,0 +1,27 @@
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 { InputNumberProps } from "antdv-next";
5
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
6
+
7
+ //#region src/components/Digit/index.d.ts
8
+ type FieldDigitProps = ProFieldFC<{
9
+ text: number;
10
+ placeholder?: string;
11
+ }, InputNumberProps & {
12
+ intlProps: Intl.NumberFormatOptions;
13
+ }>;
14
+ declare const FieldDigit: _$vue.DefineSetupFnComponent<FieldDigitProps, {}, CustomSlotsType<{
15
+ default?: () => VueNode;
16
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<InputNumberProps & {
17
+ intlProps: Intl.NumberFormatOptions;
18
+ }> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<InputNumberProps & {
19
+ intlProps: Intl.NumberFormatOptions;
20
+ }> & {
21
+ text: number;
22
+ placeholder?: string;
23
+ } & {
24
+ id?: string;
25
+ } & {}, _$vue.PublicProps>;
26
+ //#endregion
27
+ export { FieldDigitProps, FieldDigit as default };
@@ -0,0 +1,159 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { useIntl } from "@antdv-next1/pro-provider";
3
+ import { isNil } from "@antdv-next1/pro-utils";
4
+ import { InputNumber } from "antdv-next";
5
+ import { omit } from "@v-c/util";
6
+ //#region src/components/Digit/index.tsx
7
+ /**
8
+ * 判断字符串是否为空或仅包含空白字符
9
+ * @param {string} str - 要检查的字符串
10
+ * @returns {boolean} - 如果为空或仅包含空白字符返回 true,否则返回 false
11
+ */
12
+ function isEmptyOrWhitespace(str) {
13
+ return isNil(str) || str === "" || str?.trim() === "";
14
+ }
15
+ const FieldDigit = /* @__PURE__ */ defineComponent((props) => {
16
+ const intl = useIntl();
17
+ const proxyChange = (value) => {
18
+ let val = value ?? void 0;
19
+ if (!props.fieldProps?.stringMode && typeof val === "string") {
20
+ const numVal = Number(val);
21
+ if (Number.isNaN(numVal)) {
22
+ const match = val.match(/^(\d+(?:\.\d+)?)/);
23
+ if (match) val = Number(match[1]);
24
+ else val = void 0;
25
+ } else val = numVal;
26
+ }
27
+ if (typeof val === "number" && !isNil(val) && !isNil(props.fieldProps?.precision)) val = Number(val.toFixed(props.fieldProps.precision));
28
+ return val;
29
+ };
30
+ return () => {
31
+ const { text, mode: type, render, placeholder: propsPlaceholder, formItemRender, ...rest } = props;
32
+ if (type === "read") {
33
+ let fractionDigits = {};
34
+ if (rest.fieldProps?.precision) fractionDigits = {
35
+ minimumFractionDigits: Number(rest.fieldProps.precision),
36
+ maximumFractionDigits: Number(rest.fieldProps.precision)
37
+ };
38
+ const digit = new Intl.NumberFormat(void 0, {
39
+ ...fractionDigits,
40
+ ...rest.fieldProps?.intlProps || {}
41
+ }).format(Number(text));
42
+ const dom = !rest.fieldProps?.stringMode ? createVNode("span", null, [rest.fieldProps?.formatter?.(digit, {
43
+ userTyping: false,
44
+ input: ""
45
+ }) || digit]) : createVNode("span", null, [text]);
46
+ if (render) return createVNode(Fragment, null, [render(text, {
47
+ mode: type,
48
+ ...rest
49
+ }, dom)]);
50
+ return dom;
51
+ }
52
+ if (type === "edit" || type === "update") {
53
+ const placeholder = propsPlaceholder || intl.value.getMessage({
54
+ id: "tableForm.inputPlaceholder",
55
+ defaultMessage: "请输入"
56
+ });
57
+ const dom = createVNode(InputNumber, mergeProps({
58
+ "min": 0,
59
+ "placeholder": placeholder
60
+ }, omit(rest.fieldProps, ["onChange", "onBlur"]), {
61
+ "onChange": (e) => rest.fieldProps?.onChange?.(proxyChange(e)),
62
+ "onBlur": (e) => {
63
+ const value = e.target?.value;
64
+ if (isEmptyOrWhitespace(value)) {
65
+ rest.fieldProps?.onBlur?.(e);
66
+ return;
67
+ }
68
+ const processedValue = proxyChange(value);
69
+ if (e.target && typeof processedValue === "number") {
70
+ e.target.value = processedValue.toString();
71
+ rest.fieldProps?.onChange?.(processedValue);
72
+ }
73
+ rest.fieldProps?.onBlur?.(e);
74
+ }
75
+ }), null);
76
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
77
+ mode: type,
78
+ ...rest,
79
+ placeholder
80
+ }, dom)]);
81
+ return dom;
82
+ }
83
+ return null;
84
+ };
85
+ }, {
86
+ props: {
87
+ text: {
88
+ type: [
89
+ Object,
90
+ Function,
91
+ String,
92
+ Number,
93
+ null,
94
+ Boolean,
95
+ Array
96
+ ],
97
+ required: false,
98
+ default: void 0
99
+ },
100
+ "onUpdate:text": {
101
+ type: Function,
102
+ required: false
103
+ },
104
+ fieldProps: {
105
+ type: Object,
106
+ required: false
107
+ },
108
+ mode: {
109
+ type: String,
110
+ required: false
111
+ },
112
+ light: {
113
+ type: Boolean,
114
+ required: false,
115
+ default: void 0
116
+ },
117
+ label: {
118
+ type: [
119
+ Object,
120
+ Function,
121
+ String,
122
+ Number,
123
+ null,
124
+ Boolean,
125
+ Array
126
+ ],
127
+ required: false,
128
+ default: void 0
129
+ },
130
+ valueEnum: {
131
+ type: [Object, Map],
132
+ required: false
133
+ },
134
+ proFieldKey: {
135
+ type: [String, Number],
136
+ required: false
137
+ },
138
+ render: {
139
+ type: Function,
140
+ required: false
141
+ },
142
+ formItemRender: {
143
+ type: Function,
144
+ required: false
145
+ },
146
+ placeholder: {
147
+ type: String,
148
+ required: false
149
+ },
150
+ id: {
151
+ type: String,
152
+ required: false
153
+ }
154
+ },
155
+ name: "FieldDigit",
156
+ inheritAttrs: false
157
+ });
158
+ //#endregion
159
+ export { FieldDigit as default };
@@ -0,0 +1,48 @@
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 { InputNumberProps } from "antdv-next";
5
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
6
+
7
+ //#region src/components/DigitRange/index.d.ts
8
+ type Value = string | number | undefined | null;
9
+ type ValuePair = Value[];
10
+ type FieldDigitRangeProps = ProFieldFC<{
11
+ text: ValuePair;
12
+ placeholder?: string[];
13
+ separator?: string;
14
+ separatorWidth?: number;
15
+ }, Omit<InputNumberProps, 'placeholder' | 'value' | 'defaultValue' | 'onChange'> & {
16
+ id?: string;
17
+ placeholder?: string[];
18
+ value?: ValuePair;
19
+ onChange?: (value?: ValuePair) => void;
20
+ defaultValue?: ValuePair;
21
+ intlProps?: Intl.NumberFormatOptions;
22
+ }>;
23
+ declare const FieldDigitRange: _$vue.DefineSetupFnComponent<FieldDigitRangeProps, {}, CustomSlotsType<{
24
+ default?: () => VueNode;
25
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<Omit<InputNumberProps, "onChange" | "placeholder" | "value" | "defaultValue"> & {
26
+ id?: string;
27
+ placeholder?: string[];
28
+ value?: ValuePair;
29
+ onChange?: (value?: ValuePair) => void;
30
+ defaultValue?: ValuePair;
31
+ intlProps?: Intl.NumberFormatOptions;
32
+ }> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<Omit<InputNumberProps, "onChange" | "placeholder" | "value" | "defaultValue"> & {
33
+ id?: string;
34
+ placeholder?: string[];
35
+ value?: ValuePair;
36
+ onChange?: (value?: ValuePair) => void;
37
+ defaultValue?: ValuePair;
38
+ intlProps?: Intl.NumberFormatOptions;
39
+ }> & {
40
+ text: ValuePair;
41
+ placeholder?: string[];
42
+ separator?: string;
43
+ separatorWidth?: number;
44
+ } & {
45
+ id?: string;
46
+ } & {}, _$vue.PublicProps>;
47
+ //#endregion
48
+ export { FieldDigitRangeProps, Value, ValuePair, FieldDigitRange as default };