@plasmicpkgs/antd5 0.0.178 → 0.0.179
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/.tsbuildinfo +1 -1
- package/dist/antd.esm.js +15 -11
- package/dist/antd.esm.js.map +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/skinny/registerForm.cjs.js +15 -11
- package/skinny/registerForm.cjs.js.map +1 -1
- package/skinny/registerForm.esm.js +15 -11
- package/skinny/registerForm.esm.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerForm.esm.js","sources":["../src/registerForm.tsx"],"sourcesContent":["import {\n DataOp,\n deriveFieldConfigs,\n ManyRowsResult,\n normalizeData,\n SingleRowResult,\n TableSchema,\n usePlasmicDataOp,\n} from \"@plasmicapp/data-sources\";\nimport {\n ActionProps,\n CodeComponentMode,\n ComponentHelpers,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport {\n ArrayType,\n CanvasComponentProps,\n ControlExtras,\n PropType,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Form, Input, InputNumber, Radio } from \"antd\";\nimport type { FormInstance, FormProps } from \"antd/es/form\";\nimport type { FormItemProps } from \"antd/es/form/FormItem\";\nimport type { FormListOperation, FormListProps } from \"antd/es/form/FormList\";\nimport type { ColProps } from \"antd/es/grid/col\";\nimport equal from \"fast-deep-equal\";\nimport React, { cloneElement, isValidElement } from \"react\";\nimport { mergeProps, reactNodeToString } from \"./react-utils\";\nimport { buttonComponentName } from \"./registerButton\";\nimport { AntdCheckbox, checkboxComponentName } from \"./registerCheckbox\";\nimport { AntdDatePicker } from \"./registerDatePicker\";\nimport {\n inputComponentName,\n inputNumberComponentName,\n passwordComponentName,\n textAreaComponentName,\n} from \"./registerInput\";\nimport { AntdRadioGroup, radioGroupComponentName } from \"./registerRadio\";\nimport { AntdSelect, selectComponentName } from \"./registerSelect\";\nimport { switchComponentName } from \"./registerSwitch\";\nimport {\n arrayEq,\n ensureArray,\n ErrorBoundary,\n get,\n omit,\n pick,\n Registerable,\n registerComponentHelper,\n setFieldsToUndefined,\n usePrevious,\n} from \"./utils\";\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\nexport interface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormItemControlContextData) => void;\n}\n\nexport enum InputType {\n Text = \"Text\",\n TextArea = \"Text Area\",\n Password = \"Password\",\n Number = \"Number\",\n Select = \"Select\",\n Option = \"Option\",\n OptionGroup = \"Option Group\",\n Radio = \"Radio\",\n RadioGroup = \"Radio Group\",\n Checkbox = \"Checkbox\",\n DatePicker = \"DatePicker\",\n Unknown = \"Unkown\",\n}\n\nexport interface SimplifiedFormItemsProp extends InternalFormItemProps {\n inputType: InputType;\n options?: {\n label: string;\n value: string;\n }[];\n optionType?: \"default\" | \"button\";\n showTime?: boolean;\n key?: string;\n}\n\ninterface CommonFormControlContextData {\n formInstance?: FormInstance<any>;\n layout?: FormLayoutContextValue;\n internalFieldCtx?: InternalFieldCtx;\n}\n\nexport interface FormWrapperControlContextData\n extends CommonFormControlContextData {\n formInstance?: FormInstance<any>;\n schema?: TableSchema;\n minimalFullLengthFields?: Partial<SimplifiedFormItemsProp>[];\n mergedFields?: SimplifiedFormItemsProp[];\n}\n\nexport enum FormType {\n NewEntry,\n UpdateEntry,\n}\n\nexport interface FormWrapperProps\n extends FormProps,\n CanvasComponentProps<FormWrapperControlContextData> {\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 formItems?: SimplifiedFormItemsProp[];\n dataFormItems?: SimplifiedFormItemsProp[];\n mode?: CodeComponentMode;\n formType?: \"new-entry\" | \"update-entry\";\n submitSlot?: React.ReactNode;\n data?: DataOp;\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 FieldEntity {\n fullPath: (string | number)[];\n name: string | number | undefined;\n preserve: boolean;\n}\n\n/**\n * - registeredFields: current mounted form fields\n * - preservedRegisteredFields: all fields that were registered and were marked as NOT preserve\n */\ninterface InternalFieldCtx {\n registeredFields: FieldEntity[];\n preservedRegisteredFields: FieldEntity[];\n}\n\ninterface InternalFormInstanceContext extends CommonFormControlContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n registerField: (fieldEntity: FieldEntity) => () => void;\n internalFieldCtx: InternalFieldCtx;\n initialValues: Record<string, any>;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContext | undefined\n>(undefined);\n\ninterface FormLayoutContextValue {\n layout: React.ComponentProps<typeof Form>[\"layout\"];\n labelSpan?: number;\n}\n\nconst FormLayoutContext = React.createContext<\n FormLayoutContextValue | undefined\n>(undefined);\n\nconst Internal = React.forwardRef(\n (\n props: FormWrapperProps & {\n forceRemount: () => void;\n setInternalFieldCtx: React.Dispatch<\n React.SetStateAction<InternalFieldCtx>\n >;\n internalFieldCtx: InternalFieldCtx;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n formLayout: FormLayoutContextValue;\n },\n ref: React.Ref<FormRefActions>\n ) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const {\n extendedOnValuesChange,\n forceRemount,\n formLayout,\n internalFieldCtx,\n setInternalFieldCtx,\n ...rest\n } = props;\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n let childrenNode;\n if (props.mode !== \"simplified\") {\n childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n } else {\n childrenNode = (\n <>\n {(props.formItems ?? []).map((formItem) => (\n <ErrorBoundary\n canvasEnvId={(props as any)[\"data-plasmic-canvas-envs\"]}\n message={`Error rendering input for ${\n formItem.label ?? formItem.name ?? \"undefined\"\n }`}\n >\n <FormItemWrapper\n {...omit(formItem, \"key\")}\n noLabel={\n formItem.inputType === InputType.Checkbox || formItem.noLabel\n }\n valuePropName={\n formItem.valuePropName ??\n (formItem.inputType === InputType.Checkbox\n ? \"checked\"\n : undefined)\n }\n style={{ width: \"100%\" }}\n >\n {formItem.inputType === InputType.Text ? (\n <Input />\n ) : formItem.inputType === InputType.Password ? (\n <Input.Password />\n ) : formItem.inputType === InputType.TextArea ? (\n <Input.TextArea />\n ) : formItem.inputType === InputType.Number ? (\n <InputNumber />\n ) : formItem.inputType === InputType.Checkbox ? (\n <AntdCheckbox>{formItem.label}</AntdCheckbox>\n ) : formItem.inputType === InputType.Select ? (\n <AntdSelect options={formItem.options} />\n ) : formItem.inputType === InputType.DatePicker ? (\n <AntdDatePicker showTime={formItem.showTime} />\n ) : formItem.inputType === InputType.RadioGroup ? (\n <AntdRadioGroup\n options={formItem.options}\n optionType={formItem.optionType}\n style={{ padding: \"8px\" }}\n />\n ) : null}\n </FormItemWrapper>\n </ErrorBoundary>\n ))}\n {props.submitSlot}\n </>\n );\n }\n\n const fireOnValuesChange = React.useCallback(() => {\n const values = form.getFieldsValue(true);\n if (!equal(values, lastValue.current)) {\n extendedOnValuesChange?.(values);\n lastValue.current = values;\n }\n }, [form, lastValue]);\n\n React.useEffect(() => {\n fireOnValuesChange();\n }, []);\n React.useImperativeHandle(ref, () => ({\n formInstance: form,\n setFieldsValue: (newValues: Record<string, any>) => {\n form.setFieldsValue(newValues);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n setFieldValue: (\n namePath: string | number | (string | number)[],\n value: any\n ) => {\n form.setFieldValue(namePath, value);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n resetFields: () => {\n form.resetFields();\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n validateFields: async (...args) => {\n try {\n return await form.validateFields(...(args as any));\n } catch (err) {\n return err as any;\n }\n },\n clearFields: () => {\n const values = form.getFieldsValue(true);\n setFieldsToUndefined(values);\n form.setFieldsValue(values);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n }));\n const registerField = React.useCallback(\n (fieldEntity: FieldEntity) => {\n setInternalFieldCtx((ctx) => ({\n registeredFields: [...ctx.registeredFields, fieldEntity],\n preservedRegisteredFields: [\n ...ctx.preservedRegisteredFields,\n fieldEntity,\n ],\n }));\n return () => {\n setInternalFieldCtx((ctx) => ({\n registeredFields: ctx.registeredFields.filter(\n (ent) => ent !== fieldEntity\n ),\n preservedRegisteredFields: ctx.preservedRegisteredFields.filter(\n (ent) => ent !== fieldEntity || fieldEntity.preserve\n ),\n }));\n };\n },\n [setInternalFieldCtx]\n );\n return (\n <InternalFormInstanceContext.Provider\n value={{\n layout: formLayout,\n fireOnValuesChange,\n forceRemount,\n registerField,\n internalFieldCtx,\n initialValues: props.initialValues ?? {},\n }}\n >\n <FormLayoutContext.Provider value={formLayout}>\n <Form\n {...rest}\n key={\n props.initialValues\n ? JSON.stringify(props.initialValues)\n : undefined\n }\n onValuesChange={(...args) => {\n props.onValuesChange?.(...args);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n }}\n onFinish={() => {\n props.onFinish?.(\n pick(\n form.getFieldsValue(true),\n ...internalFieldCtx.preservedRegisteredFields.map(\n (field) => field.fullPath\n )\n )\n );\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 fields*/}\n <style>{`\n .ant-form-item-explain + div, .ant-form-item-margin-offset {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\n </FormLayoutContext.Provider>\n </InternalFormInstanceContext.Provider>\n );\n }\n);\n\nexport interface FormRefActions\n extends Pick<\n FormInstance<any>,\n \"setFieldsValue\" | \"resetFields\" | \"setFieldValue\" | \"validateFields\"\n > {\n clearFields: () => void;\n formInstance: FormInstance<any>;\n}\n\nexport function deriveFormFieldConfigs(\n dataFormItems: SimplifiedFormItemsProp[],\n schema: TableSchema,\n data: any\n) {\n return deriveFieldConfigs<SimplifiedFormItemsProp>(\n dataFormItems,\n schema,\n (field) => ({\n inputType: InputType.Text,\n ...(field && {\n key: field.id,\n fieldId: field.id,\n label: field.label ?? field.id,\n name: field.id,\n inputType:\n field.type === \"string\"\n ? InputType.Text\n : field.type === \"number\"\n ? InputType.Number\n : field.type === \"boolean\"\n ? InputType.Checkbox\n : InputType.Text, //missing date and date-time\n initialValue: data ? data[field.id] : undefined,\n }),\n })\n );\n}\n\nfunction useFormItemDefinitions(\n rawData:\n | (Partial<SingleRowResult | ManyRowsResult> & {\n error?: Error;\n isLoading?: boolean;\n })\n | undefined,\n props: React.ComponentProps<typeof FormWrapper>,\n formRef: FormRefActions | null,\n commonFormCtxData: CommonFormControlContextData | undefined\n) {\n const { mode, dataFormItems, setControlContextData } = props;\n\n const formInstance = formRef?.formInstance;\n return React.useMemo(() => {\n const data = rawData && normalizeData(rawData);\n const schema = data && data?.schema;\n if (\n mode !== \"simplified\" ||\n !rawData ||\n rawData.isLoading ||\n rawData.error ||\n !data ||\n !schema ||\n !data.data\n ) {\n setControlContextData?.({\n formInstance,\n ...commonFormCtxData,\n });\n return undefined;\n }\n const row = data.data.length > 0 ? data.data[0] : undefined;\n const { mergedFields, minimalFullLengthFields } = deriveFormFieldConfigs(\n dataFormItems ?? [],\n schema,\n row\n );\n\n setControlContextData?.({\n schema: data.schema,\n minimalFullLengthFields,\n mergedFields,\n formInstance,\n ...commonFormCtxData,\n });\n\n return mergedFields;\n }, [\n mode,\n setControlContextData,\n dataFormItems,\n rawData,\n formInstance,\n commonFormCtxData,\n ]);\n}\n\nconst useRawData = (props: FormWrapperProps) => {\n const rawData = usePlasmicDataOp(props.data);\n return props.data ? rawData : undefined;\n};\n\nexport const FormWrapper = React.forwardRef(\n (props: FormWrapperProps, ref: React.Ref<FormRefActions>) => {\n const [remountKey, setRemountKey] = React.useState(0);\n const forceRemount = React.useCallback(\n () => setRemountKey((k) => k + 1),\n [setRemountKey]\n );\n const previousInitialValues = usePrevious(props.initialValues);\n\n const wrapperRef = React.useRef<FormRefActions>(null);\n React.useEffect(() => {\n if (\n previousInitialValues !== props.initialValues &&\n JSON.stringify(previousInitialValues) !==\n JSON.stringify(props.initialValues)\n ) {\n forceRemount();\n }\n }, [previousInitialValues, props.initialValues]);\n const [internalFieldCtx, setInternalFieldCtx] =\n React.useState<InternalFieldCtx>({\n registeredFields: [],\n preservedRegisteredFields: [],\n });\n\n React.useImperativeHandle(ref, () =>\n wrapperRef.current ? { ...wrapperRef.current } : ({} as FormRefActions)\n );\n\n const formLayout = React.useMemo(\n () => ({\n layout: props.layout,\n labelSpan: props.labelCol?.span as number | undefined,\n }),\n [props.layout, props.labelCol?.span]\n );\n\n const commonFormCtxData = React.useMemo<CommonFormControlContextData>(\n () => ({\n layout: formLayout,\n internalFieldCtx,\n }),\n [formLayout, internalFieldCtx]\n );\n\n const rawData = useRawData(props);\n const formItemDefinitions = useFormItemDefinitions(\n rawData,\n props,\n wrapperRef.current,\n commonFormCtxData\n );\n React.useEffect(() => {\n if (rawData && !rawData.isLoading) {\n forceRemount();\n }\n }, [rawData]);\n const previousDataOp = usePrevious(props.data);\n React.useEffect(() => {\n if (\n (previousDataOp == null && props.data != null) ||\n (previousDataOp != null && props.data == null)\n ) {\n forceRemount();\n }\n }, [props.data]);\n const { dataFormItems, formItems, data, ...rest } = props;\n const actualFormItems =\n props.mode === \"simplified\" && formItemDefinitions\n ? formItemDefinitions\n : data\n ? dataFormItems\n : formItems;\n const previousFormItems = React.useRef<SimplifiedFormItemsProp[]>([]);\n React.useEffect(() => {\n if (!(rawData && rawData.isLoading)) {\n previousFormItems.current = actualFormItems ?? [];\n }\n }, [rawData, actualFormItems]);\n if (props.mode === \"simplified\" && rawData && \"error\" in rawData) {\n return <div>Error when fetching data: {rawData.error.message}</div>;\n }\n const isSchemaForm = props.mode === \"simplified\" && !!props.data;\n const isLoadingData = rawData?.isLoading;\n return (\n <>\n <Internal\n key={remountKey}\n {...rest}\n forceRemount={forceRemount}\n formLayout={formLayout}\n internalFieldCtx={internalFieldCtx}\n setInternalFieldCtx={setInternalFieldCtx}\n formItems={\n rawData && rawData.isLoading\n ? previousFormItems.current\n : actualFormItems\n }\n ref={wrapperRef}\n style={\n isSchemaForm && isLoadingData\n ? {\n opacity: 0.5,\n transitionDelay: \"250ms\",\n transition: \"1s\",\n }\n : {}\n }\n />\n {isSchemaForm && isLoadingData && (\n <div\n style={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n }}\n />\n )}\n </>\n );\n }\n);\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form Field\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n hidden: (props: any) => props.mode !== \"advanced\",\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Field 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];\nconst colProp = (\n displayName: string,\n defaultValue?: object,\n description?: string\n) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Width\",\n description:\n \"The number of grid columns to span in width (out of 24 columns total)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset\",\n description:\n \"Number of grid columns to skip from the left (out of 24 columns total)\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply when form layout is horizontal\",\n },\n },\n nameFunc: () => `Edit ${displayName}`,\n description,\n defaultValue: defaultValue,\n } as const);\n\nexport const formHelpers: ComponentHelpers<FormWrapperProps> = {\n states: {\n value: {\n onMutate: (value, $ref) => {\n $ref?.formInstance?.setFieldsValue(value);\n },\n },\n },\n};\n\nexport const formComponentName = \"plasmic-antd5-form\";\nexport const formTypeDescription = `\n You can create form with two different behaviors:\n \\n\\n\n 1. Create a new entry: The form will be created empty and it will create a new row when submitted.\n 2. Update an entry: The form will be pre-filled with the row values and it will update the table entry when submitted.\n \\n\\n\n For both options, you can customize later.\n`;\n\nexport function registerForm(loader?: Registerable) {\n registerComponentHelper(loader, FormWrapper, {\n name: formComponentName,\n displayName: \"Form\",\n description:\n \"[Learn how to use forms](https://docs.plasmic.app/learn/forms/)\",\n defaultStyles: {\n layout: \"vbox\",\n alignItems: \"flex-start\",\n },\n props: {\n mode: {\n type: \"controlMode\",\n defaultValue: \"simplified\",\n } as any,\n data: {\n type: \"formDataConnection\",\n disableDynamicValue: true,\n disableLinkToProp: true,\n hidden: (ps: FormWrapperProps) => ps.mode !== \"simplified\" || !ps.data,\n } as any,\n formItems: {\n displayName: \"Fields\",\n type: \"array\",\n itemType: commonSimplifiedFormArrayItemType(\"formItems\"),\n defaultValue: [\n {\n label: \"Name\",\n name: \"name\",\n inputType: InputType.Text,\n },\n {\n label: \"Message\",\n name: \"message\",\n inputType: InputType.TextArea,\n },\n ],\n hidden: (ps) => {\n if (ps.mode === \"advanced\") {\n return true;\n }\n return !!ps.data;\n },\n },\n /**\n * dataFormItems are used to expand the form items from schema forms.\n * We can't use the formItems prop because it has a default value. Therefore, if we unset the formItems prop,\n * we would end up with the default value of formItems + schema form items.\n * Ideally, we would need to support dynamic default value.\n */\n dataFormItems: {\n displayName: \"Data Fields\",\n type: \"array\",\n itemType: commonSimplifiedFormArrayItemType(\"dataFormItems\"),\n hidden: (ps) => {\n if (ps.mode === \"advanced\") {\n return true;\n }\n return !ps.data;\n },\n unstable__keyFunc: (x) => x.key,\n unstable__minimalValue: (ps, contextData) => {\n return ps.data ? contextData?.minimalFullLengthFields : undefined;\n },\n unstable__canDelete: (item, ps, ctx) => {\n if (ps.mode !== \"simplified\") {\n return true;\n }\n if (!ctx?.schema) {\n // still loading...\n return false;\n }\n if (\n item.fieldId &&\n ctx.schema.fields.some((f) => f.id === item.fieldId)\n ) {\n return false;\n }\n return true;\n },\n },\n submitSlot: {\n type: \"slot\",\n hidden: () => true,\n defaultValue: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n submitsForm: true,\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n },\n },\n ...{\n mergeWithParent: () => true,\n hiddenMergedProps: (ps: any) => !ps.mode,\n },\n },\n children: {\n type: \"slot\",\n hidden: (props) => props.mode !== \"advanced\",\n },\n initialValues: {\n displayName: \"Initial field values\",\n type: \"object\",\n } as any,\n layout: {\n displayName: \"Form 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 hidden: (ps) => ps.layout !== \"horizontal\",\n },\n labelCol: colProp(\n \"Label layout\",\n {\n span: 8,\n horizontalOnly: true,\n },\n \"Set the width and offset of the labels\"\n ),\n wrapperCol: colProp(\n \"Control layout\",\n {\n span: 16,\n horizontalOnly: true,\n },\n \"Set the width and offset of the form controls\"\n ),\n colon: {\n type: \"boolean\",\n description: `Show a colon after labels by default (only for horizontal layout)`,\n defaultValueHint: true,\n advanced: true,\n hidden: (props) => (props.layout ?? \"horizontal\") !== \"horizontal\",\n },\n requiredMark: {\n displayName: \"Required/optional indicators\",\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 displayName: \"Validate when\",\n type: \"choice\",\n options: [\n { value: \"onBlur\", label: \"a field loses focus\" },\n { value: \"onChange\", label: \"a field changes\" },\n { value: \"onSubmit\", label: \"the form is submitted\" },\n ],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: [\n ...COMMON_ACTIONS,\n {\n type: \"form-schema\",\n hidden: (ps: FormWrapperProps) => ps.mode !== \"simplified\" || !!ps.data,\n } as any,\n ],\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n componentHelpers: {\n helpers: formHelpers,\n importName: \"formHelpers\",\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n },\n refActions: {\n setFieldsValue: {\n displayName: \"Set multiple fields\",\n argTypes: [\n {\n name: \"newValues\",\n displayName: \"New Values\",\n type: \"exprEditor\",\n },\n ],\n },\n setFieldValue: {\n displayName: \"Set field\",\n argTypes: [\n {\n name: \"namePath\",\n displayName: \"Name Path\",\n type: {\n type: \"dataSelector\",\n data: (_, ctx) => {\n if (!ctx?.formInstance) {\n return {};\n }\n return ctx.formInstance.getFieldsValue(true);\n },\n },\n },\n {\n name: \"value\",\n displayName: \"New Value\",\n type: \"exprEditor\",\n },\n ],\n },\n resetFields: {\n displayName: \"Reset fields to initial value\",\n argTypes: [],\n },\n clearFields: {\n displayName: \"Clear fields\",\n argTypes: [],\n },\n validateFields: {\n displayName: \"Validate fields\",\n argTypes: [\n {\n name: \"nameList\",\n displayName: \"Name List\",\n type: \"object\",\n },\n {\n name: \"options\",\n displayName: \"Options\",\n type: \"object\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormWrapper\",\n });\n}\n\ninterface FormItemControlContextData extends CommonFormControlContextData {\n parentFormItemPath: (string | number)[];\n status?: ReturnType<typeof Form.Item.useStatus>;\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\nexport interface InternalFormItemProps\n extends Omit<FormItemProps, \"rules\" | \"name\">,\n CanvasComponentProps<FormItemControlContextData> {\n rules?: PlasmicRule[];\n description?: React.ReactNode;\n noLabel?: boolean;\n hideValidationMessage?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n alignLabellessWithControls?: boolean;\n name?: string;\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: any }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\n plasmicRules: PlasmicRule[],\n label: string | undefined\n) {\n const effectiveLabel = label || \"This field\";\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:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"min\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at least ${plasmicRule.length} characters`,\n });\n break;\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at most ${plasmicRule.length} characters`,\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\nexport function useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nexport function FormItemWrapper(props: InternalFormItemProps) {\n const {\n rules: plasmicRules,\n description,\n noLabel,\n name,\n hideValidationMessage,\n customizeProps,\n setControlContextData,\n alignLabellessWithControls = true,\n ...rest\n } = props;\n const relativeFormItemName = useFormItemRelativeName(name);\n const fullFormItemName = useFormItemFullName(name);\n const pathCtx = React.useContext(PathContext);\n const fieldEntity = React.useRef<FieldEntity>({\n preserve: props.preserve ?? true,\n fullPath: pathCtx.fullPath,\n name,\n }).current;\n const bestEffortLabel =\n (!noLabel && reactNodeToString(props.label)) ||\n ensureArray(props.name).slice(-1)[0];\n const rules = plasmicRules\n ? plasmicRulesToAntdRules(\n plasmicRules,\n typeof bestEffortLabel === \"number\"\n ? \"\" + bestEffortLabel\n : bestEffortLabel\n )\n : undefined;\n const layoutContext = React.useContext(FormLayoutContext);\n const inCanvas = !!usePlasmicCanvasContext();\n const {\n fireOnValuesChange,\n forceRemount,\n registerField,\n initialValues,\n internalFieldCtx,\n } = React.useContext(InternalFormInstanceContext) ?? {};\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n props.setControlContextData?.({\n internalFieldCtx,\n formInstance: form,\n parentFormItemPath: pathCtx.fullPath,\n layout: layoutContext,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n get(initialValues, fullFormItemName) != null ||\n props.initialValue == null\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 }, [\n form,\n props.initialValue,\n JSON.stringify(pathCtx.fullPath),\n props.name,\n props.preserve,\n ]);\n }\n React.useEffect(() => {\n fieldEntity.fullPath = [\n ...pathCtx.fullPath,\n ...(props.name != null ? [props.name] : []),\n ];\n fieldEntity.name = props.name;\n fieldEntity.preserve = props.preserve ?? true;\n }, [pathCtx.fullPath, props.name, props.preserve]);\n React.useEffect(() => {\n const unregister = registerField?.(fieldEntity);\n return () => unregister?.();\n }, []);\n return (\n <FormItem\n {...rest}\n label={noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n extra={description}\n help={hideValidationMessage ? \"\" : props.help}\n colon={noLabel ? false : undefined}\n valuePropName={deriveValuePropName(props)}\n trigger={deriveOnChangePropName(props)}\n // If in horizontal mode and no label, then we align the content\n // with the rest of the controls in the grid\n // if alignLabellessWithControls is true\n wrapperCol={\n layoutContext?.layout === \"horizontal\" &&\n noLabel &&\n alignLabellessWithControls &&\n layoutContext.labelSpan\n ? { offset: layoutContext.labelSpan }\n : undefined\n }\n >\n <FormItemForwarder formItemProps={props} />\n </FormItem>\n );\n}\n\n/**\n * Derive the valuePropName to use, if the wrapped child has designated\n * one via its Component.__plasmicFormFieldMeta?.valueProp.\n */\nfunction deriveValuePropName(props: InternalFormItemProps): string | undefined {\n if (props.valuePropName) {\n // Always prefer an explicitly specified valuePropName\n return props.valuePropName;\n }\n\n const valueProps = (\n React.Children.map(props.children as any, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.type;\n if (childType) {\n const x = (childType as any).__plasmicFormFieldMeta?.valueProp;\n if (x) {\n return x as string;\n }\n // Hard-coding \"isChecked\" for Plume checkbox / switch\n const plumeType = (childType as any).__plumeType;\n if (\n plumeType &&\n (plumeType === \"checkbox\" || plumeType === \"switch\")\n ) {\n return \"isChecked\";\n }\n }\n }\n return undefined;\n }) ?? []\n ).filter((x: any): x is string => !!x);\n if (valueProps.length > 0) {\n return valueProps[0];\n }\n return undefined;\n}\n\n/**\n * Derive the onChange prop to use, if the wrapped child has designated\n * one via its Component.__plasmicFormFieldMeta?.valueProp.\n */\nfunction deriveOnChangePropName(\n props: InternalFormItemProps\n): string | undefined {\n if (props.trigger) {\n // Always prefer an explicitly specified valuePropName\n return props.trigger;\n }\n\n const triggerProps = (\n React.Children.map(props.children as any, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.type;\n if (childType) {\n const x = (childType as any).__plasmicFormFieldMeta?.onChangeProp;\n if (x) {\n return x as string;\n }\n }\n }\n return undefined;\n }) ?? []\n ).filter((x: any): x is string => !!x);\n if (triggerProps.length > 0) {\n return triggerProps[0];\n }\n return undefined;\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 let newProps = {\n name: formItemProps.name,\n ...(child.props ?? {}),\n ...props,\n __plasmicFormField: true,\n };\n if (formItemProps.customizeProps) {\n newProps = mergeProps(\n newProps,\n formItemProps.customizeProps(data, newProps)\n );\n }\n return i === 0 && isValidElement(child)\n ? cloneElement(child, newProps)\n : child;\n });\n}\n\nfunction getDefaultValueHint(field: keyof SimplifiedFormItemsProp) {\n return (\n _props: any,\n contextData:\n | FormWrapperControlContextData\n | FormItemControlContextData\n | null,\n { item }: any\n ): any => {\n if (!contextData || !(\"mergedFields\" in contextData)) {\n return undefined;\n }\n if (item?.fieldId) {\n const fieldSetting = contextData.mergedFields?.find(\n (f) => f.fieldId === item.fieldId\n );\n return fieldSetting?.[field];\n }\n return undefined;\n };\n}\n\nconst mapAntdComponentToInputType = new Map<any, InputType>([\n [Input, InputType.Text],\n [Input.TextArea, InputType.TextArea],\n [Input.Password, InputType.Password],\n [InputNumber, InputType.Number],\n [AntdSelect, InputType.Select],\n [AntdRadioGroup, InputType.RadioGroup],\n [Radio, InputType.Radio],\n [AntdDatePicker, InputType.DatePicker],\n [AntdCheckbox, InputType.Checkbox],\n]);\n\nconst mapPlumeTypeToInputType = new Map<string, InputType>([\n [\"text-input\", InputType.Text],\n [\"select\", InputType.Select],\n [\"checkbox\", InputType.Checkbox],\n [\"switch\", InputType.Checkbox],\n]);\n\nfunction commonFormItemProps(\n usage: \"simplified-form-item\"\n): Record<string, PropType<InternalFormItemProps>>;\nfunction commonFormItemProps(\n usage: \"advanced-form-item\"\n): Record<string, PropType<FormWrapperProps>>;\nfunction commonFormItemProps(\n usage: \"simplified-form-item\" | \"advanced-form-item\"\n):\n | Record<string, PropType<FormWrapperProps>>\n | Record<string, PropType<InternalFormItemProps>> {\n const getFormItemProps = (\n ps: FormWrapperProps | InternalFormItemProps,\n _ctx: any,\n { item }: { item?: SimplifiedFormItemsProp }\n ): InternalFormItemProps | undefined => {\n if (usage === \"simplified-form-item\") {\n return item;\n } else {\n return ps as InternalFormItemProps;\n }\n };\n\n return {\n name: {\n type: \"string\" as const,\n required: true,\n displayName: \"Field key\",\n description: \"Key name for this field value in the submitted form data.\",\n validator: (\n value: string,\n _ps: any,\n ctx: CommonFormControlContextData | null\n ) => {\n let currFullPath: (string | number)[] = [];\n if (usage === \"simplified-form-item\") {\n currFullPath = [value];\n } else {\n const formItemCtx = ctx as FormItemControlContextData | null;\n currFullPath = [...(formItemCtx?.parentFormItemPath ?? []), value];\n }\n const nameCounter = (\n ctx?.internalFieldCtx?.registeredFields ?? []\n ).filter((formItem) => arrayEq(formItem.fullPath, currFullPath)).length;\n return nameCounter === 1\n ? true\n : `Repeated form field key: ${currFullPath.join(\" → \")}`;\n },\n defaultValueHint: getDefaultValueHint(\"name\"),\n },\n initialValue: {\n type: \"dynamic\",\n control: (\n ps: FormWrapperProps | InternalFormItemProps,\n ctx: FormWrapperControlContextData | null,\n {\n item,\n path,\n }: { item: SimplifiedFormItemsProp; path: (string | number)[] }\n ) => {\n let inputType = InputType.Unknown;\n if (usage === \"simplified-form-item\") {\n inputType = item.inputType;\n if (!(ps as FormWrapperProps).data) {\n inputType = item.inputType;\n } else if (path != null && typeof path[1] === \"number\") {\n inputType =\n ctx?.mergedFields?.[path[1]].inputType ?? InputType.Unknown;\n }\n } else {\n if (\n !React.isValidElement(ps.children) ||\n typeof ps.children.type === \"string\"\n ) {\n inputType = InputType.Unknown;\n } else {\n if (mapAntdComponentToInputType.has(ps.children.type)) {\n inputType =\n mapAntdComponentToInputType.get(ps.children.type) ??\n InputType.Unknown;\n } else if (\"__plumeType\" in ps.children.type) {\n inputType =\n mapPlumeTypeToInputType.get(\n ps.children.type.__plumeType as string\n ) ?? InputType.Unknown;\n }\n }\n }\n if (\n [\n InputType.Text,\n InputType.TextArea,\n InputType.Password,\n InputType.Select,\n InputType.RadioGroup,\n ].includes(inputType)\n ) {\n return {\n type: \"string\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else if (InputType.Number === inputType) {\n return {\n type: \"number\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else if (InputType.Checkbox === inputType) {\n return {\n type: \"boolean\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else if (InputType.DatePicker === inputType) {\n return {\n type: \"dateString\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else {\n return {\n type: \"exprEditor\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n }\n },\n } as any,\n rules: {\n displayName: \"Validation rules\",\n type: \"formValidationRules\" as const,\n } as any,\n valuePropName: {\n type: \"string\" as const,\n advanced: true,\n defaultValueHint: \"value\",\n description:\n \"The prop name for specifying the value of the form control component\",\n },\n trigger: {\n type: \"string\" as const,\n displayName: \"Trigger prop name\",\n advanced: true,\n defaultValueHint: \"onChange\",\n description:\n \"The prop name of event handler that is called when value is changed\",\n },\n noLabel: {\n type: \"boolean\" as const,\n advanced: true,\n },\n alignLabellessWithControls: {\n type: \"boolean\" as const,\n displayName: \"Align with controls?\",\n description: \"Aligns the content with form controls in the grid\",\n hidden: (\n ps: any,\n ctx: CommonFormControlContextData | null,\n extras: ControlExtras\n ) => {\n const formItem = getFormItemProps(ps, ctx, extras);\n return !formItem?.noLabel || ctx?.layout?.layout !== \"horizontal\";\n },\n defaultValueHint: true,\n },\n colon: {\n type: \"boolean\" as const,\n defaultValueHint: true,\n advanced: true,\n hidden: () => true,\n },\n labelAlign: {\n type: \"choice\" as const,\n options: [\"left\", \"right\"],\n advanced: true,\n hidden: (\n ps: any,\n ctx: CommonFormControlContextData | null,\n extras: ControlExtras\n ) => {\n const formItem = getFormItemProps(ps, ctx, extras);\n return !!formItem?.noLabel || ctx?.layout?.layout !== \"horizontal\";\n },\n },\n hidden: {\n type: \"boolean\" as const,\n defaultValueHint: getDefaultValueHint(\"hidden\"),\n },\n validateTrigger: {\n displayName: \"Validate when\",\n type: \"choice\",\n options: [\n { value: \"onBlur\", label: \"a field loses focus\" },\n { value: \"onChange\", label: \"a field changes\" },\n { value: \"onSubmit\", label: \"the form is submitted\" },\n ],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\" as const,\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form fields normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n dependencies: {\n type: \"array\" as const,\n advanced: true,\n displayName: \"Dependencies\",\n description:\n \"Form fields can depend on other form fields. This forces it to re-evaluate the validation rules when the other form fields changes.\",\n },\n hideValidationMessage: {\n type: \"boolean\" as const,\n displayName: \"Hide validation message?\",\n description: \"If true, will hide the validation error message\",\n defaultValueHint: false,\n advanced: true,\n },\n customizeProps: {\n type: \"function\" as const,\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: FormItemControlContextData) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\" as const,\n displayName: \"Field control only\",\n description:\n \"Don't render anything but the field control - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n preserve: {\n type: \"boolean\" as const,\n advanced: true,\n defaultValueHint: true,\n description: \"Keep field value even when field removed.\",\n },\n };\n}\n\nconst commonSimplifiedFormArrayItemType = (\n propName: \"formItems\" | \"dataFormItems\"\n): ArrayType<FormWrapperProps>[\"itemType\"] => ({\n type: \"object\",\n fields: {\n label: {\n type: \"string\",\n defaultValueHint: getDefaultValueHint(\"label\"),\n },\n inputType: {\n type: \"choice\",\n options: Object.values(InputType).filter(\n (inputType) =>\n ![\n InputType.Option,\n InputType.OptionGroup,\n InputType.Radio,\n InputType.Unknown,\n ].includes(inputType)\n ),\n defaultValue: InputType.Text,\n defaultValueHint: getDefaultValueHint(\"inputType\"),\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n hidden: (ps, _ctx, { path }) => {\n if (\n ps[propName]?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return true;\n }\n return false;\n },\n },\n label: \"string\",\n value: {\n type: \"string\",\n hidden: (ps, _ctx, { path, item }) => {\n if (\n ps[propName]?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return false;\n }\n return item.type !== \"option\";\n },\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n hidden: (ps, _ctx, { path, item }) => {\n if (\n ps[propName]?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return true;\n }\n return item.type !== \"option-group\";\n },\n },\n },\n nameFunc: (item) => item?.label,\n },\n hidden: (_ps: any, _ctx: any, { item }) =>\n ![InputType.Select, InputType.RadioGroup].includes(item.inputType),\n },\n optionType: {\n type: \"choice\",\n options: [\n { value: \"default\", label: \"Radio\" },\n { value: \"button\", label: \"Button\" },\n ],\n hidden: (_ps: any, _ctx: any, { item }) =>\n InputType.RadioGroup !== item.inputType,\n defaultValueHint: \"Radio\",\n displayName: \"Option Type\",\n },\n showTime: {\n type: \"boolean\",\n displayName: \"Show Time\",\n description: \"To provide an additional time selection\",\n hidden: (_ps: any, _ctx: any, { item }) =>\n ![InputType.DatePicker].includes(item.inputType),\n },\n ...commonFormItemProps(\"simplified-form-item\"),\n },\n nameFunc: (item) => item.fieldId ?? item.label ?? item.name,\n});\n\nexport const formItemComponentName = \"plasmic-antd5-form-item\";\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: formItemComponentName,\n displayName: \"Form Field\",\n parentComponentName: formComponentName,\n defaultStyles: {\n marginBottom: \"24px\",\n width: \"stretch\",\n },\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n hidden: (ps) => !!ps.noLabel,\n ...({ mergeWithParent: true } as any),\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: inputComponentName,\n },\n ...({ mergeWithParent: true } as any),\n },\n ...commonFormItemProps(\"advanced-form-item\"),\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n treeLabel: (ps: any) => ps.name,\n templates: {\n Text: {\n props: {\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n \"Long Text\": {\n props: {\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n \"Select dropdown\": {\n props: {\n children: {\n type: \"component\",\n name: selectComponentName,\n },\n },\n },\n Number: {\n props: {\n children: {\n type: \"component\",\n name: inputNumberComponentName,\n },\n },\n },\n Checkbox: {\n props: {\n children: {\n type: \"component\",\n name: checkboxComponentName,\n },\n noLabel: true,\n },\n },\n Switch: {\n props: {\n children: {\n type: \"component\",\n name: switchComponentName,\n },\n noLabel: true,\n },\n },\n Radios: {\n props: {\n children: {\n type: \"component\",\n name: radioGroupComponentName,\n },\n },\n },\n Password: {\n props: {\n children: {\n type: \"component\",\n name: passwordComponentName,\n },\n },\n },\n \"Submit button\": {\n props: {\n children: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n },\n },\n noLabel: true,\n },\n },\n },\n ...({ trapsSelection: true } as any),\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\nexport function 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 const formGroupComponentName = \"plasmic-antd5-form-group\";\n\nexport function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: formGroupComponentName,\n displayName: \"Form Field Group\",\n parentComponentName: formComponentName,\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n displayName: \"Form group key\",\n description:\n \"Name of the field key for this group of form fields in the submitted form data.\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = Omit<FormListProps, \"children\"> & {\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 }, [JSON.stringify(props.initialValue), JSON.stringify(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 const formListComponentName = \"plasmic-antd5-form-list\";\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: formListComponentName,\n parentComponentName: formComponentName,\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n providesData: true,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: formItemComponentName,\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: formItemComponentName,\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 refActions: {\n add: {\n displayName: \"Add an item\",\n argTypes: [\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 argTypes: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n argTypes: [\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":["InputType","FormType","_a","_b","_c","values","FormListWrapper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerForm.esm.js","sources":["../src/registerForm.tsx"],"sourcesContent":["import {\n DataOp,\n deriveFieldConfigs,\n ManyRowsResult,\n normalizeData,\n SingleRowResult,\n TableSchema,\n usePlasmicDataOp,\n} from \"@plasmicapp/data-sources\";\nimport {\n ActionProps,\n CodeComponentMode,\n ComponentHelpers,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport {\n ArrayType,\n CanvasComponentProps,\n ControlExtras,\n PropType,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Form, Input, InputNumber, Radio } from \"antd\";\nimport type { FormInstance, FormProps } from \"antd/es/form\";\nimport type { FormItemProps } from \"antd/es/form/FormItem\";\nimport type { FormListOperation, FormListProps } from \"antd/es/form/FormList\";\nimport type { ColProps } from \"antd/es/grid/col\";\nimport equal from \"fast-deep-equal\";\nimport React, { cloneElement, isValidElement } from \"react\";\nimport { mergeProps, reactNodeToString } from \"./react-utils\";\nimport { buttonComponentName } from \"./registerButton\";\nimport { AntdCheckbox, checkboxComponentName } from \"./registerCheckbox\";\nimport { AntdDatePicker } from \"./registerDatePicker\";\nimport {\n inputComponentName,\n inputNumberComponentName,\n passwordComponentName,\n textAreaComponentName,\n} from \"./registerInput\";\nimport { AntdRadioGroup, radioGroupComponentName } from \"./registerRadio\";\nimport { AntdSelect, selectComponentName } from \"./registerSelect\";\nimport { switchComponentName } from \"./registerSwitch\";\nimport {\n arrayEq,\n ensureArray,\n ErrorBoundary,\n get,\n omit,\n pick,\n Registerable,\n registerComponentHelper,\n setFieldsToUndefined,\n usePrevious,\n} from \"./utils\";\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\nexport interface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormItemControlContextData) => void;\n}\n\nexport enum InputType {\n Text = \"Text\",\n TextArea = \"Text Area\",\n Password = \"Password\",\n Number = \"Number\",\n Select = \"Select\",\n Option = \"Option\",\n OptionGroup = \"Option Group\",\n Radio = \"Radio\",\n RadioGroup = \"Radio Group\",\n Checkbox = \"Checkbox\",\n DatePicker = \"DatePicker\",\n Unknown = \"Unkown\",\n}\n\nexport interface SimplifiedFormItemsProp extends InternalFormItemProps {\n inputType: InputType;\n options?: {\n label: string;\n value: string;\n }[];\n optionType?: \"default\" | \"button\";\n showTime?: boolean;\n key?: string;\n}\n\ninterface CommonFormControlContextData {\n formInstance?: FormInstance<any>;\n layout?: FormLayoutContextValue;\n internalFieldCtx?: InternalFieldCtx;\n}\n\nexport interface FormWrapperControlContextData\n extends CommonFormControlContextData {\n formInstance?: FormInstance<any>;\n schema?: TableSchema;\n minimalFullLengthFields?: Partial<SimplifiedFormItemsProp>[];\n mergedFields?: SimplifiedFormItemsProp[];\n}\n\nexport enum FormType {\n NewEntry,\n UpdateEntry,\n}\n\nexport interface FormWrapperProps\n extends FormProps,\n CanvasComponentProps<FormWrapperControlContextData> {\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 formItems?: SimplifiedFormItemsProp[];\n dataFormItems?: SimplifiedFormItemsProp[];\n mode?: CodeComponentMode;\n formType?: \"new-entry\" | \"update-entry\";\n submitSlot?: React.ReactNode;\n data?: DataOp;\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 FieldEntity {\n fullPath: (string | number)[];\n name: string | number | undefined;\n preserve: boolean;\n}\n\n/**\n * - registeredFields: current mounted form fields\n * - preservedRegisteredFields: all fields that were registered and were marked as NOT preserve\n */\ninterface InternalFieldCtx {\n registeredFields: FieldEntity[];\n preservedRegisteredFields: FieldEntity[];\n}\n\ninterface InternalFormInstanceContext extends CommonFormControlContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n registerField: (fieldEntity: FieldEntity) => () => void;\n internalFieldCtx: InternalFieldCtx;\n initialValues: Record<string, any>;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContext | undefined\n>(undefined);\n\ninterface FormLayoutContextValue {\n layout: React.ComponentProps<typeof Form>[\"layout\"];\n labelSpan?: number;\n}\n\nconst FormLayoutContext = React.createContext<\n FormLayoutContextValue | undefined\n>(undefined);\n\nconst Internal = React.forwardRef(\n (\n props: FormWrapperProps & {\n forceRemount: () => void;\n setInternalFieldCtx: React.Dispatch<\n React.SetStateAction<InternalFieldCtx>\n >;\n internalFieldCtx: InternalFieldCtx;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n formLayout: FormLayoutContextValue;\n },\n ref: React.Ref<FormRefActions>\n ) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const {\n extendedOnValuesChange,\n forceRemount,\n formLayout,\n internalFieldCtx,\n setInternalFieldCtx,\n ...rest\n } = props;\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n let childrenNode;\n if (props.mode !== \"simplified\") {\n childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n } else {\n childrenNode = (\n <>\n {(props.formItems ?? []).map((formItem) => (\n <ErrorBoundary\n canvasEnvId={(props as any)[\"data-plasmic-canvas-envs\"]}\n message={`Error rendering input for ${\n formItem.label ?? formItem.name ?? \"undefined\"\n }`}\n >\n <FormItemWrapper\n {...omit(formItem, \"key\")}\n noLabel={\n formItem.inputType === InputType.Checkbox || formItem.noLabel\n }\n valuePropName={\n formItem.valuePropName ??\n (formItem.inputType === InputType.Checkbox\n ? \"checked\"\n : undefined)\n }\n style={{ width: \"100%\" }}\n >\n {formItem.inputType === InputType.Text ? (\n <Input />\n ) : formItem.inputType === InputType.Password ? (\n <Input.Password />\n ) : formItem.inputType === InputType.TextArea ? (\n <Input.TextArea />\n ) : formItem.inputType === InputType.Number ? (\n <InputNumber />\n ) : formItem.inputType === InputType.Checkbox ? (\n <AntdCheckbox>{formItem.label}</AntdCheckbox>\n ) : formItem.inputType === InputType.Select ? (\n <AntdSelect options={formItem.options} />\n ) : formItem.inputType === InputType.DatePicker ? (\n <AntdDatePicker showTime={formItem.showTime} />\n ) : formItem.inputType === InputType.RadioGroup ? (\n <AntdRadioGroup\n options={formItem.options}\n optionType={formItem.optionType}\n style={{ padding: \"8px\" }}\n />\n ) : null}\n </FormItemWrapper>\n </ErrorBoundary>\n ))}\n {props.submitSlot}\n </>\n );\n }\n\n const fireOnValuesChange = React.useCallback(() => {\n const values = form.getFieldsValue(true);\n if (!equal(values, lastValue.current)) {\n extendedOnValuesChange?.(values);\n lastValue.current = values;\n }\n }, [form, lastValue]);\n\n React.useEffect(() => {\n fireOnValuesChange();\n }, []);\n React.useImperativeHandle(ref, () => ({\n formInstance: form,\n setFieldsValue: (newValues: Record<string, any>) => {\n form.setFieldsValue(newValues);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n setFieldValue: (\n namePath: string | number | (string | number)[],\n value: any\n ) => {\n form.setFieldValue(namePath, value);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n resetFields: () => {\n form.resetFields();\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n validateFields: async (...args) => {\n try {\n return await form.validateFields(...(args as any));\n } catch (err) {\n return err as any;\n }\n },\n clearFields: () => {\n const values = form.getFieldsValue(true);\n setFieldsToUndefined(values);\n form.setFieldsValue(values);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n },\n }));\n const registerField = React.useCallback(\n (fieldEntity: FieldEntity) => {\n setInternalFieldCtx((ctx) => ({\n registeredFields: [...ctx.registeredFields, fieldEntity],\n preservedRegisteredFields: [\n ...ctx.preservedRegisteredFields,\n fieldEntity,\n ],\n }));\n return () => {\n setInternalFieldCtx((ctx) => ({\n registeredFields: ctx.registeredFields.filter(\n (ent) => ent !== fieldEntity\n ),\n preservedRegisteredFields: ctx.preservedRegisteredFields.filter(\n (ent) => ent !== fieldEntity || fieldEntity.preserve\n ),\n }));\n };\n },\n [setInternalFieldCtx]\n );\n return (\n <InternalFormInstanceContext.Provider\n value={{\n layout: formLayout,\n fireOnValuesChange,\n forceRemount,\n registerField,\n internalFieldCtx,\n initialValues: props.initialValues ?? {},\n }}\n >\n <FormLayoutContext.Provider value={formLayout}>\n <Form\n {...rest}\n key={\n props.initialValues\n ? JSON.stringify(props.initialValues)\n : undefined\n }\n onValuesChange={(...args) => {\n props.onValuesChange?.(...args);\n extendedOnValuesChange?.(form.getFieldsValue(true));\n }}\n onFinish={() => {\n props.onFinish?.(\n pick(\n form.getFieldsValue(true),\n ...internalFieldCtx.preservedRegisteredFields.map(\n (field) => field.fullPath\n )\n )\n );\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 fields*/}\n <style>{`\n .ant-form-item-explain + div, .ant-form-item-margin-offset {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\n </FormLayoutContext.Provider>\n </InternalFormInstanceContext.Provider>\n );\n }\n);\n\nexport interface FormRefActions\n extends Pick<\n FormInstance<any>,\n \"setFieldsValue\" | \"resetFields\" | \"setFieldValue\" | \"validateFields\"\n > {\n clearFields: () => void;\n formInstance: FormInstance<any>;\n}\n\nexport function deriveFormFieldConfigs(\n dataFormItems: SimplifiedFormItemsProp[],\n schema: TableSchema,\n data: any\n) {\n return deriveFieldConfigs<SimplifiedFormItemsProp>(\n dataFormItems,\n schema,\n (field) => ({\n inputType: InputType.Text,\n ...(field && {\n key: field.id,\n fieldId: field.id,\n label: field.label ?? field.id,\n name: field.id,\n inputType:\n field.type === \"string\"\n ? InputType.Text\n : field.type === \"number\"\n ? InputType.Number\n : field.type === \"boolean\"\n ? InputType.Checkbox\n : InputType.Text, //missing date and date-time\n initialValue: data ? data[field.id] : undefined,\n }),\n })\n );\n}\n\nfunction useFormItemDefinitions(\n rawData:\n | (Partial<SingleRowResult | ManyRowsResult> & {\n error?: Error;\n isLoading?: boolean;\n })\n | undefined,\n props: React.ComponentProps<typeof FormWrapper>,\n formRef: FormRefActions | null,\n commonFormCtxData: CommonFormControlContextData | undefined\n) {\n const { mode, dataFormItems, setControlContextData } = props;\n\n const formInstance = formRef?.formInstance;\n return React.useMemo(() => {\n const data = rawData && normalizeData(rawData);\n const schema = data && data?.schema;\n if (\n mode !== \"simplified\" ||\n !rawData ||\n rawData.isLoading ||\n rawData.error ||\n !data ||\n !schema ||\n !data.data\n ) {\n setControlContextData?.({\n formInstance,\n ...commonFormCtxData,\n });\n return undefined;\n }\n const row = data.data.length > 0 ? data.data[0] : undefined;\n const { mergedFields, minimalFullLengthFields } = deriveFormFieldConfigs(\n dataFormItems ?? [],\n schema,\n row\n );\n\n setControlContextData?.({\n schema: data.schema,\n minimalFullLengthFields,\n mergedFields,\n formInstance,\n ...commonFormCtxData,\n });\n\n return mergedFields;\n }, [\n mode,\n setControlContextData,\n dataFormItems,\n rawData,\n formInstance,\n commonFormCtxData,\n ]);\n}\n\nconst useRawData = (props: FormWrapperProps) => {\n const rawData = usePlasmicDataOp(props.data);\n return props.data ? rawData : undefined;\n};\n\nexport const FormWrapper = React.forwardRef(\n (props: FormWrapperProps, ref: React.Ref<FormRefActions>) => {\n const [remountKey, setRemountKey] = React.useState(0);\n const forceRemount = React.useCallback(\n () => setRemountKey((k) => k + 1),\n [setRemountKey]\n );\n const previousInitialValues = usePrevious(props.initialValues);\n\n const wrapperRef = React.useRef<FormRefActions>(null);\n React.useEffect(() => {\n if (\n previousInitialValues !== props.initialValues &&\n JSON.stringify(previousInitialValues) !==\n JSON.stringify(props.initialValues)\n ) {\n forceRemount();\n }\n }, [previousInitialValues, props.initialValues]);\n const [internalFieldCtx, setInternalFieldCtx] =\n React.useState<InternalFieldCtx>({\n registeredFields: [],\n preservedRegisteredFields: [],\n });\n\n React.useImperativeHandle(ref, () =>\n wrapperRef.current ? { ...wrapperRef.current } : ({} as FormRefActions)\n );\n\n const formLayout = React.useMemo(\n () => ({\n layout: props.layout,\n labelSpan: props.labelCol?.span as number | undefined,\n }),\n [props.layout, props.labelCol?.span]\n );\n\n const commonFormCtxData = React.useMemo<CommonFormControlContextData>(\n () => ({\n layout: formLayout,\n internalFieldCtx,\n }),\n [formLayout, internalFieldCtx]\n );\n\n const rawData = useRawData(props);\n const formItemDefinitions = useFormItemDefinitions(\n rawData,\n props,\n wrapperRef.current,\n commonFormCtxData\n );\n React.useEffect(() => {\n if (rawData && !rawData.isLoading) {\n forceRemount();\n }\n }, [rawData]);\n const previousDataOp = usePrevious(props.data);\n React.useEffect(() => {\n if (\n (previousDataOp == null && props.data != null) ||\n (previousDataOp != null && props.data == null)\n ) {\n forceRemount();\n }\n }, [props.data]);\n const { dataFormItems, formItems, data, ...rest } = props;\n const actualFormItems =\n props.mode === \"simplified\" && formItemDefinitions\n ? formItemDefinitions\n : data\n ? dataFormItems\n : formItems;\n const previousFormItems = React.useRef<SimplifiedFormItemsProp[]>([]);\n React.useEffect(() => {\n if (!(rawData && rawData.isLoading)) {\n previousFormItems.current = actualFormItems ?? [];\n }\n }, [rawData, actualFormItems]);\n if (props.mode === \"simplified\" && rawData && \"error\" in rawData) {\n return <div>Error when fetching data: {rawData.error.message}</div>;\n }\n const isSchemaForm = props.mode === \"simplified\" && !!props.data;\n const isLoadingData = rawData?.isLoading;\n return (\n <>\n <Internal\n key={remountKey}\n {...rest}\n forceRemount={forceRemount}\n formLayout={formLayout}\n internalFieldCtx={internalFieldCtx}\n setInternalFieldCtx={setInternalFieldCtx}\n formItems={\n rawData && rawData.isLoading\n ? previousFormItems.current\n : actualFormItems\n }\n ref={wrapperRef}\n style={\n isSchemaForm && isLoadingData\n ? {\n opacity: 0.5,\n transitionDelay: \"250ms\",\n transition: \"1s\",\n }\n : {}\n }\n />\n {isSchemaForm && isLoadingData && (\n <div\n style={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n }}\n />\n )}\n </>\n );\n }\n);\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form Field\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n hidden: (props: any) => props.mode !== \"advanced\",\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Field 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];\nconst colProp = (\n displayName: string,\n defaultValue?: object,\n description?: string\n) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Width\",\n description:\n \"The number of grid columns to span in width (out of 24 columns total)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset\",\n description:\n \"Number of grid columns to skip from the left (out of 24 columns total)\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply when form layout is horizontal\",\n },\n },\n nameFunc: () => `Edit ${displayName}`,\n description,\n defaultValue: defaultValue,\n } as const);\n\nexport const formHelpers: ComponentHelpers<FormWrapperProps> = {\n states: {\n value: {\n onMutate: (value, $ref) => {\n $ref?.formInstance?.setFieldsValue(value);\n },\n },\n },\n};\n\nexport const formComponentName = \"plasmic-antd5-form\";\nexport const formTypeDescription = `\n You can create form with two different behaviors:\n \\n\\n\n 1. Create a new entry: The form will be created empty and it will create a new row when submitted.\n 2. Update an entry: The form will be pre-filled with the row values and it will update the table entry when submitted.\n \\n\\n\n For both options, you can customize later.\n`;\n\nexport function registerForm(loader?: Registerable) {\n registerComponentHelper(loader, FormWrapper, {\n name: formComponentName,\n displayName: \"Form\",\n description:\n \"[Learn how to use forms](https://docs.plasmic.app/learn/forms/)\",\n defaultStyles: {\n layout: \"vbox\",\n alignItems: \"flex-start\",\n },\n props: {\n mode: {\n type: \"controlMode\",\n defaultValue: \"simplified\",\n } as any,\n data: {\n type: \"formDataConnection\",\n disableDynamicValue: true,\n disableLinkToProp: true,\n hidden: (ps: FormWrapperProps) => ps.mode !== \"simplified\" || !ps.data,\n } as any,\n formItems: {\n displayName: \"Fields\",\n type: \"array\",\n itemType: commonSimplifiedFormArrayItemType(\"formItems\"),\n defaultValue: [\n {\n label: \"Name\",\n name: \"name\",\n inputType: InputType.Text,\n },\n {\n label: \"Message\",\n name: \"message\",\n inputType: InputType.TextArea,\n },\n ],\n hidden: (ps) => {\n if (ps.mode === \"advanced\") {\n return true;\n }\n return !!ps.data;\n },\n },\n /**\n * dataFormItems are used to expand the form items from schema forms.\n * We can't use the formItems prop because it has a default value. Therefore, if we unset the formItems prop,\n * we would end up with the default value of formItems + schema form items.\n * Ideally, we would need to support dynamic default value.\n */\n dataFormItems: {\n displayName: \"Data Fields\",\n type: \"array\",\n itemType: commonSimplifiedFormArrayItemType(\"dataFormItems\"),\n hidden: (ps) => {\n if (ps.mode === \"advanced\") {\n return true;\n }\n return !ps.data;\n },\n unstable__keyFunc: (x) => x.key,\n unstable__minimalValue: (ps, contextData) => {\n return ps.data ? contextData?.minimalFullLengthFields : undefined;\n },\n unstable__canDelete: (item, ps, ctx) => {\n if (ps.mode !== \"simplified\") {\n return true;\n }\n if (!ctx?.schema) {\n // still loading...\n return false;\n }\n if (\n item.fieldId &&\n ctx.schema.fields.some((f) => f.id === item.fieldId)\n ) {\n return false;\n }\n return true;\n },\n },\n submitSlot: {\n type: \"slot\",\n hidden: () => true,\n defaultValue: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n submitsForm: true,\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n },\n },\n ...{\n mergeWithParent: () => true,\n hiddenMergedProps: (ps: any) => !ps.mode,\n },\n },\n children: {\n type: \"slot\",\n hidden: (props) => props.mode !== \"advanced\",\n },\n initialValues: {\n displayName: \"Initial field values\",\n type: \"object\",\n } as any,\n layout: {\n displayName: \"Form 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 hidden: (ps) => ps.layout !== \"horizontal\",\n },\n labelCol: colProp(\n \"Label layout\",\n {\n span: 8,\n horizontalOnly: true,\n },\n \"Set the width and offset of the labels\"\n ),\n wrapperCol: colProp(\n \"Control layout\",\n {\n span: 16,\n horizontalOnly: true,\n },\n \"Set the width and offset of the form controls\"\n ),\n colon: {\n type: \"boolean\",\n description: `Show a colon after labels by default (only for horizontal layout)`,\n defaultValueHint: true,\n advanced: true,\n hidden: (props) => (props.layout ?? \"horizontal\") !== \"horizontal\",\n },\n requiredMark: {\n displayName: \"Required/optional indicators\",\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 displayName: \"Validate when\",\n type: \"choice\",\n options: [\n { value: \"onBlur\", label: \"a field loses focus\" },\n { value: \"onChange\", label: \"a field changes\" },\n { value: \"onSubmit\", label: \"the form is submitted\" },\n ],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: [\n ...COMMON_ACTIONS,\n {\n type: \"form-schema\",\n hidden: (ps: FormWrapperProps) => ps.mode !== \"simplified\" || !!ps.data,\n } as any,\n ],\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n componentHelpers: {\n helpers: formHelpers,\n importName: \"formHelpers\",\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n },\n refActions: {\n setFieldsValue: {\n displayName: \"Set multiple fields\",\n argTypes: [\n {\n name: \"newValues\",\n displayName: \"New Values\",\n type: \"exprEditor\",\n },\n ],\n },\n setFieldValue: {\n displayName: \"Set field\",\n argTypes: [\n {\n name: \"namePath\",\n displayName: \"Name Path\",\n type: {\n type: \"dataSelector\",\n data: (_, ctx) => {\n if (!ctx?.formInstance) {\n return {};\n }\n return ctx.formInstance.getFieldsValue(true);\n },\n },\n },\n {\n name: \"value\",\n displayName: \"New Value\",\n type: \"exprEditor\",\n },\n ],\n },\n resetFields: {\n displayName: \"Reset fields to initial value\",\n argTypes: [],\n },\n clearFields: {\n displayName: \"Clear fields\",\n argTypes: [],\n },\n validateFields: {\n displayName: \"Validate fields\",\n argTypes: [\n {\n name: \"nameList\",\n displayName: \"Name List\",\n type: \"object\",\n },\n {\n name: \"options\",\n displayName: \"Options\",\n type: \"object\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormWrapper\",\n });\n}\n\ninterface FormItemControlContextData extends CommonFormControlContextData {\n parentFormItemPath: (string | number)[];\n status?: ReturnType<typeof Form.Item.useStatus>;\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\nexport interface InternalFormItemProps\n extends Omit<FormItemProps, \"rules\" | \"name\">,\n CanvasComponentProps<FormItemControlContextData> {\n rules?: PlasmicRule[];\n description?: React.ReactNode;\n noLabel?: boolean;\n hideValidationMessage?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n alignLabellessWithControls?: boolean;\n name?: string;\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: any }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\n plasmicRules: PlasmicRule[],\n label: string | undefined\n) {\n const effectiveLabel = label || \"This field\";\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:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"min\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at least ${plasmicRule.length} characters`,\n });\n break;\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at most ${plasmicRule.length} characters`,\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\nexport function useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nexport function FormItemWrapper(props: InternalFormItemProps) {\n const {\n rules: plasmicRules,\n description,\n noLabel,\n name,\n hideValidationMessage,\n customizeProps,\n setControlContextData,\n alignLabellessWithControls = true,\n ...rest\n } = props;\n const relativeFormItemName = useFormItemRelativeName(name);\n const fullFormItemName = useFormItemFullName(name);\n const pathCtx = React.useContext(PathContext);\n const fieldEntity = React.useRef<FieldEntity>({\n preserve: props.preserve ?? true,\n fullPath: pathCtx.fullPath,\n name,\n }).current;\n const bestEffortLabel =\n (!noLabel && reactNodeToString(props.label)) ||\n ensureArray(props.name).slice(-1)[0];\n const rules = plasmicRules\n ? plasmicRulesToAntdRules(\n plasmicRules,\n typeof bestEffortLabel === \"number\"\n ? \"\" + bestEffortLabel\n : bestEffortLabel\n )\n : undefined;\n const layoutContext = React.useContext(FormLayoutContext);\n const inCanvas = !!usePlasmicCanvasContext();\n const {\n fireOnValuesChange,\n forceRemount,\n registerField,\n initialValues,\n internalFieldCtx,\n } = React.useContext(InternalFormInstanceContext) ?? {};\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n props.setControlContextData?.({\n internalFieldCtx,\n formInstance: form,\n parentFormItemPath: pathCtx.fullPath,\n layout: layoutContext,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n get(initialValues, fullFormItemName) != null ||\n props.initialValue == null\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 }, [\n form,\n props.initialValue,\n JSON.stringify(pathCtx.fullPath),\n props.name,\n props.preserve,\n ]);\n }\n React.useEffect(() => {\n fieldEntity.fullPath = [\n ...pathCtx.fullPath,\n ...(props.name != null ? [props.name] : []),\n ];\n fieldEntity.name = props.name;\n fieldEntity.preserve = props.preserve ?? true;\n }, [pathCtx.fullPath, props.name, props.preserve]);\n React.useEffect(() => {\n const unregister = registerField?.(fieldEntity);\n return () => unregister?.();\n }, []);\n return (\n <FormItem\n {...rest}\n label={noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n extra={description}\n help={hideValidationMessage ? \"\" : props.help}\n colon={noLabel ? false : undefined}\n valuePropName={deriveValuePropName(props)}\n trigger={deriveOnChangePropName(props)}\n // If in horizontal mode and no label, then we align the content\n // with the rest of the controls in the grid\n // if alignLabellessWithControls is true\n wrapperCol={\n layoutContext?.layout === \"horizontal\" &&\n noLabel &&\n alignLabellessWithControls &&\n layoutContext.labelSpan\n ? { offset: layoutContext.labelSpan }\n : undefined\n }\n >\n <FormItemForwarder formItemProps={props} />\n </FormItem>\n );\n}\n\n/**\n * Derive the valuePropName to use, if the wrapped child has designated\n * one via its Component.__plasmicFormFieldMeta?.valueProp.\n */\nfunction deriveValuePropName(props: InternalFormItemProps): string | undefined {\n if (props.valuePropName) {\n // Always prefer an explicitly specified valuePropName\n return props.valuePropName;\n }\n\n const valueProps = (\n React.Children.map(props.children as any, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.type;\n if (childType) {\n const x = (childType as any).__plasmicFormFieldMeta?.valueProp;\n if (x) {\n return x as string;\n }\n // Hard-coding \"isChecked\" for Plume checkbox / switch\n const plumeType = (childType as any).__plumeType;\n if (\n plumeType &&\n (plumeType === \"checkbox\" || plumeType === \"switch\")\n ) {\n return \"isChecked\";\n }\n }\n }\n return undefined;\n }) ?? []\n ).filter((x: any): x is string => !!x);\n if (valueProps.length > 0) {\n return valueProps[0];\n }\n return undefined;\n}\n\n/**\n * Derive the onChange prop to use, if the wrapped child has designated\n * one via its Component.__plasmicFormFieldMeta?.valueProp.\n */\nfunction deriveOnChangePropName(\n props: InternalFormItemProps\n): string | undefined {\n if (props.trigger) {\n // Always prefer an explicitly specified valuePropName\n return props.trigger;\n }\n\n const triggerProps = (\n React.Children.map(props.children as any, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.type;\n if (childType) {\n const x = (childType as any).__plasmicFormFieldMeta?.onChangeProp;\n if (x) {\n return x as string;\n }\n }\n }\n return undefined;\n }) ?? []\n ).filter((x: any): x is string => !!x);\n if (triggerProps.length > 0) {\n return triggerProps[0];\n }\n return undefined;\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 if (i === 0 && isValidElement(child)) {\n let newProps = {\n name: formItemProps.name,\n ...(child.props ?? {}),\n ...props,\n __plasmicFormField: true,\n };\n if (formItemProps.customizeProps) {\n newProps = mergeProps(\n newProps,\n formItemProps.customizeProps(data, newProps)\n );\n }\n return cloneElement(child, newProps);\n } else {\n return child;\n }\n });\n}\n\nfunction getDefaultValueHint(field: keyof SimplifiedFormItemsProp) {\n return (\n _props: any,\n contextData:\n | FormWrapperControlContextData\n | FormItemControlContextData\n | null,\n { item }: any\n ): any => {\n if (!contextData || !(\"mergedFields\" in contextData)) {\n return undefined;\n }\n if (item?.fieldId) {\n const fieldSetting = contextData.mergedFields?.find(\n (f) => f.fieldId === item.fieldId\n );\n return fieldSetting?.[field];\n }\n return undefined;\n };\n}\n\nconst mapAntdComponentToInputType = new Map<any, InputType>([\n [Input, InputType.Text],\n [Input.TextArea, InputType.TextArea],\n [Input.Password, InputType.Password],\n [InputNumber, InputType.Number],\n [AntdSelect, InputType.Select],\n [AntdRadioGroup, InputType.RadioGroup],\n [Radio, InputType.Radio],\n [AntdDatePicker, InputType.DatePicker],\n [AntdCheckbox, InputType.Checkbox],\n]);\n\nconst mapPlumeTypeToInputType = new Map<string, InputType>([\n [\"text-input\", InputType.Text],\n [\"select\", InputType.Select],\n [\"checkbox\", InputType.Checkbox],\n [\"switch\", InputType.Checkbox],\n]);\n\nfunction commonFormItemProps(\n usage: \"simplified-form-item\"\n): Record<string, PropType<InternalFormItemProps>>;\nfunction commonFormItemProps(\n usage: \"advanced-form-item\"\n): Record<string, PropType<FormWrapperProps>>;\nfunction commonFormItemProps(\n usage: \"simplified-form-item\" | \"advanced-form-item\"\n):\n | Record<string, PropType<FormWrapperProps>>\n | Record<string, PropType<InternalFormItemProps>> {\n const getFormItemProps = (\n ps: FormWrapperProps | InternalFormItemProps,\n _ctx: any,\n { item }: { item?: SimplifiedFormItemsProp }\n ): InternalFormItemProps | undefined => {\n if (usage === \"simplified-form-item\") {\n return item;\n } else {\n return ps as InternalFormItemProps;\n }\n };\n\n return {\n name: {\n type: \"string\" as const,\n required: true,\n displayName: \"Field key\",\n description: \"Key name for this field value in the submitted form data.\",\n validator: (\n value: string,\n _ps: any,\n ctx: CommonFormControlContextData | null\n ) => {\n let currFullPath: (string | number)[] = [];\n if (usage === \"simplified-form-item\") {\n currFullPath = [value];\n } else {\n const formItemCtx = ctx as FormItemControlContextData | null;\n currFullPath = [...(formItemCtx?.parentFormItemPath ?? []), value];\n }\n const nameCounter = (\n ctx?.internalFieldCtx?.registeredFields ?? []\n ).filter((formItem) => arrayEq(formItem.fullPath, currFullPath)).length;\n return nameCounter === 1\n ? true\n : `Repeated form field key: ${currFullPath.join(\" → \")}`;\n },\n defaultValueHint: getDefaultValueHint(\"name\"),\n },\n initialValue: {\n type: \"dynamic\",\n control: (\n ps: FormWrapperProps | InternalFormItemProps,\n ctx: FormWrapperControlContextData | null,\n {\n item,\n path,\n }: { item: SimplifiedFormItemsProp; path: (string | number)[] }\n ) => {\n let inputType = InputType.Unknown;\n if (usage === \"simplified-form-item\") {\n inputType = item.inputType;\n if (!(ps as FormWrapperProps).data) {\n inputType = item.inputType;\n } else if (path != null && typeof path[1] === \"number\") {\n inputType =\n ctx?.mergedFields?.[path[1]].inputType ?? InputType.Unknown;\n }\n } else {\n if (\n !React.isValidElement(ps.children) ||\n typeof ps.children.type === \"string\"\n ) {\n inputType = InputType.Unknown;\n } else {\n if (mapAntdComponentToInputType.has(ps.children.type)) {\n inputType =\n mapAntdComponentToInputType.get(ps.children.type) ??\n InputType.Unknown;\n } else if (\"__plumeType\" in ps.children.type) {\n inputType =\n mapPlumeTypeToInputType.get(\n ps.children.type.__plumeType as string\n ) ?? InputType.Unknown;\n }\n }\n }\n if (\n [\n InputType.Text,\n InputType.TextArea,\n InputType.Password,\n InputType.Select,\n InputType.RadioGroup,\n ].includes(inputType)\n ) {\n return {\n type: \"string\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else if (InputType.Number === inputType) {\n return {\n type: \"number\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else if (InputType.Checkbox === inputType) {\n return {\n type: \"boolean\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else if (InputType.DatePicker === inputType) {\n return {\n type: \"dateString\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n } else {\n return {\n type: \"exprEditor\",\n defaultValueHint: getDefaultValueHint(\"initialValue\"),\n };\n }\n },\n } as any,\n rules: {\n displayName: \"Validation rules\",\n type: \"formValidationRules\" as const,\n } as any,\n valuePropName: {\n type: \"string\" as const,\n advanced: true,\n defaultValueHint: \"value\",\n description:\n \"The prop name for specifying the value of the form control component\",\n },\n trigger: {\n type: \"string\" as const,\n displayName: \"Trigger prop name\",\n advanced: true,\n defaultValueHint: \"onChange\",\n description:\n \"The prop name of event handler that is called when value is changed\",\n },\n noLabel: {\n type: \"boolean\" as const,\n advanced: true,\n },\n alignLabellessWithControls: {\n type: \"boolean\" as const,\n displayName: \"Align with controls?\",\n description: \"Aligns the content with form controls in the grid\",\n hidden: (\n ps: any,\n ctx: CommonFormControlContextData | null,\n extras: ControlExtras\n ) => {\n const formItem = getFormItemProps(ps, ctx, extras);\n return !formItem?.noLabel || ctx?.layout?.layout !== \"horizontal\";\n },\n defaultValueHint: true,\n },\n colon: {\n type: \"boolean\" as const,\n defaultValueHint: true,\n advanced: true,\n hidden: () => true,\n },\n labelAlign: {\n type: \"choice\" as const,\n options: [\"left\", \"right\"],\n advanced: true,\n hidden: (\n ps: any,\n ctx: CommonFormControlContextData | null,\n extras: ControlExtras\n ) => {\n const formItem = getFormItemProps(ps, ctx, extras);\n return !!formItem?.noLabel || ctx?.layout?.layout !== \"horizontal\";\n },\n },\n hidden: {\n type: \"boolean\" as const,\n defaultValueHint: getDefaultValueHint(\"hidden\"),\n },\n validateTrigger: {\n displayName: \"Validate when\",\n type: \"choice\",\n options: [\n { value: \"onBlur\", label: \"a field loses focus\" },\n { value: \"onChange\", label: \"a field changes\" },\n { value: \"onSubmit\", label: \"the form is submitted\" },\n ],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\" as const,\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form fields normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n dependencies: {\n type: \"array\" as const,\n advanced: true,\n displayName: \"Dependencies\",\n description:\n \"Form fields can depend on other form fields. This forces it to re-evaluate the validation rules when the other form fields changes.\",\n },\n hideValidationMessage: {\n type: \"boolean\" as const,\n displayName: \"Hide validation message?\",\n description: \"If true, will hide the validation error message\",\n defaultValueHint: false,\n advanced: true,\n },\n customizeProps: {\n type: \"function\" as const,\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: FormItemControlContextData) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\" as const,\n displayName: \"Field control only\",\n description:\n \"Don't render anything but the field control - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n preserve: {\n type: \"boolean\" as const,\n advanced: true,\n defaultValueHint: true,\n description: \"Keep field value even when field removed.\",\n },\n };\n}\n\nconst commonSimplifiedFormArrayItemType = (\n propName: \"formItems\" | \"dataFormItems\"\n): ArrayType<FormWrapperProps>[\"itemType\"] => ({\n type: \"object\",\n fields: {\n label: {\n type: \"string\",\n defaultValueHint: getDefaultValueHint(\"label\"),\n },\n inputType: {\n type: \"choice\",\n options: Object.values(InputType).filter(\n (inputType) =>\n ![\n InputType.Option,\n InputType.OptionGroup,\n InputType.Radio,\n InputType.Unknown,\n ].includes(inputType)\n ),\n defaultValue: InputType.Text,\n defaultValueHint: getDefaultValueHint(\"inputType\"),\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n hidden: (ps, _ctx, { path }) => {\n if (\n ps[propName]?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return true;\n }\n return false;\n },\n },\n label: \"string\",\n value: {\n type: \"string\",\n hidden: (ps, _ctx, { path, item }) => {\n if (\n ps[propName]?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return false;\n }\n return item.type !== \"option\";\n },\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n hidden: (ps, _ctx, { path, item }) => {\n if (\n ps[propName]?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return true;\n }\n return item.type !== \"option-group\";\n },\n },\n },\n nameFunc: (item) => item?.label,\n },\n hidden: (_ps: any, _ctx: any, { item }) =>\n ![InputType.Select, InputType.RadioGroup].includes(item.inputType),\n },\n optionType: {\n type: \"choice\",\n options: [\n { value: \"default\", label: \"Radio\" },\n { value: \"button\", label: \"Button\" },\n ],\n hidden: (_ps: any, _ctx: any, { item }) =>\n InputType.RadioGroup !== item.inputType,\n defaultValueHint: \"Radio\",\n displayName: \"Option Type\",\n },\n showTime: {\n type: \"boolean\",\n displayName: \"Show Time\",\n description: \"To provide an additional time selection\",\n hidden: (_ps: any, _ctx: any, { item }) =>\n ![InputType.DatePicker].includes(item.inputType),\n },\n ...commonFormItemProps(\"simplified-form-item\"),\n },\n nameFunc: (item) => item.fieldId ?? item.label ?? item.name,\n});\n\nexport const formItemComponentName = \"plasmic-antd5-form-item\";\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: formItemComponentName,\n displayName: \"Form Field\",\n parentComponentName: formComponentName,\n defaultStyles: {\n marginBottom: \"24px\",\n width: \"stretch\",\n },\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n hidden: (ps) => !!ps.noLabel,\n ...({ mergeWithParent: true } as any),\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: inputComponentName,\n },\n ...({ mergeWithParent: true } as any),\n },\n ...commonFormItemProps(\"advanced-form-item\"),\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n treeLabel: (ps: any) => ps.name,\n templates: {\n Text: {\n props: {\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n \"Long Text\": {\n props: {\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n \"Select dropdown\": {\n props: {\n children: {\n type: \"component\",\n name: selectComponentName,\n },\n },\n },\n Number: {\n props: {\n children: {\n type: \"component\",\n name: inputNumberComponentName,\n },\n },\n },\n Checkbox: {\n props: {\n children: {\n type: \"component\",\n name: checkboxComponentName,\n },\n noLabel: true,\n },\n },\n Switch: {\n props: {\n children: {\n type: \"component\",\n name: switchComponentName,\n },\n noLabel: true,\n },\n },\n Radios: {\n props: {\n children: {\n type: \"component\",\n name: radioGroupComponentName,\n },\n },\n },\n Password: {\n props: {\n children: {\n type: \"component\",\n name: passwordComponentName,\n },\n },\n },\n \"Submit button\": {\n props: {\n children: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n },\n },\n noLabel: true,\n },\n },\n },\n ...({ trapsSelection: true } as any),\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\nexport function 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 const formGroupComponentName = \"plasmic-antd5-form-group\";\n\nexport function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: formGroupComponentName,\n displayName: \"Form Field Group\",\n parentComponentName: formComponentName,\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n displayName: \"Form group key\",\n description:\n \"Name of the field key for this group of form fields in the submitted form data.\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = Omit<FormListProps, \"children\"> & {\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 }, [JSON.stringify(props.initialValue), JSON.stringify(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 const formListComponentName = \"plasmic-antd5-form-list\";\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: formListComponentName,\n parentComponentName: formComponentName,\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n providesData: true,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: formItemComponentName,\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: formItemComponentName,\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 refActions: {\n add: {\n displayName: \"Add an item\",\n argTypes: [\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 argTypes: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n argTypes: [\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":["InputType","FormType","_a","_b","_c","values","FormListWrapper"],"mappings":"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"}
|