@plasmicpkgs/antd5 0.0.34 → 0.0.35

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.js CHANGED
@@ -1082,9 +1082,6 @@ const Internal = (props) => {
1082
1082
  labelCol: ((_a = props.labelCol) == null ? void 0 : _a.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
1083
1083
  wrapperCol: ((_b = props.wrapperCol) == null ? void 0 : _b.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
1084
1084
  }), /* @__PURE__ */ React__default.default.createElement("style", null, `
1085
- .ant-form-item {
1086
- margin-bottom: 0;
1087
- }
1088
1085
  .ant-form-item-explain + div {
1089
1086
  display: none;
1090
1087
  }
@@ -1108,26 +1105,6 @@ const COMMON_ACTIONS = [
1108
1105
  name: "plasmic-antd5-form-item"
1109
1106
  }, "children");
1110
1107
  }
1111
- },
1112
- {
1113
- type: "button-action",
1114
- label: "Append new Form Group",
1115
- onClick: ({ studioOps }) => {
1116
- studioOps.appendToSlot({
1117
- type: "component",
1118
- name: "plasmic-antd5-form-group"
1119
- }, "children");
1120
- }
1121
- },
1122
- {
1123
- type: "button-action",
1124
- label: "Append new Form List",
1125
- onClick: ({ studioOps }) => {
1126
- studioOps.appendToSlot({
1127
- type: "component",
1128
- name: "plasmic-antd5-form-list"
1129
- }, "children");
1130
- }
1131
1108
  }
1132
1109
  ];
1133
1110
  function registerForm(loader) {
@@ -1311,7 +1288,7 @@ function registerForm(loader) {
1311
1288
  });
1312
1289
  }
1313
1290
  function plasmicRulesToAntdRules(plasmicRules) {
1314
- var _a, _b;
1291
+ var _a, _b, _c;
1315
1292
  const rules = [];
1316
1293
  for (const plasmicRule of plasmicRules) {
1317
1294
  switch (plasmicRule.ruleType) {
@@ -1328,13 +1305,18 @@ function plasmicRulesToAntdRules(plasmicRules) {
1328
1305
  message: plasmicRule.message
1329
1306
  });
1330
1307
  break;
1308
+ case "regex":
1309
+ rules.push({
1310
+ pattern: new RegExp((_c = plasmicRule.pattern) != null ? _c : ""),
1311
+ message: plasmicRule.message
1312
+ });
1313
+ break;
1331
1314
  case "whitespace":
1332
1315
  rules.push({
1333
1316
  whitespace: true,
1334
1317
  message: plasmicRule.message
1335
1318
  });
1336
1319
  break;
1337
- case "len":
1338
1320
  case "min":
1339
1321
  case "max":
1340
1322
  rules.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/antd5",
3
- "version": "0.0.34",
3
+ "version": "0.0.35",
4
4
  "description": "Plasmic registration calls for antd components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -73,5 +73,5 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "gitHead": "5f9fb81e4b814580add383f480cdb15156a67ecb"
76
+ "gitHead": "f7307236692d657012567f76e0fb763a57e8504d"
77
77
  }
@@ -156,9 +156,6 @@ const Internal = (props) => {
156
156
  labelCol: ((_a = props.labelCol) == null ? void 0 : _a.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
157
157
  wrapperCol: ((_b = props.wrapperCol) == null ? void 0 : _b.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
158
158
  }), /* @__PURE__ */ React.createElement("style", null, `
159
- .ant-form-item {
160
- margin-bottom: 0;
161
- }
162
159
  .ant-form-item-explain + div {
163
160
  display: none;
164
161
  }
@@ -182,26 +179,6 @@ const COMMON_ACTIONS = [
182
179
  name: "plasmic-antd5-form-item"
183
180
  }, "children");
184
181
  }
