@faasjs/ant-design 0.0.2-beta.346 → 0.0.2-beta.350

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 CHANGED
@@ -1,4 +1,5 @@
1
- import { DescriptionsProps, FormItemProps as FormItemProps$1, InputProps, InputNumberProps, SwitchProps, SelectProps, FormProps as FormProps$1, TableColumnProps, TableProps as TableProps$1 } from 'antd';
1
+ import { DescriptionsProps, DrawerProps as DrawerProps$1, FormItemProps as FormItemProps$1, InputProps, InputNumberProps, SwitchProps, SelectProps, FormProps as FormProps$1, TableColumnProps, TableProps as TableProps$1 } from 'antd';
2
+ export { Drawer } from 'antd';
2
3
  import * as antd_lib_form_Form from 'antd/lib/form/Form';
3
4
  import { RuleObject } from 'rc-field-form/lib/interface';
4
5
 
@@ -58,6 +59,15 @@ declare type DescriptionProps<T = any, ExtendItemProps = any> = {
58
59
  } & DescriptionsProps;
59
60
  declare function Description(props: DescriptionProps): JSX.Element;
60
61
 
62
+ declare type DrawerProps = DrawerProps$1 & {
63
+ children?: JSX.Element | JSX.Element[];
64
+ };
65
+ declare function useDrawer(init?: DrawerProps): {
66
+ drawer: JSX.Element;
67
+ drawerProps: DrawerProps;
68
+ setDrawerProps(changes: Partial<DrawerProps>): void;
69
+ };
70
+
61
71
  declare type StringProps = {
62
72
  type?: 'string';
63
73
  input?: InputProps;
@@ -91,7 +101,7 @@ declare type ExtendFormTypeProps = {
91
101
  };
92
102
  declare type ExtendFormItemProps = BaseItemProps & FormItemProps$1;
93
103
  declare type FormItemProps<T = any> = {
94
- children?: JSX.Element;
104
+ children?: JSX.Element | null;
95
105
  rules?: RuleObject[];
96
106
  label?: string | false;
97
107
  extendTypes?: {
@@ -117,7 +127,10 @@ declare namespace Form {
117
127
  var Item: typeof FormItem;
118
128
  }
119
129
 
120
- declare type TableItemProps<T = any> = FaasItemProps & TableColumnProps<T>;
130
+ declare type TableItemProps<T = any> = {
131
+ /** @deprecated use render */
132
+ children?: JSX.Element | null;
133
+ } & FaasItemProps & TableColumnProps<T>;
121
134
  declare type ExtendTableTypeProps = {
122
135
  children?: JSX.Element | null;
123
136
  render?: (value: any, values: any) => JSX.Element | string | number | boolean | null;
@@ -135,4 +148,4 @@ declare type TableProps<T = any, ExtendTypes = any> = {
135
148
  } & TableProps$1<T>;
136
149
  declare function Table<T = any, ExtendTypes = any>(props: TableProps<T, ExtendTypes>): JSX.Element;
137
150
 
138
- export { BaseItemProps, BaseOption, Blank, Description, DescriptionItemProps, DescriptionProps, ExtendDescriptionItemProps, ExtendDescriptionTypeProps, ExtendFormItemProps, ExtendFormTypeProps, ExtendTableItemProps, ExtendTableTypeProps, FaasItemProps, FaasItemType, FaasItemTypeValue, Form, FormItem, FormItemProps, FormProps, Table, TableItemProps, TableProps, transferOptions };
151
+ export { BaseItemProps, BaseOption, Blank, Description, DescriptionItemProps, DescriptionProps, DrawerProps, ExtendDescriptionItemProps, ExtendDescriptionTypeProps, ExtendFormItemProps, ExtendFormTypeProps, ExtendTableItemProps, ExtendTableTypeProps, FaasItemProps, FaasItemType, FaasItemTypeValue, Form, FormItem, FormItemProps, FormProps, Table, TableItemProps, TableProps, transferOptions, useDrawer };
package/dist/index.js CHANGED
@@ -48,10 +48,12 @@ var src_exports = {};
48
48
  __export(src_exports, {
49
49
  Blank: () => Blank,
50
50
  Description: () => Description,
51
+ Drawer: () => import_antd3.Drawer,
51
52
  Form: () => Form,
52
53
  FormItem: () => FormItem,
53
54
  Table: () => Table,
54
- transferOptions: () => transferOptions
55
+ transferOptions: () => transferOptions,
56
+ useDrawer: () => useDrawer
55
57
  });
56
58
 
57
59
  // react-shim.js
@@ -98,13 +100,18 @@ function FaasDataWrapper({
98
100
  (0, import_react2.useEffect)(() => {
99
101
  if (!faasData)
100
102
  return;
101
- (0, import_react3.getClient)().faas(faasData.action, faasData.action).then((res) => setData(res.data));
102
- }, [JSON.stringify(faasData)]);
103
+ (0, import_react3.getClient)().faas(faasData.action, faasData.params).then((res) => {
104
+ if (faasData.setData)
105
+ faasData.setData(res.data);
106
+ else
107
+ setData(res.data);
108
+ });
109
+ }, [JSON.stringify([faasData == null ? void 0 : faasData.action, faasData == null ? void 0 : faasData.params])]);
103
110
  if (dataSource)
104
111
  return render({ data: dataSource });
105
- if (!data)
112
+ if (!data && !faasData.data)
106
113
  return fallback || null;
107
- return render({ data });
114
+ return render({ data: faasData.data || data });
108
115
  }
109
116
 
110
117
  // src/Description.tsx
@@ -188,17 +195,37 @@ function Description(props) {
188
195
  });
189
196
  }
190
197
 
198
+ // src/Drawer.tsx
199
+ var import_antd3 = require("antd");
200
+ var import_react5 = require("react");
201
+ function useDrawer(init) {
202
+ const [props, setProps] = (0, import_react5.useState)(__spreadValues({
203
+ visible: false,
204
+ onClose: () => setProps((prev) => __spreadProps(__spreadValues({}, prev), {
205
+ visible: false
206
+ }))
207
+ }, init));
208
+ return {
209
+ drawer: /* @__PURE__ */ import_react.default.createElement(import_antd3.Drawer, __spreadValues({}, props)),
210
+ drawerProps: props,
211
+ setDrawerProps(changes) {
212
+ setProps((prev) => __spreadValues(__spreadValues({}, prev), changes));
213
+ }
214
+ };
215
+ }
216
+
191
217
  // src/Form.tsx
192
- var import_antd4 = require("antd");
218
+ var import_antd5 = require("antd");
219
+ var import_react7 = require("react");
193
220
 
194
221
  // src/FormItem.tsx
195
- var import_antd3 = require("antd");
222
+ var import_antd4 = require("antd");
196
223
  var import_icons2 = require("@ant-design/icons");
197
- var import_react5 = require("react");
224
+ var import_react6 = require("react");
198
225
  var import_lodash4 = require("lodash");
199
226
  function FormItem(props) {
200
- const [computedProps, setComputedProps] = (0, import_react5.useState)();
201
- (0, import_react5.useEffect)(() => {
227
+ const [computedProps, setComputedProps] = (0, import_react6.useState)();
228
+ (0, import_react6.useEffect)(() => {
202
229
  const propsCopy = __spreadValues({}, props);
203
230
  if (!propsCopy.title)
204
231
  propsCopy.title = (0, import_lodash4.upperFirst)(propsCopy.id);
@@ -239,58 +266,58 @@ function FormItem(props) {
239
266
  if (!computedProps)
240
267
  return null;
241
268
  if (computedProps.extendTypes && computedProps.extendTypes[computedProps.type])
242
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), computedProps.extendTypes[computedProps.type].children);
269
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), computedProps.extendTypes[computedProps.type].children);
243
270
  if (computedProps.children)
244
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), computedProps.children);
271
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), computedProps.children);
245
272
  switch (computedProps.type) {
246
273
  case "string":
247
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), computedProps.options ? /* @__PURE__ */ import_react.default.createElement(import_antd3.Select, __spreadValues({}, computedProps.input)) : /* @__PURE__ */ import_react.default.createElement(import_antd3.Input, __spreadValues({}, computedProps.input)));
274
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), computedProps.options ? /* @__PURE__ */ import_react.default.createElement(import_antd4.Select, __spreadValues({}, computedProps.input)) : /* @__PURE__ */ import_react.default.createElement(import_antd4.Input, __spreadValues({}, computedProps.input)));
248
275
  case "string[]":
