@plasmicpkgs/antd5 0.0.52 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/antd.esm.js +43 -16
- package/dist/antd.esm.js.map +1 -1
- package/dist/index.js +43 -16
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/skinny/registerForm.cjs.js +40 -13
- package/skinny/registerForm.cjs.js.map +1 -1
- package/skinny/registerForm.esm.js +40 -13
- package/skinny/registerForm.esm.js.map +1 -1
- package/skinny/registerTable.cjs.js +3 -3
- package/skinny/registerTable.cjs.js.map +1 -1
- package/skinny/registerTable.esm.js +3 -3
- package/skinny/registerTable.esm.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/antd5",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.53",
|
|
4
4
|
"description": "Plasmic registration calls for antd components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"antd": "^5.1.6"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@plasmicapp/host": "1.0.
|
|
58
|
+
"@plasmicapp/host": "1.0.133",
|
|
59
59
|
"@plasmicapp/query": "0.1.63",
|
|
60
60
|
"@types/node": "^14.0.26",
|
|
61
61
|
"@types/react": "^18.0.27",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"publishConfig": {
|
|
77
77
|
"access": "public"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "7922e287e1a83e1ae41044981b7661c787e7b55a"
|
|
80
80
|
}
|
|
@@ -127,6 +127,24 @@ var __objRest = (source, exclude) => {
|
|
|
127
127
|
}
|
|
128
128
|
return target;
|
|
129
129
|
};
|
|
130
|
+
const reactNodeToString = function(reactNode) {
|
|
131
|
+
let string = "";
|
|
132
|
+
if (typeof reactNode === "string") {
|
|
133
|
+
string = reactNode;
|
|
134
|
+
} else if (typeof reactNode === "number") {
|
|
135
|
+
string = reactNode.toString();
|
|
136
|
+
} else if (reactNode instanceof Array) {
|
|
137
|
+
reactNode.forEach(function(child) {
|
|
138
|
+
string += reactNodeToString(child);
|
|
139
|
+
});
|
|
140
|
+
} else if (React.isValidElement(reactNode)) {
|
|
141
|
+
string += reactNodeToString(reactNode.props.children);
|
|
142
|
+
}
|
|
143
|
+
return string;
|
|
144
|
+
};
|
|
145
|
+
function ensureArray(x) {
|
|
146
|
+
return Array.isArray(x) ? x : [x];
|
|
147
|
+
}
|
|
130
148
|
const FormItem = antd.Form.Item;
|
|
131
149
|
const FormList = antd.Form.List;
|
|
132
150
|
const PathContext = React__default.default.createContext({ relativePath: [], fullPath: [] });
|
|
@@ -418,8 +436,8 @@ function registerForm(loader) {
|
|
|
418
436
|
importName: "FormWrapper"
|
|
419
437
|
});
|
|
420
438
|
}
|
|
421
|
-
function plasmicRulesToAntdRules(plasmicRules) {
|
|
422
|
-
var _a, _b, _c;
|
|
439
|
+
function plasmicRulesToAntdRules(plasmicRules, label) {
|
|
440
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
423
441
|
const rules = [];
|
|
424
442
|
for (const plasmicRule of plasmicRules) {
|
|
425
443
|
switch (plasmicRule.ruleType) {
|
|
@@ -427,32 +445,37 @@ function plasmicRulesToAntdRules(plasmicRules) {
|
|
|
427
445
|
rules.push({
|
|
428
446
|
type: "enum",
|
|
429
447
|
enum: (_b = (_a = plasmicRule.options) == null ? void 0 : _a.map((opt) => opt.value)) != null ? _b : [],
|
|
430
|
-
message: plasmicRule.message
|
|
448
|
+
message: (_c = plasmicRule.message) != null ? _c : `Please specify a valid value`
|
|
431
449
|
});
|
|
432
450
|
break;
|
|
433
451
|
case "required":
|
|
434
452
|
rules.push({
|
|
435
453
|
required: true,
|
|
436
|
-
message: plasmicRule.message
|
|
454
|
+
message: (_d = plasmicRule.message) != null ? _d : `Please specify ${label || "this field"}`
|
|
437
455
|
});
|
|
438
456
|
break;
|
|
439
457
|
case "regex":
|
|
440
458
|
rules.push({
|
|
441
|
-
pattern: new RegExp((
|
|
442
|
-
message: plasmicRule.message
|
|
459
|
+
pattern: new RegExp((_e = plasmicRule.pattern) != null ? _e : ""),
|
|
460
|
+
message: (_f = plasmicRule.message) != null ? _f : `Please enter a valid value`
|
|
443
461
|
});
|
|
444
462
|
break;
|
|
445
463
|
case "whitespace":
|
|
446
464
|
rules.push({
|
|
447
465
|
whitespace: true,
|
|
448
|
-
message: plasmicRule.message
|
|
466
|
+
message: (_g = plasmicRule.message) != null ? _g : `Please specify ${label || "this field"}`
|
|
449
467
|
});
|
|
450
468
|
break;
|
|
451
469
|
case "min":
|
|
470
|
+
rules.push({
|
|
471
|
+
[plasmicRule.ruleType]: plasmicRule.length,
|
|
472
|
+
message: (_h = plasmicRule.message) != null ? _h : `Must be at least ${plasmicRule.length} characters`
|
|
473
|
+
});
|
|
474
|
+
break;
|
|
452
475
|
case "max":
|
|
453
476
|
rules.push({
|
|
454
477
|
[plasmicRule.ruleType]: plasmicRule.length,
|
|
455
|
-
message: plasmicRule.message
|
|
478
|
+
message: (_i = plasmicRule.message) != null ? _i : `Must be at most ${plasmicRule.length} characters`
|
|
456
479
|
});
|
|
457
480
|
break;
|
|
458
481
|
case "advanced":
|
|
@@ -482,7 +505,11 @@ function FormItemWrapper(props) {
|
|
|
482
505
|
var _a, _b;
|
|
483
506
|
const relativeFormItemName = useFormItemRelativeName(props.name);
|
|
484
507
|
const fullFormItemName = useFormItemFullName(props.name);
|
|
485
|
-
const
|
|
508
|
+
const bestEffortLabel = !props.noLabel && reactNodeToString(props.label) || ensureArray(props.name).slice(-1)[0];
|
|
509
|
+
const rules = props.rules ? plasmicRulesToAntdRules(
|
|
510
|
+
props.rules,
|
|
511
|
+
typeof bestEffortLabel === "number" ? "" + bestEffortLabel : bestEffortLabel
|
|
512
|
+
) : void 0;
|
|
486
513
|
const inCanvas = !!host.usePlasmicCanvasContext();
|
|
487
514
|
if (inCanvas) {
|
|
488
515
|
const form = useFormInstanceMaybe();
|
|
@@ -821,10 +848,10 @@ function registerFormList(loader) {
|
|
|
821
848
|
]
|
|
822
849
|
}
|
|
823
850
|
},
|
|
824
|
-
|
|
851
|
+
refActions: {
|
|
825
852
|
add: {
|
|
826
853
|
displayName: "Add an item",
|
|
827
|
-
|
|
854
|
+
argTypes: [
|
|
828
855
|
{
|
|
829
856
|
name: "defaultValue",
|
|
830
857
|
displayName: "Default value",
|
|
@@ -839,7 +866,7 @@ function registerFormList(loader) {
|
|
|
839
866
|
},
|
|
840
867
|
remove: {
|
|
841
868
|
displayName: "Remove an item",
|
|
842
|
-
|
|
869
|
+
argTypes: [
|
|
843
870
|
{
|
|
844
871
|
name: "index",
|
|
845
872
|
displayName: "Index",
|
|
@@ -849,7 +876,7 @@ function registerFormList(loader) {
|
|
|
849
876
|
},
|
|
850
877
|
move: {
|
|
851
878
|
displayName: "Move field",
|
|
852
|
-
|
|
879
|
+
argTypes: [
|
|
853
880
|
{
|
|
854
881
|
name: "from",
|
|
855
882
|
displayName: "From",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerForm.cjs.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport { Form } 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 {\n omit,\n Registerable,\n registerComponentHelper,\n usePrevious,\n} from \"./utils\";\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | undefined\n>(undefined);\n\nconst Internal = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const { extendedOnValuesChange, setRemountKey, ...rest } = props;\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n const childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n\n const fireOnValuesChange = 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 return (\n <InternalFormInstanceContext.Provider\n value={{\n fireOnValuesChange,\n forceRemount: () => setRemountKey((k) => k + 1),\n }}\n >\n <Form\n {...rest}\n key={\n props.initialValues ? JSON.stringify(props.initialValues) : 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 items*/}\n <style>{`\n .ant-form-item-explain + div, .ant-form-item-margin-offset {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\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 Item\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Group\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-group\",\n // },\n // \"children\"\n // );\n // },\n // },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form List\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-list\",\n // },\n // \"children\"\n // );\n // },\n // },\n];\n\nexport function registerForm(loader?: Registerable) {\n const colProp = (displayName?: string, defaultValue?: object) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Grid columns\",\n description:\n \"The number of grid columns to span (24 columns available)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset columns\",\n description: \"Number of grid columns to skip from the left\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply to horizontal layout\",\n },\n },\n defaultValue: defaultValue,\n } as const);\n registerComponentHelper(loader, FormWrapper, {\n name: \"plasmic-antd5-form\",\n displayName: \"Form\",\n defaultStyles: {\n display: \"plasmic-content-layout\",\n gridRowGap: \"10px\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-textarea\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n submitsForm: true,\n },\n },\n ],\n },\n initialValues: {\n type: \"object\",\n } as any,\n layout: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\", \"inline\"],\n defaultValue: \"vertical\",\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n defaultValueHint: \"right\",\n advanced: true,\n },\n labelCol: colProp(\"Label layout\", {\n span: 8,\n horizontalOnly: true,\n }),\n wrapperCol: colProp(\"Field layout\", {\n span: 16,\n horizontalOnly: true,\n }),\n colon: {\n type: \"boolean\",\n description: `Show a colon after 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 mark\",\n type: \"choice\",\n options: [\n {\n value: \"optional\",\n label: \"Indicate optional fields\",\n },\n {\n value: true,\n label: \"Indicate required fields with asterisk\",\n },\n {\n value: false,\n label: \"Show no indicators\",\n },\n ],\n advanced: true,\n defaultValueHint: true,\n },\n extendedOnValuesChange: {\n type: \"eventHandler\",\n displayName: \"On values change\",\n argTypes: [\n {\n name: \"changedValues\",\n type: \"object\",\n },\n {\n name: \"allValues\",\n type: \"object\",\n },\n ],\n },\n onFinish: {\n type: \"eventHandler\",\n displayName: \"On submit\",\n argTypes: [\n {\n name: \"values\",\n type: \"object\",\n },\n ],\n },\n onFinishFailed: {\n // function({ values, errorFields, outOfDate })\n type: \"eventHandler\",\n displayName: \"On invalid submit\",\n argTypes: [\n {\n name: \"data\",\n type: \"object\",\n },\n ],\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"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 helpTextMode?: string;\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(plasmicRules: PlasmicRule[]) {\n const rules: FormItemProps[\"rules\"] = [];\n for (const plasmicRule of plasmicRules) {\n switch (plasmicRule.ruleType) {\n case \"enum\":\n rules.push({\n type: \"enum\",\n enum: plasmicRule.options?.map((opt) => opt.value) ?? [],\n message: plasmicRule.message,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message: plasmicRule.message,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message,\n });\n break;\n case \"min\":\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message: plasmicRule.message,\n });\n break;\n case \"advanced\":\n rules.push({\n validator: (...args) =>\n plasmicRule.custom?.apply(null, args)\n ? Promise.resolve()\n : Promise.reject(),\n message: plasmicRule.message,\n });\n }\n }\n return rules;\n}\n\nconst useFormItemRelativeName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.relativePath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.relativePath, name]\n : undefined;\n};\n\nconst useFormItemFullName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.fullPath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.fullPath, name]\n : undefined;\n};\n\nfunction useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nexport function FormItemWrapper(props: InternalFormItemProps) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const rules = props.rules ? plasmicRulesToAntdRules(props.rules) : undefined;\n\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...omit(props, \"rules\")}\n label={props.noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n {...(props.helpTextMode === \"extra\"\n ? { extra: props.help }\n : props.helpTextMode === \"help\"\n ? // Never show validation errors in this mode, even if user didn't specify help\n { help: props.help ?? \"\" }\n : {})}\n >\n {props.customizeProps ? (\n <FormItemForwarder formItemProps={props} />\n ) : (\n props.children\n )}\n </FormItem>\n );\n}\n\nfunction FormItemForwarder({ formItemProps, ...props }: any) {\n const status = Form.Item.useStatus();\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n // const value = props[formItemProps.valuePropName ?? \"value\"];\n // const trigger = props[formItemProps.trigger ?? \"onChange\"];\n const data: CuratedFieldData = {\n status: status.status,\n };\n props.setControlContextData?.({\n internalFormCtx,\n status,\n });\n return React.Children.map(formItemProps.children, (child, i) => {\n const baseProps = { ...(child.props ?? {}), ...props };\n return i === 0 && isValidElement(child)\n ? cloneElement(\n child,\n mergeProps(baseProps, formItemProps.customizeProps(data, baseProps))\n )\n : child;\n });\n}\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: \"plasmic-antd5-form-item\",\n displayName: \"Form Item\",\n parentComponentName: \"plasmic-antd5-form\",\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n name: {\n type: \"string\",\n },\n initialValue: {\n type: \"string\",\n },\n rules: {\n type: \"formValidationRules\",\n } as any,\n noLabel: {\n type: \"boolean\",\n advanced: true,\n },\n colon: {\n type: \"boolean\",\n defaultValueHint: true,\n advanced: true,\n hidden: () => true,\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n advanced: true,\n },\n hidden: {\n type: \"boolean\",\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\",\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n dependencies: {\n type: \"array\",\n advanced: true,\n displayName: \"Dependencies\",\n description:\n \"Form items can depend on other form items. This forces it to reevaluate the validation rules when the other form item changes.\",\n },\n helpTextMode: {\n type: \"choice\",\n displayName: \"Help text\",\n options: [\n {\n value: \"errors\",\n label: \"Validation errors\",\n },\n {\n value: \"extra\",\n label: \"Custom help text and validation errors\",\n },\n {\n value: \"help\",\n label: \"Custom help text, no validation errors\",\n },\n ],\n defaultValueHint: \"Show validation errors\",\n description:\n \"What to show in the help text. Edit help text by editing the 'help' slot in the outline.\",\n },\n help: {\n type: \"slot\",\n hidden: (ps) => ![\"extra\", \"help\"].includes(ps.helpTextMode ?? \"\"),\n hidePlaceholder: true,\n // advanced: true,\n },\n customizeProps: {\n type: \"function\",\n description:\n \"Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)\",\n argNames: [\"fieldData\"],\n argValues: (_ps: any, ctx: any) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\",\n displayName: \"Field only\",\n description:\n \"Don't render anything but the wrapped field component - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\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 function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: \"plasmic-antd5-form-group\",\n displayName: \"Form Group\",\n parentComponentName: \"plasmic-antd5-form\",\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: \"plasmic-antd5-form-list\",\n parentComponentName: \"plasmic-antd5-form\",\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"firstName\",\n label: {\n type: \"text\",\n value: \"First name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"lastName\",\n label: {\n type: \"text\",\n value: \"Last name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n ],\n },\n ],\n },\n name: {\n type: \"string\",\n defaultValue: \"guests\",\n },\n initialValue: {\n type: \"array\",\n defaultValue: [\n {\n firstName: \"Jane\",\n lastName: \"Doe\",\n },\n {\n firstName: \"John\",\n lastName: \"Smith\",\n },\n ],\n } as any,\n },\n unstable__refActions: {\n add: {\n displayName: \"Add an item\",\n parameters: [\n {\n name: \"defaultValue\",\n displayName: \"Default value\",\n type: \"object\",\n },\n {\n name: \"insertIndex\",\n displayName: \"Insert index\",\n type: \"number\",\n },\n ],\n },\n remove: {\n displayName: \"Remove an item\",\n parameters: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n parameters: [\n {\n name: \"from\",\n displayName: \"From\",\n type: \"number\",\n },\n {\n name: \"to\",\n displayName: \"To\",\n type: \"number\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormListWrapper\",\n });\n}\n"],"names":["React","__spreadValues","classNames","Form","values","equal","_a","usePrevious","registerComponentHelper","usePlasmicCanvasContext","omit","isValidElement","cloneElement","FormListWrapper","DataProvider","repeatedElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGa,MAAA,SAAA,GAAY,OAAO,MAAW,KAAA,WAAA,CAAA;AAC9B,MAAA,IAAA,GAAO,OAAO,MAAM,CAAA,CAAA;AAEQ,SAAA,GACrCA,sBAAM,CAAA,eAAA,GACNA,sBAAM,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,SAASC,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,OAAAC,2BAAA,CAAW,MAAM,IAAI,CAAA,CAAA;AAAA,GAC9B,MAAA,IAAW,SAAS,OAAS,EAAA;AAE3B,IAAA,OAAOD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3JA,MAAM,WAAWE,SAAK,CAAA,IAAA,CAAA;AACtB,MAAM,WAAWA,SAAK,CAAA,IAAA,CAAA;AAetB,MAAM,WAAA,GAAcH,sBAAM,CAAA,aAAA,CAGvB,EAAE,YAAA,EAAc,EAAI,EAAA,QAAA,EAAU,EAAC,EAAG,CAAA,CAAA;AAOrC,MAAM,2BAAA,GAA8BA,sBAAM,CAAA,aAAA,CAExC,KAAS,CAAA,CAAA,CAAA;AAEX,MAAM,QAAA,GAAW,CACf,KAKG,KAAA;AAzDL,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA0DE,EAAA,MAAM,CAAC,IAAI,CAAI,GAAAG,SAAA,CAAK,OAAQ,EAAA,CAAA;AAC5B,EAAM,MAAA,MAAA,GAAS,IAAK,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACvC,EAAM,MAAA,SAAA,GAAYH,sBAAM,CAAA,MAAA,CAAO,MAAM,CAAA,CAAA;AACrC,EAA2D,MAAA,EAAA,GAAA,KAAA,EAAnD,0BAAwB,aA7DlC,EAAA,GA6D6D,IAAT,IAAS,GAAA,SAAA,CAAA,EAAA,EAAT,CAA1C,wBAAwB,EAAA,eAAA,CAAA,CAAA,CAAA;AAEhC,EAAM,MAAA,YAAA,GACJ,OAAO,KAAA,CAAM,QAAa,KAAA,UAAA,GACtB,MAAM,QAAS,CAAA,MAAA,EAAQ,IAAI,CAAA,GAC3B,KAAM,CAAA,QAAA,CAAA;AAEZ,EAAM,MAAA,kBAAA,GAAqBA,sBAAM,CAAA,WAAA,CAAY,MAAM;AACjD,IAAMI,MAAAA,OAAAA,GAAS,IAAK,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACvC,IAAA,IAAI,CAACC,sBAAA,CAAMD,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,EAAAJ,sBAAA,CAAM,UAAU,MAAM;AACpB,IAAmB,kBAAA,EAAA,CAAA;AAAA,GACrB,EAAG,EAAE,CAAA,CAAA;AACL,EACE,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAAC,2BAA4B,CAAA,QAAA;AAAA,IAA5B;AAAA,MACC,KAAO,EAAA;AAAA,QACL,kBAAA;AAAA,QACA,cAAc,MAAM,aAAA,CAAc,CAAC,CAAA,KAAM,IAAI,CAAC,CAAA;AAAA,OAChD;AAAA,KAAA;AAAA,oBAEAA,sBAAA,CAAA,aAAA;AAAA,MAACG,SAAA;AAAA,MAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,QAEC,KACE,KAAM,CAAA,aAAA,GAAgB,KAAK,SAAU,CAAA,KAAA,CAAM,aAAa,CAAI,GAAA,KAAA,CAAA;AAAA,QAE9D,cAAA,EAAgB,IAAI,IAAS,KAAA;AA3FrC,UAAAG,IAAAA,GAAAA,CAAAA;AA4FU,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,2DAIX,OAAO,EAAA,IAAA,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,QAIN,CAAA,CAAA;AAAA,MACD,YAAA;AAAA,KACH;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AACO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAAN,sBAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AACpD,EAAM,MAAA,qBAAA,GAAwBO,iBAAY,CAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AAE7D,EAAAP,sBAAA,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,4DAAQ,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,sBAAA;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,GACF;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;AAEO,SAAS,aAAa,MAAuB,EAAA;AAClD,EAAM,MAAA,OAAA,GAAU,CAAC,WAAA,EAAsB,YACpC,MAAA;AAAA,IACC,IAAM,EAAA,QAAA;AAAA,IACN,WAAA;AAAA,IACA,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,cAAA;AAAA,QACb,WACE,EAAA,2DAAA;AAAA,QACF,GAAK,EAAA,CAAA;AAAA,QACL,GAAK,EAAA,EAAA;AAAA,OACP;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,gBAAA;AAAA,QACb,WAAa,EAAA,8CAAA;AAAA,QACb,GAAK,EAAA,CAAA;AAAA,QACL,GAAK,EAAA,EAAA;AAAA,OACP;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,iBAAA;AAAA,QACb,WAAa,EAAA,iCAAA;AAAA,OACf;AAAA,KACF;AAAA,IACA,YAAA;AAAA,GACF,CAAA,CAAA;AACF,EAAAQ,6BAAA,CAAwB,QAAQ,WAAa,EAAA;AAAA,IAC3C,IAAM,EAAA,oBAAA;AAAA,IACN,WAAa,EAAA,MAAA;AAAA,IACb,aAAe,EAAA;AAAA,MACb,OAAS,EAAA,wBAAA;AAAA,MACT,UAAY,EAAA,MAAA;AAAA,KACd;AAAA,IACA,KAAO,EAAA;AAAA,MACL,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;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,qBAAA;AAAA,eACR;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;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,wBAAA;AAAA,eACR;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,sBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,QAAA;AAAA,eACT;AAAA,cACA,WAAa,EAAA,IAAA;AAAA,aACf;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,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,OACZ;AAAA,MACA,QAAA,EAAU,QAAQ,cAAgB,EAAA;AAAA,QAChC,IAAM,EAAA,CAAA;AAAA,QACN,cAAgB,EAAA,IAAA;AAAA,OACjB,CAAA;AAAA,MACD,UAAA,EAAY,QAAQ,cAAgB,EAAA;AAAA,QAClC,IAAM,EAAA,EAAA;AAAA,QACN,cAAgB,EAAA,IAAA;AAAA,OACjB,CAAA;AAAA,MACD,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;AAhSxB,UAAA,IAAA,EAAA,CAAA;AAgS4B,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,wBAAA;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,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA,CAAC,UAAY,EAAA,UAAA,EAAY,QAAQ,CAAA;AAAA,QAC1C,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;AA2CA,SAAS,wBAAwB,YAA6B,EAAA;AAvZ9D,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAwZE,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,SAAS,WAAY,CAAA,OAAA;AAAA,SACtB,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,QAAU,EAAA,IAAA;AAAA,UACV,SAAS,WAAY,CAAA,OAAA;AAAA,SACtB,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,SAAS,WAAY,CAAA,OAAA;AAAA,SACtB,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,UAAY,EAAA,IAAA;AAAA,UACZ,SAAS,WAAY,CAAA,OAAA;AAAA,SACtB,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,KAAA,CAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,CAAC,WAAA,CAAY,QAAQ,GAAG,WAAY,CAAA,MAAA;AAAA,UACpC,SAAS,WAAY,CAAA,OAAA;AAAA,SACtB,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,SAAA,EAAW,IAAI,IAAM,KAAA;AA7b/B,YAAAF,IAAAA,GAAAA,CAAAA;AA8bY,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,GAAUN,sBAAM,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,GAAUA,sBAAM,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,OAAOG,UAAK,eAAgB,EAAA,CAAA;AAC9B,CAAA;AAEO,SAAS,gBAAgB,KAA8B,EAAA;AA9d9D,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA+dE,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,QAAQ,KAAM,CAAA,KAAA,GAAQ,uBAAwB,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA,KAAA,CAAA,CAAA;AAEnE,EAAM,MAAA,QAAA,GAAW,CAAC,CAACM,4BAAwB,EAAA,CAAA;AAC3C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,OAAO,oBAAqB,EAAA,CAAA;AAClC,IAAM,MAAA,cAAA,GAAiBT,uBAAM,MAAO,CAAA;AAAA,MAClC,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,MAAM,KAAM,CAAA,IAAA;AAAA,KACb,CAAA,CAAA;AACD,IAAM,MAAA,eAAA,GAAkBA,sBAAM,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,IAAAA,sBAAA,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,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IACK,cAAA,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAAU,UAAA,CAAK,KAAO,EAAA,OAAO,CADxB,CAAA,EAAA;AAAA,MAEC,KAAO,EAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,KAAA;AAAA,MACzC,IAAM,EAAA,oBAAA;AAAA,MACN,KAAA;AAAA,KACK,CAAA,EAAA,KAAA,CAAM,iBAAiB,OACxB,GAAA,EAAE,OAAO,KAAM,CAAA,IAAA,EACf,GAAA,KAAA,CAAM,YAAiB,KAAA,MAAA;AAAA;AAAA,MAEvB,EAAE,IAAA,EAAA,CAAM,EAAM,GAAA,KAAA,CAAA,IAAA,KAAN,YAAc,EAAG,EAAA;AAAA,QACzB,EAAC,CAAA;AAAA,IAEJ,MAAM,cACL,mBAAAV,sBAAA,CAAA,aAAA,CAAC,qBAAkB,aAAe,EAAA,KAAA,EAAO,IAEzC,KAAM,CAAA,QAAA;AAAA,GAEV,CAAA;AAEJ,CAAA;AAEA,SAAS,kBAAkB,EAAkC,EAAA;AAAlC,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAthB7B,aAAA,EAAA,GAshB2B,EAAoB,EAAA,KAAA,GAAA,SAAA,CAApB,IAAoB,CAAlB,eAAA,CAAA,CAAA,CAAA;AAthB7B,EAAAM,IAAAA,GAAAA,CAAAA;AAuhBE,EAAM,MAAA,MAAA,GAASH,SAAK,CAAA,IAAA,CAAK,SAAU,EAAA,CAAA;AACnC,EAAM,MAAA,eAAA,GAAkBH,sBAAM,CAAA,UAAA,CAAW,2BAA2B,CAAA,CAAA;AAGpE,EAAA,MAAM,IAAyB,GAAA;AAAA,IAC7B,QAAQ,MAAO,CAAA,MAAA;AAAA,GACjB,CAAA;AACA,EAAA,CAAAM,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,OAAON,uBAAM,QAAS,CAAA,GAAA,CAAI,cAAc,QAAU,EAAA,CAAC,OAAO,CAAM,KAAA;AAliBlE,IAAAM,IAAAA,GAAAA,CAAAA;AAmiBI,IAAM,MAAA,SAAA,GAAY,mCAAMA,GAAA,GAAA,KAAA,CAAM,UAAN,IAAAA,GAAAA,GAAAA,GAAe,EAAQ,CAAA,EAAA,KAAA,CAAA,CAAA;AAC/C,IAAA,OAAO,CAAM,KAAA,CAAA,IAAKK,oBAAe,CAAA,KAAK,CAClC,GAAAC,kBAAA;AAAA,MACE,KAAA;AAAA,MACA,WAAW,SAAW,EAAA,aAAA,CAAc,cAAe,CAAA,IAAA,EAAM,SAAS,CAAC,CAAA;AAAA,KAErE,GAAA,KAAA,CAAA;AAAA,GACL,CAAA,CAAA;AACH,CAAA;AAEO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAAJ,6BAAA,CAAwB,QAAQ,eAAiB,EAAA;AAAA,IAC/C,IAAM,EAAA,yBAAA;AAAA,IACN,WAAa,EAAA,WAAA;AAAA,IACb,mBAAqB,EAAA,oBAAA;AAAA,IACrB,KAAO,EAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,MAAA;AAAA,UACN,KAAO,EAAA,OAAA;AAAA,SACT;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,WAAA;AAAA,UACN,IAAM,EAAA,qBAAA;AAAA,SACR;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,qBAAA;AAAA,OACR;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,gBAAkB,EAAA,IAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,QACV,QAAQ,MAAM,IAAA;AAAA,OAChB;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,QAAA;AAAA,QACN,OAAA,EAAS,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,QACzB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA,CAAC,UAAY,EAAA,UAAA,EAAY,QAAQ,CAAA;AAAA,QAC1C,WAAa,EAAA,IAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,WAAa,EAAA,kBAAA;AAAA,QACb,WACE,EAAA,oIAAA;AAAA,OACJ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,OAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,WAAa,EAAA,cAAA;AAAA,QACb,WACE,EAAA,gIAAA;AAAA,OACJ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,WAAA;AAAA,QACb,OAAS,EAAA;AAAA,UACP;AAAA,YACE,KAAO,EAAA,QAAA;AAAA,YACP,KAAO,EAAA,mBAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,OAAA;AAAA,YACP,KAAO,EAAA,wCAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,MAAA;AAAA,YACP,KAAO,EAAA,wCAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,gBAAkB,EAAA,wBAAA;AAAA,QAClB,WACE,EAAA,0FAAA;AAAA,OACJ;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,MAAA,EAAQ,CAAC,EAAI,KAAA;AAxoBrB,UAAA,IAAA,EAAA,CAAA;AAwoBwB,UAAC,OAAA,CAAA,CAAC,SAAS,MAAM,CAAA,CAAE,UAAS,EAAG,GAAA,EAAA,CAAA,YAAA,KAAH,YAAmB,EAAE,CAAA,CAAA;AAAA,SAAA;AAAA,QACjE,eAAiB,EAAA,IAAA;AAAA;AAAA,OAEnB;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,IAAM,EAAA,UAAA;AAAA,QACN,WACE,EAAA,0IAAA;AAAA,QACF,QAAA,EAAU,CAAC,WAAW,CAAA;AAAA,QACtB,SAAA,EAAW,CAAC,GAAA,EAAU,GAAU,KAAA;AAjpBxC,UAAA,IAAA,EAAA,CAAA;AAipB2C,UAAA,OAAA;AAAA,YACjC;AAAA,cACE,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,aACvB;AAAA,WACF,CAAA;AAAA,SAAA;AAAA,QACA,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,WACE,EAAA,wGAAA;AAAA,QACF,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,IACA,UAAY,EAAA,wCAAA;AAAA,IACZ,UAAY,EAAA,iBAAA;AAAA,GACb,CAAA,CAAA;AACH,CAAA;AAOO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA,OAAA,GAAUR,sBAAM,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAC5C,EACE,uBAAAA,sBAAA,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,SAAS,kBAAkB,MAAuB,EAAA;AACvD,EAAAQ,6BAAA,CAAwB,QAAQ,SAAW,EAAA;AAAA,IACzC,IAAM,EAAA,0BAAA;AAAA,IACN,WAAa,EAAA,YAAA;AAAA,IACb,mBAAqB,EAAA,oBAAA;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,kBAAkBR,sBAAM,CAAA,UAAA,CAAW,SAASa,gBAAAA,CACvD,OACA,GACA,EAAA;AAptBF,EAAA,IAAA,EAAA,CAAA;AAqtBE,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,gBAAgBb,sBAAM,CAAA,MAAA;AAAA,IAC1B,KAAA,CAAA;AAAA,GACF,CAAA;AACA,EAAMA,sBAAA,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,CAACS,4BAAwB,EAAA,CAAA;AAC3C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,OAAO,oBAAqB,EAAA,CAAA;AAClC,IAAM,MAAA,cAAA,GAAiBT,uBAAM,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,4BAAM,UAAW,CAAA,2BAA2B,CAA5C,KAAA,IAAA,GAAA,EAAA,GAAiD,EAAC,CAAA;AACpD,IAAAA,sBAAA,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,uBAAAA,sBAAA,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,qBAAAA,sBAAA,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,2DAECc,iBAAa,EAAA,EAAA,IAAA,EAAM,cAAgB,EAAA,IAAA,EAAM,yBACvCd,sBAAA,CAAA,aAAA,CAAAc,iBAAA,EAAA,EAAa,IAAM,EAAA,mBAAA,EAAqB,MAAM,KAC5C,EAAA,EAAAC,oBAAA,CAAgB,OAAO,KAAM,CAAA,QAAQ,CACxC,CACF,CAAA;AAAA,KAEH,CAAA,CAAA;AAAA,GAEL,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEM,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAAP,6BAAA,CAAwB,QAAQ,eAAiB,EAAA;AAAA,IAC/C,IAAM,EAAA,yBAAA;AAAA,IACN,mBAAqB,EAAA,oBAAA;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,yBAAA;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,yBAAA;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,oBAAsB,EAAA;AAAA,MACpB,GAAK,EAAA;AAAA,QACH,WAAa,EAAA,aAAA;AAAA,QACb,UAAY,EAAA;AAAA,UACV;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,UAAY,EAAA;AAAA,UACV;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,UAAY,EAAA;AAAA,UACV;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.cjs.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport { Form } 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 {\n omit,\n Registerable,\n registerComponentHelper,\n usePrevious,\n} from \"./utils\";\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 FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | undefined\n>(undefined);\n\nconst Internal = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const { extendedOnValuesChange, setRemountKey, ...rest } = props;\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n const childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n\n const fireOnValuesChange = 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 return (\n <InternalFormInstanceContext.Provider\n value={{\n fireOnValuesChange,\n forceRemount: () => setRemountKey((k) => k + 1),\n }}\n >\n <Form\n {...rest}\n key={\n props.initialValues ? JSON.stringify(props.initialValues) : 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 items*/}\n <style>{`\n .ant-form-item-explain + div, .ant-form-item-margin-offset {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\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 Item\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Group\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-group\",\n // },\n // \"children\"\n // );\n // },\n // },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form List\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-list\",\n // },\n // \"children\"\n // );\n // },\n // },\n];\n\nexport function registerForm(loader?: Registerable) {\n const colProp = (displayName?: string, defaultValue?: object) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Grid columns\",\n description:\n \"The number of grid columns to span (24 columns available)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset columns\",\n description: \"Number of grid columns to skip from the left\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply to horizontal layout\",\n },\n },\n defaultValue: defaultValue,\n } as const);\n registerComponentHelper(loader, FormWrapper, {\n name: \"plasmic-antd5-form\",\n displayName: \"Form\",\n defaultStyles: {\n display: \"plasmic-content-layout\",\n gridRowGap: \"10px\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: \"plasmic-antd5-textarea\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n submitsForm: true,\n },\n },\n ],\n },\n initialValues: {\n type: \"object\",\n } as any,\n layout: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\", \"inline\"],\n defaultValue: \"vertical\",\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n defaultValueHint: \"right\",\n advanced: true,\n },\n labelCol: colProp(\"Label layout\", {\n span: 8,\n horizontalOnly: true,\n }),\n wrapperCol: colProp(\"Field layout\", {\n span: 16,\n horizontalOnly: true,\n }),\n colon: {\n type: \"boolean\",\n description: `Show a colon after 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 mark\",\n type: \"choice\",\n options: [\n {\n value: \"optional\",\n label: \"Indicate optional fields\",\n },\n {\n value: true,\n label: \"Indicate required fields with asterisk\",\n },\n {\n value: false,\n label: \"Show no indicators\",\n },\n ],\n advanced: true,\n defaultValueHint: true,\n },\n extendedOnValuesChange: {\n type: \"eventHandler\",\n displayName: \"On values change\",\n argTypes: [\n {\n name: \"changedValues\",\n type: \"object\",\n },\n {\n name: \"allValues\",\n type: \"object\",\n },\n ],\n },\n onFinish: {\n type: \"eventHandler\",\n displayName: \"On submit\",\n argTypes: [\n {\n name: \"values\",\n type: \"object\",\n },\n ],\n },\n onFinishFailed: {\n // function({ values, errorFields, outOfDate })\n type: \"eventHandler\",\n displayName: \"On invalid submit\",\n argTypes: [\n {\n name: \"data\",\n type: \"object\",\n },\n ],\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"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 helpTextMode?: string;\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\n plasmicRules: PlasmicRule[],\n label: string | undefined\n) {\n const rules: FormItemProps[\"rules\"] = [];\n for (const plasmicRule of plasmicRules) {\n switch (plasmicRule.ruleType) {\n case \"enum\":\n rules.push({\n type: \"enum\",\n enum: plasmicRule.options?.map((opt) => opt.value) ?? [],\n message: plasmicRule.message ?? `Please specify a valid value`,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message:\n plasmicRule.message ?? `Please specify ${label || \"this field\"}`,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message: plasmicRule.message ?? `Please enter a valid value`,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message:\n plasmicRule.message ?? `Please specify ${label || \"this field\"}`,\n });\n break;\n case \"min\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `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 `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 relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const bestEffortLabel =\n (!props.noLabel && reactNodeToString(props.label)) ||\n ensureArray(props.name).slice(-1)[0];\n const rules = props.rules\n ? plasmicRulesToAntdRules(\n props.rules,\n typeof bestEffortLabel === \"number\"\n ? \"\" + bestEffortLabel\n : bestEffortLabel\n )\n : undefined;\n\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...omit(props, \"rules\")}\n label={props.noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n {...(props.helpTextMode === \"extra\"\n ? { extra: props.help }\n : props.helpTextMode === \"help\"\n ? // Never show validation errors in this mode, even if user didn't specify help\n { help: props.help ?? \"\" }\n : {})}\n >\n {props.customizeProps ? (\n <FormItemForwarder formItemProps={props} />\n ) : (\n props.children\n )}\n </FormItem>\n );\n}\n\nfunction FormItemForwarder({ formItemProps, ...props }: any) {\n const status = Form.Item.useStatus();\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n // const value = props[formItemProps.valuePropName ?? \"value\"];\n // const trigger = props[formItemProps.trigger ?? \"onChange\"];\n const data: CuratedFieldData = {\n status: status.status,\n };\n props.setControlContextData?.({\n internalFormCtx,\n status,\n });\n return React.Children.map(formItemProps.children, (child, i) => {\n const baseProps = { ...(child.props ?? {}), ...props };\n return i === 0 && isValidElement(child)\n ? cloneElement(\n child,\n mergeProps(baseProps, formItemProps.customizeProps(data, baseProps))\n )\n : child;\n });\n}\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: \"plasmic-antd5-form-item\",\n displayName: \"Form Item\",\n parentComponentName: \"plasmic-antd5-form\",\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n name: {\n type: \"string\",\n },\n initialValue: {\n type: \"string\",\n },\n rules: {\n type: \"formValidationRules\",\n } as any,\n noLabel: {\n type: \"boolean\",\n advanced: true,\n },\n colon: {\n type: \"boolean\",\n defaultValueHint: true,\n advanced: true,\n hidden: () => true,\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n advanced: true,\n },\n hidden: {\n type: \"boolean\",\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\",\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n dependencies: {\n type: \"array\",\n advanced: true,\n displayName: \"Dependencies\",\n description:\n \"Form items can depend on other form items. This forces it to reevaluate the validation rules when the other form item changes.\",\n },\n helpTextMode: {\n type: \"choice\",\n displayName: \"Help text\",\n options: [\n {\n value: \"errors\",\n label: \"Validation errors\",\n },\n {\n value: \"extra\",\n label: \"Custom help text and validation errors\",\n },\n {\n value: \"help\",\n label: \"Custom help text, no validation errors\",\n },\n ],\n defaultValueHint: \"Show validation errors\",\n description:\n \"What to show in the help text. Edit help text by editing the 'help' slot in the outline.\",\n },\n help: {\n type: \"slot\",\n hidden: (ps) => ![\"extra\", \"help\"].includes(ps.helpTextMode ?? \"\"),\n hidePlaceholder: true,\n // advanced: true,\n },\n customizeProps: {\n type: \"function\",\n description:\n \"Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)\",\n argNames: [\"fieldData\"],\n argValues: (_ps: any, ctx: any) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\",\n displayName: \"Field only\",\n description:\n \"Don't render anything but the wrapped field component - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\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 function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: \"plasmic-antd5-form-group\",\n displayName: \"Form Group\",\n parentComponentName: \"plasmic-antd5-form\",\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: \"plasmic-antd5-form-list\",\n parentComponentName: \"plasmic-antd5-form\",\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"firstName\",\n label: {\n type: \"text\",\n value: \"First name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n props: {\n name: \"lastName\",\n label: {\n type: \"text\",\n value: \"Last name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n ],\n },\n ],\n },\n name: {\n type: \"string\",\n defaultValue: \"guests\",\n },\n initialValue: {\n type: \"array\",\n defaultValue: [\n {\n firstName: \"Jane\",\n lastName: \"Doe\",\n },\n {\n firstName: \"John\",\n lastName: \"Smith\",\n },\n ],\n } as any,\n },\n 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":["React","__spreadValues","classNames","isValidElement","Form","values","equal","_a","usePrevious","registerComponentHelper","usePlasmicCanvasContext","omit","cloneElement","FormListWrapper","DataProvider","repeatedElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGa,MAAA,SAAA,GAAY,OAAO,MAAW,KAAA,WAAA,CAAA;AAC9B,MAAA,IAAA,GAAO,OAAO,MAAM,CAAA,CAAA;AAEQ,SAAA,GACrCA,sBAAM,CAAA,eAAA,GACNA,sBAAM,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,SAASC,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,OAAAC,2BAAA,CAAW,MAAM,IAAI,CAAA,CAAA;AAAA,GAC9B,MAAA,IAAW,SAAS,OAAS,EAAA;AAE3B,IAAA,OAAOD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3JA,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,IAAWE,oBAAe,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,WAAWC,SAAK,CAAA,IAAA,CAAA;AACtB,MAAM,WAAWA,SAAK,CAAA,IAAA,CAAA;AAetB,MAAM,WAAA,GAAcJ,sBAAM,CAAA,aAAA,CAGvB,EAAE,YAAA,EAAc,EAAI,EAAA,QAAA,EAAU,EAAC,EAAG,CAAA,CAAA;AAOrC,MAAM,2BAAA,GAA8BA,sBAAM,CAAA,aAAA,CAExC,KAAS,CAAA,CAAA,CAAA;AAEX,MAAM,QAAA,GAAW,CACf,KAKG,KAAA;AA7EL,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA8EE,EAAA,MAAM,CAAC,IAAI,CAAI,GAAAI,SAAA,CAAK,OAAQ,EAAA,CAAA;AAC5B,EAAM,MAAA,MAAA,GAAS,IAAK,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACvC,EAAM,MAAA,SAAA,GAAYJ,sBAAM,CAAA,MAAA,CAAO,MAAM,CAAA,CAAA;AACrC,EAA2D,MAAA,EAAA,GAAA,KAAA,EAAnD,0BAAwB,aAjFlC,EAAA,GAiF6D,IAAT,IAAS,GAAA,SAAA,CAAA,EAAA,EAAT,CAA1C,wBAAwB,EAAA,eAAA,CAAA,CAAA,CAAA;AAEhC,EAAM,MAAA,YAAA,GACJ,OAAO,KAAA,CAAM,QAAa,KAAA,UAAA,GACtB,MAAM,QAAS,CAAA,MAAA,EAAQ,IAAI,CAAA,GAC3B,KAAM,CAAA,QAAA,CAAA;AAEZ,EAAM,MAAA,kBAAA,GAAqBA,sBAAM,CAAA,WAAA,CAAY,MAAM;AACjD,IAAMK,MAAAA,OAAAA,GAAS,IAAK,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACvC,IAAA,IAAI,CAACC,sBAAA,CAAMD,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,EAAAL,sBAAA,CAAM,UAAU,MAAM;AACpB,IAAmB,kBAAA,EAAA,CAAA;AAAA,GACrB,EAAG,EAAE,CAAA,CAAA;AACL,EACE,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAAC,2BAA4B,CAAA,QAAA;AAAA,IAA5B;AAAA,MACC,KAAO,EAAA;AAAA,QACL,kBAAA;AAAA,QACA,cAAc,MAAM,aAAA,CAAc,CAAC,CAAA,KAAM,IAAI,CAAC,CAAA;AAAA,OAChD;AAAA,KAAA;AAAA,oBAEAA,sBAAA,CAAA,aAAA;AAAA,MAACI,SAAA;AAAA,MAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,QAEC,KACE,KAAM,CAAA,aAAA,GAAgB,KAAK,SAAU,CAAA,KAAA,CAAM,aAAa,CAAI,GAAA,KAAA,CAAA;AAAA,QAE9D,cAAA,EAAgB,IAAI,IAAS,KAAA;AA/GrC,UAAAG,IAAAA,GAAAA,CAAAA;AAgHU,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,2DAIX,OAAO,EAAA,IAAA,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,QAIN,CAAA,CAAA;AAAA,MACD,YAAA;AAAA,KACH;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AACO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAAP,sBAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AACpD,EAAM,MAAA,qBAAA,GAAwBQ,iBAAY,CAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AAE7D,EAAAR,sBAAA,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,4DAAQ,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,sBAAA;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,GACF;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;AAEO,SAAS,aAAa,MAAuB,EAAA;AAClD,EAAM,MAAA,OAAA,GAAU,CAAC,WAAA,EAAsB,YACpC,MAAA;AAAA,IACC,IAAM,EAAA,QAAA;AAAA,IACN,WAAA;AAAA,IACA,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,cAAA;AAAA,QACb,WACE,EAAA,2DAAA;AAAA,QACF,GAAK,EAAA,CAAA;AAAA,QACL,GAAK,EAAA,EAAA;AAAA,OACP;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,gBAAA;AAAA,QACb,WAAa,EAAA,8CAAA;AAAA,QACb,GAAK,EAAA,CAAA;AAAA,QACL,GAAK,EAAA,EAAA;AAAA,OACP;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,iBAAA;AAAA,QACb,WAAa,EAAA,iCAAA;AAAA,OACf;AAAA,KACF;AAAA,IACA,YAAA;AAAA,GACF,CAAA,CAAA;AACF,EAAAS,6BAAA,CAAwB,QAAQ,WAAa,EAAA;AAAA,IAC3C,IAAM,EAAA,oBAAA;AAAA,IACN,WAAa,EAAA,MAAA;AAAA,IACb,aAAe,EAAA;AAAA,MACb,OAAS,EAAA,wBAAA;AAAA,MACT,UAAY,EAAA,MAAA;AAAA,KACd;AAAA,IACA,KAAO,EAAA;AAAA,MACL,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;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,qBAAA;AAAA,eACR;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;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,wBAAA;AAAA,eACR;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,sBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,QAAA;AAAA,eACT;AAAA,cACA,WAAa,EAAA,IAAA;AAAA,aACf;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,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,OACZ;AAAA,MACA,QAAA,EAAU,QAAQ,cAAgB,EAAA;AAAA,QAChC,IAAM,EAAA,CAAA;AAAA,QACN,cAAgB,EAAA,IAAA;AAAA,OACjB,CAAA;AAAA,MACD,UAAA,EAAY,QAAQ,cAAgB,EAAA;AAAA,QAClC,IAAM,EAAA,EAAA;AAAA,QACN,cAAgB,EAAA,IAAA;AAAA,OACjB,CAAA;AAAA,MACD,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;AApTxB,UAAA,IAAA,EAAA,CAAA;AAoT4B,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,wBAAA;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,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA,CAAC,UAAY,EAAA,UAAA,EAAY,QAAQ,CAAA;AAAA,QAC1C,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;AA2CA,SAAS,uBAAA,CACP,cACA,KACA,EAAA;AA9aF,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+aE,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,OAAA,EAAA,CAAS,EAAY,GAAA,WAAA,CAAA,OAAA,KAAZ,IAAuB,GAAA,EAAA,GAAA,CAAA,4BAAA,CAAA;AAAA,SACjC,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,QAAU,EAAA,IAAA;AAAA,UACV,OACE,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GAAuB,kBAAkB,KAAS,IAAA,YAAA,CAAA,CAAA;AAAA,SACrD,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,OAAA,EAAA,CAAS,EAAY,GAAA,WAAA,CAAA,OAAA,KAAZ,IAAuB,GAAA,EAAA,GAAA,CAAA,0BAAA,CAAA;AAAA,SACjC,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,UAAY,EAAA,IAAA;AAAA,UACZ,OACE,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GAAuB,kBAAkB,KAAS,IAAA,YAAA,CAAA,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,OACE,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GACA,oBAAoB,WAAY,CAAA,MAAA,CAAA,WAAA,CAAA;AAAA,SACnC,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,OACE,EAAA,CAAA,EAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,EAAA,GACA,mBAAmB,WAAY,CAAA,MAAA,CAAA,WAAA,CAAA;AAAA,SAClC,CAAA,CAAA;AACD,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,KAAA,CAAM,IAAK,CAAA;AAAA,UACT,SAAA,EAAW,IAAI,IAAM,KAAA;AA/d/B,YAAAF,IAAAA,GAAAA,CAAAA;AAgeY,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,GAAUP,sBAAM,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,GAAUA,sBAAM,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,OAAOI,UAAK,eAAgB,EAAA,CAAA;AAC9B,CAAA;AAEO,SAAS,gBAAgB,KAA8B,EAAA;AAhgB9D,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAigBE,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,eACH,GAAA,CAAC,KAAM,CAAA,OAAA,IAAW,kBAAkB,KAAM,CAAA,KAAK,CAChD,IAAA,WAAA,CAAY,MAAM,IAAI,CAAA,CAAE,KAAM,CAAA,CAAA,CAAE,EAAE,CAAC,CAAA,CAAA;AACrC,EAAM,MAAA,KAAA,GAAQ,MAAM,KAChB,GAAA,uBAAA;AAAA,IACE,KAAM,CAAA,KAAA;AAAA,IACN,OAAO,eAAA,KAAoB,QACvB,GAAA,EAAA,GAAK,eACL,GAAA,eAAA;AAAA,GAEN,GAAA,KAAA,CAAA,CAAA;AAEJ,EAAM,MAAA,QAAA,GAAW,CAAC,CAACM,4BAAwB,EAAA,CAAA;AAC3C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,OAAO,oBAAqB,EAAA,CAAA;AAClC,IAAM,MAAA,cAAA,GAAiBV,uBAAM,MAAO,CAAA;AAAA,MAClC,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,MAAM,KAAM,CAAA,IAAA;AAAA,KACb,CAAA,CAAA;AACD,IAAM,MAAA,eAAA,GAAkBA,sBAAM,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,IAAAA,sBAAA,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,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IACK,cAAA,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAAW,UAAA,CAAK,KAAO,EAAA,OAAO,CADxB,CAAA,EAAA;AAAA,MAEC,KAAO,EAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,KAAA;AAAA,MACzC,IAAM,EAAA,oBAAA;AAAA,MACN,KAAA;AAAA,KACK,CAAA,EAAA,KAAA,CAAM,iBAAiB,OACxB,GAAA,EAAE,OAAO,KAAM,CAAA,IAAA,EACf,GAAA,KAAA,CAAM,YAAiB,KAAA,MAAA;AAAA;AAAA,MAEvB,EAAE,IAAA,EAAA,CAAM,EAAM,GAAA,KAAA,CAAA,IAAA,KAAN,YAAc,EAAG,EAAA;AAAA,QACzB,EAAC,CAAA;AAAA,IAEJ,MAAM,cACL,mBAAAX,sBAAA,CAAA,aAAA,CAAC,qBAAkB,aAAe,EAAA,KAAA,EAAO,IAEzC,KAAM,CAAA,QAAA;AAAA,GAEV,CAAA;AAEJ,CAAA;AAEA,SAAS,kBAAkB,EAAkC,EAAA;AAAlC,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAlkB7B,aAAA,EAAA,GAkkB2B,EAAoB,EAAA,KAAA,GAAA,SAAA,CAApB,IAAoB,CAAlB,eAAA,CAAA,CAAA,CAAA;AAlkB7B,EAAAO,IAAAA,GAAAA,CAAAA;AAmkBE,EAAM,MAAA,MAAA,GAASH,SAAK,CAAA,IAAA,CAAK,SAAU,EAAA,CAAA;AACnC,EAAM,MAAA,eAAA,GAAkBJ,sBAAM,CAAA,UAAA,CAAW,2BAA2B,CAAA,CAAA;AAGpE,EAAA,MAAM,IAAyB,GAAA;AAAA,IAC7B,QAAQ,MAAO,CAAA,MAAA;AAAA,GACjB,CAAA;AACA,EAAA,CAAAO,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,OAAOP,uBAAM,QAAS,CAAA,GAAA,CAAI,cAAc,QAAU,EAAA,CAAC,OAAO,CAAM,KAAA;AA9kBlE,IAAAO,IAAAA,GAAAA,CAAAA;AA+kBI,IAAM,MAAA,SAAA,GAAY,mCAAMA,GAAA,GAAA,KAAA,CAAM,UAAN,IAAAA,GAAAA,GAAAA,GAAe,EAAQ,CAAA,EAAA,KAAA,CAAA,CAAA;AAC/C,IAAA,OAAO,CAAM,KAAA,CAAA,IAAKJ,oBAAe,CAAA,KAAK,CAClC,GAAAS,kBAAA;AAAA,MACE,KAAA;AAAA,MACA,WAAW,SAAW,EAAA,aAAA,CAAc,cAAe,CAAA,IAAA,EAAM,SAAS,CAAC,CAAA;AAAA,KAErE,GAAA,KAAA,CAAA;AAAA,GACL,CAAA,CAAA;AACH,CAAA;AAEO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAAH,6BAAA,CAAwB,QAAQ,eAAiB,EAAA;AAAA,IAC/C,IAAM,EAAA,yBAAA;AAAA,IACN,WAAa,EAAA,WAAA;AAAA,IACb,mBAAqB,EAAA,oBAAA;AAAA,IACrB,KAAO,EAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,MAAA;AAAA,UACN,KAAO,EAAA,OAAA;AAAA,SACT;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,WAAA;AAAA,UACN,IAAM,EAAA,qBAAA;AAAA,SACR;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,qBAAA;AAAA,OACR;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,gBAAkB,EAAA,IAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,QACV,QAAQ,MAAM,IAAA;AAAA,OAChB;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,QAAA;AAAA,QACN,OAAA,EAAS,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,QACzB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA,CAAC,UAAY,EAAA,UAAA,EAAY,QAAQ,CAAA;AAAA,QAC1C,WAAa,EAAA,IAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,WAAa,EAAA,kBAAA;AAAA,QACb,WACE,EAAA,oIAAA;AAAA,OACJ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,OAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,WAAa,EAAA,cAAA;AAAA,QACb,WACE,EAAA,gIAAA;AAAA,OACJ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,WAAA;AAAA,QACb,OAAS,EAAA;AAAA,UACP;AAAA,YACE,KAAO,EAAA,QAAA;AAAA,YACP,KAAO,EAAA,mBAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,OAAA;AAAA,YACP,KAAO,EAAA,wCAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,MAAA;AAAA,YACP,KAAO,EAAA,wCAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,gBAAkB,EAAA,wBAAA;AAAA,QAClB,WACE,EAAA,0FAAA;AAAA,OACJ;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,MAAA,EAAQ,CAAC,EAAI,KAAA;AAprBrB,UAAA,IAAA,EAAA,CAAA;AAorBwB,UAAC,OAAA,CAAA,CAAC,SAAS,MAAM,CAAA,CAAE,UAAS,EAAG,GAAA,EAAA,CAAA,YAAA,KAAH,YAAmB,EAAE,CAAA,CAAA;AAAA,SAAA;AAAA,QACjE,eAAiB,EAAA,IAAA;AAAA;AAAA,OAEnB;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,IAAM,EAAA,UAAA;AAAA,QACN,WACE,EAAA,0IAAA;AAAA,QACF,QAAA,EAAU,CAAC,WAAW,CAAA;AAAA,QACtB,SAAA,EAAW,CAAC,GAAA,EAAU,GAAU,KAAA;AA7rBxC,UAAA,IAAA,EAAA,CAAA;AA6rB2C,UAAA,OAAA;AAAA,YACjC;AAAA,cACE,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,aACvB;AAAA,WACF,CAAA;AAAA,SAAA;AAAA,QACA,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,WACE,EAAA,wGAAA;AAAA,QACF,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,IACA,UAAY,EAAA,wCAAA;AAAA,IACZ,UAAY,EAAA,iBAAA;AAAA,GACb,CAAA,CAAA;AACH,CAAA;AAOO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA,OAAA,GAAUT,sBAAM,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAC5C,EACE,uBAAAA,sBAAA,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,SAAS,kBAAkB,MAAuB,EAAA;AACvD,EAAAS,6BAAA,CAAwB,QAAQ,SAAW,EAAA;AAAA,IACzC,IAAM,EAAA,0BAAA;AAAA,IACN,WAAa,EAAA,YAAA;AAAA,IACb,mBAAqB,EAAA,oBAAA;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,kBAAkBT,sBAAM,CAAA,UAAA,CAAW,SAASa,gBAAAA,CACvD,OACA,GACA,EAAA;AAhwBF,EAAA,IAAA,EAAA,CAAA;AAiwBE,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,gBAAgBb,sBAAM,CAAA,MAAA;AAAA,IAC1B,KAAA,CAAA;AAAA,GACF,CAAA;AACA,EAAMA,sBAAA,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,CAACU,4BAAwB,EAAA,CAAA;AAC3C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,OAAO,oBAAqB,EAAA,CAAA;AAClC,IAAM,MAAA,cAAA,GAAiBV,uBAAM,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,4BAAM,UAAW,CAAA,2BAA2B,CAA5C,KAAA,IAAA,GAAA,EAAA,GAAiD,EAAC,CAAA;AACpD,IAAAA,sBAAA,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,uBAAAA,sBAAA,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,qBAAAA,sBAAA,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,2DAECc,iBAAa,EAAA,EAAA,IAAA,EAAM,cAAgB,EAAA,IAAA,EAAM,yBACvCd,sBAAA,CAAA,aAAA,CAAAc,iBAAA,EAAA,EAAa,IAAM,EAAA,mBAAA,EAAqB,MAAM,KAC5C,EAAA,EAAAC,oBAAA,CAAgB,OAAO,KAAM,CAAA,QAAQ,CACxC,CACF,CAAA;AAAA,KAEH,CAAA,CAAA;AAAA,GAEL,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEM,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAAN,6BAAA,CAAwB,QAAQ,eAAiB,EAAA;AAAA,IAC/C,IAAM,EAAA,yBAAA;AAAA,IACN,mBAAqB,EAAA,oBAAA;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,yBAAA;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,yBAAA;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;;;;;;;;;;;"}
|
|
@@ -119,6 +119,24 @@ var __objRest = (source, exclude) => {
|
|
|
119
119
|
}
|
|
120
120
|
return target;
|
|
121
121
|
};
|
|
122
|
+
const reactNodeToString = function(reactNode) {
|
|
123
|
+
let string = "";
|
|
124
|
+
if (typeof reactNode === "string") {
|
|
125
|
+
string = reactNode;
|
|
126
|
+
} else if (typeof reactNode === "number") {
|
|
127
|
+
string = reactNode.toString();
|
|
128
|
+
} else if (reactNode instanceof Array) {
|
|
129
|
+
reactNode.forEach(function(child) {
|
|
130
|
+
string += reactNodeToString(child);
|
|
131
|
+
});
|
|
132
|
+
} else if (isValidElement(reactNode)) {
|
|
133
|
+
string += reactNodeToString(reactNode.props.children);
|
|
134
|
+
}
|
|
135
|
+
return string;
|
|
136
|
+
};
|
|
137
|
+
function ensureArray(x) {
|
|
138
|
+
return Array.isArray(x) ? x : [x];
|
|
139
|
+
}
|
|
122
140
|
const FormItem = Form.Item;
|
|
123
141
|
const FormList = Form.List;
|
|
124
142
|
const PathContext = React.createContext({ relativePath: [], fullPath: [] });
|
|
@@ -410,8 +428,8 @@ function registerForm(loader) {
|
|
|
410
428
|
importName: "FormWrapper"
|
|
411
429
|
});
|
|
412
430
|
}
|
|
413
|
-
function plasmicRulesToAntdRules(plasmicRules) {
|
|
414
|
-
var _a, _b, _c;
|
|
431
|
+
function plasmicRulesToAntdRules(plasmicRules, label) {
|
|
432
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
415
433
|
const rules = [];
|
|
416
434
|
for (const plasmicRule of plasmicRules) {
|
|
417
435
|
switch (plasmicRule.ruleType) {
|
|
@@ -419,32 +437,37 @@ function plasmicRulesToAntdRules(plasmicRules) {
|
|
|
419
437
|
rules.push({
|
|
420
438
|
type: "enum",
|
|
421
439
|
enum: (_b = (_a = plasmicRule.options) == null ? void 0 : _a.map((opt) => opt.value)) != null ? _b : [],
|
|
422
|
-
message: plasmicRule.message
|
|
440
|
+
message: (_c = plasmicRule.message) != null ? _c : `Please specify a valid value`
|
|
423
441
|
});
|
|
424
442
|
break;
|
|
425
443
|
case "required":
|
|
426
444
|
rules.push({
|
|
427
445
|
required: true,
|
|
428
|
-
message: plasmicRule.message
|
|
446
|
+
message: (_d = plasmicRule.message) != null ? _d : `Please specify ${label || "this field"}`
|
|
429
447
|
});
|
|
430
448
|
break;
|
|
431
449
|
case "regex":
|
|
432
450
|
rules.push({
|
|
433
|
-
pattern: new RegExp((
|
|
434
|
-
message: plasmicRule.message
|
|
451
|
+
pattern: new RegExp((_e = plasmicRule.pattern) != null ? _e : ""),
|
|
452
|
+
message: (_f = plasmicRule.message) != null ? _f : `Please enter a valid value`
|
|
435
453
|
});
|
|
436
454
|
break;
|
|
437
455
|
case "whitespace":
|
|
438
456
|
rules.push({
|
|
439
457
|
whitespace: true,
|
|
440
|
-
message: plasmicRule.message
|
|
458
|
+
message: (_g = plasmicRule.message) != null ? _g : `Please specify ${label || "this field"}`
|
|
441
459
|
});
|
|
442
460
|
break;
|
|
443
461
|
case "min":
|
|
462
|
+
rules.push({
|
|
463
|
+
[plasmicRule.ruleType]: plasmicRule.length,
|
|
464
|
+
message: (_h = plasmicRule.message) != null ? _h : `Must be at least ${plasmicRule.length} characters`
|
|
465
|
+
});
|
|
466
|
+
break;
|
|
444
467
|
case "max":
|
|
445
468
|
rules.push({
|
|
446
469
|
[plasmicRule.ruleType]: plasmicRule.length,
|
|
447
|
-
message: plasmicRule.message
|
|
470
|
+
message: (_i = plasmicRule.message) != null ? _i : `Must be at most ${plasmicRule.length} characters`
|
|
448
471
|
});
|
|
449
472
|
break;
|
|
450
473
|
case "advanced":
|
|
@@ -474,7 +497,11 @@ function FormItemWrapper(props) {
|
|
|
474
497
|
var _a, _b;
|
|
475
498
|
const relativeFormItemName = useFormItemRelativeName(props.name);
|
|
476
499
|
const fullFormItemName = useFormItemFullName(props.name);
|
|
477
|
-
const
|
|
500
|
+
const bestEffortLabel = !props.noLabel && reactNodeToString(props.label) || ensureArray(props.name).slice(-1)[0];
|
|
501
|
+
const rules = props.rules ? plasmicRulesToAntdRules(
|
|
502
|
+
props.rules,
|
|
503
|
+
typeof bestEffortLabel === "number" ? "" + bestEffortLabel : bestEffortLabel
|
|
504
|
+
) : void 0;
|
|
478
505
|
const inCanvas = !!usePlasmicCanvasContext();
|
|
479
506
|
if (inCanvas) {
|
|
480
507
|
const form = useFormInstanceMaybe();
|
|
@@ -813,10 +840,10 @@ function registerFormList(loader) {
|
|
|
813
840
|
]
|
|
814
841
|
}
|
|
815
842
|
},
|
|
816
|
-
|
|
843
|
+
refActions: {
|
|
817
844
|
add: {
|
|
818
845
|
displayName: "Add an item",
|
|
819
|
-
|
|
846
|
+
argTypes: [
|
|
820
847
|
{
|
|
821
848
|
name: "defaultValue",
|
|
822
849
|
displayName: "Default value",
|
|
@@ -831,7 +858,7 @@ function registerFormList(loader) {
|
|
|
831
858
|
},
|
|
832
859
|
remove: {
|
|
833
860
|
displayName: "Remove an item",
|
|
834
|
-
|
|
861
|
+
argTypes: [
|
|
835
862
|
{
|
|
836
863
|
name: "index",
|
|
837
864
|
displayName: "Index",
|
|
@@ -841,7 +868,7 @@ function registerFormList(loader) {
|
|
|
841
868
|
},
|
|
842
869
|
move: {
|
|
843
870
|
displayName: "Move field",
|
|
844
|
-
|
|
871
|
+
argTypes: [
|
|
845
872
|
{
|
|
846
873
|
name: "from",
|
|
847
874
|
displayName: "From",
|