185
- },
186
- {
187
- type: "button-action",
188
- label: "Append new Form Group",
189
- onClick: ({ studioOps }) => {
190
- studioOps.appendToSlot({
191
- type: "component",
192
- name: "plasmic-antd5-form-group"
193
- }, "children");
194
- }
195
- },
196
- {
197
- type: "button-action",
198
- label: "Append new Form List",
199
- onClick: ({ studioOps }) => {
200
- studioOps.appendToSlot({
201
- type: "component",
202
- name: "plasmic-antd5-form-list"
203
- }, "children");
204
- }
205
182
  }
206
183
  ];
207
184
  function registerForm(loader) {
@@ -385,7 +362,7 @@ function registerForm(loader) {
385
362
  });
386
363
  }
387
364
  function plasmicRulesToAntdRules(plasmicRules) {
388
- var _a, _b;
365
+ var _a, _b, _c;
389
366
  const rules = [];
390
367
  for (const plasmicRule of plasmicRules) {
391
368
  switch (plasmicRule.ruleType) {
@@ -402,13 +379,18 @@ function plasmicRulesToAntdRules(plasmicRules) {
402
379
  message: plasmicRule.message
403
380
  });
404
381
  break;
382
+ case "regex":
383
+ rules.push({
384
+ pattern: new RegExp((_c = plasmicRule.pattern) != null ? _c : ""),
385
+ message: plasmicRule.message
386
+ });
387
+ break;
405
388
  case "whitespace":
406
389
  rules.push({
407
390
  whitespace: true,
408
391
  message: plasmicRule.message
409
392
  });
410
393
  break;
411
- case "len":
412
394
  case "min":
413
395
  case "max":
414
396
  rules.push({
@@ -1 +1 @@
1
- {"version":3,"file":"registerForm.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport Form, { FormInstance, FormProps } from \"antd/es/form\";\nimport FormItem, { FormItemProps } from \"antd/es/form/FormItem\";\nimport FormList, {\n FormListOperation,\n FormListProps,\n} from \"antd/es/form/FormList\";\nimport { ColProps } from \"antd/es/grid/col\";\nimport equal from \"fast-deep-equal\";\nimport React, { cloneElement, isValidElement } from \"react\";\nimport { mergeProps } from \"./react-utils\";\nimport { omit, Registerable, registerComponentHelper } from \"./utils\";\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n formProps: FormProps;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | undefined\n>(undefined);\n\nconst Internal = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n const childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n\n const fireOnValuesChange = () => {\n const values = form.getFieldsValue(true);\n if (!equal(values, lastValue.current)) {\n props.extendedOnValuesChange?.(values);\n lastValue.current = values;\n }\n };\n\n React.useEffect(() => {\n fireOnValuesChange();\n }, []);\n return (\n <InternalFormInstanceContext.Provider\n value={{\n fireOnValuesChange,\n forceRemount: () => props.setRemountKey((k) => k + 1),\n formProps: props,\n }}\n >\n <Form\n {...props}\n onValuesChange={(...args) => {\n props.onValuesChange?.(...args);\n props.extendedOnValuesChange?.(args[1]);\n }}\n form={form}\n labelCol={\n props.labelCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.labelCol\n }\n wrapperCol={\n props.wrapperCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.wrapperCol\n }\n >\n {/*Remove built-in spacing on form items*/}\n <style>{`\n .ant-form-item {\n margin-bottom: 0;\n }\n .ant-form-item-explain + div {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\n </InternalFormInstanceContext.Provider>\n );\n};\nfunction FormWrapper(props: FormWrapperProps) {\n const [remountKey, setRemountKey] = React.useState(0);\n return <Internal key={remountKey} {...props} setRemountKey={setRemountKey} />;\n}\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form Item\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n },\n {\n type: \"button-action\" as const,\n label: \"Append new Form Group\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-group\",\n },\n \"children\"\n );\n },\n },\n {\n type: \"button-action\" as const,\n label: \"Append new Form List\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-list\",\n },\n \"children\"\n );\n },\n },\n];\n\nexport function registerForm(loader?: Registerable) {\n const colProp = (displayName?: string, defaultValue?: {}) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Grid columns\",\n description:\n \"The number of grid columns to span (24 columns available)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset columns\",\n description: \"Number of grid columns to skip from the left\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply to horizontal layout\",\n },\n },\n defaultValue: defaultValue,\n } as const);\n registerComponentHelper(loader, FormWrapper, {\n name: \"plasmic-antd5-form\",\n displayName: \"Form\",\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-textarea\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n },\n },\n ],\n },\n initialValues: {\n type: \"object\",\n forceRemount: true,\n } as any,\n layout: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\", \"inline\"],\n defaultValue: \"vertical\",\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n defaultValueHint: \"right\",\n advanced: true,\n },\n labelCol: colProp(\"Label layout\", {\n span: 8,\n horizontalOnly: true,\n }),\n wrapperCol: colProp(\"Field layout\", {\n span: 16,\n horizontalOnly: true,\n }),\n colon: {\n type: \"boolean\",\n description: `Show a colon after the label by default (only for horizontal layout)`,\n defaultValueHint: true,\n advanced: true,\n },\n requiredMark: {\n displayName: \"Required/optional mark\",\n type: \"choice\",\n options: [\n {\n value: \"optional\",\n label: \"Indicate optional fields\",\n },\n {\n value: true,\n label: \"Indicate required fields with asterisk\",\n },\n {\n value: false,\n label: \"Show no indicators\",\n },\n ],\n advanced: true,\n defaultValueHint: true,\n },\n extendedOnValuesChange: {\n type: \"eventHandler\",\n displayName: \"On values change\",\n argTypes: [\n {\n name: \"changedValues\",\n type: \"object\",\n },\n {\n name: \"allValues\",\n type: \"object\",\n },\n ],\n },\n onFinish: {\n type: \"eventHandler\",\n displayName: \"On submit\",\n argTypes: [\n {\n name: \"values\",\n type: \"object\",\n },\n ],\n },\n onFinishFailed: {\n // function({ values, errorFields, outOfDate })\n type: \"eventHandler\",\n displayName: \"On invalid submit\",\n argTypes: [\n {\n name: \"data\",\n type: \"object\",\n },\n ],\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"Form\",\n });\n}\n\ninterface FormControlContextData {\n internalFormCtx?: InternalFormInstanceContextData;\n}\n\ninterface CuratedFieldData {\n status: string | undefined;\n // path: (string | number)[];\n // errors: string[];\n // warnings: string[];\n // value: any;\n // trigger: (x: any) => void;\n}\n\ninterface InternalFormItemProps extends FormItemProps {\n rules: PlasmicRule[];\n helpTextMode?: string;\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(plasmicRules: PlasmicRule[]) {\n const rules: FormItemProps[\"rules\"] = [];\n for (const plasmicRule of plasmicRules) {\n switch (plasmicRule.ruleType) {\n case \"enum\":\n rules.push({\n type: \"enum\",\n enum: plasmicRule.options?.map((opt) => opt.value) ?? [],\n message: plasmicRule.message,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message,\n });\n break;\n case \"len\":\n case \"min\":\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message: plasmicRule.message,\n });\n break;\n case \"advanced\":\n rules.push({\n validator: (...args) =>\n plasmicRule.custom?.apply(null, args)\n ? Promise.resolve()\n : Promise.reject(),\n message: plasmicRule.message,\n });\n }\n }\n return rules;\n}\n\nconst useFormItemRelativeName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.relativePath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.relativePath, name]\n : undefined;\n};\n\nconst useFormItemFullName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.fullPath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.fullPath, name]\n : undefined;\n};\n\nfunction useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nfunction FormItemWrapper(props: InternalFormItemProps) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const rules = props.rules ? plasmicRulesToAntdRules(props.rules) : undefined;\n\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...omit(props, \"rules\")}\n label={props.noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n {...(props.helpTextMode === \"extra\"\n ? { extra: props.help }\n : props.helpTextMode === \"help\"\n ? // Never show validation errors in this mode, even if user didn't specify help\n { help: props.help ?? \"\" }\n : {})}\n >\n {props.customizeProps ? (\n <FormItemForwarder formItemProps={props} />\n ) : (\n props.children\n )}\n </FormItem>\n );\n}\n\nfunction FormItemForwarder({ formItemProps, ...props }: any) {\n const status = Form.Item.useStatus();\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n // const value = props[formItemProps.valuePropName ?? \"value\"];\n // const trigger = props[formItemProps.trigger ?? \"onChange\"];\n const data: CuratedFieldData = {\n status: status.status,\n };\n props.setControlContextData?.({\n internalFormCtx,\n status,\n });\n return React.Children.map(formItemProps.children, (child, i) => {\n const baseProps = { ...(child.props ?? {}), ...props };\n return i === 0 && isValidElement(child)\n ? cloneElement(\n child,\n mergeProps(baseProps, formItemProps.customizeProps(data, baseProps))\n )\n : child;\n });\n}\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: \"plasmic-antd5-form-item\",\n displayName: \"Form Item\",\n parentComponentName: \"plasmic-antd5-form\",\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n name: {\n type: \"string\",\n },\n initialValue: {\n type: \"string\",\n },\n required: {\n type: \"boolean\",\n },\n rules: {\n type: \"formValidationRules\",\n } as any,\n noLabel: {\n type: \"boolean\",\n advanced: true,\n },\n colon: {\n type: \"boolean\",\n defaultValueHint: (_ps: InternalFormItemProps, ctx: any) =>\n (ctx as FormControlContextData)?.internalFormCtx?.formProps.colon ??\n true,\n advanced: true,\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n advanced: true,\n },\n hidden: {\n type: \"boolean\",\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\",\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n helpTextMode: {\n type: \"choice\",\n displayName: \"Help text\",\n options: [\n {\n value: \"errors\",\n label: \"Validation errors\",\n },\n {\n value: \"extra\",\n label: \"Custom help text and validation errors\",\n },\n {\n value: \"help\",\n label: \"Custom help text, no validation errors\",\n },\n ],\n defaultValueHint: \"Show validation errors\",\n description:\n \"What to show in the help text. Edit help text by editing the 'help' slot in the outline.\",\n },\n help: {\n type: \"slot\",\n hidden: (ps) => ![\"extra\", \"help\"].includes(ps.helpTextMode ?? \"\"),\n hidePlaceholder: true,\n // advanced: true,\n },\n customizeProps: {\n type: \"function\",\n description:\n \"Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)\",\n argNames: [\"fieldData\"],\n argValues: (_ps: any, ctx: any) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\",\n displayName: \"Field only\",\n description:\n \"Don't render anything but the wrapped field component - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\nfunction FormGroup(props: FormGroupProps) {\n const pathCtx = React.useContext(PathContext);\n return (\n <PathContext.Provider\n value={{\n relativePath: [...pathCtx.relativePath, props.name],\n fullPath: [...pathCtx.fullPath, props.name],\n }}\n >\n {props.children}\n </PathContext.Provider>\n );\n}\n\nexport function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: \"plasmic-antd5-form-group\",\n displayName: \"Form Group\",\n parentComponentName: \"plasmic-antd5-form\",\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: \"plasmic-antd5-form-list\",\n parentComponentName: \"plasmic-antd5-form\",\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"firstName\",\n label: {\n type: \"text\",\n value: \"First name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"lastName\",\n label: {\n type: \"text\",\n value: \"Last name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n ],\n },\n ],\n },\n name: {\n type: \"string\",\n defaultValue: \"guests\",\n },\n initialValue: {\n type: \"array\",\n defaultValue: [\n {\n firstName: \"Jane\",\n lastName: \"Doe\",\n },\n {\n firstName: \"John\",\n lastName: \"Smith\",\n },\n ],\n } as any,\n },\n unstable__refActions: {\n add: {\n displayName: \"Add an item\",\n parameters: [\n {\n name: \"defaultValue\",\n displayName: \"Default value\",\n type: \"object\",\n },\n {\n name: \"insertIndex\",\n displayName: \"Insert index\",\n type: \"number\",\n },\n ],\n },\n remove: {\n displayName: \"Remove an item\",\n parameters: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n parameters: [\n {\n name: \"from\",\n displayName: \"From\",\n type: \"number\",\n },\n {\n name: \"to\",\n displayName: \"To\",\n type: \"number\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormListWrapper\",\n });\n}\n"],"names":["__spreadValues"],"mappings":"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"}
1
+ {"version":3,"file":"registerForm.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport Form, { FormInstance, FormProps } from \"antd/es/form\";\nimport FormItem, { FormItemProps } from \"antd/es/form/FormItem\";\nimport FormList, {\n FormListOperation,\n FormListProps,\n} from \"antd/es/form/FormList\";\nimport { ColProps } from \"antd/es/grid/col\";\nimport equal from \"fast-deep-equal\";\nimport React, { cloneElement, isValidElement } from \"react\";\nimport { mergeProps } from \"./react-utils\";\nimport { omit, Registerable, registerComponentHelper } from \"./utils\";\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n formProps: FormProps;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | undefined\n>(undefined);\n\nconst Internal = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n const childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n\n const fireOnValuesChange = () => {\n const values = form.getFieldsValue(true);\n if (!equal(values, lastValue.current)) {\n props.extendedOnValuesChange?.(values);\n lastValue.current = values;\n }\n };\n\n React.useEffect(() => {\n fireOnValuesChange();\n }, []);\n return (\n <InternalFormInstanceContext.Provider\n value={{\n fireOnValuesChange,\n forceRemount: () => props.setRemountKey((k) => k + 1),\n formProps: props,\n }}\n >\n <Form\n {...props}\n onValuesChange={(...args) => {\n props.onValuesChange?.(...args);\n props.extendedOnValuesChange?.(args[1]);\n }}\n form={form}\n labelCol={\n props.labelCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.labelCol\n }\n wrapperCol={\n props.wrapperCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.wrapperCol\n }\n >\n {/*Remove built-in spacing on form items*/}\n <style>{`\n .ant-form-item-explain + div {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\n </InternalFormInstanceContext.Provider>\n );\n};\nfunction FormWrapper(props: FormWrapperProps) {\n const [remountKey, setRemountKey] = React.useState(0);\n return <Internal key={remountKey} {...props} setRemountKey={setRemountKey} />;\n}\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form Item\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Group\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-group\",\n // },\n // \"children\"\n // );\n // },\n // },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form List\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-list\",\n // },\n // \"children\"\n // );\n // },\n // },\n];\n\nexport function registerForm(loader?: Registerable) {\n const colProp = (displayName?: string, defaultValue?: {}) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Grid columns\",\n description:\n \"The number of grid columns to span (24 columns available)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset columns\",\n description: \"Number of grid columns to skip from the left\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply to horizontal layout\",\n },\n },\n defaultValue: defaultValue,\n } as const);\n registerComponentHelper(loader, FormWrapper, {\n name: \"plasmic-antd5-form\",\n displayName: \"Form\",\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-textarea\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n },\n },\n ],\n },\n initialValues: {\n type: \"object\",\n forceRemount: true,\n } as any,\n layout: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\", \"inline\"],\n defaultValue: \"vertical\",\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n defaultValueHint: \"right\",\n advanced: true,\n },\n labelCol: colProp(\"Label layout\", {\n span: 8,\n horizontalOnly: true,\n }),\n wrapperCol: colProp(\"Field layout\", {\n span: 16,\n horizontalOnly: true,\n }),\n colon: {\n type: \"boolean\",\n description: `Show a colon after the label by default (only for horizontal layout)`,\n defaultValueHint: true,\n advanced: true,\n },\n requiredMark: {\n displayName: \"Required/optional mark\",\n type: \"choice\",\n options: [\n {\n value: \"optional\",\n label: \"Indicate optional fields\",\n },\n {\n value: true,\n label: \"Indicate required fields with asterisk\",\n },\n {\n value: false,\n label: \"Show no indicators\",\n },\n ],\n advanced: true,\n defaultValueHint: true,\n },\n extendedOnValuesChange: {\n type: \"eventHandler\",\n displayName: \"On values change\",\n argTypes: [\n {\n name: \"changedValues\",\n type: \"object\",\n },\n {\n name: \"allValues\",\n type: \"object\",\n },\n ],\n },\n onFinish: {\n type: \"eventHandler\",\n displayName: \"On submit\",\n argTypes: [\n {\n name: \"values\",\n type: \"object\",\n },\n ],\n },\n onFinishFailed: {\n // function({ values, errorFields, outOfDate })\n type: \"eventHandler\",\n displayName: \"On invalid submit\",\n argTypes: [\n {\n name: \"data\",\n type: \"object\",\n },\n ],\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"Form\",\n });\n}\n\ninterface FormControlContextData {\n internalFormCtx?: InternalFormInstanceContextData;\n}\n\ninterface CuratedFieldData {\n status: string | undefined;\n // path: (string | number)[];\n // errors: string[];\n // warnings: string[];\n // value: any;\n // trigger: (x: any) => void;\n}\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules: PlasmicRule[];\n helpTextMode?: string;\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(plasmicRules: PlasmicRule[]) {\n const rules: FormItemProps[\"rules\"] = [];\n for (const plasmicRule of plasmicRules) {\n switch (plasmicRule.ruleType) {\n case \"enum\":\n rules.push({\n type: \"enum\",\n enum: plasmicRule.options?.map((opt) => opt.value) ?? [],\n message: plasmicRule.message,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message: plasmicRule.message,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message,\n });\n break;\n case \"min\":\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message: plasmicRule.message,\n });\n break;\n case \"advanced\":\n rules.push({\n validator: (...args) =>\n plasmicRule.custom?.apply(null, args)\n ? Promise.resolve()\n : Promise.reject(),\n message: plasmicRule.message,\n });\n }\n }\n return rules;\n}\n\nconst useFormItemRelativeName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.relativePath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.relativePath, name]\n : undefined;\n};\n\nconst useFormItemFullName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.fullPath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.fullPath, name]\n : undefined;\n};\n\nfunction useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nfunction FormItemWrapper(props: InternalFormItemProps) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const rules = props.rules ? plasmicRulesToAntdRules(props.rules) : undefined;\n\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...omit(props, \"rules\")}\n label={props.noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n {...(props.helpTextMode === \"extra\"\n ? { extra: props.help }\n : props.helpTextMode === \"help\"\n ? // Never show validation errors in this mode, even if user didn't specify help\n { help: props.help ?? \"\" }\n : {})}\n >\n {props.customizeProps ? (\n <FormItemForwarder formItemProps={props} />\n ) : (\n props.children\n )}\n </FormItem>\n );\n}\n\nfunction FormItemForwarder({ formItemProps, ...props }: any) {\n const status = Form.Item.useStatus();\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n // const value = props[formItemProps.valuePropName ?? \"value\"];\n // const trigger = props[formItemProps.trigger ?? \"onChange\"];\n const data: CuratedFieldData = {\n status: status.status,\n };\n props.setControlContextData?.({\n internalFormCtx,\n status,\n });\n return React.Children.map(formItemProps.children, (child, i) => {\n const baseProps = { ...(child.props ?? {}), ...props };\n return i === 0 && isValidElement(child)\n ? cloneElement(\n child,\n mergeProps(baseProps, formItemProps.customizeProps(data, baseProps))\n )\n : child;\n });\n}\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: \"plasmic-antd5-form-item\",\n displayName: \"Form Item\",\n parentComponentName: \"plasmic-antd5-form\",\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n name: {\n type: \"string\",\n },\n initialValue: {\n type: \"string\",\n },\n required: {\n type: \"boolean\",\n },\n rules: {\n type: \"formValidationRules\",\n } as any,\n noLabel: {\n type: \"boolean\",\n advanced: true,\n },\n colon: {\n type: \"boolean\",\n defaultValueHint: (_ps: InternalFormItemProps, ctx: any) =>\n (ctx as FormControlContextData)?.internalFormCtx?.formProps.colon ??\n true,\n advanced: true,\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n advanced: true,\n },\n hidden: {\n type: \"boolean\",\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\",\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n helpTextMode: {\n type: \"choice\",\n displayName: \"Help text\",\n options: [\n {\n value: \"errors\",\n label: \"Validation errors\",\n },\n {\n value: \"extra\",\n label: \"Custom help text and validation errors\",\n },\n {\n value: \"help\",\n label: \"Custom help text, no validation errors\",\n },\n ],\n defaultValueHint: \"Show validation errors\",\n description:\n \"What to show in the help text. Edit help text by editing the 'help' slot in the outline.\",\n },\n help: {\n type: \"slot\",\n hidden: (ps) => ![\"extra\", \"help\"].includes(ps.helpTextMode ?? \"\"),\n hidePlaceholder: true,\n // advanced: true,\n },\n customizeProps: {\n type: \"function\",\n description:\n \"Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)\",\n argNames: [\"fieldData\"],\n argValues: (_ps: any, ctx: any) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\",\n displayName: \"Field only\",\n description:\n \"Don't render anything but the wrapped field component - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\nfunction FormGroup(props: FormGroupProps) {\n const pathCtx = React.useContext(PathContext);\n return (\n <PathContext.Provider\n value={{\n relativePath: [...pathCtx.relativePath, props.name],\n fullPath: [...pathCtx.fullPath, props.name],\n }}\n >\n {props.children}\n </PathContext.Provider>\n );\n}\n\nexport function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: \"plasmic-antd5-form-group\",\n displayName: \"Form Group\",\n parentComponentName: \"plasmic-antd5-form\",\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: \"plasmic-antd5-form-list\",\n parentComponentName: \"plasmic-antd5-form\",\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"firstName\",\n label: {\n type: \"text\",\n value: \"First name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"lastName\",\n label: {\n type: \"text\",\n value: \"Last name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n ],\n },\n ],\n },\n name: {\n type: \"string\",\n defaultValue: \"guests\",\n },\n initialValue: {\n type: \"array\",\n defaultValue: [\n {\n firstName: \"Jane\",\n lastName: \"Doe\",\n },\n {\n firstName: \"John\",\n lastName: \"Smith\",\n },\n ],\n } as any,\n },\n unstable__refActions: {\n add: {\n displayName: \"Add an item\",\n parameters: [\n {\n name: \"defaultValue\",\n displayName: \"Default value\",\n type: \"object\",\n },\n {\n name: \"insertIndex\",\n displayName: \"Insert index\",\n type: \"number\",\n },\n ],\n },\n remove: {\n displayName: \"Remove an item\",\n parameters: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n parameters: [\n {\n name: \"from\",\n displayName: \"From\",\n type: \"number\",\n },\n {\n name: \"to\",\n displayName: \"To\",\n type: \"number\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormListWrapper\",\n });\n}\n"],"names":["__spreadValues"],"mappings":"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"}