249
276
  if (computedProps.options)
250
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd3.Select, __spreadValues({
277
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd4.Select, __spreadValues({
251
278
  mode: "multiple"
252
279
  }, computedProps.input)));
253
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.List, {
280
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.List, {
254
281
  name: computedProps.name,
255
282
  rules: computedProps.rules
256
283
  }, (fields, { add, remove }, { errors }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, computedProps.label && /* @__PURE__ */ import_react.default.createElement("div", {
257
284
  className: "ant-form-item-label"
258
285
  }, /* @__PURE__ */ import_react.default.createElement("label", {
259
286
  className: computedProps.rules.find((r) => r.required) && "ant-form-item-required"
260
- }, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, {
287
+ }, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, {
261
288
  key: field.key
262
- }, /* @__PURE__ */ import_react.default.createElement(import_antd3.Row, {
289
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd4.Row, {
263
290
  gutter: 24
264
- }, /* @__PURE__ */ import_react.default.createElement(import_antd3.Col, {
291
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd4.Col, {
265
292
  span: 23
266
- }, /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadProps(__spreadValues({}, field), {
293
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadProps(__spreadValues({}, field), {
267
294
  noStyle: true
268
- }), /* @__PURE__ */ import_react.default.createElement(import_antd3.Input, __spreadValues({}, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(import_antd3.Col, {
295
+ }), /* @__PURE__ */ import_react.default.createElement(import_antd4.Input, __spreadValues({}, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(import_antd4.Col, {
269
296
  span: 1
270
- }, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(import_antd3.Button, {
297
+ }, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(import_antd4.Button, {
271
298
  danger: true,
272
299
  type: "link",
273
300
  style: { float: "right" },
274
301
  icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.MinusCircleOutlined, null),
275
302
  onClick: () => remove(field.name)
276
- }))))), /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, null, (!computedProps.maxCount || computedProps.maxCount > fields.length) && /* @__PURE__ */ import_react.default.createElement(import_antd3.Button, {
303
+ }))))), /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, null, (!computedProps.maxCount || computedProps.maxCount > fields.length) && /* @__PURE__ */ import_react.default.createElement(import_antd4.Button, {
277
304
  type: "dashed",
278
305
  block: true,
279
306
  onClick: () => add(),
280
307
  icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.PlusOutlined, null)
281
- }), /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.ErrorList, {
308
+ }), /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.ErrorList, {
282
309
  errors
283
310
  }))));
284
311
  case "number":
285
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), computedProps.options ? /* @__PURE__ */ import_react.default.createElement(import_antd3.Select, __spreadValues({}, computedProps.input)) : /* @__PURE__ */ import_react.default.createElement(import_antd3.InputNumber, __spreadValues({
312
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), computedProps.options ? /* @__PURE__ */ import_react.default.createElement(import_antd4.Select, __spreadValues({}, computedProps.input)) : /* @__PURE__ */ import_react.default.createElement(import_antd4.InputNumber, __spreadValues({
286
313
  style: { width: "100%" }
287
314
  }, computedProps.input)));
288
315
  case "number[]":
289
316
  if (computedProps.options)
290
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd3.Select, __spreadValues({
317
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd4.Select, __spreadValues({
291
318
  mode: "multiple"
292
319
  }, computedProps.input)));
293
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.List, {
320
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.List, {
294
321
  name: computedProps.name,
295
322
  rules: computedProps.rules
296
323
  }, (fields, { add, remove }, { errors }) => {
@@ -299,35 +326,35 @@ function FormItem(props) {
299
326
  className: "ant-form-item-label"
300
327
  }, /* @__PURE__ */ import_react.default.createElement("label", {
301
328
  className: ((_a2 = computedProps.rules) == null ? void 0 : _a2.find((r) => r.required)) && "ant-form-item-required"
302
- }, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, {
329
+ }, computedProps.label)), fields.map((field) => /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, {
303
330
  key: field.key
304
- }, /* @__PURE__ */ import_react.default.createElement(import_antd3.Row, {
331
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd4.Row, {
305
332
  gutter: 24
306
- }, /* @__PURE__ */ import_react.default.createElement(import_antd3.Col, {
333
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd4.Col, {
307
334
  span: 23
308
- }, /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadProps(__spreadValues({}, field), {
335
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadProps(__spreadValues({}, field), {
309
336
  noStyle: true
310
- }), /* @__PURE__ */ import_react.default.createElement(import_antd3.InputNumber, __spreadValues({
337
+ }), /* @__PURE__ */ import_react.default.createElement(import_antd4.InputNumber, __spreadValues({
311
338
  style: { width: "100%" }
312
- }, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(import_antd3.Col, {
339
+ }, computedProps.input)))), /* @__PURE__ */ import_react.default.createElement(import_antd4.Col, {
313
340
  span: 1
314
- }, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(import_antd3.Button, {
341
+ }, (!computedProps.rules.find((r) => r.required) || field.key > 0) && /* @__PURE__ */ import_react.default.createElement(import_antd4.Button, {
315
342
  danger: true,
316
343
  type: "link",
317
344
  style: { float: "right" },
318
345
  icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.MinusCircleOutlined, null),
319
346
  onClick: () => remove(field.name)
320
- }))))), /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, null, (!computedProps.maxCount || computedProps.maxCount > fields.length) && /* @__PURE__ */ import_react.default.createElement(import_antd3.Button, {
347
+ }))))), /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, null, (!computedProps.maxCount || computedProps.maxCount > fields.length) && /* @__PURE__ */ import_react.default.createElement(import_antd4.Button, {
321
348
  type: "dashed",
322
349
  block: true,
323
350
  onClick: () => add(),
324
351
  icon: /* @__PURE__ */ import_react.default.createElement(import_icons2.PlusOutlined, null)
325
- }), /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.ErrorList, {
352
+ }), /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.ErrorList, {
326
353
  errors
327
354
  })));
