@plasmicpkgs/antd5 0.0.78 → 0.0.80

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.
@@ -1 +1 @@
1
- {"version":3,"file":"registerForm.esm.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n CodeComponentMode,\n} from \"@plasmicapp/host\";\nimport {\n Checkbox,\n DatePicker,\n Form,\n Input,\n InputNumber,\n Radio,\n Select,\n} 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 } from \"./react-utils\";\nimport { buttonComponentName } from \"./registerButton\";\nimport { checkboxComponentName } from \"./registerCheckbox\";\nimport {\n inputComponentName,\n inputNumberComponentName,\n passwordComponentName,\n textAreaComponentName,\n} from \"./registerInput\";\nimport { radioGroupComponentName } from \"./registerRadio\";\nimport { selectComponentName } from \"./registerSelect\";\nimport { switchComponentName } from \"./registerSwitch\";\nimport { Registerable, registerComponentHelper, usePrevious } from \"./utils\";\nimport { PropType } from \"@plasmicapp/host/registerComponent\";\n\nconst reactNodeToString = function (reactNode: React.ReactNode): string {\n let string = \"\";\n if (typeof reactNode === \"string\") {\n string = reactNode;\n } else if (typeof reactNode === \"number\") {\n string = reactNode.toString();\n } else if (reactNode instanceof Array) {\n reactNode.forEach(function (child) {\n string += reactNodeToString(child);\n });\n } else if (isValidElement(reactNode)) {\n string += reactNodeToString(reactNode.props.children);\n }\n return string;\n};\n\nfunction ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => 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}\n\nexport interface SimplifiedFormItemsProp extends InternalFormItemProps {\n inputType: InputType;\n options?: {\n label: string;\n value: string;\n }[];\n optionType?: \"default\" | \"button\";\n}\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n formItems: SimplifiedFormItemsProp[];\n mode?: CodeComponentMode;\n submitSlot?: boolean;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n layout: FormLayoutContextValue;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | 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 = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const { extendedOnValuesChange, setRemountKey, ...rest } = 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 <FormItemWrapper\n {...formItem}\n noLabel={\n formItem.inputType === InputType.Checkbox || formItem.noLabel\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 <Checkbox>{formItem.label}</Checkbox>\n ) : formItem.inputType === InputType.Select ? (\n <Select options={formItem.options} />\n ) : formItem.inputType === InputType.DatePicker ? (\n <DatePicker />\n ) : formItem.inputType === InputType.RadioGroup ? (\n <Radio.Group\n options={formItem.options}\n optionType={formItem.optionType}\n style={{ padding: \"8px\" }}\n />\n ) : null}\n </FormItemWrapper>\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 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 return (\n <InternalFormInstanceContext.Provider\n value={{\n layout: formLayout,\n fireOnValuesChange,\n forceRemount: () => setRemountKey((k) => k + 1),\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?.(args[1]);\n }}\n form={form}\n labelCol={\n props.labelCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.labelCol\n }\n wrapperCol={\n props.wrapperCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.wrapperCol\n }\n >\n {/*Remove built-in spacing on form 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};\nexport function FormWrapper(props: FormWrapperProps) {\n const [remountKey, setRemountKey] = React.useState(0);\n const previousInitialValues = usePrevious(props.initialValues);\n\n React.useEffect(() => {\n if (\n previousInitialValues !== props.initialValues &&\n JSON.stringify(previousInitialValues) !==\n JSON.stringify(props.initialValues)\n ) {\n setRemountKey((k) => k + 1);\n }\n }, [previousInitialValues, props.initialValues]);\n\n return <Internal key={remountKey} {...props} setRemountKey={setRemountKey} />;\n}\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form 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 === \"simplified\",\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 description,\n defaultValue: defaultValue,\n } as const);\n\nexport const formComponentName = \"plasmic-antd5-form\";\n\nexport function registerForm(loader?: Registerable) {\n registerComponentHelper(loader, FormWrapper, {\n name: formComponentName,\n displayName: \"Form\",\n defaultStyles: {\n layout: \"vbox\",\n alignItems: \"flex-start\",\n },\n props: {\n mode: {\n type: \"controlMode\",\n defaultValue: \"simplified\",\n } as any,\n formItems: {\n displayName: \"Fields\",\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n label: \"string\",\n inputType: {\n type: \"choice\",\n options: Object.values(InputType).filter(\n (inputType) =>\n ![\n InputType.Option,\n InputType.OptionGroup,\n InputType.Radio,\n ].includes(inputType)\n ),\n defaultValue: InputType.Text,\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.formItems?.[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.formItems?.[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.formItems?.[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(\n item.inputType\n ),\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 ...commonFormItemProps,\n },\n nameFunc: (item) => item.label,\n },\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: (props) => props.mode !== \"simplified\",\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 defaultValue: [\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n {\n type: \"component\",\n name: buttonComponentName,\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n type: \"primary\",\n submitsForm: true,\n },\n },\n ],\n hidden: (props) => props.mode === \"simplified\",\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 rules\",\n type: \"choice\",\n options: [\n { value: \"onBlur\", label: \"When a field loses focus\" },\n { value: \"onChange\", label: \"When a field changes\" },\n { value: \"onSubmit\", label: \"When the form is submitted\" },\n ],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormWrapper\",\n });\n}\n\ninterface FormControlContextData {\n internalFormCtx?: InternalFormInstanceContextData;\n}\n\ninterface CuratedFieldData {\n status: string | undefined;\n // path: (string | number)[];\n // errors: string[];\n // warnings: string[];\n // value: any;\n // trigger: (x: any) => void;\n}\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n description?: React.ReactNode;\n noLabel?: boolean;\n hideValidationMessage?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n alignLabellessWithControls?: boolean;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\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\nfunction 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 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 if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...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 // 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 = 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 (plumeType && (plumeType === \"checkbox\" || plumeType === \"switch\")) {\n return \"isChecked\";\n }\n }\n }\n return undefined;\n }).filter((x: any): x is string => !!x);\n if (valueProps.length > 0) {\n return valueProps[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 ...(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\nconst commonFormItemProps: Record<string, PropType<InternalFormItemProps>> = {\n name: {\n type: \"string\" as const,\n },\n initialValue: {\n type: \"string\" as const,\n },\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 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: (ps, ctx) =>\n !ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\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: (ps, ctx) =>\n !!ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\n },\n hidden: {\n type: \"boolean\" as const,\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\" as const,\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true as const,\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: any) => [\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};\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,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\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 },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport 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 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":["__spreadValues","InputType","values","_a","FormListWrapper"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGa,MAAA,SAAA,GAAY,OAAO,MAAW,KAAA,WAAA,CAAA;AAC9B,MAAA,IAAA,GAAO,OAAO,MAAM,CAAA,CAAA;AAEQ,SAAA,GACrC,KAAM,CAAA,eAAA,GACN,KAAM,CAAA,UAAA;AAyFM,SAAA,UAAA,CACd,UACG,SACkB,EAAA;AACrB,EAAI,IAAA,SAAA,CAAU,KAAM,CAAA,CAAC,IAAS,KAAA,MAAA,CAAO,KAAK,IAAI,CAAA,CAAE,MAAW,KAAA,CAAC,CAAG,EAAA;AAC7D,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,SAASA,gBAAK,CAAA,EAAA,EAAA,KAAA,CAAA,CAAA;AAEpB,EAAA,KAAA,MAAW,QAAQ,SAAW,EAAA;AAC5B,IAAA,KAAA,MAAW,GAAO,IAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAAG,EAAA;AACnC,MAAO,MAAA,CAAA,GAAG,IAAI,aAAc,CAAA,GAAA,EAAK,OAAO,GAAG,CAAA,EAAG,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,KACzD;AAAA,GACF;AAEA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEA,SAAS,SAAA,CAAa,KAA+B,KAAiB,EAAA;AACpE,EAAA,IAAI,CAAC,GAAK,EAAA;AACR,IAAA,OAAA;AAAA,GACF;AAEA,EAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,IAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,GACJ,MAAA;AACL,IAAA,IAAI,CAAC,MAAA,CAAO,QAAS,CAAA,GAAG,CAAG,EAAA;AACzB,MAAC,IAAyC,OAAU,GAAA,KAAA,CAAA;AAAA,KACtD;AAAA,GACF;AACF,CAAA;AAEO,SAAS,aAAgB,IAAoC,EAAA;AAClE,EAAA,OAAO,CAAC,KAAa,KAAA;AACnB,IAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,MAAA,SAAA,CAAU,KAAK,KAAK,CAAA,CAAA;AAAA,KACtB;AAAA,GACF,CAAA;AACF,CAAA;AAEgB,SAAA,aAAA,CAAc,IAAc,EAAA,IAAA,EAAW,IAAgB,EAAA;AACrE,EAAI,IAAA,IAAA,KAAS,IAAQ,IAAA,IAAA,KAAS,IAAM,EAAA;AAElC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT,MAAA,IAAW,QAAQ,IAAM,EAAA;AAEvB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT,MAAA,IAAW,QAAQ,IAAM,EAAA;AACvB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT,MAAA,IAAW,SAAS,WAAa,EAAA;AAE/B,IAAO,OAAA,UAAA,CAAW,MAAM,IAAI,CAAA,CAAA;AAAA,GAC9B,MAAA,IAAW,SAAS,OAAS,EAAA;AAE3B,IAAA,OAAOA,sCAAK,IAAS,CAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GACvB,MAAA,IAAW,SAAS,KAAO,EAAA;AAEzB,IAAO,OAAA,SAAA,CAAU,MAAM,IAAI,CAAA,CAAA;AAAA,GAClB,MAAA,IAAA,OAAO,IAAS,KAAA,OAAO,IAAM,EAAA;AAGtC,IAAO,OAAA,IAAA,CAAA;AAAA,aACE,IAAK,CAAA,UAAA,CAAW,IAAI,CAAK,IAAA,OAAO,SAAS,UAAY,EAAA;AAE9D,IAAA,OAAO,IAAI,IAAgB,KAAA;AACzB,MAAI,IAAA,GAAA,CAAA;AACJ,MAAI,IAAA,OAAO,SAAS,UAAY,EAAA;AAC9B,QAAM,GAAA,GAAA,IAAA,CAAK,GAAG,IAAI,CAAA,CAAA;AAAA,OACpB;AACA,MAAI,IAAA,OAAO,SAAS,UAAY,EAAA;AAC9B,QAAM,GAAA,GAAA,IAAA,CAAK,GAAG,IAAI,CAAA,CAAA;AAAA,OACpB;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACT,CAAA;AAAA,GACK,MAAA;AAEL,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3IA,MAAM,iBAAA,GAAoB,SAAU,SAAoC,EAAA;AACtE,EAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AACb,EAAI,IAAA,OAAO,cAAc,QAAU,EAAA;AACjC,IAAS,MAAA,GAAA,SAAA,CAAA;AAAA,GACX,MAAA,IAAW,OAAO,SAAA,KAAc,QAAU,EAAA;AACxC,IAAA,MAAA,GAAS,UAAU,QAAS,EAAA,CAAA;AAAA,GAC9B,MAAA,IAAW,qBAAqB,KAAO,EAAA;AACrC,IAAU,SAAA,CAAA,OAAA,CAAQ,SAAU,KAAO,EAAA;AACjC,MAAA,MAAA,IAAU,kBAAkB,KAAK,CAAA,CAAA;AAAA,KAClC,CAAA,CAAA;AAAA,GACH,MAAA,IAAW,cAAe,CAAA,SAAS,CAAG,EAAA;AACpC,IAAU,MAAA,IAAA,iBAAA,CAAkB,SAAU,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAAA,GACtD;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA,CAAA;AAEA,SAAS,YAAe,CAAiB,EAAA;AACvC,EAAA,OAAO,MAAM,OAAQ,CAAA,CAAC,CAAI,GAAA,CAAA,GAAI,CAAC,CAAC,CAAA,CAAA;AAClC,CAAA;AAEA,MAAM,WAAW,IAAK,CAAA,IAAA,CAAA;AACtB,MAAM,WAAW,IAAK,CAAA,IAAA,CAAA;AAYV,IAAA,SAAA,qBAAAC,UAAL,KAAA;AACL,EAAAA,WAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,WAAA,UAAW,CAAA,GAAA,WAAA,CAAA;AACX,EAAAA,WAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AACX,EAAAA,WAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,WAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,WAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,WAAA,aAAc,CAAA,GAAA,cAAA,CAAA;AACd,EAAAA,WAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AACR,EAAAA,WAAA,YAAa,CAAA,GAAA,aAAA,CAAA;AACb,EAAAA,WAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AACX,EAAAA,WAAA,YAAa,CAAA,GAAA,YAAA,CAAA;AAXH,EAAAA,OAAAA,UAAAA,CAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA,EAAA;AAuCZ,MAAM,WAAA,GAAc,KAAM,CAAA,aAAA,CAGvB,EAAE,YAAA,EAAc,EAAI,EAAA,QAAA,EAAU,EAAC,EAAG,CAAA,CAAA;AAQrC,MAAM,2BAAA,GAA8B,KAAM,CAAA,aAAA,CAExC,KAAS,CAAA,CAAA,CAAA;AAOX,MAAM,iBAAA,GAAoB,KAAM,CAAA,aAAA,CAE9B,KAAS,CAAA,CAAA,CAAA;AAEX,MAAM,QAAA,GAAW,CACf,KAKG,KAAA;AA3IL,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA4IE,EAAA,MAAM,CAAC,IAAI,CAAI,GAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAC5B,EAAM,MAAA,MAAA,GAAS,IAAK,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACvC,EAAM,MAAA,SAAA,GAAY,KAAM,CAAA,MAAA,CAAO,MAAM,CAAA,CAAA;AACrC,EAA2D,MAAA,EAAA,GAAA,KAAA,EAAnD,0BAAwB,aA/IlC,EAAA,GA+I6D,IAAT,IAAS,GAAA,SAAA,CAAA,EAAA,EAAT,CAA1C,wBAAwB,EAAA,eAAA,CAAA,CAAA,CAAA;AAEhC,EAAI,IAAA,YAAA,CAAA;AACJ,EAAI,IAAA,KAAA,CAAM,SAAS,YAAc,EAAA;AAC/B,IACE,YAAA,GAAA,OAAO,MAAM,QAAa,KAAA,UAAA,GACtB,MAAM,QAAS,CAAA,MAAA,EAAQ,IAAI,CAAA,GAC3B,KAAM,CAAA,QAAA,CAAA;AAAA,GACP,MAAA;AACL,IACE,YAAA,mBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CACI,WAAM,SAAN,KAAA,IAAA,GAAA,EAAA,GAAmB,EAAI,EAAA,GAAA,CAAI,CAAC,QAC5B,qBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,eAAA;AAAA,MAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,QADL,CAAA,EAAA;AAAA,QAEC,OACE,EAAA,QAAA,CAAS,SAAc,KAAA,UAAA,mBAAsB,QAAS,CAAA,OAAA;AAAA,QAExD,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO,EAAA;AAAA,OAAA,CAAA;AAAA,MAEtB,QAAA,CAAS,SAAc,KAAA,MAAA,8BACrB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAM,IACL,QAAS,CAAA,SAAA,KAAc,UACzB,kCAAA,KAAA,CAAA,aAAA,CAAC,KAAM,CAAA,QAAA,EAAN,IAAe,CACd,GAAA,QAAA,CAAS,SAAc,KAAA,WAAA,kCACxB,KAAA,CAAA,aAAA,CAAA,KAAA,CAAM,UAAN,IAAe,CAAA,GACd,QAAS,CAAA,SAAA,KAAc,QACzB,gCAAA,KAAA,CAAA,aAAA,CAAC,iBAAY,CACX,GAAA,QAAA,CAAS,SAAc,KAAA,UAAA,kCACxB,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,IAAA,EAAU,SAAS,KAAM,CAAA,GACxB,QAAS,CAAA,SAAA,KAAc,QACzB,gCAAA,KAAA,CAAA,aAAA,CAAC,UAAO,OAAS,EAAA,QAAA,CAAS,OAAS,EAAA,CAAA,GACjC,QAAS,CAAA,SAAA,KAAc,YACzB,oCAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,IAAA,CAAA,GACV,QAAS,CAAA,SAAA,KAAc,aACzB,oCAAA,KAAA,CAAA,aAAA;AAAA,QAAC,KAAM,CAAA,KAAA;AAAA,QAAN;AAAA,UACC,SAAS,QAAS,CAAA,OAAA;AAAA,UAClB,YAAY,QAAS,CAAA,UAAA;AAAA,UACrB,KAAA,EAAO,EAAE,OAAA,EAAS,KAAM,EAAA;AAAA,SAAA;AAAA,OAExB,GAAA,IAAA;AAAA,KAEP,CACA,EAAA,KAAA,CAAM,UACT,CAAA,CAAA;AAAA,GAEJ;AAEA,EAAM,MAAA,kBAAA,GAAqB,KAAM,CAAA,WAAA,CAAY,MAAM;AACjD,IAAMC,MAAAA,OAAAA,GAAS,IAAK,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACvC,IAAA,IAAI,CAAC,KAAA,CAAMA,OAAQ,EAAA,SAAA,CAAU,OAAO,CAAG,EAAA;AACrC,MAAyBA,sBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAAA,CAAAA,OAAAA,CAAAA,CAAAA;AACzB,MAAA,SAAA,CAAU,OAAUA,GAAAA,OAAAA,CAAAA;AAAA,KACtB;AAAA,GACC,EAAA,CAAC,IAAM,EAAA,SAAS,CAAC,CAAA,CAAA;AAEpB,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAmB,kBAAA,EAAA,CAAA;AAAA,GACrB,EAAG,EAAE,CAAA,CAAA;AACL,EAAA,MAAM,aAAa,KAAM,CAAA,OAAA;AAAA,IACvB,MAAG;AA1MP,MAAAC,IAAAA,GAAAA,CAAAA;AA0MW,MAAA,OAAA;AAAA,QACL,QAAQ,KAAM,CAAA,MAAA;AAAA,QACd,SAAWA,EAAAA,CAAAA,GAAAA,GAAA,KAAM,CAAA,QAAA,KAAN,gBAAAA,GAAgB,CAAA,IAAA;AAAA,OAC7B,CAAA;AAAA,KAAA;AAAA,IACA,CAAC,KAAM,CAAA,MAAA,EAAA,CAAQ,EAAM,GAAA,KAAA,CAAA,QAAA,KAAN,mBAAgB,IAAI,CAAA;AAAA,GACrC,CAAA;AACA,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,2BAA4B,CAAA,QAAA;AAAA,IAA5B;AAAA,MACC,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA,UAAA;AAAA,QACR,kBAAA;AAAA,QACA,cAAc,MAAM,aAAA,CAAc,CAAC,CAAA,KAAM,IAAI,CAAC,CAAA;AAAA,OAChD;AAAA,KAAA;AAAA,oBAEC,KAAA,CAAA,aAAA,CAAA,iBAAA,CAAkB,QAAlB,EAAA,EAA2B,OAAO,UACjC,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,QAEC,KACE,KAAM,CAAA,aAAA,GACF,KAAK,SAAU,CAAA,KAAA,CAAM,aAAa,CAClC,GAAA,KAAA,CAAA;AAAA,QAEN,cAAA,EAAgB,IAAI,IAAS,KAAA;AAhOvC,UAAAA,IAAAA,GAAAA,CAAAA;AAiOY,UAAA,CAAAA,MAAA,KAAM,CAAA,cAAA,KAAN,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAA,YAAuB,GAAG,IAAA,CAAA,CAAA;AAC1B,UAAA,sBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAyB,KAAK,CAAC,CAAA,CAAA,CAAA;AAAA,SACjC;AAAA,QACA,IAAA;AAAA,QACA,QAAA,EAAA,CAAA,CACE,WAAM,QAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,mBAAkB,KAAM,CAAA,MAAA,KAAW,YAC/C,GAAA,KAAA,CAAA,GACA,KAAM,CAAA,QAAA;AAAA,QAEZ,UAAA,EAAA,CAAA,CACE,WAAM,UAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,mBAAkB,KAAM,CAAA,MAAA,KAAW,YACjD,GAAA,KAAA,CAAA,GACA,KAAM,CAAA,UAAA;AAAA,OAAA,CAAA;AAAA,0CAIX,OAAO,EAAA,IAAA,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,UAIN,CAAA,CAAA;AAAA,MACD,YAAA;AAAA,KAEL,CAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AACO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AACpD,EAAM,MAAA,qBAAA,GAAwB,WAAY,CAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AAE7D,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IACE,IAAA,qBAAA,KAA0B,KAAM,CAAA,aAAA,IAChC,IAAK,CAAA,SAAA,CAAU,qBAAqB,CAAA,KAClC,IAAK,CAAA,SAAA,CAAU,KAAM,CAAA,aAAa,CACpC,EAAA;AACA,MAAc,aAAA,CAAA,CAAC,CAAM,KAAA,CAAA,GAAI,CAAC,CAAA,CAAA;AAAA,KAC5B;AAAA,GACC,EAAA,CAAC,qBAAuB,EAAA,KAAA,CAAM,aAAa,CAAC,CAAA,CAAA;AAE/C,EAAA,2CAAQ,QAAS,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,GAAA,EAAK,UAAgB,EAAA,EAAA,KAAA,CAAA,EAA9B,EAAqC,aAA8B,EAAA,CAAA,CAAA,CAAA;AAC7E,CAAA;AAEA,MAAM,cAAiB,GAAA;AAAA,EACrB;AAAA,IACE,IAAM,EAAA,eAAA;AAAA,IACN,KAAO,EAAA,uBAAA;AAAA,IACP,OAAS,EAAA,CAAC,EAAE,SAAA,EAAkC,KAAA;AAC5C,MAAU,SAAA,CAAA,YAAA;AAAA,QACR;AAAA,UACE,IAAM,EAAA,WAAA;AAAA,UACN,IAAM,EAAA,yBAAA;AAAA,SACR;AAAA,QACA,UAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA,MAAQ,EAAA,CAAC,KAAe,KAAA,KAAA,CAAM,IAAS,KAAA,YAAA;AAAA,GACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BF,CAAA,CAAA;AACA,MAAM,OAAU,GAAA,CACd,WACA,EAAA,YAAA,EACA,WAEC,MAAA;AAAA,EACC,IAAM,EAAA,QAAA;AAAA,EACN,WAAA;AAAA,EACA,QAAU,EAAA,IAAA;AAAA,EACV,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,OAAA;AAAA,MACb,WACE,EAAA,uEAAA;AAAA,MACF,GAAK,EAAA,CAAA;AAAA,MACL,GAAK,EAAA,EAAA;AAAA,KACP;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,QAAA;AAAA,MACb,WACE,EAAA,wEAAA;AAAA,MACF,GAAK,EAAA,CAAA;AAAA,MACL,GAAK,EAAA,EAAA;AAAA,KACP;AAAA,IACA,cAAgB,EAAA;AAAA,MACd,IAAM,EAAA,SAAA;AAAA,MACN,WAAa,EAAA,iBAAA;AAAA,MACb,WAAa,EAAA,2CAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AACF,CAAA,CAAA,CAAA;AAEK,MAAM,iBAAoB,GAAA,qBAAA;AAE1B,SAAS,aAAa,MAAuB,EAAA;AAClD,EAAA,uBAAA,CAAwB,QAAQ,WAAa,EAAA;AAAA,IAC3C,IAAM,EAAA,iBAAA;AAAA,IACN,WAAa,EAAA,MAAA;AAAA,IACb,aAAe,EAAA;AAAA,MACb,MAAQ,EAAA,MAAA;AAAA,MACR,UAAY,EAAA,YAAA;AAAA,KACd;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,aAAA;AAAA,QACN,YAAc,EAAA,YAAA;AAAA,OAChB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,WAAa,EAAA,QAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,QAAA;AAAA,UACN,MAAQ,EAAA,cAAA,CAAA;AAAA,YACN,KAAO,EAAA,QAAA;AAAA,YACP,SAAW,EAAA;AAAA,cACT,IAAM,EAAA,QAAA;AAAA,cACN,OAAS,EAAA,MAAA,CAAO,MAAO,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,gBAChC,CAAC,cACC,CAAC;AAAA,kBACC,QAAA;AAAA,kBACA,cAAA;AAAA,kBACA,OAAA;AAAA,iBACF,CAAE,SAAS,SAAS,CAAA;AAAA,eACxB;AAAA,cACA,YAAc,EAAA,MAAA;AAAA,aAChB;AAAA,YACA,OAAS,EAAA;AAAA,cACP,IAAM,EAAA,OAAA;AAAA,cACN,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,QAAA;AAAA,gBACN,MAAQ,EAAA;AAAA,kBACN,IAAM,EAAA;AAAA,oBACJ,IAAM,EAAA,QAAA;AAAA,oBACN,OAAS,EAAA;AAAA,sBACP,EAAE,KAAA,EAAO,QAAU,EAAA,KAAA,EAAO,QAAS,EAAA;AAAA,sBACnC,EAAE,KAAA,EAAO,cAAgB,EAAA,KAAA,EAAO,cAAe,EAAA;AAAA,qBACjD;AAAA,oBACA,YAAc,EAAA,QAAA;AAAA,oBACd,QAAQ,CAAC,EAAA,EAAI,IAAM,EAAA,EAAE,MAAW,KAAA;AAzYpD,sBAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA0YsB,sBACE,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAA,CAAG,cAAH,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAAC,CAArB,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmC,eACnC,QACA,eAAA;AACA,wBAAO,OAAA,IAAA,CAAA;AAAA,uBACT;AACA,sBAAO,OAAA,KAAA,CAAA;AAAA,qBACT;AAAA,mBACF;AAAA,kBACA,KAAO,EAAA,QAAA;AAAA,kBACP,KAAO,EAAA;AAAA,oBACL,IAAM,EAAA,QAAA;AAAA,oBACN,QAAQ,CAAC,EAAA,EAAI,MAAM,EAAE,IAAA,EAAM,MAAW,KAAA;AAtZ1D,sBAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAuZsB,sBACE,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAA,CAAG,cAAH,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAAC,CAArB,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmC,eACnC,QACA,eAAA;AACA,wBAAO,OAAA,KAAA,CAAA;AAAA,uBACT;AACA,sBAAA,OAAO,KAAK,IAAS,KAAA,QAAA,CAAA;AAAA,qBACvB;AAAA,mBACF;AAAA,kBACA,OAAS,EAAA;AAAA,oBACP,IAAM,EAAA,OAAA;AAAA,oBACN,QAAU,EAAA;AAAA,sBACR,IAAM,EAAA,QAAA;AAAA,sBACN,QAAU,EAAA,CAAC,IAAc,KAAA,IAAA,CAAK,SAAS,IAAK,CAAA,KAAA;AAAA,sBAC5C,MAAQ,EAAA;AAAA,wBACN,KAAO,EAAA,QAAA;AAAA,wBACP,KAAO,EAAA,QAAA;AAAA,uBACT;AAAA,qBACF;AAAA,oBACA,QAAQ,CAAC,EAAA,EAAI,MAAM,EAAE,IAAA,EAAM,MAAW,KAAA;AA1a1D,sBAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA2asB,sBACE,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAA,CAAG,cAAH,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAAC,CAArB,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmC,eACnC,QACA,eAAA;AACA,wBAAO,OAAA,IAAA,CAAA;AAAA,uBACT;AACA,sBAAA,OAAO,KAAK,IAAS,KAAA,cAAA,CAAA;AAAA,qBACvB;AAAA,mBACF;AAAA,iBACF;AAAA,gBACA,QAAA,EAAU,CAAC,IAAA,KAAS,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,KAAA;AAAA,eAC5B;AAAA,cACA,MAAA,EAAQ,CAAC,GAAA,EAAU,IAAW,EAAA,EAAE,IAAK,EAAA,KACnC,CAAC,CAAC,QAAkB,eAAA,aAAA,kBAAsB,CAAA,QAAA;AAAA,gBACxC,IAAK,CAAA,SAAA;AAAA,eACP;AAAA,aACJ;AAAA,YACA,UAAY,EAAA;AAAA,cACV,IAAM,EAAA,QAAA;AAAA,cACN,OAAS,EAAA;AAAA,gBACP,EAAE,KAAA,EAAO,SAAW,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,gBACnC,EAAE,KAAA,EAAO,QAAU,EAAA,KAAA,EAAO,QAAS,EAAA;AAAA,eACrC;AAAA,cACA,MAAA,EAAQ,CAAC,GAAU,EAAA,IAAA,EAAW,EAAE,IAAK,EAAA,KACnC,mCAAyB,IAAK,CAAA,SAAA;AAAA,cAChC,gBAAkB,EAAA,OAAA;AAAA,cAClB,WAAa,EAAA,aAAA;AAAA,aACf;AAAA,WACG,EAAA,mBAAA,CAAA;AAAA,UAEL,QAAA,EAAU,CAAC,IAAA,KAAS,IAAK,CAAA,KAAA;AAAA,SAC3B;AAAA,QACA,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,KAAO,EAAA,MAAA;AAAA,YACP,IAAM,EAAA,MAAA;AAAA,YACN,SAAW,EAAA,MAAA;AAAA,WACb;AAAA,UACA;AAAA,YACE,KAAO,EAAA,SAAA;AAAA,YACP,IAAM,EAAA,SAAA;AAAA,YACN,SAAW,EAAA,WAAA;AAAA,WACb;AAAA,SACF;AAAA,QACA,MAAQ,EAAA,CAAC,KAAU,KAAA,KAAA,CAAM,IAAS,KAAA,YAAA;AAAA,OACpC;AAAA,MACA,UAAY,EAAA,cAAA,CAAA;AAAA,QACV,IAAM,EAAA,MAAA;AAAA,QACN,QAAQ,MAAM,IAAA;AAAA,QACd,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,WAAA;AAAA,UACN,IAAM,EAAA,mBAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,IAAM,EAAA,SAAA;AAAA,YACN,WAAa,EAAA,IAAA;AAAA,YACb,QAAU,EAAA;AAAA,cACR,IAAM,EAAA,MAAA;AAAA,cACN,KAAO,EAAA,QAAA;AAAA,aACT;AAAA,WACF;AAAA,SACF;AAAA,OACG,EAAA;AAAA,QACD,iBAAiB,MAAM,IAAA;AAAA,QACvB,iBAAmB,EAAA,CAAC,EAAY,KAAA,CAAC,EAAG,CAAA,IAAA;AAAA,OACtC,CAAA;AAAA,MAEF,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,qBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,KAAO,EAAA;AAAA,gBACL,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,MAAA;AAAA,eACT;AAAA,cACA,IAAM,EAAA,MAAA;AAAA,cACN,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,WAAA;AAAA,gBACN,IAAM,EAAA,kBAAA;AAAA,eACR;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,qBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,KAAO,EAAA;AAAA,gBACL,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,SAAA;AAAA,eACT;AAAA,cACA,IAAM,EAAA,SAAA;AAAA,cACN,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,WAAA;AAAA,gBACN,IAAM,EAAA,qBAAA;AAAA,eACR;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,mBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,QAAA;AAAA,eACT;AAAA,cACA,IAAM,EAAA,SAAA;AAAA,cACN,WAAa,EAAA,IAAA;AAAA,aACf;AAAA,WACF;AAAA,SACF;AAAA,QACA,MAAQ,EAAA,CAAC,KAAU,KAAA,KAAA,CAAM,IAAS,KAAA,YAAA;AAAA,OACpC;AAAA,MACA,aAAe,EAAA;AAAA,QACb,WAAa,EAAA,sBAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,WAAa,EAAA,aAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA,CAAC,YAAc,EAAA,UAAA,EAAY,QAAQ,CAAA;AAAA,QAC5C,YAAc,EAAA,UAAA;AAAA,OAChB;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,QAAA;AAAA,QACN,OAAA,EAAS,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,QACzB,gBAAkB,EAAA,OAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,QACV,MAAQ,EAAA,CAAC,EAAO,KAAA,EAAA,CAAG,MAAW,KAAA,YAAA;AAAA,OAChC;AAAA,MACA,QAAU,EAAA,OAAA;AAAA,QACR,cAAA;AAAA,QACA;AAAA,UACE,IAAM,EAAA,CAAA;AAAA,UACN,cAAgB,EAAA,IAAA;AAAA,SAClB;AAAA,QACA,wCAAA;AAAA,OACF;AAAA,MACA,UAAY,EAAA,OAAA;AAAA,QACV,gBAAA;AAAA,QACA;AAAA,UACE,IAAM,EAAA,EAAA;AAAA,UACN,cAAgB,EAAA,IAAA;AAAA,SAClB;AAAA,QACA,+CAAA;AAAA,OACF;AAAA,MACA,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,CAAA,iEAAA,CAAA;AAAA,QACb,gBAAkB,EAAA,IAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,QACV,MAAA,EAAQ,CAAC,KAAO,KAAA;AAnkBxB,UAAA,IAAA,EAAA,CAAA;AAmkB4B,UAAM,OAAA,CAAA,CAAA,EAAA,GAAA,KAAA,CAAA,MAAA,KAAN,YAAgB,YAAkB,MAAA,YAAA,CAAA;AAAA,SAAA;AAAA,OACxD;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,WAAa,EAAA,8BAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP;AAAA,YACE,KAAO,EAAA,UAAA;AAAA,YACP,KAAO,EAAA,0BAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,IAAA;AAAA,YACP,KAAO,EAAA,wCAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,KAAA;AAAA,YACP,KAAO,EAAA,oBAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,IAAA;AAAA,OACpB;AAAA,MACA,sBAAwB,EAAA;AAAA,QACtB,IAAM,EAAA,cAAA;AAAA,QACN,WAAa,EAAA,kBAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,eAAA;AAAA,YACN,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,WAAa,EAAA,WAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,QAAA;AAAA,YACN,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,cAAgB,EAAA;AAAA;AAAA,QAEd,IAAM,EAAA,cAAA;AAAA,QACN,WAAa,EAAA,mBAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,WAAa,EAAA,gBAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,EAAE,KAAA,EAAO,QAAU,EAAA,KAAA,EAAO,0BAA2B,EAAA;AAAA,UACrD,EAAE,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,sBAAuB,EAAA;AAAA,UACnD,EAAE,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,4BAA6B,EAAA;AAAA,SAC3D;AAAA,QACA,WAAa,EAAA,IAAA;AAAA,QACb,gBAAA,EAAkB,CAAC,UAAU,CAAA;AAAA,QAC7B,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,IACA,OAAS,EAAA,cAAA;AAAA,IACT,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,UAAA;AAAA,QACN,YAAc,EAAA,QAAA;AAAA,QACd,YAAc,EAAA,wBAAA;AAAA,OAChB;AAAA,KACF;AAAA,IACA,UAAY,EAAA,wCAAA;AAAA,IACZ,UAAY,EAAA,aAAA;AAAA,GACb,CAAA,CAAA;AACH,CAAA;AA6CA,SAAS,uBAAA,CACP,cACA,KACA,EAAA;AApsBF,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAqsBE,EAAA,MAAM,iBAAiB,KAAS,IAAA,YAAA,CAAA;AAChC,EAAA,MAAM,QAAgC,EAAC,CAAA;AACvC,EAAA,KAAA,MAAW,eAAe,YAAc,EAAA;AACtC,IAAA,QAAQ,YAAY,QAAU;AAAA,MAC5B,KAAK,MAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,IAAM,EAAA,MAAA;AAAA,UACN,IAAA,EAAA,CAAM,EAAY,GAAA,CAAA,EAAA,GAAA,WAAA,CAAA,OAAA,KAAZ,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA,GAAA,CAAI,KAAtC,CAAA,KAAA,IAAA,GAAA,EAAA,GAAgD,EAAC;AAAA,UACvD,OACE,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GAAuB,CAAG,EAAA,cAAA,CAAA,sBAAA,CAAA;AAAA,SAC7B,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,QAAU,EAAA,IAAA;AAAA,UACV,OAAS,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GAAuB,CAAG,EAAA,cAAA,CAAA,YAAA,CAAA;AAAA,SACpC,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,OAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,SAAS,IAAI,MAAA,CAAA,CAAO,EAAY,GAAA,WAAA,CAAA,OAAA,KAAZ,YAAuB,EAAE,CAAA;AAAA,UAC7C,OACE,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GAAuB,CAAG,EAAA,cAAA,CAAA,sBAAA,CAAA;AAAA,SAC7B,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,UAAY,EAAA,IAAA;AAAA,UACZ,OAAS,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GAAuB,CAAG,EAAA,cAAA,CAAA,YAAA,CAAA;AAAA,SACpC,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,CAAC,WAAA,CAAY,QAAQ,GAAG,WAAY,CAAA,MAAA;AAAA,UACpC,UACE,EAAY,GAAA,WAAA,CAAA,OAAA,KAAZ,IACA,GAAA,EAAA,GAAA,CAAA,EAAG,mCAAmC,WAAY,CAAA,MAAA,CAAA,WAAA,CAAA;AAAA,SACrD,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,CAAC,WAAA,CAAY,QAAQ,GAAG,WAAY,CAAA,MAAA;AAAA,UACpC,UACE,EAAY,GAAA,WAAA,CAAA,OAAA,KAAZ,IACA,GAAA,EAAA,GAAA,CAAA,EAAG,kCAAkC,WAAY,CAAA,MAAA,CAAA,WAAA,CAAA;AAAA,SACpD,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,SAAA,EAAW,IAAI,IAAM,KAAA;AAtvB/B,YAAAA,IAAAA,GAAAA,CAAAA;AAuvBY,YAAA,OAAA,CAAA,CAAAA,GAAA,GAAA,WAAA,CAAY,MAAZ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAoB,CAAA,KAAA,CAAM,IAAM,EAAA,IAAA,CAAA,IAC5B,OAAQ,CAAA,OAAA,EACR,GAAA,OAAA,CAAQ,MAAO,EAAA,CAAA;AAAA,WAAA;AAAA,UACrB,SAAS,WAAY,CAAA,OAAA;AAAA,SACtB,CAAA,CAAA;AAAA,KACL;AAAA,GACF;AACA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEA,MAAM,uBAAA,GAA0B,CAAC,IAAgC,KAAA;AAC/D,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAC5C,EAAA,OAAO,OAAO,IAAS,KAAA,QAAA,GACnB,CAAC,GAAG,OAAA,CAAQ,cAAc,GAAG,IAAI,CACjC,GAAA,OAAO,SAAS,QAChB,GAAA,CAAC,GAAG,OAAQ,CAAA,YAAA,EAAc,IAAI,CAC9B,GAAA,KAAA,CAAA,CAAA;AACN,CAAA,CAAA;AAEA,MAAM,mBAAA,GAAsB,CAAC,IAAgC,KAAA;AAC3D,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAC5C,EAAA,OAAO,OAAO,IAAS,KAAA,QAAA,GACnB,CAAC,GAAG,OAAA,CAAQ,UAAU,GAAG,IAAI,CAC7B,GAAA,OAAO,SAAS,QAChB,GAAA,CAAC,GAAG,OAAQ,CAAA,QAAA,EAAU,IAAI,CAC1B,GAAA,KAAA,CAAA,CAAA;AACN,CAAA,CAAA;AAEA,SAAS,oBAAsD,GAAA;AAC7D,EAAA,OAAO,KAAK,eAAgB,EAAA,CAAA;AAC9B,CAAA;AAEO,SAAS,gBAAgB,KAA8B,EAAA;AAvxB9D,EAAA,IAAA,EAAA,CAAA;AAwxBE,EAAA,MAUI,EATF,GAAA,KAAA,EAAA;AAAA,IAAO,KAAA,EAAA,YAAA;AAAA,IACP,WAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,qBAAA;AAAA,IACA,cAAA;AAAA,IACA,qBAAA;AAAA,IACA,0BAA6B,GAAA,IAAA;AAAA,GAhyBjC,GAkyBM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IARH,OAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,uBAAA;AAAA,IACA,gBAAA;AAAA,IACA,uBAAA;AAAA,IACA,4BAAA;AAAA,GAAA,CAAA,CAAA;AAGF,EAAM,MAAA,oBAAA,GAAuB,wBAAwB,IAAI,CAAA,CAAA;AACzD,EAAM,MAAA,gBAAA,GAAmB,oBAAoB,IAAI,CAAA,CAAA;AACjD,EAAA,MAAM,eACH,GAAA,CAAC,OAAW,IAAA,iBAAA,CAAkB,MAAM,KAAK,CAAA,IAC1C,WAAY,CAAA,KAAA,CAAM,IAAI,CAAA,CAAE,KAAM,CAAA,CAAA,CAAE,EAAE,CAAC,CAAA,CAAA;AACrC,EAAA,MAAM,QAAQ,YACV,GAAA,uBAAA;AAAA,IACE,YAAA;AAAA,IACA,OAAO,eAAA,KAAoB,QACvB,GAAA,EAAA,GAAK,eACL,GAAA,eAAA;AAAA,GAEN,GAAA,KAAA,CAAA,CAAA;AACJ,EAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,UAAA,CAAW,iBAAiB,CAAA,CAAA;AACxD,EAAM,MAAA,QAAA,GAAW,CAAC,CAAC,uBAAwB,EAAA,CAAA;AAC3C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,OAAO,oBAAqB,EAAA,CAAA;AAClC,IAAM,MAAA,cAAA,GAAiB,MAAM,MAAO,CAAA;AAAA,MAClC,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,MAAM,KAAM,CAAA,IAAA;AAAA,KACb,CAAA,CAAA;AACD,IAAM,MAAA,eAAA,GAAkB,KAAM,CAAA,UAAA,CAAW,2BAA2B,CAAA,CAAA;AACpE,IAAA,MAAM,EAAE,kBAAA,EAAoB,YAAa,EAAA,GAAI,4CAAmB,EAAC,CAAA;AACjE,IAAA,CAAA,EAAA,GAAA,KAAA,CAAM,0BAAN,IAA8B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAA;AAAA,MAC5B,eAAA;AAAA,KACF,CAAA,CAAA;AACA,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,IAAI,cAAe,CAAA,OAAA,CAAQ,IAAS,KAAA,KAAA,CAAM,IAAM,EAAA;AAC9C,QAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,EAAA,CAAA;AAAA,OACF;AACA,MAAA,IACE,CAAC,gBACD,IAAA,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,cAAc,gBAClB,CAAA,MAAA,cAAA,CAAe,QAAQ,YACzB,EAAA;AAEA,QAAA,OAAA;AAAA,OACF;AACA,MAAM,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,aAAA,CAAc,kBAAkB,KAAM,CAAA,YAAA,CAAA,CAAA;AAC5C,MAAe,cAAA,CAAA,OAAA,CAAQ,eAAe,KAAM,CAAA,YAAA,CAAA;AAC5C,MAAA,kBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,EAAA,CAAA;AAAA,OACC,CAAC,IAAA,EAAM,KAAM,CAAA,YAAA,EAAc,gBAAgB,CAAC,CAAA,CAAA;AAAA,GACjD;AACA,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,MAEC,KAAA,EAAO,OAAU,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,KAAA;AAAA,MACnC,IAAM,EAAA,oBAAA;AAAA,MACN,KAAA;AAAA,MACA,KAAO,EAAA,WAAA;AAAA,MACP,IAAA,EAAM,qBAAwB,GAAA,EAAA,GAAK,KAAM,CAAA,IAAA;AAAA,MACzC,KAAA,EAAO,UAAU,KAAQ,GAAA,KAAA,CAAA;AAAA,MACzB,aAAA,EAAe,oBAAoB,KAAK,CAAA;AAAA,MAIxC,UACE,EAAA,CAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,MAAW,MAAA,YAAA,IAC1B,OACA,IAAA,0BAAA,IACA,aAAc,CAAA,SAAA,GACV,EAAE,MAAA,EAAQ,aAAc,CAAA,SAAA,EACxB,GAAA,KAAA,CAAA;AAAA,KAAA,CAAA;AAAA,oBAGN,KAAA,CAAA,aAAA,CAAC,iBAAkB,EAAA,EAAA,aAAA,EAAe,KAAO,EAAA,CAAA;AAAA,GAC3C,CAAA;AAEJ,CAAA;AAMA,SAAS,oBAAoB,KAAkD,EAAA;AAC7E,EAAA,IAAI,MAAM,aAAe,EAAA;AAEvB,IAAA,OAAO,KAAM,CAAA,aAAA,CAAA;AAAA,GACf;AAEA,EAAA,MAAM,aAAa,KAAM,CAAA,QAAA,CAAS,IAAI,KAAM,CAAA,QAAA,EAAiB,CAAC,KAAU,KAAA;AAn3B1E,IAAA,IAAA,EAAA,CAAA;AAo3BI,IAAI,IAAA,KAAA,CAAM,cAAe,CAAA,KAAK,CAAG,EAAA;AAC/B,MAAA,MAAM,YAAY,KAAM,CAAA,IAAA,CAAA;AACxB,MAAA,IAAI,SAAW,EAAA;AACb,QAAM,MAAA,CAAA,GAAA,CAAK,EAAkB,GAAA,SAAA,CAAA,sBAAA,KAAlB,IAA0C,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAA,CAAA;AACrD,QAAA,IAAI,CAAG,EAAA;AACL,UAAO,OAAA,CAAA,CAAA;AAAA,SACT;AAEA,QAAA,MAAM,YAAa,SAAkB,CAAA,WAAA,CAAA;AACrC,QAAA,IAAI,SAAc,KAAA,SAAA,KAAc,UAAc,IAAA,SAAA,KAAc,QAAW,CAAA,EAAA;AACrE,UAAO,OAAA,WAAA,CAAA;AAAA,SACT;AAAA,OACF;AAAA,KACF;AACA,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACR,CAAE,CAAA,MAAA,CAAO,CAAC,CAAwB,KAAA,CAAC,CAAC,CAAC,CAAA,CAAA;AACtC,EAAI,IAAA,UAAA,CAAW,SAAS,CAAG,EAAA;AACzB,IAAA,OAAO,WAAW,CAAC,CAAA,CAAA;AAAA,GACrB;AACA,EAAO,OAAA,KAAA,CAAA,CAAA;AACT,CAAA;AAEA,SAAS,kBAAkB,EAAkC,EAAA;AAAlC,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EA14B7B,aAAA,EAAA,GA04B2B,EAAoB,EAAA,KAAA,GAAA,SAAA,CAApB,IAAoB,CAAlB,eAAA,CAAA,CAAA,CAAA;AA14B7B,EAAAA,IAAAA,GAAAA,CAAAA;AA24BE,EAAM,MAAA,MAAA,GAAS,IAAK,CAAA,IAAA,CAAK,SAAU,EAAA,CAAA;AACnC,EAAM,MAAA,eAAA,GAAkB,KAAM,CAAA,UAAA,CAAW,2BAA2B,CAAA,CAAA;AAGpE,EAAA,MAAM,IAAyB,GAAA;AAAA,IAC7B,QAAQ,MAAO,CAAA,MAAA;AAAA,GACjB,CAAA;AACA,EAAA,CAAAA,GAAA,GAAA,KAAA,CAAM,qBAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAA,IAA8B,CAAA,KAAA,EAAA;AAAA,IAC5B,eAAA;AAAA,IACA,MAAA;AAAA,GACF,CAAA,CAAA;AACA,EAAA,OAAO,MAAM,QAAS,CAAA,GAAA,CAAI,cAAc,QAAU,EAAA,CAAC,OAAO,CAAM,KAAA;AAt5BlE,IAAAA,IAAAA,GAAAA,CAAAA;AAu5BI,IAAI,IAAA,QAAA,GAAW,iDACTA,GAAA,GAAA,KAAA,CAAM,UAAN,IAAAA,GAAAA,GAAAA,GAAe,EAAC,CAAA,EACjB,KAFU,CAAA,EAAA;AAAA,MAGb,kBAAoB,EAAA,IAAA;AAAA,KACtB,CAAA,CAAA;AACA,IAAA,IAAI,cAAc,cAAgB,EAAA;AAChC,MAAW,QAAA,GAAA,UAAA;AAAA,QACT,QAAA;AAAA,QACA,aAAA,CAAc,cAAe,CAAA,IAAA,EAAM,QAAQ,CAAA;AAAA,OAC7C,CAAA;AAAA,KACF;AACA,IAAO,OAAA,CAAA,KAAM,KAAK,cAAe,CAAA,KAAK,IAClC,YAAa,CAAA,KAAA,EAAO,QAAQ,CAC5B,GAAA,KAAA,CAAA;AAAA,GACL,CAAA,CAAA;AACH,CAAA;AAEA,MAAM,mBAAuE,GAAA;AAAA,EAC3E,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,QAAA;AAAA,GACR;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,QAAA;AAAA,GACR;AAAA,EACA,KAAO,EAAA;AAAA,IACL,WAAa,EAAA,kBAAA;AAAA,IACb,IAAM,EAAA,qBAAA;AAAA,GACR;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,QAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,IACV,gBAAkB,EAAA,OAAA;AAAA,IAClB,WACE,EAAA,sEAAA;AAAA,GACJ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,SAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,0BAA4B,EAAA;AAAA,IAC1B,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,mDAAA;AAAA,IACb,MAAA,EAAQ,CAAC,EAAA,EAAI,GAAK,KAAA;AAl8BtB,MAAA,IAAA,EAAA,CAAA;AAm8BM,MAAA,OAAA,CAAC,GAAG,OAAW,IAAA,CAAA,CAAA,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAK,eAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,OAAO,MAAW,MAAA,YAAA,CAAA;AAAA,KAAA;AAAA,IACzD,gBAAkB,EAAA,IAAA;AAAA,GACpB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,SAAA;AAAA,IACN,gBAAkB,EAAA,IAAA;AAAA,IAClB,QAAU,EAAA,IAAA;AAAA,IACV,QAAQ,MAAM,IAAA;AAAA,GAChB;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,QAAA;AAAA,IACN,OAAA,EAAS,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACzB,QAAU,EAAA,IAAA;AAAA,IACV,MAAA,EAAQ,CAAC,EAAA,EAAI,GAAK,KAAA;AAh9BtB,MAAA,IAAA,EAAA,CAAA;AAi9BM,MAAA,OAAA,CAAC,CAAC,EAAG,CAAA,OAAA,IAAA,CAAA,CAAW,gCAAK,eAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,OAAO,MAAW,MAAA,YAAA,CAAA;AAAA,KAAA;AAAA,GAC5D;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,SAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,CAAC,UAAY,EAAA,UAAA,EAAY,QAAQ,CAAA;AAAA,IAC1C,WAAa,EAAA,IAAA;AAAA,IACb,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,SAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,IACV,WAAa,EAAA,kBAAA;AAAA,IACb,WACE,EAAA,qIAAA;AAAA,GACJ;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,OAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,IACV,WAAa,EAAA,cAAA;AAAA,IACb,WACE,EAAA,qIAAA;AAAA,GACJ;AAAA,EACA,qBAAuB,EAAA;AAAA,IACrB,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,0BAAA;AAAA,IACb,WAAa,EAAA,iDAAA;AAAA,IACb,gBAAkB,EAAA,KAAA;AAAA,IAClB,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,UAAA;AAAA,IACN,WACE,EAAA,0IAAA;AAAA,IACF,QAAA,EAAU,CAAC,WAAW,CAAA;AAAA,IACtB,SAAA,EAAW,CAAC,GAAA,EAAU,GAAU,KAAA;AAv/BpC,MAAA,IAAA,EAAA,CAAA;AAu/BuC,MAAA,OAAA;AAAA,QACjC;AAAA,UACE,MAAA,EAAA,CAAQ,EAAK,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,MAAA,KAAL,IAAa,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA;AAAA,SACvB;AAAA,OACF,CAAA;AAAA,KAAA;AAAA,IACA,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,oBAAA;AAAA,IACb,WACE,EAAA,8FAAA;AAAA,IACF,QAAU,EAAA,IAAA;AAAA,GACZ;AACF,CAAA,CAAA;AAEO,MAAM,qBAAwB,GAAA,0BAAA;AAE9B,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAA,uBAAA,CAAwB,QAAQ,eAAiB,EAAA,cAAA,CAAA;AAAA,IAC/C,IAAM,EAAA,qBAAA;AAAA,IACN,WAAa,EAAA,YAAA;AAAA,IACb,mBAAqB,EAAA,iBAAA;AAAA,IACrB,aAAe,EAAA;AAAA,MACb,YAAc,EAAA,MAAA;AAAA,MACd,KAAO,EAAA,SAAA;AAAA,KACT;AAAA,IACA,KAAO,EAAA,cAAA,CAAA;AAAA,MACL,KAAO,EAAA,cAAA,CAAA;AAAA,QACL,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,MAAA;AAAA,UACN,KAAO,EAAA,OAAA;AAAA,SACT;AAAA,QACA,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,CAAC,EAAG,CAAA,OAAA;AAAA,OACjB,EAAA,EAAE,iBAAiB,IAAK,EAAA,CAAA;AAAA,MAE9B,QAAU,EAAA,cAAA,CAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,WAAA;AAAA,UACN,IAAM,EAAA,kBAAA;AAAA,SACR;AAAA,OACI,EAAA,EAAE,iBAAiB,IAAK,EAAA,CAAA;AAAA,KAE3B,EAAA,mBAAA,CAAA;AAAA,IAEL,UAAY,EAAA,wCAAA;AAAA,IACZ,UAAY,EAAA,iBAAA;AAAA,IACZ,SAAW,EAAA;AAAA,MACT,IAAM,EAAA;AAAA,QACJ,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,kBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,WAAa,EAAA;AAAA,QACX,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,qBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,mBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,wBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,qBAAA;AAAA,WACR;AAAA,UACA,OAAS,EAAA,IAAA;AAAA,SACX;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,mBAAA;AAAA,WACR;AAAA,UACA,OAAS,EAAA,IAAA;AAAA,SACX;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,uBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,qBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,KAAO,EAAA;AAAA,UACL,QAAU,EAAA;AAAA,YACR,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,mBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,IAAM,EAAA,SAAA;AAAA,aACR;AAAA,WACF;AAAA,UACA,OAAS,EAAA,IAAA;AAAA,SACX;AAAA,OACF;AAAA,KACF;AAAA,GACI,EAAA,EAAE,cAAgB,EAAA,IAAA,EACvB,CAAA,CAAA,CAAA;AACH,CAAA;AAOO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAC5C,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAY,CAAA,QAAA;AAAA,IAAZ;AAAA,MACC,KAAO,EAAA;AAAA,QACL,cAAc,CAAC,GAAG,OAAQ,CAAA,YAAA,EAAc,MAAM,IAAI,CAAA;AAAA,QAClD,UAAU,CAAC,GAAG,OAAQ,CAAA,QAAA,EAAU,MAAM,IAAI,CAAA;AAAA,OAC5C;AAAA,KAAA;AAAA,IAEC,KAAM,CAAA,QAAA;AAAA,GACT,CAAA;AAEJ,CAAA;AAEO,MAAM,sBAAyB,GAAA,2BAAA;AAE/B,SAAS,kBAAkB,MAAuB,EAAA;AACvD,EAAA,uBAAA,CAAwB,QAAQ,SAAW,EAAA;AAAA,IACzC,IAAM,EAAA,sBAAA;AAAA,IACN,WAAa,EAAA,kBAAA;AAAA,IACb,mBAAqB,EAAA,iBAAA;AAAA,IACrB,OAAS,EAAA,cAAA;AAAA,IACT,KAAO,EAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,OACR;AAAA,KACF;AAAA,IACA,UAAY,EAAA,wCAAA;AAAA,IACZ,UAAY,EAAA,WAAA;AAAA,GACb,CAAA,CAAA;AACH,CAAA;AAQO,MAAM,kBAAkB,KAAM,CAAA,UAAA,CAAW,SAASC,gBAAAA,CACvD,OACA,GACA,EAAA;AA7qCF,EAAA,IAAA,EAAA,CAAA;AA8qCE,EAAM,MAAA,oBAAA,GAAuB,uBAAwB,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAC/D,EAAM,MAAA,gBAAA,GAAmB,mBAAoB,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AACvD,EAAA,MAAM,gBAAgB,KAAM,CAAA,MAAA;AAAA,IAC1B,KAAA,CAAA;AAAA,GACF,CAAA;AACA,EAAM,KAAA,CAAA,mBAAA;AAAA,IACJ,GAAA;AAAA,IACA,OAAO;AAAA,MACL,GAAA,CAAI,cAAc,WAAa,EAAA;AAC7B,QAAA,IAAI,cAAc,OAAS,EAAA;AACzB,UAAA,MAAM,EAAE,GAAA,EAAQ,GAAA,aAAA,CAAc,QAAQ,CAAC,CAAA,CAAA;AACvC,UAAA,GAAA,CAAI,cAAc,WAAW,CAAA,CAAA;AAAA,SAC/B;AAAA,OACF;AAAA,MACA,OAAO,KAAO,EAAA;AACZ,QAAA,IAAI,cAAc,OAAS,EAAA;AACzB,UAAA,MAAM,EAAE,MAAA,EAAW,GAAA,aAAA,CAAc,QAAQ,CAAC,CAAA,CAAA;AAC1C,UAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,SACd;AAAA,OACF;AAAA,MACA,IAAA,CAAK,MAAM,EAAI,EAAA;AACb,QAAA,IAAI,cAAc,OAAS,EAAA;AACzB,UAAA,MAAM,EAAE,IAAA,EAAS,GAAA,aAAA,CAAc,QAAQ,CAAC,CAAA,CAAA;AACxC,UAAA,IAAA,CAAK,MAAM,EAAE,CAAA,CAAA;AAAA,SACf;AAAA,OACF;AAAA,KACF,CAAA;AAAA,IACA,CAAC,aAAa,CAAA;AAAA,GAChB,CAAA;AACA,EAAM,MAAA,QAAA,GAAW,CAAC,CAAC,uBAAwB,EAAA,CAAA;AAC3C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,OAAO,oBAAqB,EAAA,CAAA;AAClC,IAAM,MAAA,cAAA,GAAiB,MAAM,MAAO,CAAA;AAAA,MAClC,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,MAAM,KAAM,CAAA,IAAA;AAAA,KACb,CAAA,CAAA;AACD,IAAM,MAAA,EAAE,oBAAoB,YAAa,EAAA,GAAA,CACvC,WAAM,UAAW,CAAA,2BAA2B,CAA5C,KAAA,IAAA,GAAA,EAAA,GAAiD,EAAC,CAAA;AACpD,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,IAAI,cAAe,CAAA,OAAA,CAAQ,IAAS,KAAA,KAAA,CAAM,IAAM,EAAA;AAC9C,QAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,EAAA,CAAA;AAAA,OACF;AACA,MAAA,IAAI,gBAAkB,EAAA;AACpB,QAAM,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,aAAA,CAAc,kBAAkB,KAAM,CAAA,YAAA,CAAA,CAAA;AAC5C,QAAe,cAAA,CAAA,OAAA,CAAQ,eAAe,KAAM,CAAA,YAAA,CAAA;AAC5C,QAAA,kBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,EAAA,CAAA;AAAA,OACF;AAAA,KACC,EAAA,CAAC,KAAM,CAAA,YAAA,EAAc,gBAAgB,CAAC,CAAA,CAAA;AAAA,GAC3C;AACA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,2CAAa,KAAb,CAAA,EAAA,EAAoB,MAAM,oBAAwB,IAAA,IAAA,GAAA,oBAAA,GAAA,EAChD,EAAA,CAAA,EAAA,CAAA,GAAI,IAAS,KAAA;AACZ,IAAA,aAAA,CAAc,OAAU,GAAA,IAAA,CAAA;AACxB,IAAA,OAAO,KAAK,CAAC,CAAA,CAAE,GAAI,CAAA,CAAC,OAAO,KACzB,qBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,WAAY,CAAA,QAAA;AAAA,MAAZ;AAAA,QACC,KAAO,EAAA;AAAA,UACL,YAAA,EAAc,CAAC,KAAA,CAAM,IAAI,CAAA;AAAA,UACzB,UAAU,CAAC,GAAI,8CAAoB,EAAC,EAAI,MAAM,IAAI,CAAA;AAAA,SACpD;AAAA,OAAA;AAAA,0CAEC,YAAa,EAAA,EAAA,IAAA,EAAM,cAAgB,EAAA,IAAA,EAAM,yBACvC,KAAA,CAAA,aAAA,CAAA,YAAA,EAAA,EAAa,IAAM,EAAA,mBAAA,EAAqB,MAAM,KAC5C,EAAA,EAAA,eAAA,CAAgB,OAAO,KAAM,CAAA,QAAQ,CACxC,CACF,CAAA;AAAA,KAEH,CAAA,CAAA;AAAA,GAEL,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEM,MAAM,qBAAwB,GAAA,0BAAA;AAE9B,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAA,uBAAA,CAAwB,QAAQ,eAAiB,EAAA;AAAA,IAC/C,IAAM,EAAA,qBAAA;AAAA,IACN,mBAAqB,EAAA,iBAAA;AAAA,IACrB,WAAa,EAAA,WAAA;AAAA,IACb,OAAS,EAAA,cAAA;AAAA,IACT,KAAO,EAAA;AAAA,MACL,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,QAAU,EAAA;AAAA,cACR;AAAA,gBACE,IAAM,EAAA,WAAA;AAAA,gBACN,IAAM,EAAA,qBAAA;AAAA,gBACN,KAAO,EAAA;AAAA,kBACL,IAAM,EAAA,WAAA;AAAA,kBACN,KAAO,EAAA;AAAA,oBACL,IAAM,EAAA,MAAA;AAAA,oBACN,KAAO,EAAA,YAAA;AAAA,mBACT;AAAA,kBACA,QAAU,EAAA;AAAA,oBACR,IAAM,EAAA,WAAA;AAAA,oBACN,IAAM,EAAA,qBAAA;AAAA,mBACR;AAAA,iBACF;AAAA,eACF;AAAA,cACA;AAAA,gBACE,IAAM,EAAA,WAAA;AAAA,gBACN,IAAM,EAAA,qBAAA;AAAA,gBACN,KAAO,EAAA;AAAA,kBACL,IAAM,EAAA,UAAA;AAAA,kBACN,KAAO,EAAA;AAAA,oBACL,IAAM,EAAA,MAAA;AAAA,oBACN,KAAO,EAAA,WAAA;AAAA,mBACT;AAAA,kBACA,QAAU,EAAA;AAAA,oBACR,IAAM,EAAA,WAAA;AAAA,oBACN,IAAM,EAAA,qBAAA;AAAA,mBACR;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,YAAc,EAAA,QAAA;AAAA,OAChB;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,OAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,SAAW,EAAA,MAAA;AAAA,YACX,QAAU,EAAA,KAAA;AAAA,WACZ;AAAA,UACA;AAAA,YACE,SAAW,EAAA,MAAA;AAAA,YACX,QAAU,EAAA,OAAA;AAAA,WACZ;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA,UAAY,EAAA;AAAA,MACV,GAAK,EAAA;AAAA,QACH,WAAa,EAAA,aAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,cAAA;AAAA,YACN,WAAa,EAAA,eAAA;AAAA,YACb,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,UACA;AAAA,YACE,IAAM,EAAA,aAAA;AAAA,YACN,WAAa,EAAA,cAAA;AAAA,YACb,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,WAAa,EAAA,gBAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,OAAA;AAAA,YACN,WAAa,EAAA,OAAA;AAAA,YACb,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,WAAa,EAAA,YAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,WAAa,EAAA,MAAA;AAAA,YACb,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,UACA;AAAA,YACE,IAAM,EAAA,IAAA;AAAA,YACN,WAAa,EAAA,IAAA;AAAA,YACb,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA,UAAY,EAAA,wCAAA;AAAA,IACZ,UAAY,EAAA,iBAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"registerForm.esm.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n CodeComponentMode,\n} from \"@plasmicapp/host\";\nimport {\n Checkbox,\n DatePicker,\n Form,\n Input,\n InputNumber,\n Radio,\n Select,\n} 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 } from \"./react-utils\";\nimport { buttonComponentName } from \"./registerButton\";\nimport { checkboxComponentName } from \"./registerCheckbox\";\nimport {\n inputComponentName,\n inputNumberComponentName,\n passwordComponentName,\n textAreaComponentName,\n} from \"./registerInput\";\nimport { radioGroupComponentName } from \"./registerRadio\";\nimport { selectComponentName } from \"./registerSelect\";\nimport { switchComponentName } from \"./registerSwitch\";\nimport { Registerable, registerComponentHelper, usePrevious } from \"./utils\";\nimport { PropType } from \"@plasmicapp/host/registerComponent\";\n\nconst reactNodeToString = function (reactNode: React.ReactNode): string {\n let string = \"\";\n if (typeof reactNode === \"string\") {\n string = reactNode;\n } else if (typeof reactNode === \"number\") {\n string = reactNode.toString();\n } else if (reactNode instanceof Array) {\n reactNode.forEach(function (child) {\n string += reactNodeToString(child);\n });\n } else if (isValidElement(reactNode)) {\n string += reactNodeToString(reactNode.props.children);\n }\n return string;\n};\n\nfunction ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => 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}\n\nexport interface SimplifiedFormItemsProp extends InternalFormItemProps {\n inputType: InputType;\n options?: {\n label: string;\n value: string;\n }[];\n optionType?: \"default\" | \"button\";\n}\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n formItems: SimplifiedFormItemsProp[];\n mode?: CodeComponentMode;\n submitSlot?: boolean;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n layout: FormLayoutContextValue;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | 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 = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const { extendedOnValuesChange, setRemountKey, ...rest } = 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 <FormItemWrapper\n {...formItem}\n noLabel={\n formItem.inputType === InputType.Checkbox || formItem.noLabel\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 <Checkbox>{formItem.label}</Checkbox>\n ) : formItem.inputType === InputType.Select ? (\n <Select options={formItem.options} />\n ) : formItem.inputType === InputType.DatePicker ? (\n <DatePicker />\n ) : formItem.inputType === InputType.RadioGroup ? (\n <Radio.Group\n options={formItem.options}\n optionType={formItem.optionType}\n style={{ padding: \"8px\" }}\n />\n ) : null}\n </FormItemWrapper>\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 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 return (\n <InternalFormInstanceContext.Provider\n value={{\n layout: formLayout,\n fireOnValuesChange,\n forceRemount: () => setRemountKey((k) => k + 1),\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?.(args[1]);\n }}\n form={form}\n labelCol={\n props.labelCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.labelCol\n }\n wrapperCol={\n props.wrapperCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.wrapperCol\n }\n >\n {/*Remove built-in spacing on form 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};\nexport function FormWrapper(props: FormWrapperProps) {\n const [remountKey, setRemountKey] = React.useState(0);\n const previousInitialValues = usePrevious(props.initialValues);\n\n React.useEffect(() => {\n if (\n previousInitialValues !== props.initialValues &&\n JSON.stringify(previousInitialValues) !==\n JSON.stringify(props.initialValues)\n ) {\n setRemountKey((k) => k + 1);\n }\n }, [previousInitialValues, props.initialValues]);\n\n return <Internal key={remountKey} {...props} setRemountKey={setRemountKey} />;\n}\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form 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 === \"simplified\",\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 description,\n defaultValue: defaultValue,\n } as const);\n\nexport const formComponentName = \"plasmic-antd5-form\";\n\nexport function registerForm(loader?: Registerable) {\n registerComponentHelper(loader, FormWrapper, {\n name: formComponentName,\n displayName: \"Form\",\n defaultStyles: {\n layout: \"vbox\",\n alignItems: \"flex-start\",\n },\n props: {\n mode: {\n type: \"controlMode\",\n defaultValue: \"simplified\",\n } as any,\n formItems: {\n displayName: \"Fields\",\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n label: \"string\",\n inputType: {\n type: \"choice\",\n options: Object.values(InputType).filter(\n (inputType) =>\n ![\n InputType.Option,\n InputType.OptionGroup,\n InputType.Radio,\n ].includes(inputType)\n ),\n defaultValue: InputType.Text,\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.formItems?.[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.formItems?.[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.formItems?.[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(\n item.inputType\n ),\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 ...commonFormItemProps,\n },\n nameFunc: (item) => item.label,\n },\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: (props) => props.mode !== \"simplified\",\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 === \"simplified\",\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 rules\",\n type: \"choice\",\n options: [\n { value: \"onBlur\", label: \"When a field loses focus\" },\n { value: \"onChange\", label: \"When a field changes\" },\n { value: \"onSubmit\", label: \"When the form is submitted\" },\n ],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormWrapper\",\n });\n}\n\ninterface FormControlContextData {\n internalFormCtx?: InternalFormInstanceContextData;\n}\n\ninterface CuratedFieldData {\n status: string | undefined;\n // path: (string | number)[];\n // errors: string[];\n // warnings: string[];\n // value: any;\n // trigger: (x: any) => void;\n}\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n description?: React.ReactNode;\n noLabel?: boolean;\n hideValidationMessage?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n alignLabellessWithControls?: boolean;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\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\nfunction 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 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 if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...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 // 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 = 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 (plumeType && (plumeType === \"checkbox\" || plumeType === \"switch\")) {\n return \"isChecked\";\n }\n }\n }\n return undefined;\n }).filter((x: any): x is string => !!x);\n if (valueProps.length > 0) {\n return valueProps[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 ...(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\nconst commonFormItemProps: Record<string, PropType<InternalFormItemProps>> = {\n name: {\n type: \"string\" as const,\n },\n initialValue: {\n type: \"string\" as const,\n },\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 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: (ps, ctx) =>\n !ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\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: (ps, ctx) =>\n !!ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\n },\n hidden: {\n type: \"boolean\" as const,\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\" as const,\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true as const,\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: any) => [\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};\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,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\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 },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport 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 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":["__spreadValues","InputType","values","_a","FormListWrapper"],"mappings":"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"}