@plasmicpkgs/antd5 0.0.82 → 0.0.84

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 (52) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/antd.esm.js +212 -100
  3. package/dist/antd.esm.js.map +1 -1
  4. package/dist/index.js +212 -100
  5. package/dist/index.js.map +1 -1
  6. package/dist/react-utils.d.ts +2 -1
  7. package/dist/registerForm.d.ts +12 -3
  8. package/dist/utils.d.ts +2 -0
  9. package/package.json +3 -3
  10. package/skinny/react-utils.d.ts +2 -1
  11. package/skinny/registerButton.cjs.js +1 -1
  12. package/skinny/registerButton.esm.js +1 -1
  13. package/skinny/registerCheckbox.cjs.js +1 -1
  14. package/skinny/registerCheckbox.esm.js +1 -1
  15. package/skinny/registerConfigProvider.cjs.js +1 -1
  16. package/skinny/registerConfigProvider.esm.js +1 -1
  17. package/skinny/registerDatePicker.cjs.js +1 -1
  18. package/skinny/registerDatePicker.esm.js +1 -1
  19. package/skinny/registerDropdown.cjs.js +1 -1
  20. package/skinny/registerDropdown.esm.js +1 -1
  21. package/skinny/registerForm.cjs.js +184 -186
  22. package/skinny/registerForm.cjs.js.map +1 -1
  23. package/skinny/registerForm.d.ts +12 -3
  24. package/skinny/registerForm.esm.js +182 -184
  25. package/skinny/registerForm.esm.js.map +1 -1
  26. package/skinny/registerInput.cjs.js +1 -1
  27. package/skinny/registerInput.esm.js +1 -1
  28. package/skinny/registerMenu.cjs.js +1 -1
  29. package/skinny/registerMenu.esm.js +1 -1
  30. package/skinny/registerModal.cjs.js +1 -1
  31. package/skinny/registerModal.esm.js +1 -1
  32. package/skinny/registerRadio.cjs.js +1 -1
  33. package/skinny/registerRadio.esm.js +1 -1
  34. package/skinny/registerSelect-2c9dfc05.cjs.js +477 -0
  35. package/skinny/registerSelect-2c9dfc05.cjs.js.map +1 -0
  36. package/skinny/registerSelect-3ef48596.esm.js +462 -0
  37. package/skinny/registerSelect-3ef48596.esm.js.map +1 -0
  38. package/skinny/registerSelect.cjs.js +12 -366
  39. package/skinny/registerSelect.cjs.js.map +1 -1
  40. package/skinny/registerSelect.esm.js +5 -359
  41. package/skinny/registerSelect.esm.js.map +1 -1
  42. package/skinny/registerSwitch.cjs.js +1 -1
  43. package/skinny/registerSwitch.esm.js +1 -1
  44. package/skinny/registerTable.cjs.js +1 -1
  45. package/skinny/registerTable.esm.js +1 -1
  46. package/skinny/registerUpload.cjs.js +1 -1
  47. package/skinny/registerUpload.esm.js +1 -1
  48. package/skinny/{utils-b2751954.esm.js → utils-02582d7f.esm.js} +15 -2
  49. package/skinny/{utils-403deb7b.cjs.js.map → utils-02582d7f.esm.js.map} +1 -1
  50. package/skinny/{utils-403deb7b.cjs.js → utils-838eeae8.cjs.js} +16 -1
  51. package/skinny/{utils-b2751954.esm.js.map → utils-838eeae8.cjs.js.map} +1 -1
  52. package/skinny/utils.d.ts +2 -0
@@ -13,9 +13,10 @@ export declare function isReactText(child: React.ReactNode): child is React.Reac
13
13
  export declare function isReactChild(child: React.ReactNode): child is React.ReactChild;
14
14
  export declare function isReactFragment(child: React.ReactNode): child is React.ReactElement;
15
15
  export declare function isReactNode(x: any): boolean;
16
- export type StrictProps<T, TExpected> = Exclude<keyof T, keyof TExpected> extends never ? {} : Partial<"Unexpected extraneous props">;
16
+ export type StrictProps<T, TExpected> = Exclude<keyof T, keyof TExpected> extends never ? any : Partial<"Unexpected extraneous props">;
17
17
  export type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<React.ComponentProps<T>["ref"], string>;