328
355
  });
329
356
  case "boolean":
330
- return /* @__PURE__ */ import_react.default.createElement(import_antd3.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd3.Switch, __spreadValues({}, computedProps.input)));
357
+ return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form.Item, __spreadValues({}, computedProps), /* @__PURE__ */ import_react.default.createElement(import_antd4.Switch, __spreadValues({}, computedProps.input)));
331
358
  default:
332
359
  return null;
333
360
  }
@@ -336,21 +363,39 @@ function FormItem(props) {
336
363
  // src/Form.tsx
337
364
  function Form(props) {
338
365
  var _a2, _b;
339
- return /* @__PURE__ */ import_react.default.createElement(import_antd4.Form, __spreadValues({}, props), (_a2 = props.items) == null ? void 0 : _a2.map((item) => /* @__PURE__ */ import_react.default.createElement(FormItem, __spreadProps(__spreadValues({
366
+ const [loading, setLoading] = (0, import_react7.useState)(false);
367
+ const [computedProps, setComputedProps] = (0, import_react7.useState)();
368
+ (0, import_react7.useEffect)(() => {
369
+ const propsCopy = __spreadValues({}, props);
370
+ if (propsCopy.onFinish) {
371
+ propsCopy.onFinish = async (values) => {
372
+ setLoading(true);
373
+ try {
374
+ await propsCopy.onFinish(values);
375
+ } catch (error) {
376
+ console.error(error);
377
+ }
378
+ setLoading(false);
379
+ };
380
+ }
381
+ setComputedProps(props);
382
+ }, []);
383
+ return /* @__PURE__ */ import_react.default.createElement(import_antd5.Form, __spreadValues({}, computedProps), (_a2 = props.items) == null ? void 0 : _a2.map((item) => /* @__PURE__ */ import_react.default.createElement(FormItem, __spreadProps(__spreadValues({
340
384
  key: item.id
341
385
  }, item), {
342
386
  extendTypes: props.extendTypes
343
- }))), props.children, props.submit !== false && /* @__PURE__ */ import_react.default.createElement(import_antd4.Button, {
387
+ }))), props.children, props.submit !== false && /* @__PURE__ */ import_react.default.createElement(import_antd5.Button, {
344
388
  htmlType: "submit",
345
- type: "primary"
389
+ type: "primary",
390
+ loading
346
391
  }, ((_b = props.submit) == null ? void 0 : _b.text) || "Submit"));
347
392
  }
348
- Form.useForm = import_antd4.Form.useForm;
393
+ Form.useForm = import_antd5.Form.useForm;
349
394
  Form.Item = FormItem;
350
395
 
351
396
  // src/Table.tsx
352
- var import_react6 = require("react");
353
- var import_antd5 = require("antd");
397
+ var import_react8 = require("react");
398
+ var import_antd6 = require("antd");
354
399
  var import_icons3 = require("@ant-design/icons");
355
400
  var import_lodash5 = require("lodash");
356
401
  function processValue(item, value) {
@@ -367,8 +412,8 @@ function processValue(item, value) {
367
412
  return value;
368
413
  }
369
414
  function Table(props) {
370
- const [columns, setColumns] = (0, import_react6.useState)();
371
- (0, import_react6.useEffect)(() => {
415
+ const [columns, setColumns] = (0, import_react8.useState)();
416
+ (0, import_react8.useEffect)(() => {
372
417
  var _a2;
373
418
  for (const item of props.items) {
374
419
  if (!item.key)
@@ -388,9 +433,11 @@ function Table(props) {
388
433
  }
389
434
  if (item.render)
390
435
  continue;
436
+ if (item.children)
437
+ delete item.children;
391
438
  if (props.extendTypes && props.extendTypes[item.type]) {
392
439
  if (props.extendTypes[item.type].children) {
393
- item.render = (value, values) => (0, import_react6.cloneElement)(props.extendTypes[item.type].children, {
440
+ item.render = (value, values) => (0, import_react8.cloneElement)(props.extendTypes[item.type].children, {
394
441
  value,
395
442
  values
396
443
  });
@@ -403,14 +450,20 @@ function Table(props) {
403
450
  switch (item.type) {
404
451
  case "string[]":
405
452
  item.render = (value) => processValue(item, value).join(", ");
453
+ if (!item.onFilter)
454
+ item.onFilter = (value, row) => row[item.id].includes(value);
406
455
  break;
407
456
  case "number":
408
457
  item.render = (value) => processValue(item, value);
409
458
  if (!item.sorter)
410
459
  item.sorter = (a, b) => a[item.id] - b[item.id];
460
+ if (!item.onFilter)
461
+ item.onFilter = (value, row) => value === row[item.id];
411
462
  break;
412
463
  case "number[]":
413
464
  item.render = (value) => processValue(item, value).join(", ");
465
+ if (!item.onFilter)
466
+ item.onFilter = (value, row) => row[item.id].includes(value);
414
467
  break;
415
468
  case "boolean":
416
469
  item.render = (value) => typeof value === "undefined" ? /* @__PURE__ */ import_react.default.createElement(Blank, null) : value ? /* @__PURE__ */ import_react.default.createElement(import_icons3.CheckOutlined, {
@@ -431,7 +484,7 @@ function Table(props) {
431
484
  confirm
432
485
  }) => {
433
486
  var _a3, _b;
434
- return /* @__PURE__ */ import_react.default.createElement(import_antd5.Radio.Group, {
487
+ return /* @__PURE__ */ import_react.default.createElement(import_antd6.Radio.Group, {
435
488
  style: { padding: 8 },
436
489
  buttonStyle: "solid",
437
490
  value: selectedKeys[0],
@@ -439,21 +492,21 @@ function Table(props) {
439
492
  setSelectedKeys(e.target.value ? [e.target.value] : []);
440
493
  confirm();
441
494
  }
442
- }, /* @__PURE__ */ import_react.default.createElement(import_antd5.Radio.Button, null, ((_a3 = navigator.language) == null ? void 0 : _a3.includes("CN")) ? "\u5168\u90E8" : "All"), /* @__PURE__ */ import_react.default.createElement(import_antd5.Radio.Button, {
495
+ }, /* @__PURE__ */ import_react.default.createElement(import_antd6.Radio.Button, null, ((_a3 = navigator.language) == null ? void 0 : _a3.includes("CN")) ? "\u5168\u90E8" : "All"), /* @__PURE__ */ import_react.default.createElement(import_antd6.Radio.Button, {
443
496
  value: "true"
444
497
  }, /* @__PURE__ */ import_react.default.createElement(import_icons3.CheckOutlined, {
445
498
  style: {
446
499
  color: "#52c41a",
447
500
  verticalAlign: "middle"
448
501
  }
449
- })), /* @__PURE__ */ import_react.default.createElement(import_antd5.Radio.Button, {
502
+ })), /* @__PURE__ */ import_react.default.createElement(import_antd6.Radio.Button, {
450
503
  value: "false"
451
504
  }, /* @__PURE__ */ import_react.default.createElement(import_icons3.CloseOutlined, {
452
505
  style: {
453
506
  verticalAlign: "middle",
454
507
  color: "#ff4d4f"
455
508
  }
456
- })), /* @__PURE__ */ import_react.default.createElement(import_antd5.Radio.Button, {
509
+ })), /* @__PURE__ */ import_react.default.createElement(import_antd6.Radio.Button, {
457
510
  value: "empty"
458
511
  }, ((_b = navigator.language) == null ? void 0 : _b.includes("CN")) ? "\u7A7A" : "Empty"));
459
512
  };
@@ -473,6 +526,8 @@ function Table(props) {
473
526
  break;
474
527
  default:
475
528
  item.render = (value) => processValue(item, value);
529
+ if (!item.onFilter)
530
+ item.onFilter = (value, row) => value === row[item.id];
476
531
  break;
477
532
  }
478
533
  }
@@ -483,7 +538,7 @@ function Table(props) {
483
538
  return /* @__PURE__ */ import_react.default.createElement(FaasDataWrapper, {
484
539
  dataSource: props.dataSource,
485
540
  faasData: props.faasData,
486
- render: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_antd5.Table, __spreadProps(__spreadValues({}, props), {
541
+ render: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_antd6.Table, __spreadProps(__spreadValues({}, props), {
487
542
  rowKey: props.rowKey || "id",
488
543
  columns,
489
544
  dataSource: data
@@ -495,8 +550,10 @@ module.exports = __toCommonJS(src_exports);
495
550
  0 && (module.exports = {
496
551
  Blank,
497
552
  Description,
553
+ Drawer,
498
554
  Form,
499
555
  FormItem,
500
556
  Table,
501
- transferOptions
557
+ transferOptions,
558
+ useDrawer
502
559
  });
package/dist/index.mjs CHANGED
@@ -54,7 +54,10 @@ import {
54
54
  } from "react";
55
55
 
56
56
  // src/FaasWrapper.tsx
57
- import { useEffect, useState } from "react";
57
+ import {
58
+ useEffect,
59
+ useState
60
+ } from "react";
58
61
  import { getClient } from "@faasjs/react";
59
62
  function FaasDataWrapper({
60
63
  dataSource,
@@ -66,13 +69,18 @@ function FaasDataWrapper({
66
69
  useEffect(() => {
67
70
  if (!faasData)
68
71
  return;
69
- getClient().faas(faasData.action, faasData.action).then((res) => setData(res.data));
70
- }, [JSON.stringify(faasData)]);
72
+ getClient().faas(faasData.action, faasData.params).then((res) => {
73
+ if (faasData.setData)
74
+ faasData.setData(res.data);
75
+ else
76
+ setData(res.data);
77
+ });
78
+ }, [JSON.stringify([faasData == null ? void 0 : faasData.action, faasData == null ? void 0 : faasData.params])]);
71
79
  if (dataSource)
72
80
  return render({ data: dataSource });
73
- if (!data)
81
+ if (!data && !faasData.data)
74
82
  return fallback || null;
75
- return render({ data });
83
+ return render({ data: faasData.data || data });
76
84
  }
77
85
 
78
86
  // src/Description.tsx
@@ -156,11 +164,31 @@ function Description(props) {
156
164
  });
157
165
  }
158
166
 
167
+ // src/Drawer.tsx
168
+ import { Drawer } from "antd";
169
+ import { useState as useState3 } from "react";
170
+ function useDrawer(init) {
171
+ const [props, setProps] = useState3(__spreadValues({
172
+ visible: false,
173
+ onClose: () => setProps((prev) => __spreadProps(__spreadValues({}, prev), {
174
+ visible: false
175
+ }))
176
+ }, init));
177
+ return {
178
+ drawer: /* @__PURE__ */ React.createElement(Drawer, __spreadValues({}, props)),
179
+ drawerProps: props,
180
+ setDrawerProps(changes) {
181
+ setProps((prev) => __spreadValues(__spreadValues({}, prev), changes));
182
+ }
183
+ };
184
+ }
185
+
159
186
  // src/Form.tsx
160
187
  import {
161
188
  Button as Button2,
162
189
  Form as AntdForm2
163
190
  } from "antd";
191
+ import { useEffect as useEffect4, useState as useState5 } from "react";
164
192
 
165
193
  // src/FormItem.tsx
166
194
  import {
@@ -174,13 +202,10 @@ import {
174
202
  Select
175
203
  } from "antd";
176
204
  import { MinusCircleOutlined, PlusOutlined } from "@ant-design/icons";
177
- import {
178
- useEffect as useEffect3,
179
- useState as useState3
180
- } from "react";
205
+ import { useEffect as useEffect3, useState as useState4 } from "react";
181
206
  import { upperFirst as upperFirst3 } from "lodash";
182
207
  function FormItem(props) {
183
- const [computedProps, setComputedProps] = useState3();
208
+ const [computedProps, setComputedProps] = useState4();
184
209
  useEffect3(() => {
185
210
  const propsCopy = __spreadValues({}, props);
186
211
  if (!propsCopy.title)
@@ -319,13 +344,31 @@ function FormItem(props) {
319
344
  // src/Form.tsx
320
345
  function Form(props) {
321
346
  var _a2, _b;
322
- return /* @__PURE__ */ React.createElement(AntdForm2, __spreadValues({}, props), (_a2 = props.items) == null ? void 0 : _a2.map((item) => /* @__PURE__ */ React.createElement(FormItem, __spreadProps(__spreadValues({
347
+ const [loading, setLoading] = useState5(false);
348
+ const [computedProps, setComputedProps] = useState5();
349
+ useEffect4(() => {
350
+ const propsCopy = __spreadValues({}, props);
351
+ if (propsCopy.onFinish) {
352
+ propsCopy.onFinish = async (values) => {
353
+ setLoading(true);
354
+ try {
355
+ await propsCopy.onFinish(values);
356
+ } catch (error) {
357
+ console.error(error);
358
+ }
359
+ setLoading(false);
360
+ };
361
+ }
362
+ setComputedProps(props);
363
+ }, []);
364
+ return /* @__PURE__ */ React.createElement(AntdForm2, __spreadValues({}, computedProps), (_a2 = props.items) == null ? void 0 : _a2.map((item) => /* @__PURE__ */ React.createElement(FormItem, __spreadProps(__spreadValues({
323
365
  key: item.id
324
366
  }, item), {
325
367
  extendTypes: props.extendTypes
326
368
  }))), props.children, props.submit !== false && /* @__PURE__ */ React.createElement(Button2, {
327
369
  htmlType: "submit",
328
- type: "primary"
370
+ type: "primary",
371
+ loading
329
372
  }, ((_b = props.submit) == null ? void 0 : _b.text) || "Submit"));
330
373
  }
331
374
  Form.useForm = AntdForm2.useForm;
@@ -333,8 +376,8 @@ Form.Item = FormItem;
333
376
 
334
377
  // src/Table.tsx
335
378
  import {
336
- useState as useState4,
337
- useEffect as useEffect4,
379
+ useState as useState6,
380
+ useEffect as useEffect5,
338
381
  cloneElement as cloneElement2
339
382
  } from "react";
340
383
  import {
@@ -357,8 +400,8 @@ function processValue(item, value) {
357
400
  return value;
358
401
  }
359
402
  function Table(props) {
360
- const [columns, setColumns] = useState4();
361
- useEffect4(() => {
403
+ const [columns, setColumns] = useState6();
404
+ useEffect5(() => {
362
405
  var _a2;
363
406
  for (const item of props.items) {
364
407
  if (!item.key)
@@ -378,6 +421,8 @@ function Table(props) {
378
421
  }
379
422
  if (item.render)
380
423
  continue;
424
+ if (item.children)
425
+ delete item.children;
381
426
  if (props.extendTypes && props.extendTypes[item.type]) {
382
427
  if (props.extendTypes[item.type].children) {
383
428
  item.render = (value, values) => cloneElement2(props.extendTypes[item.type].children, {
@@ -393,14 +438,20 @@ function Table(props) {
393
438
  switch (item.type) {
394
439
  case "string[]":
395
440
  item.render = (value) => processValue(item, value).join(", ");
441
+ if (!item.onFilter)
442
+ item.onFilter = (value, row) => row[item.id].includes(value);
396
443
  break;
397
444
  case "number":
398
445
  item.render = (value) => processValue(item, value);
399
446
  if (!item.sorter)
400
447
  item.sorter = (a, b) => a[item.id] - b[item.id];
448
+ if (!item.onFilter)
449
+ item.onFilter = (value, row) => value === row[item.id];
401
450
  break;
402
451
  case "number[]":
403
452
  item.render = (value) => processValue(item, value).join(", ");
453
+ if (!item.onFilter)
454
+ item.onFilter = (value, row) => row[item.id].includes(value);
404
455
  break;
405
456
  case "boolean":
406
457
  item.render = (value) => typeof value === "undefined" ? /* @__PURE__ */ React.createElement(Blank, null) : value ? /* @__PURE__ */ React.createElement(CheckOutlined2, {
@@ -463,6 +514,8 @@ function Table(props) {
463
514
  break;
464
515
  default:
465
516
  item.render = (value) => processValue(item, value);
517
+ if (!item.onFilter)
518
+ item.onFilter = (value, row) => value === row[item.id];
466
519
  break;
467
520
  }
468
521
  }
@@ -483,8 +536,10 @@ function Table(props) {
483
536
  export {
484
537
  Blank,
485
538
  Description,
539
+ Drawer,
486
540
  Form,
487
541
  FormItem,
488
542
  Table,
489
- transferOptions
543
+ transferOptions,
544
+ useDrawer
490
545
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faasjs/ant-design",
3
- "version": "0.0.2-beta.346",
3
+ "version": "0.0.2-beta.350",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "lodash": "*",
28
28
  "react": "*",
29
29
  "react-dom": "*",
30
- "@faasjs/react": "^0.0.2-beta.346"
30
+ "@faasjs/react": "^0.0.2-beta.350"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/lodash": "*",