@faasjs/ant-design 0.0.2-beta.332 → 0.0.2-beta.336
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/index.d.ts +32 -5
- package/dist/index.js +144 -48
- package/dist/index.mjs +116 -16
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
import { DescriptionsProps, FormItemProps as FormItemProps$1, InputProps, InputNumberProps, SwitchProps, SelectProps, FormProps as FormProps$1, TableColumnProps, TableProps as TableProps$1 } from 'antd';
|
|
1
2
|
import * as antd_lib_form_Form from 'antd/lib/form/Form';
|
|
2
|
-
import { FormItemProps as FormItemProps$1, InputProps, InputNumberProps, SwitchProps, SelectProps, FormProps as FormProps$1 } from 'antd';
|
|
3
3
|
import { RuleObject } from 'rc-field-form/lib/interface';
|
|
4
4
|
import { ReactNode } from 'react';
|
|
5
5
|
|
|
6
6
|
declare type FaasItemType = 'string' | 'string[]' | 'number' | 'number[]' | 'boolean';
|
|
7
|
+
declare type FaasItemTypeValue = {
|
|
8
|
+
string: string;
|
|
9
|
+
'string[]': string[];
|
|
10
|
+
number: number;
|
|
11
|
+
'number[]': number[];
|
|
12
|
+
boolean: boolean;
|
|
13
|
+
};
|
|
7
14
|
declare type FaasItemProps = {
|
|
8
15
|
/**
|
|
9
16
|
* Support string, string[], number, number[], boolean
|
|
@@ -14,6 +21,15 @@ declare type FaasItemProps = {
|
|
|
14
21
|
title?: string;
|
|
15
22
|
};
|
|
16
23
|
|
|
24
|
+
declare type DescriptionItemProps = FaasItemProps & {
|
|
25
|
+
children?: JSX.Element;
|
|
26
|
+
};
|
|
27
|
+
declare type DescriptionProps<T = any> = {
|
|
28
|
+
items: DescriptionItemProps[];
|
|
29
|
+
dataSource: T;
|
|
30
|
+
} & DescriptionsProps;
|
|
31
|
+
declare function Description(props: DescriptionProps): JSX.Element;
|
|
32
|
+
|
|
17
33
|
declare type StringProps = {
|
|
18
34
|
type?: 'string';
|
|
19
35
|
input?: InputProps;
|
|
@@ -57,10 +73,21 @@ declare function FormItem<T = any>(props: FormItemProps<T>): JSX.Element;
|
|
|
57
73
|
|
|
58
74
|
declare type FormProps<T = any> = {
|
|
59
75
|
items?: FormItemProps[];
|
|
76
|
+
/** Default: { text: 'Submit' } */
|
|
77
|
+
submit?: false | {
|
|
78
|
+
/** Default: Submit */
|
|
79
|
+
text?: string;
|
|
80
|
+
};
|
|
60
81
|
} & FormProps$1<T>;
|
|
61
|
-
declare
|
|
62
|
-
|
|
63
|
-
useForm: typeof antd_lib_form_Form.useForm;
|
|
82
|
+
declare function Form<T = any>(props: FormProps<T>): JSX.Element;
|
|
83
|
+
declare namespace Form {
|
|
84
|
+
var useForm: typeof antd_lib_form_Form.useForm;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
declare type TableItemProps<T = any> = FaasItemProps & TableColumnProps<T>;
|
|
88
|
+
declare type TableProps<T = any> = TableProps$1<T> & {
|
|
89
|
+
items: TableItemProps[];
|
|
64
90
|
};
|
|
91
|
+
declare function Table(props: TableProps): JSX.Element;
|
|
65
92
|
|
|
66
|
-
export { Form, FormItem, FormItemProps, FormProps };
|
|
93
|
+
export { Description, DescriptionItemProps, DescriptionProps, FaasItemProps, FaasItemType, FaasItemTypeValue, Form, FormItem, FormItemProps, FormProps, Table, TableItemProps, TableProps };
|
package/dist/index.js
CHANGED
|
@@ -46,27 +46,76 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
|
46
46
|
// src/index.ts
|
|
47
47
|
var src_exports = {};
|
|
48
48
|
__export(src_exports, {
|
|
49
|
+
Description: () => Description,
|
|
49
50
|
Form: () => Form,
|
|
50
|
-
FormItem: () => FormItem
|
|
51
|
+
FormItem: () => FormItem,
|
|
52
|
+
Table: () => Table
|
|
51
53
|
});
|
|
52
54
|
|
|
53
55
|
// react-shim.js
|
|
54
56
|
var import_react = __toESM(require("react"));
|
|
55
57
|
|
|
56
|
-
// src/
|
|
57
|
-
var import_antd2 = require("antd");
|
|
58
|
-
|
|
59
|
-
// src/components/FormItem.tsx
|
|
60
|
-
var import_antd = require("antd");
|
|
58
|
+
// src/Description.tsx
|
|
61
59
|
var import_icons = require("@ant-design/icons");
|
|
62
|
-
var
|
|
60
|
+
var import_antd = require("antd");
|
|
63
61
|
var import_lodash = require("lodash");
|
|
64
|
-
|
|
62
|
+
var import_react2 = require("react");
|
|
63
|
+
function DescriptionItemContent(props) {
|
|
65
64
|
const [computedProps, setComputedProps] = (0, import_react2.useState)();
|
|
66
65
|
(0, import_react2.useEffect)(() => {
|
|
66
|
+
const propsCopy = __spreadValues({}, props);
|
|
67
|
+
if (!propsCopy.item.title)
|
|
68
|
+
propsCopy.item.title = (0, import_lodash.upperFirst)(propsCopy.item.id);
|
|
69
|
+
if (!propsCopy.item.type)
|
|
70
|
+
propsCopy.item.type = "string";
|
|
71
|
+
setComputedProps(propsCopy);
|
|
72
|
+
}, [props]);
|
|
73
|
+
if (!computedProps || typeof computedProps.value === "undefined" || computedProps.value === null)
|
|
74
|
+
return null;
|
|
75
|
+
if (computedProps.item.children) {
|
|
76
|
+
return (0, import_react2.cloneElement)(computedProps.item.children, { value: computedProps.value });
|
|
77
|
+
}
|
|
78
|
+
switch (computedProps.item.type) {
|
|
79
|
+
case "string[]":
|
|
80
|
+
return computedProps.value.join(", ");
|
|
81
|
+
case "number":
|
|
82
|
+
return computedProps.value;
|
|
83
|
+
case "number[]":
|
|
84
|
+
return computedProps.value.join(", ");
|
|
85
|
+
case "boolean":
|
|
86
|
+
return computedProps.value ? /* @__PURE__ */ import_react.default.createElement(import_icons.CheckOutlined, {
|
|
87
|
+
style: { marginTop: "4px" }
|
|
88
|
+
}) : /* @__PURE__ */ import_react.default.createElement(import_icons.CloseOutlined, {
|
|
89
|
+
style: { marginTop: "4px" }
|
|
90
|
+
});
|
|
91
|
+
default:
|
|
92
|
+
return computedProps.value;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function Description(props) {
|
|
96
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd.Descriptions, __spreadValues({}, props), props.items.map((item) => /* @__PURE__ */ import_react.default.createElement(import_antd.Descriptions.Item, {
|
|
97
|
+
key: item.id,
|
|
98
|
+
label: item.title || (0, import_lodash.upperFirst)(item.id)
|
|
99
|
+
}, /* @__PURE__ */ import_react.default.createElement(DescriptionItemContent, {
|
|
100
|
+
item,
|
|
101
|
+
value: props.dataSource[item.id]
|
|
102
|
+
}))));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// src/Form.tsx
|
|
106
|
+
var import_antd3 = require("antd");
|
|
107
|
+
|
|
108
|
+
// src/FormItem.tsx
|
|
109
|
+
var import_antd2 = require("antd");
|
|
110
|
+
var import_icons2 = require("@ant-design/icons");
|
|
111
|
+
var import_react3 = require("react");
|
|
112
|
+
var import_lodash2 = require("lodash");
|
|
113
|
+
function FormItem(props) {
|
|
114
|
+
const [computedProps, setComputedProps] = (0, import_react3.useState)();
|
|
115
|
+
(0, import_react3.useEffect)(() => {
|
|
67
116
|
const propsCopy = __spreadValues({}, props);
|
|
68
117
|
if (!propsCopy.title)
|
|
69
|
-
propsCopy.title = (0,
|
|
118
|
+
propsCopy.title = (0, import_lodash2.upperFirst)(propsCopy.id);
|
|
70
119
|
if (!propsCopy.label && props.label !== false)
|
|
71
120
|
propsCopy.label = propsCopy.title;
|
|
72
121
|
if (!propsCopy.name)
|
|
@@ -100,7 +149,7 @@ function FormItem(props) {
|
|
|
100
149
|
options.push(option);
|
|
101
150
|
else
|
|
102
151
|
options.push({
|
|
103
|
-
label: (0,
|
|
152
|
+
label: (0, import_lodash2.upperFirst)(option.toString()),
|
|
104
153
|
value: option
|
|
105
154
|
});
|
|
106
155
|
}
|
|
@@ -116,56 +165,56 @@ function FormItem(props) {
|
|
|
116
165
|
if (!computedProps)
|
|
117
166
|
return null;
|
|
118
167
|
if (computedProps.children)
|
|
119
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
168
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadValues({}, computedProps), computedProps.children);
|
|
120
169
|
switch (computedProps.type) {
|
|
121
170
|
case "string":
|
|
122
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
171
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadValues({}, computedProps), computedProps.options ? /* @__PURE__ */ import_react.default.createElement(import_antd2.Select, __spreadValues({}, computedProps.input)) : /* @__PURE__ */ import_react.default.createElement(import_antd2.Input, __spreadValues({}, computedProps.input)));
|
|
123
172
|
case "string[]":
|
|
124
173
|
if (computedProps.options)
|
|
125
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
174
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd2.Select, __spreadValues({
|
|
126
175
|
mode: "multiple"
|
|
127
176
|
}, computedProps.input)));
|
|
128
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
177
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.List, {
|
|
129
178
|
name: computedProps.name,
|
|
130
179
|
rules: computedProps.rules
|
|
131
180
|
}, (fields, { add, remove }, { errors }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, computedProps.label && /* @__PURE__ */ import_react.default.createElement("div", {
|
|
132
181
|
className: "ant-form-item-label"
|
|
133
182
|
}, /* @__PURE__ */ import_react.default.createElement("label", {
|
|
134
183
|
className: computedProps.rules.find((r) => r.required) && "ant-form-item-required"
|
|
135
|
-
}, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(
|
|
184
|
+
}, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, {
|
|
136
185
|
key: field.key
|
|
137
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
186
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_antd2.Row, {
|
|
138
187
|
gutter: 24
|
|
139
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
188
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_antd2.Col, {
|
|
140
189
|
span: 23
|
|
141
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
190
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadProps(__spreadValues({}, field), {
|
|
142
191
|
noStyle: true
|
|
143
|
-
}), /* @__PURE__ */ import_react.default.createElement(
|
|
192
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_antd2.Input, __spreadValues({}, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(import_antd2.Col, {
|
|
144
193
|
span: 1
|
|
145
|
-
}, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(
|
|
194
|
+
}, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(import_antd2.Button, {
|
|
146
195
|
danger: true,
|
|
147
196
|
type: "link",
|
|
148
197
|
style: { float: "right" },
|
|
149
|
-
icon: /* @__PURE__ */ import_react.default.createElement(
|
|
198
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.MinusCircleOutlined, null),
|
|
150
199
|
onClick: () => remove(field.name)
|
|
151
|
-
}))))), /* @__PURE__ */ import_react.default.createElement(
|
|
200
|
+
}))))), /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, null, (!computedProps.maxCount || computedProps.maxCount > fields.length) && /* @__PURE__ */ import_react.default.createElement(import_antd2.Button, {
|
|
152
201
|
type: "dashed",
|
|
153
202
|
block: true,
|
|
154
203
|
onClick: () => add(),
|
|
155
|
-
icon: /* @__PURE__ */ import_react.default.createElement(
|
|
156
|
-
}), /* @__PURE__ */ import_react.default.createElement(
|
|
204
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.PlusOutlined, null)
|
|
205
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.ErrorList, {
|
|
157
206
|
errors
|
|
158
207
|
}))));
|
|
159
208
|
case "number":
|
|
160
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
209
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadValues({}, computedProps), computedProps.options ? /* @__PURE__ */ import_react.default.createElement(import_antd2.Select, __spreadValues({}, computedProps.input)) : /* @__PURE__ */ import_react.default.createElement(import_antd2.InputNumber, __spreadValues({
|
|
161
210
|
style: { width: "100%" }
|
|
162
211
|
}, computedProps.input)));
|
|
163
212
|
case "number[]":
|
|
164
213
|
if (computedProps.options)
|
|
165
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
214
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd2.Select, __spreadValues({
|
|
166
215
|
mode: "multiple"
|
|
167
216
|
}, computedProps.input)));
|
|
168
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
217
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.List, {
|
|
169
218
|
name: computedProps.name,
|
|
170
219
|
rules: computedProps.rules
|
|
171
220
|
}, (fields, { add, remove }, { errors }) => {
|
|
@@ -174,54 +223,101 @@ function FormItem(props) {
|
|
|
174
223
|
className: "ant-form-item-label"
|
|
175
224
|
}, /* @__PURE__ */ import_react.default.createElement("label", {
|
|
176
225
|
className: ((_a = computedProps.rules) == null ? void 0 : _a.find((r) => r.required)) && "ant-form-item-required"
|
|
177
|
-
}, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(
|
|
226
|
+
}, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, {
|
|
178
227
|
key: field.key
|
|
179
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
228
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_antd2.Row, {
|
|
180
229
|
gutter: 24
|
|
181
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
230
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_antd2.Col, {
|
|
182
231
|
span: 23
|
|
183
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
232
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadProps(__spreadValues({}, field), {
|
|
184
233
|
noStyle: true
|
|
185
|
-
}), /* @__PURE__ */ import_react.default.createElement(
|
|
234
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_antd2.InputNumber, __spreadValues({
|
|
186
235
|
style: { width: "100%" }
|
|
187
|
-
}, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(
|
|
236
|
+
}, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(import_antd2.Col, {
|
|
188
237
|
span: 1
|
|
189
|
-
}, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(
|
|
238
|
+
}, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(import_antd2.Button, {
|
|
190
239
|
danger: true,
|
|
191
240
|
type: "link",
|
|
192
241
|
style: { float: "right" },
|
|
193
|
-
icon: /* @__PURE__ */ import_react.default.createElement(
|
|
242
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.MinusCircleOutlined, null),
|
|
194
243
|
onClick: () => remove(field.name)
|
|
195
|
-
}))))), /* @__PURE__ */ import_react.default.createElement(
|
|
244
|
+
}))))), /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, null, (!computedProps.maxCount || computedProps.maxCount > fields.length) && /* @__PURE__ */ import_react.default.createElement(import_antd2.Button, {
|
|
196
245
|
type: "dashed",
|
|
197
246
|
block: true,
|
|
198
247
|
onClick: () => add(),
|
|
199
|
-
icon: /* @__PURE__ */ import_react.default.createElement(
|
|
200
|
-
}), /* @__PURE__ */ import_react.default.createElement(
|
|
248
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.PlusOutlined, null)
|
|
249
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.ErrorList, {
|
|
201
250
|
errors
|
|
202
251
|
})));
|
|
203
252
|
});
|
|
204
253
|
case "boolean":
|
|
205
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
254
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd2.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd2.Switch, __spreadValues({}, computedProps.input)));
|
|
206
255
|
default:
|
|
207
256
|
return null;
|
|
208
257
|
}
|
|
209
258
|
}
|
|
210
259
|
|
|
211
|
-
// src/
|
|
212
|
-
|
|
213
|
-
var _a;
|
|
214
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
260
|
+
// src/Form.tsx
|
|
261
|
+
function Form(props) {
|
|
262
|
+
var _a, _b;
|
|
263
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form, __spreadValues({}, props), (_a = props.items) == null ? void 0 : _a.map((item) => /* @__PURE__ */ import_react.default.createElement(FormItem, __spreadValues({
|
|
215
264
|
key: item.id
|
|
216
|
-
}, item))), props.children, /* @__PURE__ */ import_react.default.createElement(
|
|
265
|
+
}, item))), props.children, props.submit !== false && /* @__PURE__ */ import_react.default.createElement(import_antd3.Button, {
|
|
217
266
|
htmlType: "submit",
|
|
218
267
|
type: "primary"
|
|
219
|
-
}, "Submit"));
|
|
220
|
-
}
|
|
221
|
-
Form.useForm =
|
|
268
|
+
}, ((_b = props.submit) == null ? void 0 : _b.text) || "Submit"));
|
|
269
|
+
}
|
|
270
|
+
Form.useForm = import_antd3.Form.useForm;
|
|
271
|
+
|
|
272
|
+
// src/Table.tsx
|
|
273
|
+
var import_react4 = require("react");
|
|
274
|
+
var import_antd4 = require("antd");
|
|
275
|
+
var import_icons3 = require("@ant-design/icons");
|
|
276
|
+
var import_lodash3 = require("lodash");
|
|
277
|
+
function Table(props) {
|
|
278
|
+
const [columns, setColumns] = (0, import_react4.useState)();
|
|
279
|
+
(0, import_react4.useEffect)(() => {
|
|
280
|
+
for (const item of props.items) {
|
|
281
|
+
if (!item.key)
|
|
282
|
+
item.key = item.id;
|
|
283
|
+
if (!item.dataIndex)
|
|
284
|
+
item.dataIndex = item.id;
|
|
285
|
+
if (!item.title)
|
|
286
|
+
item.title = (0, import_lodash3.upperFirst)(item.id);
|
|
287
|
+
if (!item.type)
|
|
288
|
+
item.type = "string";
|
|
289
|
+
if (item.render)
|
|
290
|
+
continue;
|
|
291
|
+
switch (item.type) {
|
|
292
|
+
case "string[]":
|
|
293
|
+
item.render = (value) => value.join(", ");
|
|
294
|
+
break;
|
|
295
|
+
case "number[]":
|
|
296
|
+
item.render = (value) => value.join(", ");
|
|
297
|
+
break;
|
|
298
|
+
case "boolean":
|
|
299
|
+
item.render = (value) => value ? /* @__PURE__ */ import_react.default.createElement(import_icons3.CheckOutlined, {
|
|
300
|
+
style: { marginTop: "4px" }
|
|
301
|
+
}) : /* @__PURE__ */ import_react.default.createElement(import_icons3.CloseOutlined, {
|
|
302
|
+
style: { marginTop: "4px" }
|
|
303
|
+
});
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
setColumns(props.items);
|
|
308
|
+
}, [props.items]);
|
|
309
|
+
if (!columns)
|
|
310
|
+
return null;
|
|
311
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd4.Table, __spreadProps(__spreadValues({}, props), {
|
|
312
|
+
rowKey: props.rowKey || "id",
|
|
313
|
+
columns
|
|
314
|
+
}));
|
|
315
|
+
}
|
|
222
316
|
module.exports = __toCommonJS(src_exports);
|
|
223
317
|
// Annotate the CommonJS export names for ESM import in node:
|
|
224
318
|
0 && (module.exports = {
|
|
319
|
+
Description,
|
|
225
320
|
Form,
|
|
226
|
-
FormItem
|
|
321
|
+
FormItem,
|
|
322
|
+
Table
|
|
227
323
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -21,13 +21,64 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
21
21
|
// react-shim.js
|
|
22
22
|
import React from "react";
|
|
23
23
|
|
|
24
|
-
// src/
|
|
24
|
+
// src/Description.tsx
|
|
25
|
+
import { CheckOutlined, CloseOutlined } from "@ant-design/icons";
|
|
26
|
+
import { Descriptions } from "antd";
|
|
27
|
+
import { upperFirst } from "lodash";
|
|
28
|
+
import {
|
|
29
|
+
cloneElement,
|
|
30
|
+
useEffect,
|
|
31
|
+
useState
|
|
32
|
+
} from "react";
|
|
33
|
+
function DescriptionItemContent(props) {
|
|
34
|
+
const [computedProps, setComputedProps] = useState();
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const propsCopy = __spreadValues({}, props);
|
|
37
|
+
if (!propsCopy.item.title)
|
|
38
|
+
propsCopy.item.title = upperFirst(propsCopy.item.id);
|
|
39
|
+
if (!propsCopy.item.type)
|
|
40
|
+
propsCopy.item.type = "string";
|
|
41
|
+
setComputedProps(propsCopy);
|
|
42
|
+
}, [props]);
|
|
43
|
+
if (!computedProps || typeof computedProps.value === "undefined" || computedProps.value === null)
|
|
44
|
+
return null;
|
|
45
|
+
if (computedProps.item.children) {
|
|
46
|
+
return cloneElement(computedProps.item.children, { value: computedProps.value });
|
|
47
|
+
}
|
|
48
|
+
switch (computedProps.item.type) {
|
|
49
|
+
case "string[]":
|
|
50
|
+
return computedProps.value.join(", ");
|
|
51
|
+
case "number":
|
|
52
|
+
return computedProps.value;
|
|
53
|
+
case "number[]":
|
|
54
|
+
return computedProps.value.join(", ");
|
|
55
|
+
case "boolean":
|
|
56
|
+
return computedProps.value ? /* @__PURE__ */ React.createElement(CheckOutlined, {
|
|
57
|
+
style: { marginTop: "4px" }
|
|
58
|
+
}) : /* @__PURE__ */ React.createElement(CloseOutlined, {
|
|
59
|
+
style: { marginTop: "4px" }
|
|
60
|
+
});
|
|
61
|
+
default:
|
|
62
|
+
return computedProps.value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function Description(props) {
|
|
66
|
+
return /* @__PURE__ */ React.createElement(Descriptions, __spreadValues({}, props), props.items.map((item) => /* @__PURE__ */ React.createElement(Descriptions.Item, {
|
|
67
|
+
key: item.id,
|
|
68
|
+
label: item.title || upperFirst(item.id)
|
|
69
|
+
}, /* @__PURE__ */ React.createElement(DescriptionItemContent, {
|
|
70
|
+
item,
|
|
71
|
+
value: props.dataSource[item.id]
|
|
72
|
+
}))));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/Form.tsx
|
|
25
76
|
import {
|
|
26
77
|
Button as Button2,
|
|
27
78
|
Form as AntdForm2
|
|
28
79
|
} from "antd";
|
|
29
80
|
|
|
30
|
-
// src/
|
|
81
|
+
// src/FormItem.tsx
|
|
31
82
|
import {
|
|
32
83
|
Button,
|
|
33
84
|
Row,
|
|
@@ -40,16 +91,16 @@ import {
|
|
|
40
91
|
} from "antd";
|
|
41
92
|
import { MinusCircleOutlined, PlusOutlined } from "@ant-design/icons";
|
|
42
93
|
import {
|
|
43
|
-
useEffect,
|
|
44
|
-
useState
|
|
94
|
+
useEffect as useEffect2,
|
|
95
|
+
useState as useState2
|
|
45
96
|
} from "react";
|
|
46
|
-
import { upperFirst } from "lodash";
|
|
97
|
+
import { upperFirst as upperFirst2 } from "lodash";
|
|
47
98
|
function FormItem(props) {
|
|
48
|
-
const [computedProps, setComputedProps] =
|
|
49
|
-
|
|
99
|
+
const [computedProps, setComputedProps] = useState2();
|
|
100
|
+
useEffect2(() => {
|
|
50
101
|
const propsCopy = __spreadValues({}, props);
|
|
51
102
|
if (!propsCopy.title)
|
|
52
|
-
propsCopy.title =
|
|
103
|
+
propsCopy.title = upperFirst2(propsCopy.id);
|
|
53
104
|
if (!propsCopy.label && props.label !== false)
|
|
54
105
|
propsCopy.label = propsCopy.title;
|
|
55
106
|
if (!propsCopy.name)
|
|
@@ -83,7 +134,7 @@ function FormItem(props) {
|
|
|
83
134
|
options.push(option);
|
|
84
135
|
else
|
|
85
136
|
options.push({
|
|
86
|
-
label:
|
|
137
|
+
label: upperFirst2(option.toString()),
|
|
87
138
|
value: option
|
|
88
139
|
});
|
|
89
140
|
}
|
|
@@ -191,18 +242,67 @@ function FormItem(props) {
|
|
|
191
242
|
}
|
|
192
243
|
}
|
|
193
244
|
|
|
194
|
-
// src/
|
|
195
|
-
|
|
196
|
-
var _a;
|
|
245
|
+
// src/Form.tsx
|
|
246
|
+
function Form(props) {
|
|
247
|
+
var _a, _b;
|
|
197
248
|
return /* @__PURE__ */ React.createElement(AntdForm2, __spreadValues({}, props), (_a = props.items) == null ? void 0 : _a.map((item) => /* @__PURE__ */ React.createElement(FormItem, __spreadValues({
|
|
198
249
|
key: item.id
|
|
199
|
-
}, item))), props.children, /* @__PURE__ */ React.createElement(Button2, {
|
|
250
|
+
}, item))), props.children, props.submit !== false && /* @__PURE__ */ React.createElement(Button2, {
|
|
200
251
|
htmlType: "submit",
|
|
201
252
|
type: "primary"
|
|
202
|
-
}, "Submit"));
|
|
203
|
-
}
|
|
253
|
+
}, ((_b = props.submit) == null ? void 0 : _b.text) || "Submit"));
|
|
254
|
+
}
|
|
204
255
|
Form.useForm = AntdForm2.useForm;
|
|
256
|
+
|
|
257
|
+
// src/Table.tsx
|
|
258
|
+
import { useState as useState3, useEffect as useEffect3 } from "react";
|
|
259
|
+
import {
|
|
260
|
+
Table as AntdTable
|
|
261
|
+
} from "antd";
|
|
262
|
+
import { CheckOutlined as CheckOutlined2, CloseOutlined as CloseOutlined2 } from "@ant-design/icons";
|
|
263
|
+
import { upperFirst as upperFirst3 } from "lodash";
|
|
264
|
+
function Table(props) {
|
|
265
|
+
const [columns, setColumns] = useState3();
|
|
266
|
+
useEffect3(() => {
|
|
267
|
+
for (const item of props.items) {
|
|
268
|
+
if (!item.key)
|
|
269
|
+
item.key = item.id;
|
|
270
|
+
if (!item.dataIndex)
|
|
271
|
+
item.dataIndex = item.id;
|
|
272
|
+
if (!item.title)
|
|
273
|
+
item.title = upperFirst3(item.id);
|
|
274
|
+
if (!item.type)
|
|
275
|
+
item.type = "string";
|
|
276
|
+
if (item.render)
|
|
277
|
+
continue;
|
|
278
|
+
switch (item.type) {
|
|
279
|
+
case "string[]":
|
|
280
|
+
item.render = (value) => value.join(", ");
|
|
281
|
+
break;
|
|
282
|
+
case "number[]":
|
|
283
|
+
item.render = (value) => value.join(", ");
|
|
284
|
+
break;
|
|
285
|
+
case "boolean":
|
|
286
|
+
item.render = (value) => value ? /* @__PURE__ */ React.createElement(CheckOutlined2, {
|
|
287
|
+
style: { marginTop: "4px" }
|
|
288
|
+
}) : /* @__PURE__ */ React.createElement(CloseOutlined2, {
|
|
289
|
+
style: { marginTop: "4px" }
|
|
290
|
+
});
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
setColumns(props.items);
|
|
295
|
+
}, [props.items]);
|
|
296
|
+
if (!columns)
|
|
297
|
+
return null;
|
|
298
|
+
return /* @__PURE__ */ React.createElement(AntdTable, __spreadProps(__spreadValues({}, props), {
|
|
299
|
+
rowKey: props.rowKey || "id",
|
|
300
|
+
columns
|
|
301
|
+
}));
|
|
302
|
+
}
|
|
205
303
|
export {
|
|
304
|
+
Description,
|
|
206
305
|
Form,
|
|
207
|
-
FormItem
|
|
306
|
+
FormItem,
|
|
307
|
+
Table
|
|
208
308
|
};
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faasjs/ant-design",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
3
|
+
"version": "0.0.2-beta.336",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"module": "dist/index.mjs",
|
|
8
7
|
"homepage": "https://faasjs.com/doc/ant-design.html",
|
|
9
8
|
"repository": {
|
|
10
9
|
"type": "git",
|
|
@@ -27,7 +26,8 @@
|
|
|
27
26
|
"antd": "*",
|
|
28
27
|
"lodash": "*",
|
|
29
28
|
"react": "*",
|
|
30
|
-
"react-dom": "*"
|
|
29
|
+
"react-dom": "*",
|
|
30
|
+
"@faasjs/react": "^0.0.2-beta.336"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/lodash": "*",
|