18
18
  export declare function mergeProps(props: Record<string, any>, ...restProps: Record<string, any>[]): Record<string, any>;
19
19
  export declare function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]): (value: T) => void;
20
20
  export declare function mergePropVals(name: string, val1: any, val2: any): any;
21
21
  export declare function getElementTypeName(element: React.ReactElement): any;
22
+ export declare function reactNodeToString(reactNode: React.ReactNode): string;
@@ -1,4 +1,5 @@
1
- import { CodeComponentMode } from "@plasmicapp/host";
1
+ import { CodeComponentMode, ComponentHelpers } from "@plasmicapp/host";
2
+ import { CanvasComponentProps } from "@plasmicapp/host/registerComponent";
2
3
  import { Form } from "antd";
3
4
  import type { FormInstance, FormProps } from "antd/es/form";
4
5
  import type { FormItemProps } from "antd/es/form/FormItem";
@@ -32,7 +33,10 @@ export interface SimplifiedFormItemsProp extends InternalFormItemProps {
32
33
  }[];
33
34
  optionType?: "default" | "button";
34
35
  }
35
- interface FormWrapperProps extends FormProps {
36
+ interface FormWrapperControlContextData {
37
+ formInstance: FormInstance<any>;
38
+ }
39
+ interface FormWrapperProps extends FormProps, CanvasComponentProps<FormWrapperControlContextData> {
36
40
  /**
37
41
  * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange
38
42
  * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.
@@ -54,7 +58,12 @@ interface FormLayoutContextValue {
54
58
  layout: React.ComponentProps<typeof Form>["layout"];
55
59
  labelSpan?: number;
56
60
  }
57
- export declare function FormWrapper(props: FormWrapperProps): JSX.Element;
61
+ interface FormRefActions extends Pick<FormInstance<any>, "setFieldsValue" | "resetFields" | "setFieldValue"> {
62
+ clearFields: () => void;
63
+ formInstance: FormInstance<any>;
64
+ }
65
+ export declare const FormWrapper: React.ForwardRefExoticComponent<FormWrapperProps & React.RefAttributes<FormRefActions>>;
66
+ export declare const formHelpers: ComponentHelpers<FormWrapperProps>;
58
67
  export declare const formComponentName = "plasmic-antd5-form";
59
68
  export declare function registerForm(loader?: Registerable): void;
60
69
  interface FormControlContextData {
package/dist/utils.d.ts CHANGED
@@ -24,4 +24,6 @@ export declare function asArray<T>(x: T[] | T | undefined | null): T[];
24
24
  export declare function omit<T extends object>(obj: T, ...keys: (keyof T)[]): Partial<T>;
25
25
  export declare function usePrevious<T>(value: T | undefined): T | undefined;
26
26
  export declare function capitalize(value: string): string;
27
+ export declare function ensureArray<T>(x: T | T[]): T[];
28
+ export declare function setFieldsToUndefined(obj: any): void;
27
29
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/antd5",
3
- "version": "0.0.82",
3
+ "version": "0.0.84",
4
4
  "description": "Plasmic registration calls for antd components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -55,7 +55,7 @@
55
55
  "antd": "^5.1.6"
56
56
  },
57
57
  "devDependencies": {
58
- "@plasmicapp/host": "1.0.149",
58
+ "@plasmicapp/host": "1.0.150",
59
59
  "@plasmicapp/query": "0.1.67",
60
60
  "@types/node": "^14.0.26",
61
61
  "@types/react": "^18.0.27",
@@ -76,5 +76,5 @@
76
76
  "publishConfig": {
77
77
  "access": "public"
78
78
  },
79
- "gitHead": "fc14a289cb4bc982a00244efb8ade0b5b75030a1"
79
+ "gitHead": "d933fd1793c7b2d01af2400582593724ec364085"
80
80
  }
@@ -13,9 +13,10 @@ export declare function isReactText(child: React.ReactNode): child is React.Reac
13
13
  export declare function isReactChild(child: React.ReactNode): child is React.ReactChild;
14
14
  export declare function isReactFragment(child: React.ReactNode): child is React.ReactElement;
15
15
  export declare function isReactNode(x: any): boolean;
16
- export type StrictProps<T, TExpected> = Exclude<keyof T, keyof TExpected> extends never ? {} : Partial<"Unexpected extraneous props">;
16
+ export type StrictProps<T, TExpected> = Exclude<keyof T, keyof TExpected> extends never ? any : Partial<"Unexpected extraneous props">;
17
17
  export type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<React.ComponentProps<T>["ref"], string>;
18
18
  export declare function mergeProps(props: Record<string, any>, ...restProps: Record<string, any>[]): Record<string, any>;
19
19
  export declare function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]): (value: T) => void;
20
20
  export declare function mergePropVals(name: string, val1: any, val2: any): any;
21
21
  export declare function getElementTypeName(element: React.ReactElement): any;
22
+ export declare function reactNodeToString(reactNode: React.ReactNode): string;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var antd = require('antd');
5
- var utils = require('./utils-403deb7b.cjs.js');
5
+ var utils = require('./utils-838eeae8.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Button } from 'antd';
3
- import { r as registerComponentHelper } from './utils-b2751954.esm.js';
3
+ import { r as registerComponentHelper } from './utils-02582d7f.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-403deb7b.cjs.js');
5
+ var utils = require('./utils-838eeae8.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Checkbox } from 'antd';
2
2
  import React from 'react';
3
- import { r as registerComponentHelper, t as traverseReactEltTree } from './utils-b2751954.esm.js';
3
+ import { r as registerComponentHelper, t as traverseReactEltTree } from './utils-02582d7f.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -6,7 +6,7 @@ var query = require('@plasmicapp/query');
6
6
  var antd = require('antd');
7
7
  var enUS = require('antd/lib/locale/en_US.js');
8
8
  var React = require('react');
9
- var utils = require('./utils-403deb7b.cjs.js');
9
+ var utils = require('./utils-838eeae8.cjs.js');
10
10
  require('@plasmicapp/host/registerComponent');
11
11
  require('@plasmicapp/host/registerGlobalContext');
12
12
 
@@ -4,7 +4,7 @@ import { addLoadingStateListener } from '@plasmicapp/query';
4
4
  import { theme, ConfigProvider, message, notification } from 'antd';
5
5
  import enUS from 'antd/lib/locale/en_US.js';
6
6
  import React from 'react';
7
- import { m as makeRegisterGlobalContext } from './utils-b2751954.esm.js';
7
+ import { m as makeRegisterGlobalContext } from './utils-02582d7f.esm.js';
8
8
  import '@plasmicapp/host/registerComponent';
9
9
  import '@plasmicapp/host/registerGlobalContext';
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-403deb7b.cjs.js');
5
+ var utils = require('./utils-838eeae8.cjs.js');
6
6
  var dayjs = require('dayjs');
7
7
  require('@plasmicapp/host/registerComponent');
8
8
  require('@plasmicapp/host/registerGlobalContext');
@@ -1,6 +1,6 @@
1
1
  import { DatePicker } from 'antd';
2
2
  import React, { useState } from 'react';
3
- import { r as registerComponentHelper, c as capitalize } from './utils-b2751954.esm.js';
3
+ import { r as registerComponentHelper, c as capitalize } from './utils-02582d7f.esm.js';
4
4
  import dayjs from 'dayjs';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
  import '@plasmicapp/host/registerGlobalContext';
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-403deb7b.cjs.js');
5
+ var utils = require('./utils-838eeae8.cjs.js');
6
6
  var registerMenu = require('./registerMenu.cjs.js');
7
7
  require('@plasmicapp/host/registerComponent');
8
8
  require('@plasmicapp/host/registerGlobalContext');
@@ -1,6 +1,6 @@
1
1
  import { Dropdown, Menu } from 'antd';
2
2
  import React from 'react';
3
- import { r as registerComponentHelper } from './utils-b2751954.esm.js';
3
+ import { r as registerComponentHelper } from './utils-02582d7f.esm.js';
4
4
  import { UNKEYED_MENU_ITEM_TYPE } from './registerMenu.esm.js';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
  import '@plasmicapp/host/registerGlobalContext';
@@ -4,14 +4,14 @@ var host = require('@plasmicapp/host');
4
4
  var antd = require('antd');
5
5
  var equal = require('fast-deep-equal');
6
6
  var React = require('react');
7
- var classNames = require('classnames');
7
+ var registerSelect = require('./registerSelect-2c9dfc05.cjs.js');
8
8
  var registerButton = require('./registerButton.cjs.js');
9
9
  var registerCheckbox = require('./registerCheckbox.cjs.js');
10
10
  var registerInput = require('./registerInput.cjs.js');
11
11
  var registerRadio = require('./registerRadio.cjs.js');
12
- var registerSelect = require('./registerSelect.cjs.js');
13
12
  var registerSwitch = require('./registerSwitch.cjs.js');
14
- var utils = require('./utils-403deb7b.cjs.js');
13
+ var utils = require('./utils-838eeae8.cjs.js');
14
+ require('classnames');
15
15
  require('@plasmicapp/host/registerComponent');
16
16
  require('@plasmicapp/host/registerGlobalContext');
17
17
 
@@ -19,88 +19,6 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
19
 
20
20
  var equal__default = /*#__PURE__*/_interopDefault(equal);
21
21
  var React__default = /*#__PURE__*/_interopDefault(React);
22
- var classNames__default = /*#__PURE__*/_interopDefault(classNames);
23
-
24
- var __defProp$1 = Object.defineProperty;
25
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
26
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
27
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
28
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
29
- var __spreadValues$1 = (a, b) => {
30
- for (var prop in b || (b = {}))
31
- if (__hasOwnProp$1.call(b, prop))
32
- __defNormalProp$1(a, prop, b[prop]);
33
- if (__getOwnPropSymbols$1)
34
- for (var prop of __getOwnPropSymbols$1(b)) {
35
- if (__propIsEnum$1.call(b, prop))
36
- __defNormalProp$1(a, prop, b[prop]);
37
- }
38
- return a;
39
- };
40
- const isBrowser = typeof window !== "undefined";
41
- const NONE = Symbol("NONE");
42
- isBrowser ? React__default.default.useLayoutEffect : React__default.default.useEffect;
43
- function mergeProps(props, ...restProps) {
44
- if (restProps.every((rest) => Object.keys(rest).length === 0)) {
45
- return props;
46
- }
47
- const result = __spreadValues$1({}, props);
48
- for (const rest of restProps) {
49
- for (const key of Object.keys(rest)) {
50
- result[key] = mergePropVals(key, result[key], rest[key]);
51
- }
52
- }
53
- return result;
54
- }
55
- function updateRef(ref, value) {
56
- if (!ref) {
57
- return;
58
- }
59
- if (typeof ref === "function") {
60
- ref(value);
61
- } else {
62
- if (!Object.isFrozen(ref)) {
63
- ref.current = value;
64
- }
65
- }
66
- }
67
- function mergeRefs(...refs) {
68
- return (value) => {
69
- for (const ref of refs) {
70
- updateRef(ref, value);
71
- }
72
- };
73
- }
74
- function mergePropVals(name, val1, val2) {
75
- if (val1 === NONE || val2 === NONE) {
76
- return null;
77
- } else if (val1 == null) {
78
- return val2;
79
- } else if (val2 == null) {
80
- return val1;
81
- } else if (name === "className") {
82
- return classNames__default.default(val1, val2);
83
- } else if (name === "style") {
84
- return __spreadValues$1(__spreadValues$1({}, val1), val2);
85
- } else if (name === "ref") {
86
- return mergeRefs(val1, val2);
87
- } else if (typeof val1 !== typeof val2) {
88
- return val2;
89
- } else if (name.startsWith("on") && typeof val1 === "function") {
90
- return (...args) => {
91
- let res;
92
- if (typeof val1 === "function") {
93
- res = val1(...args);
94
- }
95
- if (typeof val2 === "function") {
96
- res = val2(...args);
97
- }
98
- return res;
99
- };
100
- } else {
101
- return val2;
102
- }
103
- }
104
22
 
105
23
  var __defProp = Object.defineProperty;
106
24
  var __defProps = Object.defineProperties;
@@ -133,24 +51,6 @@ var __objRest = (source, exclude) => {
133
51
  }
134
52
  return target;
135
53
  };
136
- const reactNodeToString = function(reactNode) {
137
- let string = "";
138
- if (typeof reactNode === "string") {
139
- string = reactNode;
140
- } else if (typeof reactNode === "number") {
141
- string = reactNode.toString();
142
- } else if (reactNode instanceof Array) {
143
- reactNode.forEach(function(child) {
144
- string += reactNodeToString(child);
145
- });
146
- } else if (React.isValidElement(reactNode)) {
147
- string += reactNodeToString(reactNode.props.children);
148
- }
149
- return string;
150
- };
151
- function ensureArray(x) {
152
- return Array.isArray(x) ? x : [x];
153
- }
154
54
  const FormItem = antd.Form.Item;
155
55
  const FormList = antd.Form.List;
156
56
  var InputType = /* @__PURE__ */ ((InputType2) => {
@@ -170,93 +70,132 @@ var InputType = /* @__PURE__ */ ((InputType2) => {
170
70
  const PathContext = React__default.default.createContext({ relativePath: [], fullPath: [] });
171
71
  const InternalFormInstanceContext = React__default.default.createContext(void 0);
172
72
  const FormLayoutContext = React__default.default.createContext(void 0);
173
- const Internal = (props) => {
174
- var _b, _c, _d, _e;
175
- const [form] = antd.Form.useForm();
176
- const values = form.getFieldsValue(true);
177
- const lastValue = React__default.default.useRef(values);
178
- const _a = props, { extendedOnValuesChange, setRemountKey } = _a, rest = __objRest(_a, ["extendedOnValuesChange", "setRemountKey"]);
179
- let childrenNode;
180
- if (props.mode !== "simplified") {
181
- childrenNode = typeof props.children === "function" ? props.children(values, form) : props.children;
182
- } else {
183
- childrenNode = /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, ((_b = props.formItems) != null ? _b : []).map((formItem) => /* @__PURE__ */ React__default.default.createElement(
184
- FormItemWrapper,
185
- __spreadProps(__spreadValues({}, formItem), {
186
- noLabel: formItem.inputType === "Checkbox" /* Checkbox */ || formItem.noLabel,
187
- style: { width: "100%" }
188
- }),
189
- formItem.inputType === "Text" /* Text */ ? /* @__PURE__ */ React__default.default.createElement(antd.Input, null) : formItem.inputType === "Password" /* Password */ ? /* @__PURE__ */ React__default.default.createElement(antd.Input.Password, null) : formItem.inputType === "Text Area" /* TextArea */ ? /* @__PURE__ */ React__default.default.createElement(antd.Input.TextArea, null) : formItem.inputType === "Number" /* Number */ ? /* @__PURE__ */ React__default.default.createElement(antd.InputNumber, null) : formItem.inputType === "Checkbox" /* Checkbox */ ? /* @__PURE__ */ React__default.default.createElement(antd.Checkbox, null, formItem.label) : formItem.inputType === "Select" /* Select */ ? /* @__PURE__ */ React__default.default.createElement(antd.Select, { options: formItem.options }) : formItem.inputType === "DatePicker" /* DatePicker */ ? /* @__PURE__ */ React__default.default.createElement(antd.DatePicker, null) : formItem.inputType === "Radio Group" /* RadioGroup */ ? /* @__PURE__ */ React__default.default.createElement(
190
- antd.Radio.Group,
191
- {
192
- options: formItem.options,
193
- optionType: formItem.optionType,
194
- style: { padding: "8px" }
195
- }
196
- ) : null
197
- )), props.submitSlot);
198
- }
199
- const fireOnValuesChange = React__default.default.useCallback(() => {
200
- const values2 = form.getFieldsValue(true);
201
- if (!equal__default.default(values2, lastValue.current)) {
202
- extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(values2);
203
- lastValue.current = values2;
73
+ const Internal = React__default.default.forwardRef(
74
+ (props, ref) => {
75
+ var _b, _c, _d, _e, _f;
76
+ const [form] = antd.Form.useForm();
77
+ const values = form.getFieldsValue(true);
78
+ const lastValue = React__default.default.useRef(values);
79
+ const _a = props, { extendedOnValuesChange, setRemountKey } = _a, rest = __objRest(_a, ["extendedOnValuesChange", "setRemountKey"]);
80
+ let childrenNode;
81
+ if (props.mode !== "simplified") {
82
+ childrenNode = typeof props.children === "function" ? props.children(values, form) : props.children;
83
+ } else {
84
+ childrenNode = /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, ((_b = props.formItems) != null ? _b : []).map((formItem) => /* @__PURE__ */ React__default.default.createElement(
85
+ FormItemWrapper,
86
+ __spreadProps(__spreadValues({}, formItem), {
87
+ noLabel: formItem.inputType === "Checkbox" /* Checkbox */ || formItem.noLabel,
88
+ style: { width: "100%" }
89
+ }),
90
+ formItem.inputType === "Text" /* Text */ ? /* @__PURE__ */ React__default.default.createElement(antd.Input, null) : formItem.inputType === "Password" /* Password */ ? /* @__PURE__ */ React__default.default.createElement(antd.Input.Password, null) : formItem.inputType === "Text Area" /* TextArea */ ? /* @__PURE__ */ React__default.default.createElement(antd.Input.TextArea, null) : formItem.inputType === "Number" /* Number */ ? /* @__PURE__ */ React__default.default.createElement(antd.InputNumber, null) : formItem.inputType === "Checkbox" /* Checkbox */ ? /* @__PURE__ */ React__default.default.createElement(antd.Checkbox, null, formItem.label) : formItem.inputType === "Select" /* Select */ ? /* @__PURE__ */ React__default.default.createElement(antd.Select, { options: formItem.options }) : formItem.inputType === "DatePicker" /* DatePicker */ ? /* @__PURE__ */ React__default.default.createElement(antd.DatePicker, null) : formItem.inputType === "Radio Group" /* RadioGroup */ ? /* @__PURE__ */ React__default.default.createElement(
91
+ antd.Radio.Group,
92
+ {
93
+ options: formItem.options,
94
+ optionType: formItem.optionType,
95
+ style: { padding: "8px" }
96
+ }
97
+ ) : null
98
+ )), props.submitSlot);
204
99
  }
205
- }, [form, lastValue]);
206
- React__default.default.useEffect(() => {
207
- fireOnValuesChange();
208
- }, []);
209
- const formLayout = React__default.default.useMemo(
210
- () => {
211
- var _a2;
212
- return {
213
- layout: props.layout,
214
- labelSpan: (_a2 = props.labelCol) == null ? void 0 : _a2.span
215
- };
216
- },
217
- [props.layout, (_c = props.labelCol) == null ? void 0 : _c.span]
218
- );
219
- return /* @__PURE__ */ React__default.default.createElement(
220
- InternalFormInstanceContext.Provider,
221
- {
222
- value: {
223
- layout: formLayout,
224
- fireOnValuesChange,
225
- forceRemount: () => setRemountKey((k) => k + 1)
100
+ const fireOnValuesChange = React__default.default.useCallback(() => {
101
+ const values2 = form.getFieldsValue(true);
102
+ if (!equal__default.default(values2, lastValue.current)) {
103
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(values2);
104
+ lastValue.current = values2;
226
105
  }
227
- },
228
- /* @__PURE__ */ React__default.default.createElement(FormLayoutContext.Provider, { value: formLayout }, /* @__PURE__ */ React__default.default.createElement(
229
- antd.Form,
230
- __spreadProps(__spreadValues({}, rest), {
231
- key: props.initialValues ? JSON.stringify(props.initialValues) : void 0,
232
- onValuesChange: (...args) => {
233
- var _a2;
234
- (_a2 = props.onValuesChange) == null ? void 0 : _a2.call(props, ...args);
235
- extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(args[1]);
236
- },
237
- form,
238
- labelCol: ((_d = props.labelCol) == null ? void 0 : _d.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
239
- wrapperCol: ((_e = props.wrapperCol) == null ? void 0 : _e.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
240
- }),
241
- /* @__PURE__ */ React__default.default.createElement("style", null, `
106
+ }, [form, lastValue]);
107
+ React__default.default.useEffect(() => {
108
+ fireOnValuesChange();
109
+ }, []);
110
+ const formLayout = React__default.default.useMemo(
111
+ () => {
112
+ var _a2;
113
+ return {
114
+ layout: props.layout,
115
+ labelSpan: (_a2 = props.labelCol) == null ? void 0 : _a2.span
116
+ };
117
+ },
118
+ [props.layout, (_c = props.labelCol) == null ? void 0 : _c.span]
119
+ );
120
+ (_d = props.setControlContextData) == null ? void 0 : _d.call(props, { formInstance: form });
121
+ React__default.default.useImperativeHandle(ref, () => ({
122
+ formInstance: form,
123
+ setFieldsValue: (newValues) => {
124
+ form.setFieldsValue(newValues);
125
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(form.getFieldsValue(true));
126
+ },
127
+ setFieldValue: (namePath, value) => {
128
+ form.setFieldValue(namePath, value);
129
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(form.getFieldsValue(true));
130
+ },
131
+ resetFields: () => {
132
+ form.resetFields();
133
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(form.getFieldsValue(true));
134
+ },
135
+ clearFields: () => {
136
+ const values2 = form.getFieldsValue(true);
137
+ utils.setFieldsToUndefined(values2);
138
+ form.setFieldsValue(values2);
139
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(form.getFieldsValue(true));
140
+ }
141
+ }));
142
+ return /* @__PURE__ */ React__default.default.createElement(
143
+ InternalFormInstanceContext.Provider,
144
+ {
145
+ value: {
146
+ layout: formLayout,
147
+ fireOnValuesChange,
148
+ forceRemount: () => setRemountKey((k) => k + 1)
149
+ }
150
+ },
151
+ /* @__PURE__ */ React__default.default.createElement(FormLayoutContext.Provider, { value: formLayout }, /* @__PURE__ */ React__default.default.createElement(
152
+ antd.Form,
153
+ __spreadProps(__spreadValues({}, rest), {
154
+ key: props.initialValues ? JSON.stringify(props.initialValues) : void 0,
155
+ onValuesChange: (...args) => {
156
+ var _a2;
157
+ (_a2 = props.onValuesChange) == null ? void 0 : _a2.call(props, ...args);
158
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(args[1]);
159
+ },
160
+ form,
161
+ labelCol: ((_e = props.labelCol) == null ? void 0 : _e.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
162
+ wrapperCol: ((_f = props.wrapperCol) == null ? void 0 : _f.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
163
+ }),
164
+ /* @__PURE__ */ React__default.default.createElement("style", null, `
242
165
  .ant-form-item-explain + div, .ant-form-item-margin-offset {
243
166
  display: none;
244
167
  }
245
168
  `),
246
- childrenNode
247
- ))
248
- );
249
- };
250
- function FormWrapper(props) {
251
- const [remountKey, setRemountKey] = React__default.default.useState(0);
252
- const previousInitialValues = utils.usePrevious(props.initialValues);
253
- React__default.default.useEffect(() => {
254
- if (previousInitialValues !== props.initialValues && JSON.stringify(previousInitialValues) !== JSON.stringify(props.initialValues)) {
255
- setRemountKey((k) => k + 1);
256
- }
257
- }, [previousInitialValues, props.initialValues]);
258
- return /* @__PURE__ */ React__default.default.createElement(Internal, __spreadProps(__spreadValues({ key: remountKey }, props), { setRemountKey }));
259
- }
169
+ childrenNode
170
+ ))
171
+ );
172
+ }
173
+ );
174
+ const FormWrapper = React__default.default.forwardRef(
175
+ (props, ref) => {
176
+ const [remountKey, setRemountKey] = React__default.default.useState(0);
177
+ const previousInitialValues = utils.usePrevious(props.initialValues);
178
+ const wrapperRef = React__default.default.useRef(null);
179
+ React__default.default.useEffect(() => {
180
+ if (previousInitialValues !== props.initialValues && JSON.stringify(previousInitialValues) !== JSON.stringify(props.initialValues)) {
181
+ setRemountKey((k) => k + 1);
182
+ }
183
+ }, [previousInitialValues, props.initialValues]);
184
+ React__default.default.useImperativeHandle(
185
+ ref,
186
+ () => wrapperRef.current ? __spreadValues({}, wrapperRef.current) : {}
187
+ );
188
+ return /* @__PURE__ */ React__default.default.createElement(
189
+ Internal,
190
+ __spreadProps(__spreadValues({
191
+ key: remountKey
192
+ }, props), {
193
+ setRemountKey,
194
+ ref: wrapperRef
195
+ })
196
+ );
197
+ }
198
+ );
260
199
  const COMMON_ACTIONS = [
261
200
  {
262
201
  type: "button-action",
@@ -327,6 +266,16 @@ const colProp = (displayName, defaultValue, description) => ({
327
266
  description,
328
267
  defaultValue
329
268
  });
269
+ const formHelpers = {
270
+ states: {
271
+ value: {
272
+ onMutate: (value, $ref) => {
273
+ var _a;
274
+ (_a = $ref == null ? void 0 : $ref.formInstance) == null ? void 0 : _a.setFieldsValue(value);
275
+ }
276
+ }
277
+ }
278
+ };
330
279
  const formComponentName = "plasmic-antd5-form";
331
280
  function registerForm(loader) {
332
281
  utils.registerComponentHelper(loader, FormWrapper, {
@@ -584,6 +533,54 @@ function registerForm(loader) {
584
533
  onChangeProp: "extendedOnValuesChange"
585
534
  }
586
535
  },
536
+ componentHelpers: {
537
+ helpers: formHelpers,
538
+ importName: "formHelpers",
539
+ importPath: "@plasmicpkgs/antd5/skinny/registerForm"
540
+ },
541
+ refActions: {
542
+ setFieldsValue: {
543
+ displayName: "Set multiple fields",
544
+ argTypes: [
545
+ {
546
+ name: "newValues",
547
+ displayName: "New Values",
548
+ type: "exprEditor"
549
+ }
550
+ ]
551
+ },
552
+ setFieldValue: {
553
+ displayName: "Set field",
554
+ argTypes: [
555
+ {
556
+ name: "namePath",
557
+ displayName: "Name Path",
558
+ type: {
559
+ type: "dataSelector",
560
+ data: (_, ctx) => {
561
+ if (!(ctx == null ? void 0 : ctx.formInstance)) {
562
+ return {};
563
+ }
564
+ return ctx.formInstance.getFieldsValue(true);
565
+ }
566
+ }
567
+ },
568
+ {
569
+ name: "value",
570
+ displayName: "New Value",
571
+ type: "exprEditor"
572
+ }
573
+ ]
574
+ },
575
+ resetFields: {
576
+ displayName: "Reset fields to initial value",
577
+ argTypes: []
578
+ },
579
+ clearFields: {
580
+ displayName: "Clear fields",
581
+ argTypes: []
582
+ }
583
+ },
587
584
  importPath: "@plasmicpkgs/antd5/skinny/registerForm",
588
585
  importName: "FormWrapper"
589
586
  });
@@ -677,7 +674,7 @@ function FormItemWrapper(props) {
677
674
  ]);
678
675
  const relativeFormItemName = useFormItemRelativeName(name);
679
676
  const fullFormItemName = useFormItemFullName(name);
680
- const bestEffortLabel = !noLabel && reactNodeToString(props.label) || ensureArray(props.name).slice(-1)[0];
677
+ const bestEffortLabel = !noLabel && registerSelect.reactNodeToString(props.label) || utils.ensureArray(props.name).slice(-1)[0];
681
678
  const rules = plasmicRules ? plasmicRulesToAntdRules(
682
679
  plasmicRules,
683
680
  typeof bestEffortLabel === "number" ? "" + bestEffortLabel : bestEffortLabel
@@ -766,7 +763,7 @@ function FormItemForwarder(_a) {
766
763
  __plasmicFormField: true
767
764
  });
768
765
  if (formItemProps.customizeProps) {
769
- newProps = mergeProps(
766
+ newProps = registerSelect.mergeProps(
770
767
  newProps,
771
768
  formItemProps.customizeProps(data, newProps)
772
769
  );
@@ -1197,6 +1194,7 @@ exports.FormWrapper = FormWrapper;
1197
1194
  exports.InputType = InputType;
1198
1195
  exports.formComponentName = formComponentName;
1199
1196
  exports.formGroupComponentName = formGroupComponentName;
1197
+ exports.formHelpers = formHelpers;
1200
1198
  exports.formItemComponentName = formItemComponentName;
1201
1199
  exports.formListComponentName = formListComponentName;
1202
1200
  exports.registerForm = registerForm;